Lines Matching defs:dhd_pub
929 void *dhd_pub; member
983 void *dhd_pub; member
1213 void *dhd_pub; member
1242 typedef struct dhd_pub { struct
1244 osl_t *osh; /* OSL handle */
1245 struct dhd_bus *bus; /* Bus module handle */
1246 struct dhd_prot *prot; /* Protocol module handle */
1247 struct dhd_info *info; /* Info module handle */
1248 struct dhd_dbg *dbg; /* Debugability module handle */
1250 struct dhd_logtrace_thr_ts logtrace_thr_ts;
1258 struct dbus_pub *dbus;
1262 bool up; /* Driver up/down (to OS) */
1264 spinlock_t up_lock; /* Synchronization with CFG80211 down */
1266 bool txoff; /* Transmit flow-controlled */
1267 bool dongle_reset; /* TRUE = DEVRESET put dongle into reset */
1268 enum dhd_bus_state busstate;
1269 uint dhd_bus_busy_state; /* Bus busy state */
1270 uint hdrlen; /* Total DHD header length (proto + bus) */
1271 uint maxctl; /* Max size rxctl request from proto to bus */
1272 uint rxsz; /* Rx buffer size bus module should use */
1273 uint8 wme_dp; /* wme discard priority */
1275 uint32 axierror_logbuf_addr;
1276 bool axi_error;
1277 struct dhd_axi_error_dump *axi_err_dump;
1280 bool iswl; /* Dongle-resident driver is wl */
1281 ulong drv_version; /* Version of dongle-resident driver */
1282 struct ether_addr mac; /* MAC address obtained from dongle */
1283 dngl_stats_t dstats; /* Stats for dongle-based data */
1286 ulong tx_packets; /* Data packets sent to dongle */
1287 ulong actual_tx_pkts; /* Actual data packets sent to dongle */
1288 ulong tot_txcpl; /* Total Tx completion received */
1289 ulong tx_dropped; /* Data packets dropped in dhd */
1290 ulong tx_multicast; /* Multicast data packets sent to dongle */
1291 ulong tx_errors; /* Errors in sending data to dongle */
1292 ulong tx_ctlpkts; /* Control packets sent to dongle */
1293 ulong tx_ctlerrs; /* Errors sending control frames to dongle */
1294 ulong rx_packets; /* Packets sent up the network interface */
1295 ulong rx_multicast; /* Multicast packets sent up the network interface */
1296 ulong rx_errors; /* Errors processing rx data packets */
1297 ulong rx_ctlpkts; /* Control frames processed from dongle */
1298 ulong rx_ctlerrs; /* Errors in processing rx control frames */
1299 ulong rx_dropped; /* Packets dropped locally (no memory) */
1300 ulong rx_flushed; /* Packets flushed due to unscheduled sendup thread */
1301 ulong wd_dpc_sched; /* Number of times dhd dpc scheduled by watchdog timer */
1302 ulong rx_pktgetfail; /* Number of PKTGET failures in DHD on RX */
1303 ulong tx_pktgetfail; /* Number of PKTGET failures in DHD on TX */
1304 ulong rx_readahead_cnt; /* Number of packets where header read-ahead was used. */
1305 ulong tx_realloc; /* Number of tx packets we had to realloc for headroom */
1306 ulong fc_packets; /* Number of flow control pkts recvd */
1307 ulong tx_big_packets; /* Dropped data packets that are larger than MAX_MTU_SZ */
1310 dma_stats_t dma_stats;
1313 bool monitor_enable;
1316 int bcmerror;
1317 uint tickcnt;
1320 int dongle_error;
1322 uint8 country_code[WLC_CNTRY_BUF_SZ];
1325 int suspend_disable_flag; /* "1" to disable all extra powersaving during suspend */
1326 int in_suspend; /* flag set to 1 when early suspend called */
1328 int pno_enable; /* pno status : "1" is pno enable */
1329 int pno_suspend; /* pno suspend status : "1" is pno suspended */
1334 int suspend_bcn_li_dtim; /* bcn_li_dtim value in suspend mode */
1335 int early_suspended; /* Early suspend status */
1337 int dhcp_in_progress; /* DHCP period */
1341 char * pktfilter[100];
1342 int pktfilter_count;
1344 wl_country_t dhd_cspec; /* Current Locale info */
1346 uint dhd_cflags;
1349 bool is_blob; /* Checking for existance of Blob file */
1351 bool force_country_change;
1352 int op_mode; /* STA, HostAPD, WFD, SoftAP */
1356 struct mutex wl_start_stop_lock; /* lock/unlock for Android start/stop */
1357 struct mutex wl_softap_lock; /* lock/unlock for any SoftAP/STA settings */
1362 PDEVICE_OBJECT pdo;
1363 PDEVICE_OBJECT fdo;
1364 PDEVICE_OBJECT nextDeviceObj;
1366 WDFDEVICE wdfDevice;
1370 bool wlfc_enabled;
1371 int wlfc_mode;
1372 void* wlfc_state;
1381 uint8 proptxstatus_mode;
1382 bool proptxstatus_txoff;
1383 bool proptxstatus_module_ignore;
1384 bool proptxstatus_credit_ignore;
1385 bool proptxstatus_txstatus_ignore;
1387 bool wlfc_rxpkt_chk;
1389 bool wlfc_borrow_allowed;
1395 bool (*skip_fc)(void * dhdp, uint8 ifx);
1397 void (*plat_init)(void *dhd);
1398 void (*plat_deinit)(void *dhd);
1400 bool wlfc_thread_go;
1402 struct task_struct* wlfc_thread;
1403 wait_queue_head_t wlfc_wqhead;
1410 void *pno_state;
1413 void *rtt_state;
1414 bool rtt_supported;
1417 bool roam_env_detection;
1419 bool dongle_isolation;
1420 bool is_pcie_watchdog_reset;
1423 bool dongle_trap_occured; /* flag for sending HANG event to upper layer */
1425 bool dongle_trap_due_to_bt; /* flag to indicate that dongle has trapped due to BT */
1427 bool iovar_timeout_occured; /* flag to indicate iovar resumed on timeout */
1428 bool invalid_shinfo_nrfrags; /* flag to indicate invlaid shinfo nrfrags */
1429 bool is_sched_error; /* flag to indicate timeout due to scheduling issue */
1431 bool d3ack_timeout_occured; /* flag to indicate d3ack resumed on timeout */
1432 bool livelock_occured; /* flag to indicate livelock occured */
1433 bool pktid_audit_failed; /* flag to indicate pktid audit failure */
1435 bool iface_op_failed; /* flag to indicate interface operation failed */
1436 bool scan_timeout_occurred; /* flag to indicate scan has timedout */
1437 bool scan_busy_occurred; /* flag to indicate scan busy occurred */
1439 bool is_bt_recovery_required;
1441 bool smmu_fault_occurred; /* flag to indicate SMMU Fault */
1449 int hang_was_sent;
1450 int hang_was_pending;
1451 int rxcnt_timeout; /* counter rxcnt timeout to send HANG */
1452 int txcnt_timeout; /* counter txcnt timeout to send HANG */
1454 int d3ackcnt_timeout; /* counter d3ack timeout to send HANG */
1456 bool hang_report; /* enable hang report by default */
1457 uint16 hang_reason; /* reason codes for HANG event */
1459 uint req_hang_type;
1462 uint hang_count;
1465 bool tdls_enable;
1467 struct reorder_info *reorder_bufs[WLHOST_REORDERDATA_MAXFLOWS];
1469 char fw_capabilities[WLC_IOCTL_MAXBUF_FWCAP];
1471 char dhd_capabilities[DHD_IOCTL_MAXBUF_DHDCAP];
1473 void *skbbuf[MAXSKBPEND];
1474 uint32 store_idx;
1475 uint32 sent_idx;
1477 uint8 tcpack_sup_mode; /* TCPACK suppress mode */
1478 void *tcpack_sup_module; /* TCPACK suppress module */
1479 uint32 tcpack_sup_ratio;
1480 uint32 tcpack_sup_delay;
1483 uint32 arp_version;
1484 bool hmac_updated;
1487 bool fw_4way_handshake; /* Whether firmware will to do the 4way handshake. */
1490 bool loopback; /* 1- enable loopback of tx packets, 0 - disable */
1493 bool dhd_bug_on;
1496 struct task_struct * current_dpc;
1497 struct task_struct * current_rxf;
1498 int chan_isvht80;
1500 void *sta_pool; /* pre-allocated pool of sta objects */
1501 void *staid_allocator; /* allocator of sta indexes */
1503 bool flow_rings_inited; /* set this flag after initializing flow rings */
1505 void *flowid_allocator; /* unique flowid allocator */
1507 void *htput_flowid_allocator; /* unique htput flowid allocator */
1508 uint8 htput_client_flow_rings; /* current number of htput client flowrings */
1509 uint8 htput_flow_ring_start; /* start index of htput flow rings */
1511 void *flow_ring_table; /* flow ring table, include prot and bus info */
1512 void *if_flow_lkup; /* per interface flowid lkup hash table */
1513 void *flowid_lock; /* per os lock for flowid info protection */
1514 void *flowring_list_lock; /* per os lock for flowring list protection */
1515 uint8 max_multi_client_flow_rings;
1516 uint8 multi_client_flow_rings;
1517 uint32 num_h2d_rings; /* Max h2d rings including static and dynamic rings */
1518 uint32 max_tx_flowid; /* used to validate flowid */
1519 cumm_ctr_t cumm_ctr; /* cumm queue length placeholder */
1520 cumm_ctr_t l2cumm_ctr; /* level 2 cumm queue length placeholder */
1521 uint32 d2h_sync_mode; /* D2H DMA completion sync mode */
1522 uint8 flow_prio_map[NUMPRIO];
1523 uint8 flow_prio_map_type;
1524 char enable_log[MAX_EVENT];
1525 bool dma_d2h_ring_upd_support;
1526 bool dma_h2d_ring_upd_support;
1527 bool dma_ring_upd_overwrite; /* host overwrites support setting */
1529 bool idma_enable;
1530 uint idma_inited;
1532 bool ifrm_enable; /* implicit frm enable */
1533 uint ifrm_inited; /* implicit frm init */
1535 bool dar_enable; /* use DAR registers */
1536 uint dar_inited;
1538 bool fast_delete_ring_support; /* fast delete ring supported */
1541 bool wmf_ucast_igmp;
1543 bool wmf_ucast_igmp_query;
1546 bool wmf_ucast_upnp;
1550 dhd_trf_mgmt_dwm_tbl_t dhd_tm_dwm_tbl;
1553 unsigned long l2_filter_cnt; /* for L2_FILTER ARP table timeout */
1556 bool sssr_inited;
1557 bool sssr_dump_collected; /* Flag to indicate sssr dump is collected */
1558 sssr_reg_info_cmn_t *sssr_reg_info;
1559 uint8 *sssr_mempool;
1561 uint *sssr_d11_before[MAX_NUM_D11_CORES_WITH_SCAN];
1562 uint *sssr_dig_buf_before;
1564 uint *sssr_d11_after[MAX_NUM_D11_CORES_WITH_SCAN];
1565 bool sssr_d11_outofreset[MAX_NUM_D11_CORES_WITH_SCAN];
1566 uint *sssr_dig_buf_after;
1567 uint32 sssr_dump_mode;
1568 bool collect_sssr; /* Flag to indicate SSSR dump is required */
1569 bool fis_triggered;
1572 etb_addr_info_t etb_addr_info;
1573 uint8 *sdtc_etb_mempool;
1574 bool sdtc_etb_inited;
1575 bool collect_sdtc; /* Flag to indicate SDTC dump is required */
1577 uint8 *soc_ram;
1578 uint32 soc_ram_length;
1579 uint32 memdump_type;
1581 char memdump_str[DHD_MEMDUMP_LONGSTR_LEN];
1584 uint8 *rnd_buf;
1585 uint32 rnd_len;
1588 uint32 memdump_enabled;
1590 bool memdump_success;
1595 tdls_peer_tbl_t peer_tbl;
1598 uint8 tx_in_progress;
1602 char *cached_fw;
1603 int cached_fw_length;
1604 char *cached_nvram;
1605 int cached_nvram_length;
1606 char *cached_clm;
1607 int cached_clm_length;
1608 char *cached_txcap;
1609 int cached_txcap_length;
1613 char vars_ccode[WLC_CNTRY_BUF_SZ];
1614 uint vars_regrev;
1617 uint32 tdls_mode;
1620 bool lazy_roam_enable;
1623 bool apf_set;
1625 void *macdbg_info;
1627 void *wet_info;
1629 bool h2d_phase_supported;
1630 bool force_dongletrap_on_bad_h2d_phase;
1631 uint32 dongle_trap_data;
1632 fw_download_status_t fw_download_status;
1633 trap_t last_trap_info; /* trap info from the last trap */
1634 uint8 rand_mac_oui[DOT11_OUI_LEN];
1636 uint8 dequeue_prec_map;
1637 uint8 prio_8021x;
1640 struct dhd_nfct_info *nfct;
1641 spinlock_t nfct_lock;
1644 struct dhd_ts *ts;
1645 bool d2h_hostrdy_supported;
1647 atomic_t block_bus;
1650 bool d11_tx_status;
1652 uint16 ndo_version; /* ND offload version supported */
1654 bool ndo_enable; /* ND offload feature enable */
1655 bool ndo_host_ip_overflow; /* # of host ip addr exceed FW capacity */
1656 uint32 ndo_max_host_ip; /* # of host ip addr supported by FW */
1660 uint8 log_capture_enable;
1663 uint8 *concise_dbg_buf;
1664 uint64 last_file_posn;
1665 int logdump_periodic_flush;
1667 void *ecntr_dbg_ring;
1670 void *rtt_dbg_ring;
1673 void *bcm_trace_dbg_ring;
1676 uint8 health_chk_event_data[HEALTH_CHK_BUF_SIZE];
1678 void *logdump_cookie;
1680 uint32 dhd_console_ms; /** interval for polling the dongle for console (log) messages */
1681 bool ext_trap_data_supported;
1682 uint32 *extended_trap_data;
1685 dll_t dump_iovlist_head;
1686 uint8 dump_iovlist_len;
1689 timeout_info_t *timeout_info;
1690 uint16 esync_id; /* used to track escans */
1691 osl_atomic_t set_ssid_rcvd; /* to track if WLC_E_SET_SSID is received during join IOVAR */
1692 bool secure_join; /* field to note that the join is secure or not */
1695 uint32 mimo_ant_set;
1698 bool ocl_off;
1702 dll_t mw_list_head; /* memwaste list head */
1703 uint32 mw_id; /* memwaste list unique id */
1706 spinlock_t tdls_lock;
1708 uint pcie_txs_metadata_enable;
1710 bool bt_logging;
1711 bool submit_count_WAR; /* submission count WAR */
1712 bool bt_logging_enabled;
1714 uint wbtext_policy; /* wbtext policy of dongle */
1715 bool wbtext_support; /* for product policy only */
1717 bool d2h_no_oob_dw;
1720 bool d2h_inband_dw;
1721 enum dhd_bus_ds_state ds_state;
1723 bool max_dtim_enable; /* use MAX bcn_li_dtim value in suspend mode */
1725 bool snapshot_upload;
1727 tput_test_t tput_data;
1728 uint64 tput_start_ts;
1729 uint64 tput_stop_ts;
1730 uint dhd_watchdog_ms_backup;
1731 bool wl_event_enabled;
1732 bool logtrace_pkt_sendup;
1735 bool gdb_proxy_active;
1737 bool gdb_proxy_nodeadman;
1741 uint32 gdb_proxy_stop_count;
1743 int debug_dump_subcmd;
1744 uint64 debug_dump_time_sec;
1745 bool hscb_enable;
1748 dhd_awdl_stats_t awdl_stats[AWDL_NUM_SLOTS];
1749 uint8 awdl_tx_status_slot; /* Slot in which AWDL is active right now */
1750 void *awdl_stats_lock; /* Lock to protect against parallel AWDL stats updates */
1751 uint16 awdl_aw_counter;
1752 uint32 pkt_latency;
1754 uint32 awdl_ifidx;
1755 uint16 awdl_seq;
1756 uint8 awdl_minext;
1757 uint8 awdl_presmode;
1758 bool awdl_llc_enabled;
1760 uint32 logset_prsrv_mask;
1762 struct dhd_pktlog *pktlog;
1763 char debug_dump_time_pktlog_str[DEBUG_DUMP_TIME_BUF_LEN];
1764 bool pktlog_debug;
1767 bool dongle_edl_support;
1768 dhd_dma_buf_t edl_ring_mem;
1771 struct mutex ndev_op_sync;
1773 bool debug_buf_dest_support;
1774 uint32 debug_buf_dest_stat[DEBUG_BUF_DEST_MAX];
1776 char *hang_info;
1777 int hang_info_cnt;
1778 char debug_dump_time_hang_str[DEBUG_DUMP_TIME_BUF_LEN];
1780 char debug_dump_time_str[DEBUG_DUMP_TIME_BUF_LEN];
1781 void *event_log_filter;
1782 uint tput_test_done;
1784 wait_queue_head_t tx_tput_test_wait;
1785 wait_queue_head_t tx_completion_wait;
1787 void *nanhoi; /* NANHO instance */
1791 bool enable_erpom;
1792 pom_func_handler_t pom_wlan_handler;
1793 int (*pom_func_register)(pom_func_handler_t *func);
1794 int (*pom_func_deregister)(pom_func_handler_t *func);
1795 int (*pom_toggle_reg_on)(uchar func_id, uchar reason);
1803 uint32 dhd_rte_time_sync_ms;
1805 uint32 batch_tx_pkts_cmpl;
1806 uint32 batch_tx_num_pkts;
1808 bool insert_random_mac;
1812 uint64 npkts_thresh;
1816 uint64 pkt_intvl_thresh_us;
1818 uint64 tx_last_pkt_ts;
1820 uint64 rx_last_pkt_ts;
1825 uint32 cur_intr_poll_period;
1827 uint32 iovar_intr_poll_period;
1828 bool pcie_readshared_done;
1831 struct _dhd_dump_file_manage *dump_file_manage;
1835 fwtrace_info_t *fwtrace_info; /* f/w trace information */
1838 bool event_log_max_sets_queried;
1839 uint32 event_log_max_sets;
1841 void *statlog;
1845 bool hp2p_enable;
1846 bool hp2p_infra_enable;
1848 bool hp2p_capable;
1849 bool hp2p_mf_enable;
1850 bool hp2p_ts_capable;
1851 uint16 pkt_thresh;
1852 uint16 time_thresh;
1853 uint16 pkt_expiry;
1854 hp2p_info_t hp2p_info[MAX_HP2P_FLOWS];
1856 bool hp2p_ring_more;
1859 bool db0ts_capable;
1861 bool extdtxs_in_txcpl;
1862 bool hostrdy_after_init;
1863 uint16 dhd_induce_error;
1864 uint16 dhd_induce_bh_error;
1865 int wlc_ver_major;
1866 int wlc_ver_minor;
1869 uint16 pkt_metadata_version;
1870 uint16 pkt_metadata_buflen;
1873 uint8 tid_mode;
1874 uint32 target_uid;
1875 uint8 target_tid;
1878 bool sroam_turn_on; /* Silent roam monitor enable flags */
1879 bool sroamed; /* Silent roam monitor check flags */
1882 void *pktcnts;
1884 dhd_db7_info_t db7_trap;
1885 bool fw_preinit;
1886 bool ring_attached;
1888 bool rx_pending_due_to_rpm;
1890 bool disable_dtim_in_suspend; /* Disable set bcn_li_dtim in suspend */
1891 union {
1893 } roam_evt;
1894 bool arpoe_enable;
1895 bool arpol_configured;
1897 bool tx_profile_enab;
1898 uint8 num_profiles;
1899 dhd_tx_profile_protocol_t *protocol_filters;
1902 void *mem_stats_lock;
1903 uint64 txpath_mem;
1904 uint64 rxpath_mem;
1907 atomic_t lb_rxp_flow_ctrl;
1908 uint32 lb_rxp_stop_thr;
1909 uint32 lb_rxp_strt_thr;
1912 uint64 lb_rxp_stop_thr_hitcnt;
1913 uint64 lb_rxp_strt_thr_hitcnt;
1914 uint64 lb_rxp_napi_sched_cnt;
1915 uint64 lb_rxp_napi_complete_cnt;
1917 bool check_trap_rot;
1919 bool host_sfhllc_supported;
1921 bool permitted_gro;
1924 struct list_head csi_list;
1925 int csi_count;
1927 char *clm_path; /* module_param: path to clm vars file */
1928 char *conf_path; /* module_param: path to config vars file */
1929 struct dhd_conf *conf; /* Bus module handle */
1930 void *adapter; /* adapter information, interrupt, fw path etc. */
1931 void *event_params;
1933 void *timer_params;
1957 } dhd_pub_t; argument
2050 dhd_pub_t *dhd_pub; member
3807 dhd_pub_t *dhd_pub; member
3812 dhd_pub_t *dhd_pub; member
4027 static INLINE bool dhd_bus_skip_clm(dhd_pub_t *dhd_pub) in dhd_bus_skip_clm()
4066 static INLINE fw_download_status_t dhd_fw_download_status(dhd_pub_t *dhd_pub) in dhd_fw_download_status()