forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/drivers/net/wireless/rockchip_wlan/cywdhd/bcmdhd/wl_android.h
....@@ -1,15 +1,16 @@
1
-/* SPDX-License-Identifier: GPL-2.0 */
21 /*
32 * Linux cfg80211 driver - Android related functions
43 *
5
- * Copyright (C) 1999-2019, Broadcom Corporation
6
- *
4
+ * Portions of this code are copyright (c) 2022 Cypress Semiconductor Corporation
5
+ *
6
+ * Copyright (C) 1999-2017, Broadcom Corporation
7
+ *
78 * Unless you and Broadcom execute a separate written software license
89 * agreement governing use of this software, this software is licensed to you
910 * under the terms of the GNU General Public License version 2 (the "GPL"),
1011 * available at http://www.broadcom.com/licenses/GPLv2.php, with the
1112 * following added to such license:
12
- *
13
+ *
1314 * As a special exception, the copyright holders of this software give you
1415 * permission to link this software with independent modules, and to copy and
1516 * distribute the resulting executable under terms of your choice, provided that
....@@ -17,7 +18,7 @@
1718 * the license of that module. An independent module is a module which is not
1819 * derived from this software. The special exception does not apply to any
1920 * modifications of the software.
20
- *
21
+ *
2122 * Notwithstanding the above, under no circumstances may you combine this
2223 * software in any way with any other Broadcom software provided under a license
2324 * other than the GPL, without Broadcom's express prior written consent.
....@@ -25,7 +26,7 @@
2526 *
2627 * <<Broadcom-WL-IPTag/Open:>>
2728 *
28
- * $Id: wl_android.h 587146 2015-09-18 03:50:09Z $
29
+ * $Id: wl_android.h 794110 2018-12-12 05:03:21Z $
2930 */
3031
3132 #include <linux/module.h>
....@@ -35,25 +36,19 @@
3536 /* If any feature uses the Generic Netlink Interface, put it here to enable WL_GENL
3637 * automatically
3738 */
38
-#if defined(BT_WIFI_HANDOVER) || defined(WL_NAN)
39
+#if defined(BT_WIFI_HANDOVER)
3940 #define WL_GENL
40
-#endif
41
+#endif // endif
4142
42
-
43
+#ifdef WL_GENL
44
+#include <net/genetlink.h>
45
+#endif // endif
4346
4447 typedef struct _android_wifi_priv_cmd {
4548 char *buf;
4649 int used_len;
4750 int total_len;
4851 } android_wifi_priv_cmd;
49
-
50
-#ifdef CONFIG_COMPAT
51
-typedef struct _compat_android_wifi_priv_cmd {
52
- compat_caddr_t buf;
53
- int used_len;
54
- int total_len;
55
-} compat_android_wifi_priv_cmd;
56
-#endif /* CONFIG_COMPAT */
5752
5853 /**
5954 * Android platform dependent functions, feel free to add Android specific functions here
....@@ -70,10 +65,53 @@
7065 void wl_android_post_init(void);
7166 int wl_android_wifi_on(struct net_device *dev);
7267 int wl_android_wifi_off(struct net_device *dev, bool on_failure);
73
-int wl_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd);
68
+int wl_android_priv_cmd(struct net_device *net, struct ifreq *ifr);
7469 int wl_handle_private_cmd(struct net_device *net, char *command, u32 cmd_len);
7570
76
-s32 wl_netlink_send_msg(int pid, int type, int seq, void *data, size_t size);
71
+#ifdef WL_GENL
72
+typedef struct bcm_event_hdr {
73
+ u16 event_type;
74
+ u16 len;
75
+} bcm_event_hdr_t;
76
+
77
+/* attributes (variables): the index in this enum is used as a reference for the type,
78
+ * userspace application has to indicate the corresponding type
79
+ * the policy is used for security considerations
80
+ */
81
+enum {
82
+ BCM_GENL_ATTR_UNSPEC,
83
+ BCM_GENL_ATTR_STRING,
84
+ BCM_GENL_ATTR_MSG,
85
+ __BCM_GENL_ATTR_MAX
86
+};
87
+#define BCM_GENL_ATTR_MAX (__BCM_GENL_ATTR_MAX - 1)
88
+
89
+/* commands: enumeration of all commands (functions),
90
+ * used by userspace application to identify command to be ececuted
91
+ */
92
+enum {
93
+ BCM_GENL_CMD_UNSPEC,
94
+ BCM_GENL_CMD_MSG,
95
+ __BCM_GENL_CMD_MAX
96
+};
97
+#define BCM_GENL_CMD_MAX (__BCM_GENL_CMD_MAX - 1)
98
+
99
+/* Enum values used by the BCM supplicant to identify the events */
100
+enum {
101
+ BCM_E_UNSPEC,
102
+ BCM_E_SVC_FOUND,
103
+ BCM_E_DEV_FOUND,
104
+ BCM_E_DEV_LOST,
105
+#ifdef BT_WIFI_HANDOVER
106
+ BCM_E_DEV_BT_WIFI_HO_REQ,
107
+#endif // endif
108
+ BCM_E_MAX
109
+};
110
+
111
+s32 wl_genl_send_msg(struct net_device *ndev, u32 event_type,
112
+ const u8 *string, u16 len, u8 *hdr, u16 hdrlen);
113
+#endif /* WL_GENL */
114
+s32 wl_netlink_send_msg(int pid, int type, int seq, const void *data, size_t size);
77115
78116 /* hostap mac mode */
79117 #define MACLIST_MODE_DISABLED 0
....@@ -93,3 +131,30 @@
93131 #define MAX_NUM_MAC_FILT 10
94132
95133 int wl_android_set_ap_mac_list(struct net_device *dev, int macmode, struct maclist *maclist);
134
+#ifdef WL_BCNRECV
135
+extern int wl_android_bcnrecv_config(struct net_device *ndev, char *data,
136
+ int total_len);
137
+extern int wl_android_bcnrecv_stop(struct net_device *ndev, uint reason);
138
+extern int wl_android_bcnrecv_resume(struct net_device *ndev);
139
+extern int wl_android_bcnrecv_suspend(struct net_device *ndev);
140
+extern int wl_android_bcnrecv_event(struct net_device *ndev,
141
+ uint attr_type, uint status, uint reason, uint8 *data, uint data_len);
142
+#endif /* WL_BCNRECV */
143
+#ifdef WL_CAC_TS
144
+#define TSPEC_UPLINK_DIRECTION (0 << 5) /* uplink direction traffic stream */
145
+#define TSPEC_DOWNLINK_DIRECTION (1 << 5) /* downlink direction traffic stream */
146
+#define TSPEC_BI_DIRECTION (3 << 5) /* bi direction traffic stream */
147
+#define TSPEC_EDCA_ACCESS (1 << 7) /* EDCA access policy */
148
+#define TSPEC_UAPSD_PSB (1 << 2) /* U-APSD power saving behavior */
149
+#define TSPEC_TSINFO_TID_SHIFT 1 /* TID Shift */
150
+#define TSPEC_TSINFO_PRIO_SHIFT 3 /* PRIO Shift */
151
+#define TSPEC_MAX_ACCESS_CATEGORY 3
152
+#define TSPEC_MAX_USER_PRIO 7
153
+#define TSPEC_MAX_DIALOG_TOKEN 255
154
+#define TSPEC_MAX_SURPLUS_BW 12410
155
+#define TSPEC_MIN_SURPLUS_BW 11210
156
+#define TSPEC_MAX_MSDU_SIZE 1520
157
+#define TSPEC_DEF_MEAN_DATA_RATE 120000
158
+#define TSPEC_DEF_MIN_PHY_RATE 6000000
159
+#define TSPEC_DEF_DIALOG_TOKEN 7
160
+#endif /* WL_CAC_TS */