Lines Matching refs:wil

53 static void wil_print_desc_edma(struct seq_file *s, struct wil6210_priv *wil,  in wil_print_desc_edma()  argument
66 has_skb = wil->rx_buff_mgmt.buff_arr[buff_id].skb; in wil_print_desc_edma()
83 static void wil_print_ring(struct seq_file *s, struct wil6210_priv *wil, in wil_print_ring() argument
87 void __iomem *x = wmi_addr(wil, ring->hwtail); in wil_print_ring()
94 if (wil->use_enhanced_dma_hw && ring->is_rx) in wil_print_ring()
113 if (wil->use_enhanced_dma_hw) { in wil_print_ring()
114 wil_print_desc_edma(s, wil, ring, _s, _h, i); in wil_print_ring()
130 struct wil6210_priv *wil = s->private; in wil_ring_debugfs_show() local
132 wil_print_ring(s, wil, "rx", &wil->ring_rx, 'S', '_'); in wil_ring_debugfs_show()
134 for (i = 0; i < ARRAY_SIZE(wil->ring_tx); i++) { in wil_ring_debugfs_show()
135 struct wil_ring *ring = &wil->ring_tx[i]; in wil_ring_debugfs_show()
136 struct wil_ring_tx_data *txdata = &wil->ring_tx_data[i]; in wil_ring_debugfs_show()
139 int cid = wil->ring2cid_tid[i][0]; in wil_ring_debugfs_show()
140 int tid = wil->ring2cid_tid[i][1]; in wil_ring_debugfs_show()
168 wil->sta[cid].addr, cid, tid, in wil_ring_debugfs_show()
180 wil_print_ring(s, wil, name, ring, '_', 'H'); in wil_ring_debugfs_show()
199 static void wil_print_sring(struct seq_file *s, struct wil6210_priv *wil, in wil_print_sring() argument
202 void __iomem *x = wmi_addr(wil, sring->hwtail); in wil_print_sring()
203 int sring_idx = sring - wil->srings; in wil_print_sring()
245 struct wil6210_priv *wil = s->private; in wil_srings_debugfs_show() local
249 if (wil->srings[i].va) in wil_srings_debugfs_show()
250 wil_print_sring(s, wil, &wil->srings[i]); in wil_srings_debugfs_show()
276 struct wil6210_priv *wil = s->private; in wil_print_mbox_ring() local
281 wil_halp_vote(wil); in wil_print_mbox_ring()
304 if (!wmi_addr(wil, r.base) || in wil_print_mbox_ring()
305 !wmi_addr(wil, r.tail) || in wil_print_mbox_ring()
306 !wmi_addr(wil, r.head)) { in wil_print_mbox_ring()
315 void __iomem *x = wil->csr + HOSTADDR(r.base) + delta; in wil_print_mbox_ring()
324 if (0 == wmi_read_hdr(wil, d.addr, &hdr)) { in wil_print_mbox_ring()
332 void __iomem *src = wmi_buffer(wil, d.addr) + in wil_print_mbox_ring()
348 wil_halp_unvote(wil); in wil_print_mbox_ring()
353 struct wil6210_priv *wil = s->private; in wil_mbox_debugfs_show() local
356 ret = wil_pm_runtime_get(wil); in wil_mbox_debugfs_show()
360 wil_print_mbox_ring(s, "tx", wil->csr + HOST_MBOX + in wil_mbox_debugfs_show()
362 wil_print_mbox_ring(s, "rx", wil->csr + HOST_MBOX + in wil_mbox_debugfs_show()
365 wil_pm_runtime_put(wil); in wil_mbox_debugfs_show()
386 struct wil6210_priv *wil = d->wil; in wil_debugfs_iomem_x32_set() local
389 ret = wil_pm_runtime_get(wil); in wil_debugfs_iomem_x32_set()
396 wil_pm_runtime_put(wil); in wil_debugfs_iomem_x32_set()
405 struct wil6210_priv *wil = d->wil; in wil_debugfs_iomem_x32_get() local
408 ret = wil_pm_runtime_get(wil); in wil_debugfs_iomem_x32_get()
414 wil_pm_runtime_put(wil); in wil_debugfs_iomem_x32_get()
426 struct wil6210_priv *wil) in wil_debugfs_create_iomem_x32() argument
429 struct wil_debugfs_iomem_data *data = &wil->dbg_data.data_arr[ in wil_debugfs_create_iomem_x32()
430 wil->dbg_data.iomem_data_count]; in wil_debugfs_create_iomem_x32()
432 data->wil = wil; in wil_debugfs_create_iomem_x32()
437 wil->dbg_data.iomem_data_count++; in wil_debugfs_create_iomem_x32()
473 static void wil6210_debugfs_init_offset(struct wil6210_priv *wil, in wil6210_debugfs_init_offset() argument
499 wil); in wil6210_debugfs_init_offset()
509 wil_err(wil, "Create file \"%s\": err %ld\n", in wil6210_debugfs_init_offset()
525 static int wil6210_debugfs_create_ISR(struct wil6210_priv *wil, in wil6210_debugfs_create_ISR() argument
534 wil6210_debugfs_init_offset(wil, d, (void * __force)wil->csr + off, in wil6210_debugfs_create_ISR()
547 static int wil6210_debugfs_create_pseudo_ISR(struct wil6210_priv *wil, in wil6210_debugfs_create_pseudo_ISR() argument
555 wil6210_debugfs_init_offset(wil, d, (void * __force)wil->csr, in wil6210_debugfs_create_pseudo_ISR()
600 static int wil6210_debugfs_create_ITR_CNT(struct wil6210_priv *wil, in wil6210_debugfs_create_ITR_CNT() argument
614 wil6210_debugfs_init_offset(wil, d, (void * __force)wil->csr, in wil6210_debugfs_create_ITR_CNT()
617 wil6210_debugfs_init_offset(wil, dtx, (void * __force)wil->csr, in wil6210_debugfs_create_ITR_CNT()
620 wil6210_debugfs_init_offset(wil, drx, (void * __force)wil->csr, in wil6210_debugfs_create_ITR_CNT()
627 struct wil6210_priv *wil = s->private; in wil_memread_debugfs_show() local
631 ret = wil_pm_runtime_get(wil); in wil_memread_debugfs_show()
635 a = wmi_buffer(wil, cpu_to_le32(mem_addr)); in wil_memread_debugfs_show()
642 wil_pm_runtime_put(wil); in wil_memread_debugfs_show()
664 struct wil6210_priv *wil = wil_blob->wil; in wil_read_file_ioblob() local
671 if (test_bit(wil_status_suspending, wil_blob->wil->status) || in wil_read_file_ioblob()
672 test_bit(wil_status_suspended, wil_blob->wil->status)) in wil_read_file_ioblob()
690 rc = wil_pm_runtime_get(wil); in wil_read_file_ioblob()
701 wil_pm_runtime_put(wil); in wil_read_file_ioblob()
732 struct wil6210_priv *wil = file->private_data; in wil_write_file_reset() local
733 struct net_device *ndev = wil->main_ndev; in wil_write_file_reset()
744 wil_reset(wil, true); in wil_write_file_reset()
758 struct wil6210_priv *wil = file->private_data; in wil_write_file_rxon() local
773 wil_err(wil, "Invalid channel %ld\n", channel); in wil_write_file_rxon()
779 rc = wmi_set_channel(wil, (int)channel); in wil_write_file_rxon()
784 rc = wmi_rxon(wil, on); in wil_write_file_rxon()
804 struct wil6210_priv *wil = file->private_data; in wil_write_back() local
833 wil_err(wil, "BACK: invalid ring id %d\n", p1); in wil_write_back()
836 txdata = &wil->ring_tx_data[p1]; in wil_write_back()
839 wil_err(wil, "BACK: add require at least 2 params\n"); in wil_write_back()
844 wmi_addba(wil, txdata->mid, p1, p2, p3); in wil_write_back()
848 wmi_delba_tx(wil, txdata->mid, p1, p2); in wil_write_back()
854 wil_err(wil, in wil_write_back()
859 wil_err(wil, "BACK: invalid CID %d\n", p1); in wil_write_back()
864 sta = &wil->sta[p1]; in wil_write_back()
865 wmi_delba_rx(wil, sta->mid, mk_cidxtid(p1, p2), p3); in wil_write_back()
867 wil_err(wil, "BACK: Unrecognized command \"%s\"\n", cmd); in wil_write_back()
901 struct wil6210_priv *wil = file->private_data; in wil_write_pmccfg() local
924 wil_err(wil, "pmccfg: no params given\n"); in wil_write_pmccfg()
930 wil_err(wil, "pmccfg: alloc requires 2 params\n"); in wil_write_pmccfg()
933 wil_pmc_alloc(wil, num_descs, desc_size); in wil_write_pmccfg()
936 wil_err(wil, "pmccfg: free does not have any params\n"); in wil_write_pmccfg()
939 wil_pmc_free(wil, true); in wil_write_pmccfg()
941 wil_err(wil, "pmccfg: Unrecognized command \"%s\"\n", cmd); in wil_write_pmccfg()
951 struct wil6210_priv *wil = file->private_data; in wil_read_pmccfg() local
958 wil_pmc_last_cmd_status(wil), in wil_read_pmccfg()
982 struct wil6210_priv *wil = file->private_data; in wil_write_file_txmgmt() local
983 struct wiphy *wiphy = wil_to_wiphy(wil); in wil_write_file_txmgmt()
984 struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr; in wil_write_file_txmgmt()
1002 wil_info(wil, "-> %d\n", rc); in wil_write_file_txmgmt()
1018 struct wil6210_priv *wil = file->private_data; in wil_write_file_wmi() local
1019 struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev); in wil_write_file_wmi()
1042 rc1 = wmi_send(wil, cmdid, vif->mid, cmd, cmdlen); in wil_write_file_wmi()
1045 wil_info(wil, "0x%04x[%d] -> %d\n", cmdid, cmdlen, rc1); in wil_write_file_wmi()
1082 struct wil6210_priv *wil = s->private; in wil_txdesc_debugfs_show() local
1091 if (wil->use_enhanced_dma_hw) { in wil_txdesc_debugfs_show()
1107 ring = tx ? &wil->ring_tx[ring_idx] : &wil->ring_rx; in wil_txdesc_debugfs_show()
1134 if (wil->use_enhanced_dma_hw) { in wil_txdesc_debugfs_show()
1144 wil->rx_buff_mgmt.size)) { in wil_txdesc_debugfs_show()
1148 skb = wil->rx_buff_mgmt.buff_arr[buff_id].skb; in wil_txdesc_debugfs_show()
1189 struct wil6210_priv *wil = s->private; in wil_status_msg_debugfs_show() local
1192 bool tx = sring_idx == wil->tx_sring_idx ? 1 : 0; in wil_status_msg_debugfs_show()
1201 sring = &wil->srings[sring_idx]; in wil_status_msg_debugfs_show()
1221 if (!tx && !wil->use_compressed_rx_status) in wil_status_msg_debugfs_show()
1261 struct wil6210_priv *wil = s->private; in wil_rx_buff_mgmt_debugfs_show() local
1262 struct wil_rx_buff_mgmt *rbm = &wil->rx_buff_mgmt; in wil_rx_buff_mgmt_debugfs_show()
1327 struct wil6210_priv *wil = s->private; in wil_bf_debugfs_show() local
1328 struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev); in wil_bf_debugfs_show()
1339 for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { in wil_bf_debugfs_show()
1343 rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid, in wil_bf_debugfs_show()
1407 struct wil6210_priv *wil = s->private; in wil_temp_debugfs_show() local
1409 int rc = wmi_get_temperature(wil, &t_m, &t_r); in wil_temp_debugfs_show()
1437 struct wil6210_priv *wil = s->private; in wil_freq_debugfs_show() local
1438 struct wireless_dev *wdev = wil->main_ndev->ieee80211_ptr; in wil_freq_debugfs_show()
1461 struct wil6210_priv *wil = s->private; in wil_link_debugfs_show() local
1469 for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { in wil_link_debugfs_show()
1470 struct wil_sta_info *p = &wil->sta[i]; in wil_link_debugfs_show()
1493 vif = (mid < wil->max_vifs) ? wil->vifs[mid] : NULL; in wil_link_debugfs_show()
1527 struct wil6210_priv *wil = s->private; in wil_info_debugfs_show() local
1528 struct net_device *ndev = wil->main_ndev; in wil_info_debugfs_show()
1530 int rx = atomic_xchg(&wil->isr_count_rx, 0); in wil_info_debugfs_show()
1531 int tx = atomic_xchg(&wil->isr_count_tx, 0); in wil_info_debugfs_show()
1580 struct wil6210_priv *wil = file->private_data; in wil_read_file_recovery() local
1587 sstate[wil->recovery_state]); in wil_read_file_recovery()
1599 struct wil6210_priv *wil = file->private_data; in wil_write_file_recovery() local
1604 if (wil->recovery_state != fw_recovery_pending) { in wil_write_file_recovery()
1605 wil_err(wil, "No recovery pending\n"); in wil_write_file_recovery()
1610 wil_err(wil, "Offset [%d]\n", (int)*ppos); in wil_write_file_recovery()
1615 wil_err(wil, "Input too long, len = %d\n", (int)count); in wil_write_file_recovery()
1625 wil_set_recovery_state(wil, fw_recovery_running); in wil_write_file_recovery()
1627 wil_err(wil, "Bad recovery command \"%s\"\n", buf); in wil_write_file_recovery()
1690 struct wil6210_priv *wil = s->private; in wil_sta_debugfs_show() local
1693 for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { in wil_sta_debugfs_show()
1694 struct wil_sta_info *p = &wil->sta[i]; in wil_sta_debugfs_show()
1771 struct wil6210_priv *wil = s->private; in wil_mids_debugfs_show() local
1776 mutex_lock(&wil->vif_mutex); in wil_mids_debugfs_show()
1777 for (i = 0; i < wil->max_vifs; i++) { in wil_mids_debugfs_show()
1778 vif = wil->vifs[i]; in wil_mids_debugfs_show()
1788 mutex_unlock(&wil->vif_mutex); in wil_mids_debugfs_show()
1808 struct wil6210_priv *wil = s->private; in wil_tx_latency_debugfs_show() local
1811 for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { in wil_tx_latency_debugfs_show()
1812 struct wil_sta_info *p = &wil->sta[i]; in wil_tx_latency_debugfs_show()
1872 struct wil6210_priv *wil = s->private; in wil_tx_latency_write() local
1878 wil_err(wil, "Invalid argument\n"); in wil_tx_latency_write()
1885 wil_err(wil, "Invalid resolution %d\n", val); in wil_tx_latency_write()
1890 if (wil->tx_latency == enable) in wil_tx_latency_write()
1893 wil_info(wil, "%s TX latency measurements (resolution %dusec)\n", in wil_tx_latency_write()
1899 wil->tx_latency_res = val; in wil_tx_latency_write()
1900 for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { in wil_tx_latency_write()
1901 struct wil_sta_info *sta = &wil->sta[i]; in wil_tx_latency_write()
1912 wil->tx_latency = enable; in wil_tx_latency_write()
1953 static void wil_link_stats_print_global(struct wil6210_priv *wil, in wil_link_stats_print_global() argument
1975 struct wil6210_priv *wil = vif_to_wil(vif); in wil_link_stats_debugfs_show_vif() local
1985 for (i = 0; i < ARRAY_SIZE(wil->sta); i++) { in wil_link_stats_debugfs_show_vif()
1986 if (wil->sta[i].status == wil_sta_unused) in wil_link_stats_debugfs_show_vif()
1988 if (wil->sta[i].mid != vif->mid) in wil_link_stats_debugfs_show_vif()
1991 stats = &wil->sta[i].fw_stats_basic; in wil_link_stats_debugfs_show_vif()
1998 struct wil6210_priv *wil = s->private; in wil_link_stats_debugfs_show() local
2002 rc = mutex_lock_interruptible(&wil->vif_mutex); in wil_link_stats_debugfs_show()
2009 for (i = 0; i < wil->max_vifs; i++) { in wil_link_stats_debugfs_show()
2010 vif = wil->vifs[i]; in wil_link_stats_debugfs_show()
2021 mutex_unlock(&wil->vif_mutex); in wil_link_stats_debugfs_show()
2035 struct wil6210_priv *wil = s->private; in wil_link_stats_write() local
2058 wil_info(wil, "request link statistics, cid %d interval %d\n", in wil_link_stats_write()
2061 rc = mutex_lock_interruptible(&wil->vif_mutex); in wil_link_stats_write()
2065 for (i = 0; i < wil->max_vifs; i++) { in wil_link_stats_write()
2066 vif = wil->vifs[i]; in wil_link_stats_write()
2073 wil_err(wil, "link statistics failed for mid %d\n", i); in wil_link_stats_write()
2075 mutex_unlock(&wil->vif_mutex); in wil_link_stats_write()
2091 struct wil6210_priv *wil = s->private; in wil_link_stats_global_debugfs_show() local
2093 if (!wil->fw_stats_global.ready) in wil_link_stats_global_debugfs_show()
2096 seq_printf(s, "TSF %lld\n", wil->fw_stats_global.tsf); in wil_link_stats_global_debugfs_show()
2097 wil_link_stats_print_global(wil, s, &wil->fw_stats_global.stats); in wil_link_stats_global_debugfs_show()
2114 struct wil6210_priv *wil = s->private; in wil_link_stats_global_write() local
2116 struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev); in wil_link_stats_global_write()
2121 wil_err(wil, "Invalid argument\n"); in wil_link_stats_global_write()
2125 wil_info(wil, "request global link stats, interval %d\n", interval); in wil_link_stats_global_write()
2129 wil_err(wil, "global link stats failed %d\n", rc); in wil_link_stats_global_write()
2162 struct wil6210_priv *wil = file->private_data; in wil_write_file_led_cfg() local
2168 wil_err(wil, "Invalid argument\n"); in wil_write_file_led_cfg()
2172 wil_info(wil, "%s led %d\n", val ? "Enabling" : "Disabling", led_id); in wil_write_file_led_cfg()
2173 rc = wmi_led_cfg(wil, val); in wil_write_file_led_cfg()
2175 wil_info(wil, "%s led %d failed\n", in wil_write_file_led_cfg()
2257 struct wil6210_priv *wil = s->private; in wil_fw_capabilities_debugfs_show() local
2260 wil->fw_capabilities); in wil_fw_capabilities_debugfs_show()
2281 struct wil6210_priv *wil = s->private; in wil_fw_version_debugfs_show() local
2283 if (wil->fw_version[0]) in wil_fw_version_debugfs_show()
2284 seq_printf(s, "%s\n", wil->fw_version); in wil_fw_version_debugfs_show()
2309 struct wil6210_priv *wil = file->private_data; in wil_write_suspend_stats() local
2311 memset(&wil->suspend_stats, 0, sizeof(wil->suspend_stats)); in wil_write_suspend_stats()
2320 struct wil6210_priv *wil = file->private_data; in wil_read_suspend_stats() local
2338 wil->suspend_stats.r_on.successful_suspends, in wil_read_suspend_stats()
2339 wil->suspend_stats.r_on.failed_suspends, in wil_read_suspend_stats()
2340 wil->suspend_stats.r_on.successful_resumes, in wil_read_suspend_stats()
2341 wil->suspend_stats.r_on.failed_resumes, in wil_read_suspend_stats()
2342 wil->suspend_stats.rejected_by_device, in wil_read_suspend_stats()
2343 wil->suspend_stats.r_off.successful_suspends, in wil_read_suspend_stats()
2344 wil->suspend_stats.r_off.failed_suspends, in wil_read_suspend_stats()
2345 wil->suspend_stats.r_off.successful_resumes, in wil_read_suspend_stats()
2346 wil->suspend_stats.r_off.failed_resumes, in wil_read_suspend_stats()
2347 wil->suspend_stats.rejected_by_host); in wil_read_suspend_stats()
2370 struct wil6210_priv *wil = s->private; in wil_compressed_rx_status_write() local
2376 wil_err(wil, "Invalid argument\n"); in wil_compressed_rx_status_write()
2380 if (wil_has_active_ifaces(wil, true, false)) { in wil_compressed_rx_status_write()
2381 wil_err(wil, "cannot change edma config after iface is up\n"); in wil_compressed_rx_status_write()
2385 wil_info(wil, "%sable compressed_rx_status\n", in wil_compressed_rx_status_write()
2388 wil->use_compressed_rx_status = compressed_rx_status; in wil_compressed_rx_status_write()
2396 struct wil6210_priv *wil = s->private; in wil_compressed_rx_status_show() local
2398 seq_printf(s, "%d\n", wil->use_compressed_rx_status); in wil_compressed_rx_status_show()
2419 static void wil6210_debugfs_init_blobs(struct wil6210_priv *wil, in wil6210_debugfs_init_blobs() argument
2426 struct wil_blob_wrapper *wil_blob = &wil->blobs[i]; in wil6210_debugfs_init_blobs()
2433 wil_blob->wil = wil; in wil6210_debugfs_init_blobs()
2434 blob->data = (void * __force)wil->csr + HOSTADDR(map->host); in wil6210_debugfs_init_blobs()
2480 static void wil6210_debugfs_init_files(struct wil6210_priv *wil, in wil6210_debugfs_init_files() argument
2487 wil, dbg_files[i].fops); in wil6210_debugfs_init_files()
2501 static void wil6210_debugfs_init_isr(struct wil6210_priv *wil, in wil6210_debugfs_init_isr() argument
2507 wil6210_debugfs_create_ISR(wil, dbg_icr[i].name, dbg, in wil6210_debugfs_init_isr()
2557 int wil6210_debugfs_init(struct wil6210_priv *wil) in wil6210_debugfs_init() argument
2559 struct dentry *dbg = wil->debug = debugfs_create_dir(WIL_NAME, in wil6210_debugfs_init()
2560 wil_to_wiphy(wil)->debugfsdir); in wil6210_debugfs_init()
2564 wil->dbg_data.data_arr = kcalloc(dbg_off_count, in wil6210_debugfs_init()
2567 if (!wil->dbg_data.data_arr) { in wil6210_debugfs_init()
2569 wil->debug = NULL; in wil6210_debugfs_init()
2573 wil->dbg_data.iomem_data_count = 0; in wil6210_debugfs_init()
2575 wil_pmc_init(wil); in wil6210_debugfs_init()
2577 wil6210_debugfs_init_files(wil, dbg); in wil6210_debugfs_init()
2578 wil6210_debugfs_init_isr(wil, dbg); in wil6210_debugfs_init()
2579 wil6210_debugfs_init_blobs(wil, dbg); in wil6210_debugfs_init()
2580 wil6210_debugfs_init_offset(wil, dbg, wil, dbg_wil_off); in wil6210_debugfs_init()
2581 wil6210_debugfs_init_offset(wil, dbg, (void * __force)wil->csr, in wil6210_debugfs_init()
2583 wil6210_debugfs_init_offset(wil, dbg, NULL, dbg_statics); in wil6210_debugfs_init()
2585 wil6210_debugfs_create_pseudo_ISR(wil, dbg); in wil6210_debugfs_init()
2587 wil6210_debugfs_create_ITR_CNT(wil, dbg); in wil6210_debugfs_init()
2592 void wil6210_debugfs_remove(struct wil6210_priv *wil) in wil6210_debugfs_remove() argument
2596 debugfs_remove_recursive(wil->debug); in wil6210_debugfs_remove()
2597 wil->debug = NULL; in wil6210_debugfs_remove()
2599 kfree(wil->dbg_data.data_arr); in wil6210_debugfs_remove()
2600 for (i = 0; i < ARRAY_SIZE(wil->sta); i++) in wil6210_debugfs_remove()
2601 kfree(wil->sta[i].tx_latency_bins); in wil6210_debugfs_remove()
2606 wil_pmc_free(wil, false); in wil6210_debugfs_remove()