.. | .. |
---|
1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
---|
2 | 1 | /* |
---|
3 | 2 | * DHD Linux header file (dhd_linux exports for cfg80211 and other components) |
---|
4 | 3 | * |
---|
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 | + * |
---|
7 | 8 | * Unless you and Broadcom execute a separate written software license |
---|
8 | 9 | * agreement governing use of this software, this software is licensed to you |
---|
9 | 10 | * under the terms of the GNU General Public License version 2 (the "GPL"), |
---|
10 | 11 | * available at http://www.broadcom.com/licenses/GPLv2.php, with the |
---|
11 | 12 | * following added to such license: |
---|
12 | | - * |
---|
| 13 | + * |
---|
13 | 14 | * As a special exception, the copyright holders of this software give you |
---|
14 | 15 | * permission to link this software with independent modules, and to copy and |
---|
15 | 16 | * distribute the resulting executable under terms of your choice, provided that |
---|
.. | .. |
---|
17 | 18 | * the license of that module. An independent module is a module which is not |
---|
18 | 19 | * derived from this software. The special exception does not apply to any |
---|
19 | 20 | * modifications of the software. |
---|
20 | | - * |
---|
| 21 | + * |
---|
21 | 22 | * Notwithstanding the above, under no circumstances may you combine this |
---|
22 | 23 | * software in any way with any other Broadcom software provided under a license |
---|
23 | 24 | * other than the GPL, without Broadcom's express prior written consent. |
---|
.. | .. |
---|
25 | 26 | * |
---|
26 | 27 | * <<Broadcom-WL-IPTag/Open:>> |
---|
27 | 28 | * |
---|
28 | | - * $Id: dhd_linux.h 399301 2013-04-29 21:41:52Z $ |
---|
| 29 | + * $Id: dhd_linux.h 701006 2017-05-23 08:25:04Z $ |
---|
29 | 30 | */ |
---|
30 | 31 | |
---|
31 | 32 | /* wifi platform functions for power, interrupt and pre-alloc, either |
---|
.. | .. |
---|
39 | 40 | #include <linux/kernel.h> |
---|
40 | 41 | #include <linux/init.h> |
---|
41 | 42 | #include <linux/fs.h> |
---|
| 43 | + |
---|
42 | 44 | #include <dngl_stats.h> |
---|
43 | 45 | #include <dhd.h> |
---|
44 | | -#ifdef DHD_WMF |
---|
45 | | -#include <dhd_wmf_linux.h> |
---|
46 | | -#endif |
---|
| 46 | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 1)) |
---|
| 47 | +#include <linux/time64.h> |
---|
| 48 | +#define get_monotonic_boottime ktime_get_boottime_ts64 |
---|
| 49 | +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 1)) */ |
---|
47 | 50 | /* Linux wireless extension support */ |
---|
48 | 51 | #if defined(WL_WIRELESS_EXT) |
---|
49 | 52 | #include <wl_iw.h> |
---|
.. | .. |
---|
51 | 54 | #if defined(CONFIG_HAS_EARLYSUSPEND) && defined(DHD_USE_EARLYSUSPEND) |
---|
52 | 55 | #include <linux/earlysuspend.h> |
---|
53 | 56 | #endif /* defined(CONFIG_HAS_EARLYSUSPEND) && defined(DHD_USE_EARLYSUSPEND) */ |
---|
54 | | - |
---|
55 | 57 | #if defined(CONFIG_WIFI_CONTROL_FUNC) |
---|
56 | 58 | #include <linux/wlan_plat.h> |
---|
57 | | -#endif |
---|
| 59 | +#endif // endif |
---|
| 60 | +#ifdef PCIE_FULL_DONGLE |
---|
| 61 | +#include <etd.h> |
---|
| 62 | +#endif /* PCIE_FULL_DONGLE */ |
---|
| 63 | +#ifdef WL_MONITOR |
---|
| 64 | +#include <bcmmsgbuf.h> |
---|
| 65 | +#define MAX_RADIOTAP_SIZE 256 /* Maximum size to hold HE Radiotap header format */ |
---|
| 66 | +#define MAX_MON_PKT_SIZE (4096 + MAX_RADIOTAP_SIZE) |
---|
| 67 | +#endif /* WL_MONITOR */ |
---|
| 68 | + |
---|
| 69 | +#define FILE_DUMP_MAX_WAIT_TIME 4000 |
---|
| 70 | + |
---|
| 71 | +#define htod32(i) (i) |
---|
| 72 | +#define htod16(i) (i) |
---|
| 73 | +#define dtoh32(i) (i) |
---|
| 74 | +#define dtoh16(i) (i) |
---|
| 75 | +#define htodchanspec(i) (i) |
---|
| 76 | +#define dtohchanspec(i) (i) |
---|
| 77 | + |
---|
| 78 | +#ifdef BLOCK_IPV6_PACKET |
---|
| 79 | +#define HEX_PREF_STR "0x" |
---|
| 80 | +#define UNI_FILTER_STR "010000000000" |
---|
| 81 | +#define ZERO_ADDR_STR "000000000000" |
---|
| 82 | +#define ETHER_TYPE_STR "0000" |
---|
| 83 | +#define IPV6_FILTER_STR "20" |
---|
| 84 | +#define ZERO_TYPE_STR "00" |
---|
| 85 | +#endif /* BLOCK_IPV6_PACKET */ |
---|
| 86 | + |
---|
| 87 | +typedef struct dhd_if_event { |
---|
| 88 | + struct list_head list; |
---|
| 89 | + wl_event_data_if_t event; |
---|
| 90 | + char name[IFNAMSIZ+1]; |
---|
| 91 | + uint8 mac[ETHER_ADDR_LEN]; |
---|
| 92 | +} dhd_if_event_t; |
---|
| 93 | + |
---|
| 94 | +/* Interface control information */ |
---|
| 95 | +typedef struct dhd_if { |
---|
| 96 | + struct dhd_info *info; /* back pointer to dhd_info */ |
---|
| 97 | + /* OS/stack specifics */ |
---|
| 98 | + struct net_device *net; |
---|
| 99 | + int idx; /* iface idx in dongle */ |
---|
| 100 | + uint subunit; /* subunit */ |
---|
| 101 | + uint8 mac_addr[ETHER_ADDR_LEN]; /* assigned MAC address */ |
---|
| 102 | + bool set_macaddress; |
---|
| 103 | + bool set_multicast; |
---|
| 104 | + uint8 bssidx; /* bsscfg index for the interface */ |
---|
| 105 | + bool attached; /* Delayed attachment when unset */ |
---|
| 106 | + bool txflowcontrol; /* Per interface flow control indicator */ |
---|
| 107 | + char name[IFNAMSIZ+1]; /* linux interface name */ |
---|
| 108 | + char dngl_name[IFNAMSIZ+1]; /* corresponding dongle interface name */ |
---|
| 109 | + struct net_device_stats stats; |
---|
| 110 | + struct list_head sta_list; /* sll of associated stations */ |
---|
| 111 | + spinlock_t sta_list_lock; /* lock for manipulating sll */ |
---|
| 112 | + uint32 ap_isolate; /* ap-isolation settings */ |
---|
| 113 | +#ifdef DHD_L2_FILTER |
---|
| 114 | + bool parp_enable; |
---|
| 115 | + bool parp_discard; |
---|
| 116 | + bool parp_allnode; |
---|
| 117 | + arp_table_t *phnd_arp_table; |
---|
| 118 | + /* for Per BSS modification */ |
---|
| 119 | + bool dhcp_unicast; |
---|
| 120 | + bool block_ping; |
---|
| 121 | + bool grat_arp; |
---|
| 122 | + bool block_tdls; |
---|
| 123 | +#endif /* DHD_L2_FILTER */ |
---|
| 124 | +#ifdef DHD_MCAST_REGEN |
---|
| 125 | + bool mcast_regen_bss_enable; |
---|
| 126 | +#endif // endif |
---|
| 127 | + bool rx_pkt_chainable; /* set all rx packet to chainable config by default */ |
---|
| 128 | + cumm_ctr_t cumm_ctr; /* cummulative queue length of child flowrings */ |
---|
| 129 | + uint8 tx_paths_active; |
---|
| 130 | + bool del_in_progress; |
---|
| 131 | + bool static_if; /* used to avoid some operations on static_if */ |
---|
| 132 | +#ifdef DHD_4WAYM4_FAIL_DISCONNECT |
---|
| 133 | + struct delayed_work m4state_work; |
---|
| 134 | + atomic_t m4state; |
---|
| 135 | +#endif /* DHD_4WAYM4_FAIL_DISCONNECT */ |
---|
| 136 | +#ifdef DHD_POST_EAPOL_M1_AFTER_ROAM_EVT |
---|
| 137 | + bool recv_reassoc_evt; |
---|
| 138 | + bool post_roam_evt; |
---|
| 139 | +#endif /* DHD_POST_EAPOL_M1_AFTER_ROAM_EVT */ |
---|
| 140 | +#ifdef DHDTCPSYNC_FLOOD_BLK |
---|
| 141 | + uint32 tsync_rcvd; |
---|
| 142 | + uint32 tsyncack_txed; |
---|
| 143 | + u64 last_sync; |
---|
| 144 | + struct work_struct blk_tsfl_work; |
---|
| 145 | +#endif /* DHDTCPSYNC_FLOOD_BLK */ |
---|
| 146 | +#if defined(BCMSDIO) |
---|
| 147 | + int role; |
---|
| 148 | +#endif /* BCMSDIO */ |
---|
| 149 | +} dhd_if_t; |
---|
| 150 | + |
---|
| 151 | +struct ipv6_work_info_t { |
---|
| 152 | + uint8 if_idx; |
---|
| 153 | + char ipv6_addr[IPV6_ADDR_LEN]; |
---|
| 154 | + unsigned long event; |
---|
| 155 | +}; |
---|
| 156 | + |
---|
| 157 | +typedef struct dhd_dump { |
---|
| 158 | + uint8 *buf; |
---|
| 159 | + int bufsize; |
---|
| 160 | + uint8 *hscb_buf; |
---|
| 161 | + int hscb_bufsize; |
---|
| 162 | +} dhd_dump_t; |
---|
| 163 | +#ifdef DNGL_AXI_ERROR_LOGGING |
---|
| 164 | +typedef struct dhd_axi_error_dump { |
---|
| 165 | + ulong fault_address; |
---|
| 166 | + uint32 axid; |
---|
| 167 | + struct hnd_ext_trap_axi_error_v1 etd_axi_error_v1; |
---|
| 168 | +} dhd_axi_error_dump_t; |
---|
| 169 | +#endif /* DNGL_AXI_ERROR_LOGGING */ |
---|
| 170 | + |
---|
| 171 | +#ifdef DHD_PCIE_NATIVE_RUNTIMEPM |
---|
| 172 | +struct dhd_rx_tx_work { |
---|
| 173 | + struct work_struct work; |
---|
| 174 | + struct sk_buff *skb; |
---|
| 175 | + struct net_device *net; |
---|
| 176 | + struct dhd_pub *pub; |
---|
| 177 | +}; |
---|
| 178 | +#endif /* DHD_PCIE_NATIVE_RUNTIMEPM */ |
---|
| 179 | + |
---|
| 180 | +#if defined(DHD_LB) |
---|
| 181 | +#if !defined(PCIE_FULL_DONGLE) |
---|
| 182 | +#error "DHD Loadbalancing only supported on PCIE_FULL_DONGLE" |
---|
| 183 | +#endif /* !PCIE_FULL_DONGLE */ |
---|
| 184 | +#endif /* DHD_LB */ |
---|
| 185 | + |
---|
| 186 | +#if defined(DHD_LB_RXP) || defined(DHD_LB_RXC) || defined(DHD_LB_TXC) || \ |
---|
| 187 | + defined(DHD_LB_STATS) |
---|
| 188 | +#if !defined(DHD_LB) |
---|
| 189 | +#error "DHD loadbalance derivatives are supported only if DHD_LB is defined" |
---|
| 190 | +#endif /* !DHD_LB */ |
---|
| 191 | +#endif /* DHD_LB_RXP || DHD_LB_RXC || DHD_LB_TXC || DHD_LB_STATS */ |
---|
| 192 | + |
---|
| 193 | +#if defined(DHD_LB) |
---|
| 194 | +/* Dynamic CPU selection for load balancing */ |
---|
| 195 | +#include <linux/cpu.h> |
---|
| 196 | +#include <linux/cpumask.h> |
---|
| 197 | +#include <linux/notifier.h> |
---|
| 198 | +#include <linux/workqueue.h> |
---|
| 199 | +#include <asm/atomic.h> |
---|
| 200 | + |
---|
| 201 | +#if !defined(DHD_LB_PRIMARY_CPUS) |
---|
| 202 | +#define DHD_LB_PRIMARY_CPUS 0x0 /* Big CPU coreids mask */ |
---|
| 203 | +#endif // endif |
---|
| 204 | +#if !defined(DHD_LB_SECONDARY_CPUS) |
---|
| 205 | +#define DHD_LB_SECONDARY_CPUS 0xFE /* Little CPU coreids mask */ |
---|
| 206 | +#endif // endif |
---|
| 207 | + |
---|
| 208 | +#define HIST_BIN_SIZE 9 |
---|
| 209 | + |
---|
| 210 | +#if defined(DHD_LB_TXP) |
---|
| 211 | +/* Pkttag not compatible with PROP_TXSTATUS or WLFC */ |
---|
| 212 | +typedef struct dhd_tx_lb_pkttag_fr { |
---|
| 213 | + struct net_device *net; |
---|
| 214 | + int ifidx; |
---|
| 215 | +} dhd_tx_lb_pkttag_fr_t; |
---|
| 216 | + |
---|
| 217 | +#define DHD_LB_TX_PKTTAG_SET_NETDEV(tag, netdevp) ((tag)->net = netdevp) |
---|
| 218 | +#define DHD_LB_TX_PKTTAG_NETDEV(tag) ((tag)->net) |
---|
| 219 | + |
---|
| 220 | +#define DHD_LB_TX_PKTTAG_SET_IFIDX(tag, ifidx) ((tag)->ifidx = ifidx) |
---|
| 221 | +#define DHD_LB_TX_PKTTAG_IFIDX(tag) ((tag)->ifidx) |
---|
| 222 | +#endif /* DHD_LB_TXP */ |
---|
| 223 | + |
---|
| 224 | +#endif /* DHD_LB */ |
---|
| 225 | + |
---|
| 226 | +#ifdef FILTER_IE |
---|
| 227 | +#define FILTER_IE_PATH "/etc/wifi/filter_ie" |
---|
| 228 | +#define FILTER_IE_BUFSZ 1024 /* ioc buffsize for FILTER_IE */ |
---|
| 229 | +#define FILE_BLOCK_READ_SIZE 256 |
---|
| 230 | +#define WL_FILTER_IE_IOV_HDR_SIZE OFFSETOF(wl_filter_ie_iov_v1_t, tlvs) |
---|
| 231 | +#endif /* FILTER_IE */ |
---|
| 232 | + |
---|
| 233 | +#define NULL_CHECK(p, s, err) \ |
---|
| 234 | + do { \ |
---|
| 235 | + if (!(p)) { \ |
---|
| 236 | + printk("NULL POINTER (%s) : %s\n", __FUNCTION__, (s)); \ |
---|
| 237 | + err = BCME_ERROR; \ |
---|
| 238 | + return err; \ |
---|
| 239 | + } \ |
---|
| 240 | + } while (0) |
---|
58 | 241 | |
---|
59 | 242 | #if !defined(CONFIG_WIFI_CONTROL_FUNC) |
---|
60 | | -#define WLAN_PLAT_NODFS_FLAG 0x01 |
---|
| 243 | +#define WLAN_PLAT_NODFS_FLAG 0x01 |
---|
| 244 | +#define WLAN_PLAT_AP_FLAG 0x02 |
---|
61 | 245 | struct wifi_platform_data { |
---|
62 | 246 | int (*set_power)(int val); |
---|
63 | 247 | int (*set_reset)(int val); |
---|
64 | 248 | int (*set_carddetect)(int val); |
---|
65 | 249 | void *(*mem_prealloc)(int section, unsigned long size); |
---|
66 | 250 | int (*get_mac_addr)(unsigned char *buf); |
---|
| 251 | +#ifdef BCMSDIO |
---|
| 252 | + int (*get_wake_irq)(void); |
---|
| 253 | +#endif // endif |
---|
67 | 254 | #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 58)) || defined(CUSTOM_COUNTRY_CODE) |
---|
68 | 255 | void *(*get_country_code)(char *ccode, u32 flags); |
---|
69 | 256 | #else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 58)) || defined (CUSTOM_COUNTRY_CODE) */ |
---|
70 | 257 | void *(*get_country_code)(char *ccode); |
---|
71 | 258 | #endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 58)) */ |
---|
72 | | - }; |
---|
| 259 | +}; |
---|
73 | 260 | #endif /* CONFIG_WIFI_CONTROL_FUNC */ |
---|
| 261 | + |
---|
74 | 262 | #define DHD_REGISTRATION_TIMEOUT 12000 /* msec : allowed time to finished dhd registration */ |
---|
75 | 263 | |
---|
76 | 264 | typedef struct wifi_adapter_info { |
---|
.. | .. |
---|
83 | 271 | uint bus_type; |
---|
84 | 272 | uint bus_num; |
---|
85 | 273 | uint slot_num; |
---|
| 274 | +#if defined(BT_OVER_SDIO) |
---|
| 275 | + const char *btfw_path; |
---|
| 276 | +#endif /* defined (BT_OVER_SDIO) */ |
---|
86 | 277 | } wifi_adapter_info_t; |
---|
87 | 278 | |
---|
88 | 279 | typedef struct bcmdhd_wifi_platdata { |
---|
.. | .. |
---|
99 | 290 | struct list_head list; /* link into dhd_if::sta_list */ |
---|
100 | 291 | int idx; /* index of self in dhd_pub::sta_pool[] */ |
---|
101 | 292 | int ifidx; /* index of interface in dhd */ |
---|
102 | | -#ifdef DHD_WMF |
---|
103 | | - struct dhd_sta *psta_prim; /* primary index of psta interface */ |
---|
104 | | -#endif /* DHD_WMF */ |
---|
105 | 293 | } dhd_sta_t; |
---|
106 | 294 | typedef dhd_sta_t dhd_sta_pool_t; |
---|
| 295 | + |
---|
| 296 | +#ifdef DHD_4WAYM4_FAIL_DISCONNECT |
---|
| 297 | +typedef enum { |
---|
| 298 | + M3_RXED, |
---|
| 299 | + M4_TXFAILED |
---|
| 300 | +} msg_4way_state_t; |
---|
| 301 | +#define MAX_4WAY_TIMEOUT_MS 2000 |
---|
| 302 | +#endif /* DHD_4WAYM4_FAIL_DISCONNECT */ |
---|
| 303 | + |
---|
| 304 | +#ifdef DHD_SEND_HANG_PRIVCMD_ERRORS |
---|
| 305 | +extern uint32 report_hang_privcmd_err; |
---|
| 306 | +#endif /* DHD_SEND_HANG_PRIVCMD_ERRORS */ |
---|
| 307 | + |
---|
| 308 | +#if defined(ARGOS_NOTIFY_CB) |
---|
| 309 | +int argos_register_notifier_init(struct net_device *net); |
---|
| 310 | +int argos_register_notifier_deinit(void); |
---|
| 311 | + |
---|
| 312 | +extern int sec_argos_register_notifier(struct notifier_block *n, char *label); |
---|
| 313 | +extern int sec_argos_unregister_notifier(struct notifier_block *n, char *label); |
---|
| 314 | + |
---|
| 315 | +typedef struct { |
---|
| 316 | + struct net_device *wlan_primary_netdev; |
---|
| 317 | + int argos_rps_cpus_enabled; |
---|
| 318 | +} argos_rps_ctrl; |
---|
| 319 | + |
---|
| 320 | +#define RPS_TPUT_THRESHOLD 300 |
---|
| 321 | +#define DELAY_TO_CLEAR_RPS_CPUS 300 |
---|
| 322 | +#endif // endif |
---|
| 323 | + |
---|
| 324 | +#if defined(BT_OVER_SDIO) |
---|
| 325 | +extern void wl_android_set_wifi_on_flag(bool enable); |
---|
| 326 | +#endif /* BT_OVER_SDIO */ |
---|
| 327 | + |
---|
| 328 | +#ifdef DHD_LOG_DUMP |
---|
| 329 | +/* 0: DLD_BUF_TYPE_GENERAL, 1: DLD_BUF_TYPE_PRESERVE |
---|
| 330 | +* 2: DLD_BUF_TYPE_SPECIAL |
---|
| 331 | +*/ |
---|
| 332 | +#define DLD_BUFFER_NUM 3 |
---|
| 333 | + |
---|
| 334 | +#ifndef CUSTOM_LOG_DUMP_BUFSIZE_MB |
---|
| 335 | +#define CUSTOM_LOG_DUMP_BUFSIZE_MB 4 /* DHD_LOG_DUMP_BUF_SIZE 4 MB static memory in kernel */ |
---|
| 336 | +#endif /* CUSTOM_LOG_DUMP_BUFSIZE_MB */ |
---|
| 337 | + |
---|
| 338 | +#define LOG_DUMP_TOTAL_BUFSIZE (1024 * 1024 * CUSTOM_LOG_DUMP_BUFSIZE_MB) |
---|
| 339 | + |
---|
| 340 | +/* |
---|
| 341 | + * Below are different sections that use the prealloced buffer |
---|
| 342 | + * and sum of the sizes of these should not cross LOG_DUMP_TOTAL_BUFSIZE |
---|
| 343 | + */ |
---|
| 344 | +#define LOG_DUMP_GENERAL_MAX_BUFSIZE (256 * 1024 * CUSTOM_LOG_DUMP_BUFSIZE_MB) |
---|
| 345 | +#define LOG_DUMP_PRESERVE_MAX_BUFSIZE (128 * 1024 * CUSTOM_LOG_DUMP_BUFSIZE_MB) |
---|
| 346 | +#define LOG_DUMP_ECNTRS_MAX_BUFSIZE (256 * 1024 * CUSTOM_LOG_DUMP_BUFSIZE_MB) |
---|
| 347 | +#define LOG_DUMP_RTT_MAX_BUFSIZE (256 * 1024 * CUSTOM_LOG_DUMP_BUFSIZE_MB) |
---|
| 348 | +#define LOG_DUMP_FILTER_MAX_BUFSIZE (128 * 1024 * CUSTOM_LOG_DUMP_BUFSIZE_MB) |
---|
| 349 | + |
---|
| 350 | +#if LOG_DUMP_TOTAL_BUFSIZE < (LOG_DUMP_GENERAL_MAX_BUFSIZE + \ |
---|
| 351 | + LOG_DUMP_PRESERVE_MAX_BUFSIZE + LOG_DUMP_ECNTRS_MAX_BUFSIZE + LOG_DUMP_RTT_MAX_BUFSIZE \ |
---|
| 352 | + + LOG_DUMP_FILTER_MAX_BUFSIZE) |
---|
| 353 | +#error "LOG_DUMP_TOTAL_BUFSIZE is lesser than sum of all rings" |
---|
| 354 | +#endif // endif |
---|
| 355 | + |
---|
| 356 | +/* Special buffer is allocated as separately in prealloc */ |
---|
| 357 | +#define LOG_DUMP_SPECIAL_MAX_BUFSIZE (8 * 1024) |
---|
| 358 | + |
---|
| 359 | +#define LOG_DUMP_MAX_FILESIZE (8 *1024 * 1024) /* 8 MB default */ |
---|
| 360 | +#ifdef CONFIG_LOG_BUF_SHIFT |
---|
| 361 | +/* 15% of kernel log buf size, if for example klog buf size is 512KB |
---|
| 362 | +* 15% of 512KB ~= 80KB |
---|
| 363 | +*/ |
---|
| 364 | +#define LOG_DUMP_KERNEL_TAIL_FLUSH_SIZE \ |
---|
| 365 | + (15 * ((1 << CONFIG_LOG_BUF_SHIFT)/100)) |
---|
| 366 | +#endif /* CONFIG_LOG_BUF_SHIFT */ |
---|
| 367 | + |
---|
| 368 | +#define LOG_DUMP_COOKIE_BUFSIZE 1024u |
---|
| 369 | + |
---|
| 370 | +typedef struct { |
---|
| 371 | + char *hdr_str; |
---|
| 372 | + log_dump_section_type_t sec_type; |
---|
| 373 | +} dld_hdr_t; |
---|
| 374 | + |
---|
| 375 | +typedef struct { |
---|
| 376 | + int attr; |
---|
| 377 | + char *hdr_str; |
---|
| 378 | + log_dump_section_type_t sec_type; |
---|
| 379 | + int log_type; |
---|
| 380 | +} dld_log_hdr_t; |
---|
| 381 | + |
---|
| 382 | +#define DHD_PRINT_BUF_NAME_LEN 30 |
---|
| 383 | +#endif /* DHD_LOG_DUMP */ |
---|
107 | 384 | |
---|
108 | 385 | int dhd_wifi_platform_register_drv(void); |
---|
109 | 386 | void dhd_wifi_platform_unregister_drv(void); |
---|
.. | .. |
---|
115 | 392 | int wifi_platform_get_mac_addr(wifi_adapter_info_t *adapter, unsigned char *buf); |
---|
116 | 393 | #ifdef CUSTOM_COUNTRY_CODE |
---|
117 | 394 | void *wifi_platform_get_country_code(wifi_adapter_info_t *adapter, char *ccode, |
---|
118 | | - u32 flags); |
---|
| 395 | + u32 flags); |
---|
119 | 396 | #else |
---|
120 | 397 | void *wifi_platform_get_country_code(wifi_adapter_info_t *adapter, char *ccode); |
---|
121 | 398 | #endif /* CUSTOM_COUNTRY_CODE */ |
---|
.. | .. |
---|
125 | 402 | int dhd_get_fw_mode(struct dhd_info *dhdinfo); |
---|
126 | 403 | bool dhd_update_fw_nv_path(struct dhd_info *dhdinfo); |
---|
127 | 404 | |
---|
128 | | -#ifdef DHD_WMF |
---|
129 | | -dhd_wmf_t* dhd_wmf_conf(dhd_pub_t *dhdp, uint32 idx); |
---|
130 | | -int dhd_get_wmf_psta_disable(dhd_pub_t *dhdp, uint32 idx); |
---|
131 | | -int dhd_set_wmf_psta_disable(dhd_pub_t *dhdp, uint32 idx, int val); |
---|
132 | | -void dhd_update_psta_interface_for_sta(dhd_pub_t *dhdp, char* ifname, |
---|
133 | | - void* mac_addr, void* event_data); |
---|
134 | | -#endif /* DHD_WMF */ |
---|
| 405 | +#if defined(BT_OVER_SDIO) |
---|
| 406 | +int dhd_net_bus_get(struct net_device *dev); |
---|
| 407 | +int dhd_net_bus_put(struct net_device *dev); |
---|
| 408 | +#endif /* BT_OVER_SDIO */ |
---|
| 409 | +#if defined(WLADPS) || defined(WLADPS_PRIVATE_CMD) |
---|
| 410 | +#define ADPS_ENABLE 1 |
---|
| 411 | +#define ADPS_DISABLE 0 |
---|
135 | 412 | |
---|
136 | | -void dhd_set_monitor(dhd_pub_t *dhd, int ifidx, int val); |
---|
| 413 | +int dhd_enable_adps(dhd_pub_t *dhd, uint8 on); |
---|
| 414 | +#endif /* WLADPS || WLADPS_PRIVATE_CMD */ |
---|
| 415 | +#ifdef DHDTCPSYNC_FLOOD_BLK |
---|
| 416 | +extern void dhd_reset_tcpsync_info_by_ifp(dhd_if_t *ifp); |
---|
| 417 | +extern void dhd_reset_tcpsync_info_by_dev(struct net_device *dev); |
---|
| 418 | +#endif /* DHDTCPSYNC_FLOOD_BLK */ |
---|
| 419 | + |
---|
| 420 | +int compat_kernel_read(struct file *file, loff_t offset, char *addr, unsigned long count); |
---|
| 421 | + |
---|
137 | 422 | #endif /* __DHD_LINUX_H__ */ |
---|