Lines Matching defs:dhd_pub
776 void *dhd_pub; member
913 void *dhd_pub; member
941 typedef struct dhd_pub { struct
943 osl_t *osh; /* OSL handle */
944 struct dhd_bus *bus; /* Bus module handle */
945 struct dhd_prot *prot; /* Protocol module handle */
946 struct dhd_info *info; /* Info module handle */
947 struct dhd_dbg *dbg; /* Debugability module handle */
949 struct dhd_logtrace_thr_ts logtrace_thr_ts;
957 bool up; /* Driver up/down (to OS) */
959 spinlock_t up_lock; /* Synchronization with CFG80211 down */
961 bool txoff; /* Transmit flow-controlled */
962 bool dongle_reset; /* TRUE = DEVRESET put dongle into reset */
963 enum dhd_bus_state busstate;
964 uint dhd_bus_busy_state; /* Bus busy state */
965 uint hdrlen; /* Total DHD header length (proto + bus) */
966 uint maxctl; /* Max size rxctl request from proto to bus */
967 uint rxsz; /* Rx buffer size bus module should use */
968 uint8 wme_dp; /* wme discard priority */
970 uint32 axierror_logbuf_addr;
971 bool axi_error;
972 struct dhd_axi_error_dump *axi_err_dump;
975 bool iswl; /* Dongle-resident driver is wl */
976 ulong drv_version; /* Version of dongle-resident driver */
977 struct ether_addr mac; /* MAC address obtained from dongle */
978 dngl_stats_t dstats; /* Stats for dongle-based data */
981 ulong tx_packets; /* Data packets sent to dongle */
982 ulong tx_dropped; /* Data packets dropped in dhd */
983 ulong tx_multicast; /* Multicast data packets sent to dongle */
984 ulong tx_errors; /* Errors in sending data to dongle */
985 ulong tx_ctlpkts; /* Control packets sent to dongle */
986 ulong tx_ctlerrs; /* Errors sending control frames to dongle */
987 ulong rx_packets; /* Packets sent up the network interface */
988 ulong rx_multicast; /* Multicast packets sent up the network interface */
989 ulong rx_errors; /* Errors processing rx data packets */
990 ulong rx_ctlpkts; /* Control frames processed from dongle */
991 ulong rx_ctlerrs; /* Errors in processing rx control frames */
992 ulong rx_dropped; /* Packets dropped locally (no memory) */
993 ulong rx_flushed; /* Packets flushed due to unscheduled sendup thread */
994 ulong wd_dpc_sched; /* Number of times dhd dpc scheduled by watchdog timer */
995 ulong rx_pktgetfail; /* Number of PKTGET failures in DHD on RX */
996 ulong tx_pktgetfail; /* Number of PKTGET failures in DHD on TX */
997 ulong rx_readahead_cnt; /* Number of packets where header read-ahead was used. */
998 ulong tx_realloc; /* Number of tx packets we had to realloc for headroom */
999 ulong fc_packets; /* Number of flow control pkts recvd */
1000 ulong tx_big_packets; /* Dropped data packets that are larger than MAX_MTU_SZ */
1003 dma_stats_t dma_stats;
1007 int bcmerror;
1008 uint tickcnt;
1011 int dongle_error;
1013 uint8 country_code[WLC_CNTRY_BUF_SZ];
1016 int suspend_disable_flag; /* "1" to disable all extra powersaving during suspend */
1017 int in_suspend; /* flag set to 1 when early suspend called */
1019 int pno_enable; /* pno status : "1" is pno enable */
1020 int pno_suspend; /* pno suspend status : "1" is pno suspended */
1025 int suspend_bcn_li_dtim; /* bcn_li_dtim value in suspend mode */
1027 int early_suspended; /* Early suspend status */
1028 int dhcp_in_progress; /* DHCP period */
1032 char * pktfilter[100];
1033 int pktfilter_count;
1035 wl_country_t dhd_cspec; /* Current Locale info */
1037 uint dhd_cflags;
1040 bool is_blob; /* Checking for existance of Blob file */
1042 bool force_country_change;
1043 char eventmask[WL_EVENTING_MASK_LEN];
1044 int op_mode; /* STA, HostAPD, WFD, SoftAP */
1053 struct mutex wl_start_stop_lock; /* lock/unlock for Android start/stop */
1054 struct mutex wl_softap_lock; /* lock/unlock for any SoftAP/STA settings */
1058 bool wlfc_enabled;
1059 int wlfc_mode;
1060 void* wlfc_state;
1069 uint8 proptxstatus_mode;
1070 bool proptxstatus_txoff;
1071 bool proptxstatus_module_ignore;
1072 bool proptxstatus_credit_ignore;
1073 bool proptxstatus_txstatus_ignore;
1075 bool wlfc_rxpkt_chk;
1077 bool wlfc_borrow_allowed;
1083 bool (*skip_fc)(void * dhdp, uint8 ifx);
1085 void (*plat_init)(void *dhd);
1086 void (*plat_deinit)(void *dhd);
1088 bool wlfc_thread_go;
1089 struct task_struct* wlfc_thread;
1090 wait_queue_head_t wlfc_wqhead;
1094 void *pno_state;
1097 void *rtt_state;
1100 bool roam_env_detection;
1102 bool dongle_isolation;
1103 bool is_pcie_watchdog_reset;
1106 bool dongle_trap_occured; /* flag for sending HANG event to upper layer */
1107 bool iovar_timeout_occured; /* flag to indicate iovar resumed on timeout */
1108 bool is_sched_error; /* flag to indicate timeout due to scheduling issue */
1110 bool d3ack_timeout_occured; /* flag to indicate d3ack resumed on timeout */
1111 bool livelock_occured; /* flag to indicate livelock occured */
1112 bool pktid_audit_failed; /* flag to indicate pktid audit failure */
1114 bool iface_op_failed; /* flag to indicate interface operation failed */
1115 bool scan_timeout_occurred; /* flag to indicate scan has timedout */
1116 bool scan_busy_occurred; /* flag to indicate scan busy occurred */
1118 bool is_bt_recovery_required;
1120 bool smmu_fault_occurred; /* flag to indicate SMMU Fault */
1128 int hang_was_sent;
1129 int hang_was_pending;
1130 int rxcnt_timeout; /* counter rxcnt timeout to send HANG */
1131 int txcnt_timeout; /* counter txcnt timeout to send HANG */
1133 int d3ackcnt_timeout; /* counter d3ack timeout to send HANG */
1135 bool hang_report; /* enable hang report by default */
1136 uint16 hang_reason; /* reason codes for HANG event */
1138 uint req_hang_type;
1141 uint hang_counts;
1144 bool tdls_enable;
1146 struct reorder_info *reorder_bufs[WLHOST_REORDERDATA_MAXFLOWS];
1148 char fw_capabilities[WLC_IOCTL_MAXBUF_FWCAP];
1150 void *skbbuf[MAXSKBPEND];
1151 uint32 store_idx;
1152 uint32 sent_idx;
1154 uint8 tcpack_sup_mode; /* TCPACK suppress mode */
1155 void *tcpack_sup_module; /* TCPACK suppress module */
1156 uint32 tcpack_sup_ratio;
1157 uint32 tcpack_sup_delay;
1160 uint32 arp_version;
1163 bool fw_4way_handshake; /* Whether firmware will to do the 4way handshake. */
1166 bool dhd_bug_on;
1169 struct task_struct * current_dpc;
1170 struct task_struct * current_rxf;
1171 int chan_isvht80;
1174 void *sta_pool; /* pre-allocated pool of sta objects */
1175 void *staid_allocator; /* allocator of sta indexes */
1177 bool flow_rings_inited; /* set this flag after initializing flow rings */
1179 void *flowid_allocator; /* unique flowid allocator */
1180 void *flow_ring_table; /* flow ring table, include prot and bus info */
1181 void *if_flow_lkup; /* per interface flowid lkup hash table */
1182 void *flowid_lock; /* per os lock for flowid info protection */
1183 void *flowring_list_lock; /* per os lock for flowring list protection */
1184 uint8 max_multi_client_flow_rings;
1185 uint8 multi_client_flow_rings;
1186 uint32 num_flow_rings;
1187 cumm_ctr_t cumm_ctr; /* cumm queue length placeholder */
1188 cumm_ctr_t l2cumm_ctr; /* level 2 cumm queue length placeholder */
1189 uint32 d2h_sync_mode; /* D2H DMA completion sync mode */
1190 uint8 flow_prio_map[NUMPRIO];
1191 uint8 flow_prio_map_type;
1192 char enable_log[MAX_EVENT];
1193 bool dma_d2h_ring_upd_support;
1194 bool dma_h2d_ring_upd_support;
1195 bool dma_ring_upd_overwrite; /* host overwrites support setting */
1197 bool hwa_enable;
1198 uint hwa_inited;
1200 bool idma_enable;
1201 uint idma_inited;
1203 bool ifrm_enable; /* implicit frm enable */
1204 uint ifrm_inited; /* implicit frm init */
1206 bool dar_enable; /* use DAR registers */
1207 uint dar_inited;
1209 bool fast_delete_ring_support; /* fast delete ring supported */
1212 unsigned long l2_filter_cnt; /* for L2_FILTER ARP table timeout */
1215 bool sssr_inited;
1216 bool sssr_dump_collected; /* Flag to indicate sssr dump is collected */
1217 sssr_reg_info_v1_t sssr_reg_info;
1218 uint8 *sssr_mempool;
1219 uint *sssr_d11_before[MAX_NUM_D11CORES];
1220 uint *sssr_d11_after[MAX_NUM_D11CORES];
1221 bool sssr_d11_outofreset[MAX_NUM_D11CORES];
1222 uint *sssr_dig_buf_before;
1223 uint *sssr_dig_buf_after;
1224 uint32 sssr_dump_mode;
1225 bool collect_sssr; /* Flag to indicate SSSR dump is required */
1227 uint8 *soc_ram;
1228 uint32 soc_ram_length;
1229 uint32 memdump_type;
1231 uint8 *rnd_buf;
1232 uint32 rnd_len;
1235 uint32 memdump_enabled;
1237 bool memdump_success;
1242 tdls_peer_tbl_t peer_tbl;
1244 uint8 tx_in_progress;
1247 void *dhd_ulp;
1250 uint32 tdls_mode;
1253 bool lazy_roam_enable;
1256 bool apf_set;
1258 void *macdbg_info;
1260 void *wet_info;
1262 bool h2d_phase_supported;
1263 bool force_dongletrap_on_bad_h2d_phase;
1264 uint32 dongle_trap_data;
1265 fw_download_status_t fw_download_status;
1266 trap_t last_trap_info; /* trap info from the last trap */
1267 uint8 rand_mac_oui[DOT11_OUI_LEN];
1269 uint8 dequeue_prec_map;
1270 uint8 prio_8021x;
1273 struct dhd_nfct_info *nfct;
1274 spinlock_t nfct_lock;
1277 struct dhd_ts *ts;
1278 bool d2h_hostrdy_supported;
1280 atomic_t block_bus;
1283 bool d11_tx_status;
1285 uint16 ndo_version; /* ND offload version supported */
1287 bool ndo_enable; /* ND offload feature enable */
1288 bool ndo_host_ip_overflow; /* # of host ip addr exceed FW capacity */
1289 uint32 ndo_max_host_ip; /* # of host ip addr supported by FW */
1293 uint8 *concise_dbg_buf;
1294 uint64 last_file_posn;
1295 int logdump_periodic_flush;
1298 void *ecntr_dbg_ring;
1301 void *rtt_dbg_ring;
1304 uint8 health_chk_event_data[HEALTH_CHK_BUF_SIZE];
1306 void *logdump_cookie;
1308 uint32 dhd_console_ms; /** interval for polling the dongle for console (log) messages */
1309 bool ext_trap_data_supported;
1310 uint32 *extended_trap_data;
1313 dll_t dump_iovlist_head;
1314 uint8 dump_iovlist_len;
1317 uint32 mimo_ant_set;
1320 bool ocl_off;
1324 dll_t mw_list_head; /* memwaste list head */
1325 uint32 mw_id; /* memwaste list unique id */
1328 spinlock_t tdls_lock;
1330 uint pcie_txs_metadata_enable;
1331 uint wbtext_policy; /* wbtext policy of dongle */
1332 bool wbtext_support; /* for product policy only */
1333 bool max_dtim_enable; /* use MAX bcn_li_dtim value in suspend mode */
1334 tput_test_t tput_data;
1335 uint64 tput_start_ts;
1336 uint64 tput_stop_ts;
1338 bool monitor_enable;
1341 struct dhd_pktlog *pktlog;
1342 char debug_dump_time_pktlog_str[DEBUG_DUMP_TIME_BUF_LEN];
1344 uint dhd_watchdog_ms_backup;
1345 void *event_log_filter;
1347 char *hang_info;
1348 int hang_info_cnt;
1349 char debug_dump_time_hang_str[DEBUG_DUMP_TIME_BUF_LEN];
1351 char debug_dump_time_str[DEBUG_DUMP_TIME_BUF_LEN];
1352 uint32 logset_prsrv_mask;
1353 bool wl_event_enabled;
1354 bool logtrace_pkt_sendup;
1356 struct _dhd_dump_file_manage *dump_file_manage;
1358 int debug_dump_subcmd;
1359 uint64 debug_dump_time_sec;
1360 bool hscb_enable;
1361 wait_queue_head_t tx_completion_wait;
1362 uint32 batch_tx_pkts_cmpl;
1363 uint32 batch_tx_num_pkts;
1365 bool enable_erpom;
1366 pom_func_handler_t pom_wlan_handler;
1367 int (*pom_func_register)(pom_func_handler_t *func);
1368 int (*pom_func_deregister)(pom_func_handler_t *func);
1369 int (*pom_toggle_reg_on)(uchar func_id, uchar reason);
1372 bool dongle_edl_support;
1373 dhd_dma_buf_t edl_ring_mem;
1376 struct mutex ndev_op_sync;
1379 bool debug_buf_dest_support;
1380 uint32 debug_buf_dest_stat[DEBUG_BUF_DEST_MAX];
1387 uint32 dhd_rte_time_sync_ms;
1389 int wlc_ver_major;
1390 int wlc_ver_minor;
1392 void *statlog;
1395 bool hp2p_enable;
1396 bool hp2p_infra_enable;
1397 bool hp2p_capable;
1398 bool hp2p_ts_capable;
1399 uint16 pkt_thresh;
1400 uint16 time_thresh;
1401 uint16 pkt_expiry;
1402 hp2p_info_t hp2p_info[MAX_HP2P_FLOWS];
1403 bool hp2p_ring_active;
1429 } dhd_pub_t; argument
1520 dhd_pub_t *dhd_pub; member
2943 dhd_pub_t *dhd_pub; member
2948 dhd_pub_t *dhd_pub; member
3101 static INLINE bool dhd_bus_skip_clm(dhd_pub_t *dhd_pub) in dhd_bus_skip_clm()