Lines Matching refs:dhd_pub
691 dhd_fw_download_status(dhd_pub_t * dhd_pub) in dhd_fw_download_status() argument
693 return dhd_pub->fw_download_status; in dhd_fw_download_status()
1491 void* dhd_get_fwdump_buf(dhd_pub_t *dhd_pub, uint32 length) in dhd_get_fwdump_buf() argument
1493 if (!dhd_pub->soc_ram) { in dhd_get_fwdump_buf()
1495 dhd_pub->soc_ram = (uint8*)DHD_OS_PREALLOC(dhd_pub, in dhd_get_fwdump_buf()
1498 dhd_pub->soc_ram = (uint8*) MALLOC(dhd_pub->osh, length); in dhd_get_fwdump_buf()
1500 if ((dhd_pub->soc_ram == NULL) && CAN_SLEEP()) { in dhd_get_fwdump_buf()
1503 dhd_pub->soc_ram = (uint8*) VMALLOC(dhd_pub->osh, length); in dhd_get_fwdump_buf()
1508 if (dhd_pub->soc_ram == NULL) { in dhd_get_fwdump_buf()
1511 dhd_pub->soc_ram_length = 0; in dhd_get_fwdump_buf()
1513 memset(dhd_pub->soc_ram, 0, length); in dhd_get_fwdump_buf()
1514 dhd_pub->soc_ram_length = length; in dhd_get_fwdump_buf()
1518 return dhd_pub->soc_ram; in dhd_get_fwdump_buf()
1689 dhd_wl_ioctl_cmd(dhd_pub_t *dhd_pub, int cmd, void *arg, int len, uint8 set, int ifidx) in dhd_wl_ioctl_cmd() argument
1698 return dhd_wl_ioctl(dhd_pub, ifidx, &ioc, arg, len); in dhd_wl_ioctl_cmd()
1702 dhd_wl_ioctl_get_intiovar(dhd_pub_t *dhd_pub, char *name, uint *pval, in dhd_wl_ioctl_get_intiovar() argument
1710 ret = dhd_wl_ioctl_cmd(dhd_pub, cmd, iovbuf, sizeof(iovbuf), set, ifidx); in dhd_wl_ioctl_get_intiovar()
1726 dhd_wl_ioctl_set_intiovar(dhd_pub_t *dhd_pub, char *name, uint val, in dhd_wl_ioctl_set_intiovar() argument
1737 ret = dhd_wl_ioctl_cmd(dhd_pub, cmd, iovbuf, len, set, ifidx); in dhd_wl_ioctl_set_intiovar()
1798 dhd_wl_ioctl(dhd_pub_t *dhd_pub, int ifidx, wl_ioctl_t *ioc, void *buf, int len) in dhd_wl_ioctl() argument
1813 if (dhd_query_bus_erros(dhd_pub)) { in dhd_wl_ioctl()
1818 DHD_OS_WAKE_LOCK(dhd_pub); in dhd_wl_ioctl()
1819 if (pm_runtime_get_sync(dhd_bus_to_dev(dhd_pub->bus)) < 0) { in dhd_wl_ioctl()
1821 DHD_OS_WAKE_UNLOCK(dhd_pub); in dhd_wl_ioctl()
1842 dbus_set_config(dhd_pub->dbus, &config); in dhd_wl_ioctl()
1847 if (dhd_os_proto_block(dhd_pub)) in dhd_wl_ioctl()
1889 DHD_LINUX_GENERAL_LOCK(dhd_pub, flags); in dhd_wl_ioctl()
1890 if (DHD_BUS_CHECK_DOWN_OR_DOWN_IN_PROGRESS(dhd_pub)) { in dhd_wl_ioctl()
1893 __FUNCTION__, dhd_pub->busstate)); in dhd_wl_ioctl()
1896 __FUNCTION__, dhd_pub->busstate)); in dhd_wl_ioctl()
1898 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_wl_ioctl()
1899 dhd_os_proto_unblock(dhd_pub); in dhd_wl_ioctl()
1902 DHD_BUS_BUSY_SET_IN_IOVAR(dhd_pub); in dhd_wl_ioctl()
1903 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_wl_ioctl()
1906 dhdpcie_runtime_bus_wake(dhd_pub, TRUE, dhd_wl_ioctl); in dhd_wl_ioctl()
1909 DHD_LINUX_GENERAL_LOCK(dhd_pub, flags); in dhd_wl_ioctl()
1910 if (DHD_BUS_CHECK_SUSPEND_OR_ANY_SUSPEND_IN_PROGRESS(dhd_pub) || in dhd_wl_ioctl()
1911 dhd_pub->dhd_induce_error == DHD_INDUCE_IOCTL_SUSPEND_ERROR) { in dhd_wl_ioctl()
1913 __FUNCTION__, dhd_pub->busstate, dhd_pub->dhd_bus_busy_state)); in dhd_wl_ioctl()
1917 dhd_pub->hang_reason = HANG_REASON_IOCTL_SUSPEND_ERROR; in dhd_wl_ioctl()
1918 dhd_os_send_hang_message(dhd_pub); in dhd_wl_ioctl()
1922 DHD_BUS_BUSY_CLEAR_IN_IOVAR(dhd_pub); in dhd_wl_ioctl()
1923 dhd_os_busbusy_wake(dhd_pub); in dhd_wl_ioctl()
1924 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_wl_ioctl()
1925 dhd_os_proto_unblock(dhd_pub); in dhd_wl_ioctl()
1931 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_wl_ioctl()
1935 struct wl_shim_node *shim = dhd_pub_shim(dhd_pub); in dhd_wl_ioctl()
1938 io_pport.dhd_pub = dhd_pub; in dhd_wl_ioctl()
1950 if (!(iov_li = MALLOC(dhd_pub->osh, sizeof(*iov_li)))) { in dhd_wl_ioctl()
1956 dhd_iov_li_append(dhd_pub, &dhd_pub->dump_iovlist_head, in dhd_wl_ioctl()
1977 ++dhd_pub->esync_id; in dhd_wl_ioctl()
1984 if (dhd_pub->esync_id == 0) in dhd_wl_ioctl()
1985 ++dhd_pub->esync_id; in dhd_wl_ioctl()
1987 __FUNCTION__, dhd_pub->esync_id)); in dhd_wl_ioctl()
1988 eparams->sync_id = htod16(dhd_pub->esync_id); in dhd_wl_ioctl()
1993 if (dhd_conf_check_hostsleep(dhd_pub, ioc->cmd, ioc->buf, len, in dhd_wl_ioctl()
1996 ret = dhd_prot_ioctl(dhd_pub, ifidx, ioc, buf, len); in dhd_wl_ioctl()
1997 dhd_conf_get_hostsleep(dhd_pub, hostsleep_set, hostsleep_val, ret); in dhd_wl_ioctl()
2003 dhd_iov_li_print(&dhd_pub->dump_iovlist_head); in dhd_wl_ioctl()
2009 copy_hang_info_ioctl_timeout(dhd_pub, ifidx, ioc); in dhd_wl_ioctl()
2038 dhd_prot_get_ioctl_trans_id(dhd_pub))); in dhd_wl_ioctl()
2043 dhd_prot_get_ioctl_trans_id(dhd_pub))); in dhd_wl_ioctl()
2066 if (ret && dhd_pub->up) { in dhd_wl_ioctl()
2068 dhd_os_check_hang(dhd_pub, ifidx, ret); in dhd_wl_ioctl()
2071 if (ret == -ETIMEDOUT && !dhd_pub->up) { in dhd_wl_ioctl()
2079 DHD_LINUX_GENERAL_LOCK(dhd_pub, flags); in dhd_wl_ioctl()
2080 DHD_BUS_BUSY_CLEAR_IN_IOVAR(dhd_pub); in dhd_wl_ioctl()
2081 dhd_os_busbusy_wake(dhd_pub); in dhd_wl_ioctl()
2082 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_wl_ioctl()
2089 dhd_start_scan_timer(dhd_pub, TRUE); in dhd_wl_ioctl()
2093 dhd_os_proto_unblock(dhd_pub); in dhd_wl_ioctl()
2128 pm_runtime_mark_last_busy(dhd_bus_to_dev(dhd_pub->bus)); in dhd_wl_ioctl()
2129 pm_runtime_put_autosuspend(dhd_bus_to_dev(dhd_pub->bus)); in dhd_wl_ioctl()
2131 DHD_OS_WAKE_UNLOCK(dhd_pub); in dhd_wl_ioctl()
2147 dhd_set_monitor(dhd_pub, ifidx, val); in dhd_wl_ioctl()
2166 dhd_iovar_parse_bssidx(dhd_pub_t *dhd_pub, const char *params, uint32 *idx, const char **val) in dhd_iovar_parse_bssidx() argument
2182 bssidx = dhd_bssidx2idx(dhd_pub, htod32(bssidx)); in dhd_iovar_parse_bssidx()
2438 dhd_doiovar(dhd_pub_t *dhd_pub, const bcm_iovar_t *vi, uint32 actionid, const char *name, in dhd_doiovar() argument
2520 bcm_strncpy_s((char *)arg, len, bcmerrorstr(dhd_pub->bcmerror), BCME_STRLEN); in dhd_doiovar()
2525 int_val = (int32)dhd_pub->bcmerror; in dhd_doiovar()
2537 if (!dhd_pub->up) { in dhd_doiovar()
2544 dhd_os_wd_timer(dhd_pub, (uint)int_val); in dhd_doiovar()
2548 if (dhd_dump(dhd_pub, arg, len) <= 0) in dhd_doiovar()
2556 int_val = (int32)dhd_pub->dhd_console_ms; in dhd_doiovar()
2561 dhd_pub->dhd_console_ms = (uint)int_val; in dhd_doiovar()
2568 bcmerror = dhd_bus_txcons(dhd_pub, arg, len - 1); in dhd_doiovar()
2570 bcmerror = dhd_bus_console_in(dhd_pub, arg, len - 1); in dhd_doiovar()
2578 dhd_pub->tx_packets = dhd_pub->rx_packets = 0; in dhd_doiovar()
2579 dhd_pub->tx_errors = dhd_pub->rx_errors = 0; in dhd_doiovar()
2580 dhd_pub->tx_ctlpkts = dhd_pub->rx_ctlpkts = 0; in dhd_doiovar()
2581 dhd_pub->tx_ctlerrs = dhd_pub->rx_ctlerrs = 0; in dhd_doiovar()
2582 dhd_pub->tx_dropped = 0; in dhd_doiovar()
2583 dhd_pub->rx_dropped = 0; in dhd_doiovar()
2584 dhd_pub->tx_pktgetfail = 0; in dhd_doiovar()
2585 dhd_pub->rx_pktgetfail = 0; in dhd_doiovar()
2586 dhd_pub->rx_readahead_cnt = 0; in dhd_doiovar()
2587 dhd_pub->tx_realloc = 0; in dhd_doiovar()
2588 dhd_pub->wd_dpc_sched = 0; in dhd_doiovar()
2589 dhd_pub->tx_big_packets = 0; in dhd_doiovar()
2590 memset(&dhd_pub->dstats, 0, sizeof(dhd_pub->dstats)); in dhd_doiovar()
2591 dhd_bus_clearcounts(dhd_pub); in dhd_doiovar()
2594 dhd_wlfc_clear_counts(dhd_pub); in dhd_doiovar()
2597 DHD_LB_STATS_RESET(dhd_pub); in dhd_doiovar()
2646 bcmerror = dhd_wlfc_get_enable(dhd_pub, &wlfc_enab); in dhd_doiovar()
2655 bcmerror = dhd_wlfc_get_enable(dhd_pub, &wlfc_enab); in dhd_doiovar()
2668 bcmerror = dhd_wlfc_init(dhd_pub); in dhd_doiovar()
2670 bcmerror = dhd_wlfc_deinit(dhd_pub); in dhd_doiovar()
2675 bcmerror = dhd_wlfc_get_mode(dhd_pub, &int_val); in dhd_doiovar()
2682 dhd_wlfc_set_mode(dhd_pub, int_val); in dhd_doiovar()
2686 int_val = dhd_qmon_thres(dhd_pub, FALSE, 0); in dhd_doiovar()
2692 dhd_qmon_thres(dhd_pub, TRUE, int_val); in dhd_doiovar()
2697 int_val = dhd_qmon_getpercent(dhd_pub); in dhd_doiovar()
2704 bcmerror = dhd_wlfc_get_module_ignore(dhd_pub, &int_val); in dhd_doiovar()
2711 dhd_wlfc_set_module_ignore(dhd_pub, int_val); in dhd_doiovar()
2715 bcmerror = dhd_wlfc_get_credit_ignore(dhd_pub, &int_val); in dhd_doiovar()
2722 dhd_wlfc_set_credit_ignore(dhd_pub, int_val); in dhd_doiovar()
2726 bcmerror = dhd_wlfc_get_txstatus_ignore(dhd_pub, &int_val); in dhd_doiovar()
2733 dhd_wlfc_set_txstatus_ignore(dhd_pub, int_val); in dhd_doiovar()
2737 bcmerror = dhd_wlfc_get_rxpkt_chk(dhd_pub, &int_val); in dhd_doiovar()
2744 dhd_wlfc_set_rxpkt_chk(dhd_pub, int_val); in dhd_doiovar()
2765 bcmerror = dhd_change_mtu(dhd_pub, int_val, 0); in dhd_doiovar()
2776 if (dhd_pub->reorder_bufs[i] != NULL) { in dhd_doiovar()
2777 *ptr = dhd_pub->reorder_bufs[i]->flow_id; in dhd_doiovar()
2788 int_val = (uint32)dhd_pub->tcpack_sup_mode; in dhd_doiovar()
2793 bcmerror = dhd_tcpack_suppress_set(dhd_pub, (uint8)int_val); in dhd_doiovar()
2803 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2809 wmf = dhd_wmf_conf(dhd_pub, bssidx); in dhd_doiovar()
2820 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2828 wmf = dhd_wmf_conf(dhd_pub, bssidx); in dhd_doiovar()
2833 if (dhd_wmf_instance_add(dhd_pub, bssidx) != BCME_OK) { in dhd_doiovar()
2838 if (dhd_wmf_start(dhd_pub, bssidx) != BCME_OK) { in dhd_doiovar()
2846 dhd_wmf_stop(dhd_pub, bssidx); in dhd_doiovar()
2847 dhd_wmf_instance_del(dhd_pub, bssidx); in dhd_doiovar()
2852 int_val = dhd_pub->wmf_ucast_igmp ? 1 : 0; in dhd_doiovar()
2856 if (dhd_pub->wmf_ucast_igmp == int_val) in dhd_doiovar()
2860 dhd_pub->wmf_ucast_igmp = int_val; in dhd_doiovar()
2865 int_val = dhd_wmf_mcast_data_sendup(dhd_pub, 0, FALSE, FALSE); in dhd_doiovar()
2869 dhd_wmf_mcast_data_sendup(dhd_pub, 0, TRUE, int_val); in dhd_doiovar()
2874 int_val = dhd_pub->wmf_ucast_igmp_query ? 1 : 0; in dhd_doiovar()
2878 if (dhd_pub->wmf_ucast_igmp_query == int_val) in dhd_doiovar()
2882 dhd_pub->wmf_ucast_igmp_query = int_val; in dhd_doiovar()
2889 int_val = dhd_pub->wmf_ucast_upnp ? 1 : 0; in dhd_doiovar()
2893 if (dhd_pub->wmf_ucast_upnp == int_val) in dhd_doiovar()
2897 dhd_pub->wmf_ucast_upnp = int_val; in dhd_doiovar()
2907 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2913 int_val = dhd_get_wmf_psta_disable(dhd_pub, bssidx); in dhd_doiovar()
2922 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2930 dhd_set_wmf_psta_disable(dhd_pub, bssidx, int_val); in dhd_doiovar()
2939 bcmerror = traffic_mgmt_add_dwm_filter(dhd_pub, trf_mgmt_filter_list, len); in dhd_doiovar()
2948 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2954 int_val = dhd_get_dhcp_unicast_status(dhd_pub, bssidx); in dhd_doiovar()
2961 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2968 bcmerror = dhd_set_dhcp_unicast_status(dhd_pub, bssidx, int_val ? 1 : 0); in dhd_doiovar()
2975 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2980 int_val = dhd_get_block_ping_status(dhd_pub, bssidx); in dhd_doiovar()
2988 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
2994 bcmerror = dhd_set_block_ping_status(dhd_pub, bssidx, int_val ? 1 : 0); in dhd_doiovar()
3001 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3006 int_val = dhd_get_parp_status(dhd_pub, bssidx); in dhd_doiovar()
3014 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3024 bcmerror = dhd_iovar(dhd_pub, bssidx, "proxy_arp_advertise", val, sizeof(int_val), in dhd_doiovar()
3027 dhd_set_parp_status(dhd_pub, bssidx, int_val ? 1 : 0); in dhd_doiovar()
3035 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3040 int_val = dhd_get_grat_arp_status(dhd_pub, bssidx); in dhd_doiovar()
3048 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3054 bcmerror = dhd_set_grat_arp_status(dhd_pub, bssidx, int_val ? 1 : 0); in dhd_doiovar()
3061 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3066 int_val = dhd_get_block_tdls_status(dhd_pub, bssidx); in dhd_doiovar()
3074 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3080 bcmerror = dhd_set_block_tdls_status(dhd_pub, bssidx, int_val ? 1 : 0); in dhd_doiovar()
3094 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3103 bcmerror = dhd_set_qosmap_up_table(dhd_pub, bssidx, qos_map_ie); in dhd_doiovar()
3112 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3118 int_val = dhd_get_ap_isolate(dhd_pub, bssidx); in dhd_doiovar()
3126 if (dhd_iovar_parse_bssidx(dhd_pub, name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3134 dhd_set_ap_isolate(dhd_pub, bssidx, int_val); in dhd_doiovar()
3139 int_val = dhd_get_psta_mode(dhd_pub); in dhd_doiovar()
3145 dhd_set_psta_mode(dhd_pub, int_val); in dhd_doiovar()
3154 int_val = dhd_get_wet_mode(dhd_pub); in dhd_doiovar()
3160 dhd_set_wet_mode(dhd_pub, int_val); in dhd_doiovar()
3163 dhd_wet_sta_delete_list(dhd_pub); in dhd_doiovar()
3170 dhd_set_wet_host_ipv4(dhd_pub, params, plen); in dhd_doiovar()
3173 dhd_set_wet_host_mac(dhd_pub, params, plen); in dhd_doiovar()
3181 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3187 int_val = dhd_get_mcast_regen_bss_enable(dhd_pub, bssidx); in dhd_doiovar()
3196 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3204 dhd_set_mcast_regen_bss_enable(dhd_pub, bssidx, int_val); in dhd_doiovar()
3210 int_val = (int32)dhd_pub->op_mode; in dhd_doiovar()
3218 dhd_pub->op_mode = int_val; in dhd_doiovar()
3233 dhd_os_wakeind(dhd_pub, &int_val); in dhd_doiovar()
3258 bcmerror = dhd_macdbg_pd11regs(dhd_pub, params, plen, arg, len); in dhd_doiovar()
3261 bcmerror = dhd_macdbg_reglist(dhd_pub, arg, len); in dhd_doiovar()
3264 bcmerror = dhd_macdbg_psvmpmems(dhd_pub, params, plen, arg, len); in dhd_doiovar()
3273 dbg_verbose_ring = dhd_dbg_get_ring_from_ring_id(dhd_pub, FW_VERBOSE_RING_ID); in dhd_doiovar()
3295 rlen = dhd_dbg_pull_single_from_ring(dhd_pub, BT_LOG_RING_ID, bt_log_buf_info->buf, in dhd_doiovar()
3303 dhd_dbg_get_ring_status(dhd_pub, BT_LOG_RING_ID, &ring_status); in dhd_doiovar()
3312 uint32 btlog_val = dhd_pub->bt_logging_enabled ? 1 : 0; in dhd_doiovar()
3318 if (dhd_pub->busstate != DHD_BUS_DOWN) { in dhd_doiovar()
3325 dhd_pub->bt_logging_enabled = TRUE; in dhd_doiovar()
3327 dhd_pub->bt_logging_enabled = FALSE; in dhd_doiovar()
3334 dhd_prot_send_snapshot_request(dhd_pub, SNAPSHOT_TYPE_BT, int_val); in dhd_doiovar()
3346 status = dhd_prot_get_snapshot(dhd_pub, SNAPSHOT_TYPE_BT, req.offset, in dhd_doiovar()
3364 dhd_get_scan_to_val(dhd_pub, (uint32 *)&int_val); in dhd_doiovar()
3369 dhd_set_scan_to_val(dhd_pub, (uint32)int_val); in dhd_doiovar()
3373 dhd_get_join_to_val(dhd_pub, (uint32 *)&int_val); in dhd_doiovar()
3378 dhd_set_join_to_val(dhd_pub, (uint32)int_val); in dhd_doiovar()
3382 dhd_get_cmd_to_val(dhd_pub, (uint32 *)&int_val); in dhd_doiovar()
3387 dhd_set_cmd_to_val(dhd_pub, (uint32)int_val); in dhd_doiovar()
3391 dhd_get_bus_to_val(dhd_pub, (uint32 *)&int_val); in dhd_doiovar()
3396 dhd_set_bus_to_val(dhd_pub, (uint32)int_val); in dhd_doiovar()
3401 if (dhd_pub->dongle_trap_occured) in dhd_doiovar()
3402 int_val = ltoh32(dhd_pub->last_trap_info.type); in dhd_doiovar()
3412 if (dhd_pub->dongle_trap_occured == FALSE) { in dhd_doiovar()
3417 dhd_bus_dump_trap_info(dhd_pub->bus, &strbuf); in dhd_doiovar()
3434 bcmerror = dhd_bus_readwrite_bp_addr(dhd_pub, addr, size, in dhd_doiovar()
3452 bcmerror = dhd_bus_readwrite_bp_addr(dhd_pub, addr, size, in dhd_doiovar()
3462 bcmerror = dhd_flow_ring_debug(dhd_pub, arg, len); in dhd_doiovar()
3468 bcmerror = dhd_mem_debug(dhd_pub, arg, len - 1); in dhd_doiovar()
3476 int_val = dhd_pub->log_capture_enable; in dhd_doiovar()
3483 dhd_pub->log_capture_enable = (uint8)int_val; in dhd_doiovar()
3489 dhd_prot_debug_info_print(dhd_pub); in dhd_doiovar()
3490 dhd_log_dump_trigger(dhd_pub, CMD_DEFAULT); in dhd_doiovar()
3500 bcmerror = dhd_tput_test(dhd_pub, tput_data); in dhd_doiovar()
3509 dhd_pub->pkt_latency = (uint32)int_val; in dhd_doiovar()
3512 int_val = (int32)dhd_pub->pkt_latency; in dhd_doiovar()
3518 if (dhd_pub->debug_buf_dest_support) { in dhd_doiovar()
3521 memcpy(debug_buf_dest_stat, dhd_pub->debug_buf_dest_stat, in dhd_doiovar()
3522 sizeof(dhd_pub->debug_buf_dest_stat)); in dhd_doiovar()
3531 int_val = dhd_get_pktts_enab(dhd_pub); in dhd_doiovar()
3536 dhd_set_pktts_enab(dhd_pub, !!int_val); in dhd_doiovar()
3541 bcmerror = dhd_get_pktts_flow(dhd_pub, arg, len); in dhd_doiovar()
3545 bcmerror = dhd_set_pktts_flow(dhd_pub, params, plen); in dhd_doiovar()
3552 bcmerror = dhd_intr_poll(dhd_pub->bus, arg, len, TRUE); in dhd_doiovar()
3556 bcmerror = dhd_intr_poll(dhd_pub->bus, params, plen, FALSE); in dhd_doiovar()
3562 bcmerror = dhd_bus_fis_trigger(dhd_pub); in dhd_doiovar()
3565 bcmerror = dhd_bus_fis_dump(dhd_pub); in dhd_doiovar()
3578 dhd_pub->dhd_induce_error = (uint16)int_val; in dhd_doiovar()
3580 if (dhd_pub->dhd_induce_error == DHD_INDUCE_BH_CBP_HANG) { in dhd_doiovar()
3581 dhdpcie_induce_cbp_hang(dhd_pub); in dhd_doiovar()
3593 dhd_linux_get_primary_netdev(dhd_pub)); in dhd_doiovar()
3599 dhd_linux_get_primary_netdev(dhd_pub), (uint8)int_val); in dhd_doiovar()
3606 dhd_linux_get_primary_netdev(dhd_pub)); in dhd_doiovar()
3612 dhd_linux_get_primary_netdev(dhd_pub), in dhd_doiovar()
3623 dhd_rtt_get_geofence_cont_ind(dhd_pub, &enable); in dhd_doiovar()
3630 dhd_rtt_set_geofence_cont_ind(dhd_pub, enable); in dhd_doiovar()
3636 *(uint32 *)arg = (uint32)dhd_dbg_get_fwverbose(dhd_pub); in dhd_doiovar()
3644 dhd_dbg_set_fwverbose(dhd_pub, (uint32)int_val); in dhd_doiovar()
3694 for (offset = 0; offset < dhd_pub->num_profiles; offset++) { in dhd_doiovar()
3695 if (dhd_pub->protocol_filters[offset].profile_index == in dhd_doiovar()
3709 dhd_pub->protocol_filters->profile_index)); in dhd_doiovar()
3716 dhd_pub->protocol_filters[offset] = *protocol; in dhd_doiovar()
3718 if (offset >= dhd_pub->num_profiles) { in dhd_doiovar()
3719 dhd_pub->num_profiles = offset + 1; in dhd_doiovar()
3726 dhd_pub->tx_profile_enab = int_val ? TRUE : FALSE; in dhd_doiovar()
3730 int_val = dhd_pub->tx_profile_enab; in dhd_doiovar()
3740 for (offset = 0; offset < dhd_pub->num_profiles; offset++) { in dhd_doiovar()
3741 if (dhd_pub->protocol_filters[offset].profile_index == int_val) { in dhd_doiovar()
3742 protocol = &(dhd_pub->protocol_filters[offset]); in dhd_doiovar()
3765 int_val = dhd_pub->check_trap_rot? 1 : 0; in dhd_doiovar()
3770 dhd_pub->check_trap_rot = *(bool *)arg; in dhd_doiovar()
3780 dhd_pub->awdl_llc_enabled = bval; in dhd_doiovar()
3784 int_val = dhd_pub->awdl_llc_enabled; in dhd_doiovar()
3793 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3800 bcmerror = dhd_set_1905_almac(dhd_pub, bssidx, ea, FALSE); in dhd_doiovar()
3806 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3812 bcmerror = dhd_get_1905_almac(dhd_pub, bssidx, arg, FALSE); in dhd_doiovar()
3819 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3826 bcmerror = dhd_set_1905_almac(dhd_pub, bssidx, ea, TRUE); in dhd_doiovar()
3832 if (dhd_iovar_parse_bssidx(dhd_pub, (char *)name, &bssidx, &val) != BCME_OK) { in dhd_doiovar()
3838 bcmerror = dhd_get_1905_almac(dhd_pub, bssidx, arg, TRUE); in dhd_doiovar()
4017 dhd_iovar_op(dhd_pub_t *dhd_pub, const char *name, in dhd_iovar_op() argument
4061 bcmerror = dhd_doiovar(dhd_pub, vi, actionid, name, params, plen, arg, len, val_size); in dhd_iovar_op()
4068 dhd_ioctl(dhd_pub_t * dhd_pub, dhd_ioctl_t *ioc, void *buf, uint buflen) in dhd_ioctl() argument
4079 dhd_os_dhdiovar_lock(dhd_pub); in dhd_ioctl()
4101 DHD_LINUX_GENERAL_LOCK(dhd_pub, flags); in dhd_ioctl()
4102 if (DHD_BUS_CHECK_DOWN_OR_DOWN_IN_PROGRESS(dhd_pub) && in dhd_ioctl()
4108 if (dhd_fw_download_status(dhd_pub) == FW_DOWNLOAD_DONE) { in dhd_ioctl()
4111 dhd_fw_download_status(dhd_pub))); in dhd_ioctl()
4112 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_ioctl()
4113 dhd_os_dhdiovar_unlock(dhd_pub); in dhd_ioctl()
4117 DHD_BUS_BUSY_SET_IN_DHD_IOVAR(dhd_pub); in dhd_ioctl()
4118 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_ioctl()
4121 dhdpcie_runtime_bus_wake(dhd_pub, TRUE, dhd_ioctl); in dhd_ioctl()
4124 DHD_LINUX_GENERAL_LOCK(dhd_pub, flags); in dhd_ioctl()
4125 if (DHD_BUS_CHECK_SUSPEND_OR_SUSPEND_IN_PROGRESS(dhd_pub)) { in dhd_ioctl()
4146 __FUNCTION__, dhd_pub->busstate, in dhd_ioctl()
4147 dhd_pub->dhd_bus_busy_state)); in dhd_ioctl()
4148 DHD_BUS_BUSY_CLEAR_IN_DHD_IOVAR(dhd_pub); in dhd_ioctl()
4149 dhd_os_busbusy_wake(dhd_pub); in dhd_ioctl()
4150 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_ioctl()
4151 dhd_os_dhdiovar_unlock(dhd_pub); in dhd_ioctl()
4164 (dhd_bus_is_multibp_capable(dhd_pub->bus) && in dhd_ioctl()
4173 DHD_BUS_BUSY_CLEAR_IN_DHD_IOVAR(dhd_pub); in dhd_ioctl()
4175 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_ioctl()
4190 bcmerror = dhd_iovar_op(dhd_pub, buf, arg, arglen, in dhd_ioctl()
4193 bcmerror = dhd_iovar_op(dhd_pub, buf, NULL, 0, in dhd_ioctl()
4202 bcmerror = dhd_prot_iovar_op(dhd_pub, buf, arg, in dhd_ioctl()
4205 bcmerror = dhd_prot_iovar_op(dhd_pub, buf, in dhd_ioctl()
4214 bcmerror = dhd_bus_iovar_op(dhd_pub, buf, in dhd_ioctl()
4217 bcmerror = dhd_bus_iovar_op(dhd_pub, buf, in dhd_ioctl()
4227 bcmerror = dhd_timesync_iovar_op(dhd_pub->ts, buf, arg, in dhd_ioctl()
4230 bcmerror = dhd_timesync_iovar_op(dhd_pub->ts, buf, in dhd_ioctl()
4239 dhd_os_dhdiovar_unlock(dhd_pub); in dhd_ioctl()
4243 DHD_LINUX_GENERAL_LOCK(dhd_pub, flags); in dhd_ioctl()
4244 DHD_BUS_BUSY_CLEAR_IN_DHD_IOVAR(dhd_pub); in dhd_ioctl()
4245 dhd_os_busbusy_wake(dhd_pub); in dhd_ioctl()
4246 DHD_LINUX_GENERAL_UNLOCK(dhd_pub, flags); in dhd_ioctl()
4247 dhd_os_dhdiovar_unlock(dhd_pub); in dhd_ioctl()
4255 dhd_update_awdl_stats(dhd_pub_t *dhd_pub, const awdl_aws_event_data_t *aw) in dhd_update_awdl_stats() argument
4263 DHD_AWDL_STATS_LOCK(dhd_pub->awdl_stats_lock, lock_flags); in dhd_update_awdl_stats()
4266 dhd_pub->awdl_tx_status_slot = in dhd_update_awdl_stats()
4268 awdl_stats = &dhd_pub->awdl_stats[dhd_pub->awdl_tx_status_slot]; in dhd_update_awdl_stats()
4274 awdl_stats = &dhd_pub->awdl_stats[dhd_pub->awdl_tx_status_slot]; in dhd_update_awdl_stats()
4288 DHD_AWDL_STATS_UNLOCK(dhd_pub->awdl_stats_lock, lock_flags); in dhd_update_awdl_stats()
4293 wl_show_roam_event(dhd_pub_t *dhd_pub, uint status, uint datalen, in wl_show_roam_event() argument
4297 OSL_ATOMIC_SET(dhd_pub->osh, &dhd_pub->set_ssid_rcvd, TRUE); in wl_show_roam_event()
4298 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK); in wl_show_roam_event()
4308 dhd_clear_join_error(dhd_pub, WLC_WPA_MASK); in wl_show_roam_event()
4538 wl_show_host_event(dhd_pub_t *dhd_pub, wl_event_msg_t *event, void *event_data, in wl_show_host_event() argument
4579 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK | WLC_WPA_MASK); in wl_show_host_event()
4589 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK | WLC_WPA_MASK); in wl_show_host_event()
4614 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK | WLC_WPA_MASK); in wl_show_host_event()
4623 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK | WLC_WPA_MASK); in wl_show_host_event()
4665 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK | WLC_WPA_MASK); in wl_show_host_event()
4672 wl_show_roam_event(dhd_pub, status, datalen, in wl_show_host_event()
4711 OSL_ATOMIC_SET(dhd_pub->osh, &dhd_pub->set_ssid_rcvd, TRUE); in wl_show_host_event()
4712 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK); in wl_show_host_event()
4722 dhd_clear_join_error(dhd_pub, WLC_WPA_MASK); in wl_show_host_event()
4751 uint8 ifindex = (uint8)dhd_ifname2idx(dhd_pub->info, event->ifname); in wl_show_host_event()
4752 uint8 role = dhd_flow_rings_ifindex2role(dhd_pub, ifindex); in wl_show_host_event()
4754 dhd_clear_join_error(dhd_pub, WLC_SSID_MASK | WLC_WPA_MASK); in wl_show_host_event()
4789 dhd_stop_scan_timer(dhd_pub, FALSE, 0); in wl_show_host_event()
4814 dhd_clear_join_error(dhd_pub, WLC_WPA_MASK); in wl_show_host_event()
4835 dhd_dbg_trace_evnt_handler(dhd_pub, event_data, raw_event_ptr, datalen); in wl_show_host_event()
4869 dhd_update_awdl_stats(dhd_pub, aw); in wl_show_host_event()
4871 dhd_pub->awdl_aw_counter = aw->aw_counter; in wl_show_host_event()
5007 if (dhd_pub->timeout_info) { in wl_show_host_event()
5008 DHD_TIMER_LOCK(dhd_pub->timeout_info->scan_timer_lock, in wl_show_host_event()
5010 if (!dhd_pub->timeout_info->scan_timer_active && in wl_show_host_event()
5011 syncid == dhd_pub->esync_id) { in wl_show_host_event()
5012 dhd_pub->timeout_info->escan_aborted = TRUE; in wl_show_host_event()
5013 dhd_pub->timeout_info->abort_syncid = syncid; in wl_show_host_event()
5015 dhd_pub->timeout_info->scan_timer_lock, in wl_show_host_event()
5019 dhd_pub->timeout_info->escan_aborted = FALSE; in wl_show_host_event()
5021 DHD_TIMER_UNLOCK(dhd_pub->timeout_info->scan_timer_lock, in wl_show_host_event()
5024 dhd_stop_scan_timer(dhd_pub, TRUE, dtoh16(escan_result->sync_id)); in wl_show_host_event()
5042 wl_mschdbg_event_handler(dhd_pub, raw_event_ptr, reason, event_data, datalen); in wl_show_host_event()
5458 wl_event_process(dhd_pub_t *dhd_pub, int *ifidx, void *pktdata, in wl_event_process() argument
5478 evt_pport.dhd_pub = dhd_pub; in wl_event_process()
5487 struct wl_shim_node *shim = dhd_pub_shim(dhd_pub); in wl_event_process()
5523 wl_process_host_event(dhd_pub_t *dhd_pub, int *ifidx, void *pktdata, uint pktlen, in wl_process_host_event() argument
5553 if (dngl_host_event(dhd_pub, pktdata, &evu.dngl_event, pktlen) == BCME_OK) { in wl_process_host_event()
5578 dhd_wlfc_enable(dhd_pub); in wl_process_host_event()
5579 dhd_wlfc_FIFOcreditmap_event(dhd_pub, event_data); in wl_process_host_event()
5587 dhd_wlfc_BCMCCredit_support_event(dhd_pub); in wl_process_host_event()
5591 dhd_wlfc_disable_credit_borrow_event(dhd_pub, event_data); in wl_process_host_event()
5601 dhd_tdls_event_handler(dhd_pub, event); in wl_process_host_event()
5616 dhd_update_interface_flow_info(dhd_pub, ifevent->ifidx, in wl_process_host_event()
5630 dhd_wlfc_interface_event(dhd_pub, in wl_process_host_event()
5634 dhd_wlfc_interface_event(dhd_pub, in wl_process_host_event()
5647 if (dhd_event_ifadd(dhd_pub->info, ifevent, event->ifname, in wl_process_host_event()
5656 dhd_flow_rings_delete(dhd_pub, in wl_process_host_event()
5657 (uint8)dhd_ifname2idx(dhd_pub->info, event->ifname)); in wl_process_host_event()
5659 dhd_event_ifdel(dhd_pub->info, ifevent, event->ifname, in wl_process_host_event()
5663 dhd_event_ifchange(dhd_pub->info, ifevent, event->ifname, in wl_process_host_event()
5674 *ifidx = dhd_ifname2idx(dhd_pub->info, event->ifname); in wl_process_host_event()
5676 dhd_event(dhd_pub->info, (char *)pvt_data, evlen, *ifidx); in wl_process_host_event()
5689 dhd_pno_event_handler(dhd_pub, event, (void *)event_data); in wl_process_host_event()
5695 dhd_rtt_event_handler(dhd_pub, event, (void *)event_data); in wl_process_host_event()
5703 dhd_findadd_sta(dhd_pub, in wl_process_host_event()
5704 dhd_ifname2idx(dhd_pub->info, event->ifname), in wl_process_host_event()
5710 if (dhd_socram_dump(dhd_pub->bus) != BCME_OK) { in wl_process_host_event()
5717 dhd_update_psta_interface_for_sta(dhd_pub, event->ifname, in wl_process_host_event()
5723 dhd_update_dpsta_interface_for_sta(dhd_pub, (uint8)dhd_ifname2idx(dhd_pub->info, in wl_process_host_event()
5729 dhd_macdbg_event_handler(dhd_pub, reason, event_data, datalen); in wl_process_host_event()
5735 dhd_natoe_ct_event(dhd_pub, event_data); in wl_process_host_event()
5743 dhd_findadd_sta(dhd_pub, dhd_ifname2idx(dhd_pub->info, in wl_process_host_event()
5746 uint8 ifindex = (uint8)dhd_ifname2idx(dhd_pub->info, event->ifname); in wl_process_host_event()
5748 dhd_del_sta(dhd_pub, dhd_ifname2idx(dhd_pub->info, in wl_process_host_event()
5751 dhd_flow_rings_delete_for_peer(dhd_pub, ifindex, in wl_process_host_event()
5761 ifp = dhd_get_ifp(dhd_pub, event->ifidx); in wl_process_host_event()
5778 dhd_csi_event_handler(dhd_pub, event, (void *)event_data); in wl_process_host_event()
5783 if (dhd_update_interface_link_status(dhd_pub, (uint8)dhd_ifname2idx(dhd_pub->info, in wl_process_host_event()
5793 dhd_del_all_sta(dhd_pub, dhd_ifname2idx(dhd_pub->info, event->ifname)); in wl_process_host_event()
5794 dhd_flow_rings_delete(dhd_pub, (uint8)dhd_ifname2idx(dhd_pub->info, in wl_process_host_event()
5805 uint8 ifindex = (uint8)dhd_ifname2idx(dhd_pub->info, event->ifname); in wl_process_host_event()
5806 uint8 role = dhd_flow_rings_ifindex2role(dhd_pub, ifindex); in wl_process_host_event()
5810 !wl_cfg80211_is_roam_offload(dhd_idx2net(dhd_pub, ifindex)) && in wl_process_host_event()
5812 dhd_idx2net(dhd_pub, ifindex), event, *ifidx)) { in wl_process_host_event()
5823 dhd_del_sta(dhd_pub, dhd_ifname2idx(dhd_pub->info, in wl_process_host_event()
5827 dhd_flow_rings_delete(dhd_pub, ifindex); in wl_process_host_event()
5829 dhd_flow_rings_delete_for_peer(dhd_pub, ifindex, in wl_process_host_event()
5837 ifp = dhd_get_ifp(dhd_pub, event->ifidx); in wl_process_host_event()
5845 *ifidx = dhd_ifname2idx(dhd_pub->info, event->ifname); in wl_process_host_event()
5848 dhd_event_ifchange(dhd_pub->info, in wl_process_host_event()
5855 dhd_event(dhd_pub->info, (char *)pvt_data, evlen, *ifidx); in wl_process_host_event()
5869 memcpy(pvt_data->event.ifname, dhd_ifname(dhd_pub, *ifidx), IFNAMSIZ); in wl_process_host_event()
5873 if (dhd_pub->statlog) { in wl_process_host_event()
5874 dhd_statlog_process_event(dhd_pub, type, *ifidx, in wl_process_host_event()
5881 wl_show_host_event(dhd_pub, event, in wl_process_host_event()
5882 (void *)event_data, raw_event, dhd_pub->enable_log); in wl_process_host_event()
5890 wl_host_event(dhd_pub_t *dhd_pub, int *ifidx, void *pktdata, uint pktlen, in wl_host_event() argument
5893 return wl_process_host_event(dhd_pub, ifidx, pktdata, pktlen, event, data_ptr, in wl_host_event()
9615 int dhd_tdls_event_handler(dhd_pub_t *dhd_pub, wl_event_msg_t *event) in dhd_tdls_event_handler() argument
9620 ret = dhd_tdls_update_peer_info(dhd_pub, event); in dhd_tdls_event_handler()
9626 int dhd_free_tdls_peer_list(dhd_pub_t *dhd_pub) in dhd_free_tdls_peer_list() argument
9629 if (!dhd_pub) in dhd_free_tdls_peer_list()
9631 cur = dhd_pub->peer_tbl.node; in dhd_free_tdls_peer_list()
9633 if ((dhd_pub->peer_tbl.node == NULL) && !dhd_pub->peer_tbl.tdls_peer_count) in dhd_free_tdls_peer_list()
9639 MFREE(dhd_pub->osh, prev, sizeof(tdls_peer_node_t)); in dhd_free_tdls_peer_list()
9641 dhd_pub->peer_tbl.tdls_peer_count = 0; in dhd_free_tdls_peer_list()
9642 dhd_pub->peer_tbl.node = NULL; in dhd_free_tdls_peer_list()
11616 BCMFASTPATH(dhd_ether_to_awdl_llc_hdr)(struct dhd_pub *dhd, struct ether_header *eh, void *p) in BCMFASTPATH()
11682 dhd_awdl_llc_to_eth_hdr(struct dhd_pub *dhd, struct ether_header *eh, void *p) in dhd_awdl_llc_to_eth_hdr()