[RAMEN9610-20413][9610] wlbt: SCSC Driver version 10.6.1.0
[GitHub/MotorolaMobilityLLC/kernel-slsi.git] / drivers / misc / samsung / kic / slsi_kic_internal.h
1 /****************************************************************************
2 *
3 * Copyright (c) 2014 - 2016 Samsung Electronics Co., Ltd. All rights reserved
4 *
5 ****************************************************************************/
6
7 #ifndef __SLSI_KIC_INTERNAL_H
8 #define __SLSI_KIC_INTERNAL_H
9
10 #include <net/sock.h>
11 #include <linux/netlink.h>
12 #include <linux/skbuff.h>
13 #include <linux/list.h>
14 #include <linux/mutex.h>
15 #include <linux/version.h>
16 #include <linux/semaphore.h>
17 #include <net/genetlink.h>
18 #include <linux/time.h>
19 #include <linux/module.h>
20
21 #include <scsc/scsc_logring.h>
22
23 #include <scsc/kic/slsi_kic_prim.h>
24 #include <scsc/kic/slsi_kic_wifi.h>
25 #include <scsc/kic/slsi_kic_cm.h>
26 #include <scsc/kic/slsi_kic_bt.h>
27 #include <scsc/kic/slsi_kic_ant.h>
28
29 #define OS_UNUSED_PARAMETER(x) ((void)(x))
30
31 /**
32 * Core instance
33 */
34 enum slsi_kic_state {
35 idle,
36 initialised,
37 ready
38 };
39
40 struct slsi_kic_service_details {
41 struct list_head proxy_q;
42 enum slsi_kic_technology_type tech;
43 struct slsi_kic_service_info info;
44 };
45
46 struct slsi_kic_chip_details {
47 struct semaphore proxy_service_list_mutex;
48 struct list_head proxy_service_list;
49 };
50
51 struct slsi_kic_wifi_ops_tuple {
52 void *priv;
53 struct slsi_kic_wifi_ops wifi_ops;
54 struct mutex ops_mutex;
55 };
56
57 struct slsi_kic_bt_ops_tuple {
58 void *priv;
59 struct slsi_kic_bt_ops bt_ops;
60 struct mutex ops_mutex;
61 };
62
63 struct slsi_kic_ant_ops_tuple {
64 void *priv;
65 struct slsi_kic_ant_ops ant_ops;
66 struct mutex ops_mutex;
67 };
68
69 struct slsi_kic_cm_ops_tuple {
70 void *priv;
71 struct slsi_kic_cm_ops cm_ops;
72 struct mutex ops_mutex;
73 };
74
75 struct slsi_kic_pdata {
76 enum slsi_kic_state state;
77 struct slsi_kic_chip_details chip_details;
78 struct slsi_kic_wifi_ops_tuple wifi_ops_tuple;
79 struct slsi_kic_cm_ops_tuple cm_ops_tuple;
80 struct slsi_kic_bt_ops_tuple bt_ops_tuple;
81 struct slsi_kic_ant_ops_tuple ant_ops_tuple;
82 uint32_t seq; /* This should *perhaps* be moved to a record struct for
83 * each subscription - will look into that during the
84 * filtering work. */
85 };
86
87 struct slsi_kic_pdata *slsi_kic_core_get_context(void);
88
89 #endif /* #ifndef __SLSI_KIC_INTERNAL_H */