Lines Matching refs:ar
101 int ath6kl_read_tgt_stats(struct ath6kl *ar, struct ath6kl_vif *vif) in ath6kl_read_tgt_stats() argument
105 if (down_interruptible(&ar->sem)) in ath6kl_read_tgt_stats()
110 if (ath6kl_wmi_get_stats_cmd(ar->wmi, 0)) { in ath6kl_read_tgt_stats()
111 up(&ar->sem); in ath6kl_read_tgt_stats()
115 left = wait_event_interruptible_timeout(ar->event_wq, in ath6kl_read_tgt_stats()
119 up(&ar->sem); in ath6kl_read_tgt_stats()
218 if (dev->ar->mbox_info.gmbox_addr != 0) { in ath6kl_dump_registers()
291 void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war) in ath6kl_debug_war() argument
295 ar->debug.war_stats.invalid_rate++; in ath6kl_debug_war()
303 struct ath6kl *ar = file->private_data; in read_file_war_stats() local
318 "Invalid rates", ar->debug.war_stats.invalid_rate); in read_file_war_stats()
336 void ath6kl_debug_fwlog_event(struct ath6kl *ar, const void *buf, size_t len) in ath6kl_debug_fwlog_event() argument
359 spin_lock(&ar->debug.fwlog_queue.lock); in ath6kl_debug_fwlog_event()
361 __skb_queue_tail(&ar->debug.fwlog_queue, skb); in ath6kl_debug_fwlog_event()
362 complete(&ar->debug.fwlog_completion); in ath6kl_debug_fwlog_event()
365 while (skb_queue_len(&ar->debug.fwlog_queue) > in ath6kl_debug_fwlog_event()
367 skb = __skb_dequeue(&ar->debug.fwlog_queue); in ath6kl_debug_fwlog_event()
371 spin_unlock(&ar->debug.fwlog_queue.lock); in ath6kl_debug_fwlog_event()
378 struct ath6kl *ar = inode->i_private; in ath6kl_fwlog_open() local
380 if (ar->debug.fwlog_open) in ath6kl_fwlog_open()
383 ar->debug.fwlog_open = true; in ath6kl_fwlog_open()
391 struct ath6kl *ar = inode->i_private; in ath6kl_fwlog_release() local
393 ar->debug.fwlog_open = false; in ath6kl_fwlog_release()
401 struct ath6kl *ar = file->private_data; in ath6kl_fwlog_read() local
412 ath6kl_read_fwlogs(ar); in ath6kl_fwlog_read()
414 spin_lock(&ar->debug.fwlog_queue.lock); in ath6kl_fwlog_read()
416 while ((skb = __skb_dequeue(&ar->debug.fwlog_queue))) { in ath6kl_fwlog_read()
419 __skb_queue_head(&ar->debug.fwlog_queue, skb); in ath6kl_fwlog_read()
430 spin_unlock(&ar->debug.fwlog_queue.lock); in ath6kl_fwlog_read()
454 struct ath6kl *ar = file->private_data; in ath6kl_fwlog_block_read() local
465 spin_lock(&ar->debug.fwlog_queue.lock); in ath6kl_fwlog_block_read()
467 if (skb_queue_len(&ar->debug.fwlog_queue) == 0) { in ath6kl_fwlog_block_read()
469 init_completion(&ar->debug.fwlog_completion); in ath6kl_fwlog_block_read()
471 spin_unlock(&ar->debug.fwlog_queue.lock); in ath6kl_fwlog_block_read()
474 &ar->debug.fwlog_completion); in ath6kl_fwlog_block_read()
480 spin_lock(&ar->debug.fwlog_queue.lock); in ath6kl_fwlog_block_read()
483 while ((skb = __skb_dequeue(&ar->debug.fwlog_queue))) { in ath6kl_fwlog_block_read()
486 __skb_queue_head(&ar->debug.fwlog_queue, skb); in ath6kl_fwlog_block_read()
497 spin_unlock(&ar->debug.fwlog_queue.lock); in ath6kl_fwlog_block_read()
528 struct ath6kl *ar = file->private_data; in ath6kl_fwlog_mask_read() local
532 len = snprintf(buf, sizeof(buf), "0x%x\n", ar->debug.fwlog_mask); in ath6kl_fwlog_mask_read()
541 struct ath6kl *ar = file->private_data; in ath6kl_fwlog_mask_write() local
544 ret = kstrtou32_from_user(user_buf, count, 0, &ar->debug.fwlog_mask); in ath6kl_fwlog_mask_write()
548 ret = ath6kl_wmi_config_debug_module_cmd(ar->wmi, in ath6kl_fwlog_mask_write()
550 ar->debug.fwlog_mask); in ath6kl_fwlog_mask_write()
568 struct ath6kl *ar = file->private_data; in read_file_tgt_stats() local
577 vif = ath6kl_vif_first(ar); in read_file_tgt_stats()
585 rv = ath6kl_read_tgt_stats(ar, vif); in read_file_tgt_stats()
707 struct ath6kl *ar = file->private_data; in read_file_credit_dist_stats() local
708 struct htc_target *target = ar->htc_target; in read_file_credit_dist_stats()
785 struct ath6kl *ar = file->private_data; in ath6kl_endpoint_stats_read() local
786 struct htc_target *target = ar->htc_target; in ath6kl_endpoint_stats_read()
840 struct ath6kl *ar = file->private_data; in ath6kl_endpoint_stats_write() local
841 struct htc_target *target = ar->htc_target; in ath6kl_endpoint_stats_write()
895 struct ath6kl *ar = file->private_data; in ath6kl_regread_read() local
899 if (ar->debug.dbgfs_diag_reg) in ath6kl_regread_read()
901 ar->debug.dbgfs_diag_reg); in ath6kl_regread_read()
913 struct ath6kl *ar = file->private_data; in ath6kl_regread_write() local
925 ar->debug.dbgfs_diag_reg = reg_addr; in ath6kl_regread_write()
940 struct ath6kl *ar = inode->i_private; in ath6kl_regdump_open() local
949 if (!ar->debug.dbgfs_diag_reg) in ath6kl_regdump_open()
963 addr = ar->debug.dbgfs_diag_reg; in ath6kl_regdump_open()
965 status = ath6kl_diag_read32(ar, in ath6kl_regdump_open()
966 TARG_VTOP(ar->target_type, addr), in ath6kl_regdump_open()
981 status = ath6kl_diag_read32(ar, in ath6kl_regdump_open()
982 TARG_VTOP(ar->target_type, addr), in ath6kl_regdump_open()
1028 struct ath6kl *ar = file->private_data; in ath6kl_lrssi_roam_write() local
1034 ar->lrssi_roam_threshold = lrssi_roam_threshold; in ath6kl_lrssi_roam_write()
1036 ath6kl_wmi_set_roam_lrssi_cmd(ar->wmi, ar->lrssi_roam_threshold); in ath6kl_lrssi_roam_write()
1045 struct ath6kl *ar = file->private_data; in ath6kl_lrssi_roam_read() local
1049 len = snprintf(buf, sizeof(buf), "%u\n", ar->lrssi_roam_threshold); in ath6kl_lrssi_roam_read()
1066 struct ath6kl *ar = file->private_data; in ath6kl_regwrite_read() local
1071 ar->debug.diag_reg_addr_wr, ar->debug.diag_reg_val_wr); in ath6kl_regwrite_read()
1080 struct ath6kl *ar = file->private_data; in ath6kl_regwrite_write() local
1106 ar->debug.diag_reg_addr_wr = reg_addr; in ath6kl_regwrite_write()
1107 ar->debug.diag_reg_val_wr = reg_val; in ath6kl_regwrite_write()
1109 if (ath6kl_diag_write32(ar, ar->debug.diag_reg_addr_wr, in ath6kl_regwrite_write()
1110 cpu_to_le32(ar->debug.diag_reg_val_wr))) in ath6kl_regwrite_write()
1124 int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, const void *buf, in ath6kl_debug_roam_tbl_event() argument
1139 if (ar->debug.roam_tbl == NULL || in ath6kl_debug_roam_tbl_event()
1140 ar->debug.roam_tbl_len < (unsigned int) len) { in ath6kl_debug_roam_tbl_event()
1141 kfree(ar->debug.roam_tbl); in ath6kl_debug_roam_tbl_event()
1142 ar->debug.roam_tbl = kmalloc(len, GFP_ATOMIC); in ath6kl_debug_roam_tbl_event()
1143 if (ar->debug.roam_tbl == NULL) in ath6kl_debug_roam_tbl_event()
1147 memcpy(ar->debug.roam_tbl, buf, len); in ath6kl_debug_roam_tbl_event()
1148 ar->debug.roam_tbl_len = len; in ath6kl_debug_roam_tbl_event()
1150 if (test_bit(ROAM_TBL_PEND, &ar->flag)) { in ath6kl_debug_roam_tbl_event()
1151 clear_bit(ROAM_TBL_PEND, &ar->flag); in ath6kl_debug_roam_tbl_event()
1152 wake_up(&ar->event_wq); in ath6kl_debug_roam_tbl_event()
1161 struct ath6kl *ar = file->private_data; in ath6kl_roam_table_read() local
1170 if (down_interruptible(&ar->sem)) in ath6kl_roam_table_read()
1173 set_bit(ROAM_TBL_PEND, &ar->flag); in ath6kl_roam_table_read()
1175 ret = ath6kl_wmi_get_roam_tbl_cmd(ar->wmi); in ath6kl_roam_table_read()
1177 up(&ar->sem); in ath6kl_roam_table_read()
1182 ar->event_wq, !test_bit(ROAM_TBL_PEND, &ar->flag), WMI_TIMEOUT); in ath6kl_roam_table_read()
1183 up(&ar->sem); in ath6kl_roam_table_read()
1188 if (ar->debug.roam_tbl == NULL) in ath6kl_roam_table_read()
1191 tbl = (struct wmi_target_roam_tbl *) ar->debug.roam_tbl; in ath6kl_roam_table_read()
1233 struct ath6kl *ar = file->private_data; in ath6kl_force_roam_write() local
1247 ret = ath6kl_wmi_force_roam_cmd(ar->wmi, bssid); in ath6kl_force_roam_write()
1265 struct ath6kl *ar = file->private_data; in ath6kl_roam_mode_write() local
1287 ret = ath6kl_wmi_set_roam_mode_cmd(ar->wmi, mode); in ath6kl_roam_mode_write()
1301 void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive) in ath6kl_debug_set_keepalive() argument
1303 ar->debug.keepalive = keepalive; in ath6kl_debug_set_keepalive()
1309 struct ath6kl *ar = file->private_data; in ath6kl_keepalive_read() local
1313 len = snprintf(buf, sizeof(buf), "%u\n", ar->debug.keepalive); in ath6kl_keepalive_read()
1322 struct ath6kl *ar = file->private_data; in ath6kl_keepalive_write() local
1330 ret = ath6kl_wmi_set_keepalive_cmd(ar->wmi, 0, val); in ath6kl_keepalive_write()
1345 void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, u8 timeout) in ath6kl_debug_set_disconnect_timeout() argument
1347 ar->debug.disc_timeout = timeout; in ath6kl_debug_set_disconnect_timeout()
1354 struct ath6kl *ar = file->private_data; in ath6kl_disconnect_timeout_read() local
1358 len = snprintf(buf, sizeof(buf), "%u\n", ar->debug.disc_timeout); in ath6kl_disconnect_timeout_read()
1367 struct ath6kl *ar = file->private_data; in ath6kl_disconnect_timeout_write() local
1375 ret = ath6kl_wmi_disctimeout_cmd(ar->wmi, 0, val); in ath6kl_disconnect_timeout_write()
1394 struct ath6kl *ar = file->private_data; in ath6kl_create_qos_write() local
1403 vif = ath6kl_vif_first(ar); in ath6kl_create_qos_write()
1556 ath6kl_wmi_create_pstream_cmd(ar->wmi, vif->fw_vif_idx, &pstream); in ath6kl_create_qos_write()
1572 struct ath6kl *ar = file->private_data; in ath6kl_delete_qos_write() local
1580 vif = ath6kl_vif_first(ar); in ath6kl_delete_qos_write()
1602 ath6kl_wmi_delete_pstream_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_delete_qos_write()
1619 struct ath6kl *ar = file->private_data; in ath6kl_bgscan_int_write() local
1625 vif = ath6kl_vif_first(ar); in ath6kl_bgscan_int_write()
1642 ath6kl_wmi_scanparams_cmd(ar->wmi, 0, 0, 0, bgscan_int, 0, 0, 0, 3, in ath6kl_bgscan_int_write()
1659 struct ath6kl *ar = file->private_data; in ath6kl_listen_int_write() local
1665 vif = ath6kl_vif_first(ar); in ath6kl_listen_int_write()
1681 ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, in ath6kl_listen_int_write()
1691 struct ath6kl *ar = file->private_data; in ath6kl_listen_int_read() local
1696 vif = ath6kl_vif_first(ar); in ath6kl_listen_int_read()
1717 struct ath6kl *ar = file->private_data; in ath6kl_power_params_write() local
1760 ath6kl_wmi_pmparams_cmd(ar->wmi, 0, idle_period, ps_poll_num, in ath6kl_power_params_write()
1773 void ath6kl_debug_init(struct ath6kl *ar) in ath6kl_debug_init() argument
1775 skb_queue_head_init(&ar->debug.fwlog_queue); in ath6kl_debug_init()
1776 init_completion(&ar->debug.fwlog_completion); in ath6kl_debug_init()
1782 ar->debug.fwlog_mask = 0; in ath6kl_debug_init()
1790 int ath6kl_debug_init_fs(struct ath6kl *ar) in ath6kl_debug_init_fs() argument
1792 ar->debugfs_phy = debugfs_create_dir("ath6kl", in ath6kl_debug_init_fs()
1793 ar->wiphy->debugfsdir); in ath6kl_debug_init_fs()
1794 if (!ar->debugfs_phy) in ath6kl_debug_init_fs()
1797 debugfs_create_file("tgt_stats", S_IRUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1800 if (ar->hif_type == ATH6KL_HIF_TYPE_SDIO) in ath6kl_debug_init_fs()
1802 ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1806 ar->debugfs_phy, ar, &fops_endpoint_stats); in ath6kl_debug_init_fs()
1808 debugfs_create_file("fwlog", S_IRUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1811 debugfs_create_file("fwlog_block", S_IRUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1814 debugfs_create_file("fwlog_mask", S_IRUSR | S_IWUSR, ar->debugfs_phy, in ath6kl_debug_init_fs()
1815 ar, &fops_fwlog_mask); in ath6kl_debug_init_fs()
1817 debugfs_create_file("reg_addr", S_IRUSR | S_IWUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1820 debugfs_create_file("reg_dump", S_IRUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1824 ar->debugfs_phy, ar, &fops_lrssi_roam_threshold); in ath6kl_debug_init_fs()
1827 ar->debugfs_phy, ar, &fops_diag_reg_write); in ath6kl_debug_init_fs()
1829 debugfs_create_file("war_stats", S_IRUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1832 debugfs_create_file("roam_table", S_IRUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1835 debugfs_create_file("force_roam", S_IWUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1838 debugfs_create_file("roam_mode", S_IWUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1841 debugfs_create_file("keepalive", S_IRUSR | S_IWUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1845 ar->debugfs_phy, ar, &fops_disconnect_timeout); in ath6kl_debug_init_fs()
1847 debugfs_create_file("create_qos", S_IWUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1850 debugfs_create_file("delete_qos", S_IWUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1854 ar->debugfs_phy, ar, &fops_bgscan_int); in ath6kl_debug_init_fs()
1857 ar->debugfs_phy, ar, &fops_listen_int); in ath6kl_debug_init_fs()
1859 debugfs_create_file("power_params", S_IWUSR, ar->debugfs_phy, ar, in ath6kl_debug_init_fs()
1865 void ath6kl_debug_cleanup(struct ath6kl *ar) in ath6kl_debug_cleanup() argument
1867 skb_queue_purge(&ar->debug.fwlog_queue); in ath6kl_debug_cleanup()
1868 complete(&ar->debug.fwlog_completion); in ath6kl_debug_cleanup()
1869 kfree(ar->debug.roam_tbl); in ath6kl_debug_cleanup()