ar 177 arch/arm64/include/asm/fpsimdmacros.h .macro _for__body \var:req ar 95 arch/ia64/include/asm/asmmacro.h mov r16=ar.pfs; \ ar 100 arch/ia64/include/asm/asmmacro.h mov ar.pfs=r16; \ ar 25 arch/ia64/include/asm/kregs.h #define _IA64_KR_PREFIX(n) _IA64_KR_PASTE(ar.k, n) ar 88 arch/ia64/include/asm/mca_asm.h mov ar.rsc = 0 ; \ ar 91 arch/ia64/include/asm/mca_asm.h mov temp2 = ar.bspstore; \ ar 95 arch/ia64/include/asm/mca_asm.h mov temp1 = ar.rnat; \ ar 97 arch/ia64/include/asm/mca_asm.h mov ar.bspstore = temp2; \ ar 99 arch/ia64/include/asm/mca_asm.h mov ar.rnat = temp1; \ ar 171 arch/ia64/include/asm/mca_asm.h mov ar.rsc = 0; \ ar 174 arch/ia64/include/asm/mca_asm.h mov r13 = ar.k6; \ ar 175 arch/ia64/include/asm/mca_asm.h mov temp2 = ar.bspstore; \ ar 179 arch/ia64/include/asm/mca_asm.h mov temp1 = ar.rnat; \ ar 181 arch/ia64/include/asm/mca_asm.h mov ar.bspstore = temp2; \ ar 183 arch/ia64/include/asm/mca_asm.h mov ar.rnat = temp1; \ ar 39 arch/ia64/include/asm/native/inst.h (pred) mov reg = ar.itc ar 452 arch/ia64/include/asm/pal.h ar : 1, /* App regs valid */ ar 690 arch/ia64/include/asm/pal.h #define pmci_proc_app_regs_valid pme_processor.ar ar 383 arch/ia64/include/asm/sal.h ar : 1, ar 391 arch/ia64/include/asm/sal.h u64 ar[128]; ar 218 arch/ia64/include/uapi/asm/ptrace.h unsigned long ar[128]; ar 32 arch/ia64/kernel/entry.h .spillsp ar.pfs, PT(CR_IFS)+16+(off); \ ar 33 arch/ia64/kernel/entry.h .spillsp ar.unat, PT(AR_UNAT)+16+(off); \ ar 34 arch/ia64/kernel/entry.h .spillsp ar.fpsr, PT(AR_FPSR)+16+(off); \ ar 43 arch/ia64/kernel/entry.h .savesp ar.unat,SW(CALLER_UNAT)+16+(off); \ ar 44 arch/ia64/kernel/entry.h .savesp ar.fpsr,SW(AR_FPSR)+16+(off); \ ar 60 arch/ia64/kernel/entry.h .spillsp ar.pfs,SW(AR_PFS)+16+(off); .spillsp ar.lc,SW(AR_LC)+16+(off); \ ar 62 arch/ia64/kernel/entry.h .spillsp ar.rnat,SW(AR_RNAT)+16+(off); \ ar 63 arch/ia64/kernel/entry.h .spillsp ar.bspstore,SW(AR_BSPSTORE)+16+(off); \ ar 11 arch/ia64/kernel/minstate.h (pUStk) mov.m r20=ar.itc; ar 50 arch/ia64/kernel/minstate.h mov r27=ar.rsc; /* M */ \ ar 52 arch/ia64/kernel/minstate.h mov r25=ar.unat; /* M */ \ ar 54 arch/ia64/kernel/minstate.h mov r26=ar.pfs; /* I */ \ ar 56 arch/ia64/kernel/minstate.h mov r21=ar.fpsr; /* M */ \ ar 70 arch/ia64/kernel/minstate.h (pUStk) mov ar.rsc=0; /* set enforced lazy mode, pl 0, little-endian, loadrs=0 */ \ ar 72 arch/ia64/kernel/minstate.h (pUStk) mov.m r24=ar.rnat; \ ar 78 arch/ia64/kernel/minstate.h (pUStk) mov r23=ar.bspstore; /* save ar.bspstore */ \ ar 80 arch/ia64/kernel/minstate.h (pUStk) mov ar.bspstore=r22; /* switch to kernel RBS */ \ ar 83 arch/ia64/kernel/minstate.h (pUStk) mov r18=ar.bsp; \ ar 84 arch/ia64/kernel/minstate.h (pUStk) mov ar.rsc=0x3; /* set eager mode, pl 0, little-endian, loadrs=0 */ \ ar 109 arch/ia64/kernel/minstate.h mov r8=ar.ccv; \ ar 110 arch/ia64/kernel/minstate.h mov r9=ar.csd; \ ar 111 arch/ia64/kernel/minstate.h mov r10=ar.ssd; \ ar 194 arch/ia64/kernel/minstate.h mov ar.fpsr=r11; /* M-unit */ \ ar 231 arch/ia64/kernel/minstate.h mov ar.pfs=r17; \ ar 238 arch/ia64/kernel/minstate.h mov ar.rsc=r0 \ ar 242 arch/ia64/kernel/minstate.h mov ar.bspstore=r22 \ ar 244 arch/ia64/kernel/minstate.h mov r18=ar.bsp; \ ar 738 arch/ia64/kernel/palinfo.c unsigned long ar:3; ar 800 arch/ia64/kernel/palinfo.c gr_reg->pl, gr_reg->ar, rid_reg->rid, gr_reg->p, gr_reg->ma, ar 870 arch/ia64/kernel/ptrace.c retval |= __put_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]); ar 871 arch/ia64/kernel/ptrace.c retval |= __put_user(pt->ar_rsc, &ppr->ar[PT_AUR_RSC]); ar 872 arch/ia64/kernel/ptrace.c retval |= __put_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]); ar 873 arch/ia64/kernel/ptrace.c retval |= __put_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]); ar 874 arch/ia64/kernel/ptrace.c retval |= __put_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]); ar 875 arch/ia64/kernel/ptrace.c retval |= __put_user(pt->ar_fpsr, &ppr->ar[PT_AUR_FPSR]); ar 877 arch/ia64/kernel/ptrace.c retval |= __put_user(ec, &ppr->ar[PT_AUR_EC]); ar 878 arch/ia64/kernel/ptrace.c retval |= __put_user(lc, &ppr->ar[PT_AUR_LC]); ar 879 arch/ia64/kernel/ptrace.c retval |= __put_user(rnat, &ppr->ar[PT_AUR_RNAT]); ar 880 arch/ia64/kernel/ptrace.c retval |= __put_user(bsp, &ppr->ar[PT_AUR_BSP]); ar 1006 arch/ia64/kernel/ptrace.c retval |= __get_user(pt->ar_pfs, &ppr->ar[PT_AUR_PFS]); ar 1007 arch/ia64/kernel/ptrace.c retval |= __get_user(rsc, &ppr->ar[PT_AUR_RSC]); ar 1008 arch/ia64/kernel/ptrace.c retval |= __get_user(pt->ar_bspstore, &ppr->ar[PT_AUR_BSPSTORE]); ar 1009 arch/ia64/kernel/ptrace.c retval |= __get_user(pt->ar_unat, &ppr->ar[PT_AUR_UNAT]); ar 1010 arch/ia64/kernel/ptrace.c retval |= __get_user(pt->ar_ccv, &ppr->ar[PT_AUR_CCV]); ar 1011 arch/ia64/kernel/ptrace.c retval |= __get_user(pt->ar_fpsr, &ppr->ar[PT_AUR_FPSR]); ar 1013 arch/ia64/kernel/ptrace.c retval |= __get_user(ec, &ppr->ar[PT_AUR_EC]); ar 1014 arch/ia64/kernel/ptrace.c retval |= __get_user(lc, &ppr->ar[PT_AUR_LC]); ar 1015 arch/ia64/kernel/ptrace.c retval |= __get_user(rnat, &ppr->ar[PT_AUR_RNAT]); ar 1016 arch/ia64/kernel/ptrace.c retval |= __get_user(bsp, &ppr->ar[PT_AUR_BSP]); ar 662 arch/powerpc/sysdev/fsl_pci.c u32 ar; ar 899 arch/powerpc/sysdev/fsl_pci.c if (!(in_le32(&in[i].ar) & PEX_RCIWARn_EN)) ar 70 arch/s390/include/asm/nmi.h u64 ar : 1; /* 33 access register validity */ ar 39 arch/s390/include/uapi/asm/guarded_storage.h __u8 ar : 4; ar 256 arch/s390/kernel/nmi.c if (!mci.ar) { ar 379 arch/s390/kvm/gaccess.c static int ar_translation(struct kvm_vcpu *vcpu, union asce *asce, u8 ar, ar 390 arch/s390/kvm/gaccess.c if (ar >= NUM_ACRS) ar 394 arch/s390/kvm/gaccess.c alet.val = vcpu->run->s.regs.acrs[ar]; ar 396 arch/s390/kvm/gaccess.c if (ar == 0 || alet.val == 0) { ar 494 arch/s390/kvm/gaccess.c u8 ar, enum gacc_mode mode, enum prot_type prot) ar 548 arch/s390/kvm/gaccess.c pgm->exc_access_id = ar; ar 555 arch/s390/kvm/gaccess.c unsigned long ga, u8 ar, enum gacc_mode mode) ar 580 arch/s390/kvm/gaccess.c rc = ar_translation(vcpu, asce, ar, mode); ar 582 arch/s390/kvm/gaccess.c return trans_exc(vcpu, rc, ga, ar, mode, PROT_TYPE_ALC); ar 797 arch/s390/kvm/gaccess.c static int guest_page_range(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, ar 809 arch/s390/kvm/gaccess.c return trans_exc(vcpu, PGM_PROTECTION, ga, ar, mode, ar 822 arch/s390/kvm/gaccess.c return trans_exc(vcpu, rc, ga, ar, mode, prot); ar 830 arch/s390/kvm/gaccess.c int access_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data, ar 844 arch/s390/kvm/gaccess.c rc = get_vcpu_asce(vcpu, &asce, ga, ar, mode); ar 856 arch/s390/kvm/gaccess.c rc = guest_page_range(vcpu, ga, ar, pages, nr_pages, asce, mode); ar 904 arch/s390/kvm/gaccess.c int guest_translate_address(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar, ar 913 arch/s390/kvm/gaccess.c rc = get_vcpu_asce(vcpu, &asce, gva, ar, mode); ar 938 arch/s390/kvm/gaccess.c int check_gva_range(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar, ar 948 arch/s390/kvm/gaccess.c rc = guest_translate_address(vcpu, gva, ar, &gpa, mode); ar 162 arch/s390/kvm/gaccess.h u8 ar, unsigned long *gpa, enum gacc_mode mode); ar 163 arch/s390/kvm/gaccess.h int check_gva_range(struct kvm_vcpu *vcpu, unsigned long gva, u8 ar, ar 166 arch/s390/kvm/gaccess.h int access_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data, ar 218 arch/s390/kvm/gaccess.h int write_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data, ar 221 arch/s390/kvm/gaccess.h return access_guest(vcpu, ga, ar, data, len, GACC_STORE); ar 238 arch/s390/kvm/gaccess.h int read_guest(struct kvm_vcpu *vcpu, unsigned long ga, u8 ar, void *data, ar 241 arch/s390/kvm/gaccess.h return access_guest(vcpu, ga, ar, data, len, GACC_FETCH); ar 4265 arch/s390/kvm/kvm-s390.c if (mop->flags & ~supported_flags || mop->ar >= NUM_ACRS || !mop->size) ar 4282 arch/s390/kvm/kvm-s390.c r = check_gva_range(vcpu, mop->gaddr, mop->ar, ar 4286 arch/s390/kvm/kvm-s390.c r = read_guest(vcpu, mop->gaddr, mop->ar, tmpbuf, mop->size); ar 4294 arch/s390/kvm/kvm-s390.c r = check_gva_range(vcpu, mop->gaddr, mop->ar, ar 4302 arch/s390/kvm/kvm-s390.c r = write_guest(vcpu, mop->gaddr, mop->ar, tmpbuf, mop->size); ar 99 arch/s390/kvm/kvm-s390.h static inline u64 kvm_s390_get_base_disp_s(struct kvm_vcpu *vcpu, u8 *ar) ar 104 arch/s390/kvm/kvm-s390.h if (ar) ar 105 arch/s390/kvm/kvm-s390.h *ar = base2; ar 136 arch/s390/kvm/kvm-s390.h static inline u64 kvm_s390_get_base_disp_rsy(struct kvm_vcpu *vcpu, u8 *ar) ar 145 arch/s390/kvm/kvm-s390.h if (ar) ar 146 arch/s390/kvm/kvm-s390.h *ar = base2; ar 151 arch/s390/kvm/kvm-s390.h static inline u64 kvm_s390_get_base_disp_rs(struct kvm_vcpu *vcpu, u8 *ar) ar 156 arch/s390/kvm/kvm-s390.h if (ar) ar 157 arch/s390/kvm/kvm-s390.h *ar = base2; ar 90 arch/s390/kvm/priv.c u8 ar; ar 98 arch/s390/kvm/priv.c op2 = kvm_s390_get_base_disp_s(vcpu, &ar); ar 101 arch/s390/kvm/priv.c rc = read_guest(vcpu, op2, ar, >od.tod, sizeof(gtod.tod)); ar 117 arch/s390/kvm/priv.c u8 ar; ar 124 arch/s390/kvm/priv.c operand2 = kvm_s390_get_base_disp_s(vcpu, &ar); ar 131 arch/s390/kvm/priv.c rc = read_guest(vcpu, operand2, ar, &address, sizeof(address)); ar 155 arch/s390/kvm/priv.c u8 ar; ar 162 arch/s390/kvm/priv.c operand2 = kvm_s390_get_base_disp_s(vcpu, &ar); ar 171 arch/s390/kvm/priv.c rc = write_guest(vcpu, operand2, ar, &address, sizeof(address)); ar 185 arch/s390/kvm/priv.c u8 ar; ar 192 arch/s390/kvm/priv.c ga = kvm_s390_get_base_disp_s(vcpu, &ar); ar 197 arch/s390/kvm/priv.c rc = write_guest(vcpu, ga, ar, &vcpu_id, sizeof(vcpu_id)); ar 475 arch/s390/kvm/priv.c u8 ar; ar 479 arch/s390/kvm/priv.c addr = kvm_s390_get_base_disp_s(vcpu, &ar); ar 498 arch/s390/kvm/priv.c rc = write_guest(vcpu, addr, ar, &tpi_data, len); ar 733 arch/s390/kvm/priv.c u8 ar; ar 740 arch/s390/kvm/priv.c addr = kvm_s390_get_base_disp_s(vcpu, &ar); ar 744 arch/s390/kvm/priv.c rc = read_guest(vcpu, addr, ar, &new_psw, sizeof(new_psw)); ar 762 arch/s390/kvm/priv.c u8 ar; ar 769 arch/s390/kvm/priv.c addr = kvm_s390_get_base_disp_s(vcpu, &ar); ar 772 arch/s390/kvm/priv.c rc = read_guest(vcpu, addr, ar, &new_psw, sizeof(new_psw)); ar 786 arch/s390/kvm/priv.c u8 ar; ar 793 arch/s390/kvm/priv.c operand2 = kvm_s390_get_base_disp_s(vcpu, &ar); ar 798 arch/s390/kvm/priv.c rc = write_guest(vcpu, operand2, ar, &stidp_data, sizeof(stidp_data)); ar 833 arch/s390/kvm/priv.c static void insert_stsi_usr_data(struct kvm_vcpu *vcpu, u64 addr, u8 ar, ar 838 arch/s390/kvm/priv.c vcpu->run->s390_stsi.ar = ar; ar 852 arch/s390/kvm/priv.c u8 ar; ar 875 arch/s390/kvm/priv.c operand2 = kvm_s390_get_base_disp_s(vcpu, &ar); ar 899 arch/s390/kvm/priv.c rc = write_guest(vcpu, operand2, ar, (void *)mem, PAGE_SIZE); ar 905 arch/s390/kvm/priv.c insert_stsi_usr_data(vcpu, operand2, ar, fc, sel1, sel2); ar 1281 arch/s390/kvm/priv.c u8 ar; ar 1288 arch/s390/kvm/priv.c ga = kvm_s390_get_base_disp_rs(vcpu, &ar); ar 1297 arch/s390/kvm/priv.c rc = read_guest(vcpu, ga, ar, ctl_array, nr_regs * sizeof(u32)); ar 1320 arch/s390/kvm/priv.c u8 ar; ar 1327 arch/s390/kvm/priv.c ga = kvm_s390_get_base_disp_rs(vcpu, &ar); ar 1343 arch/s390/kvm/priv.c rc = write_guest(vcpu, ga, ar, ctl_array, nr_regs * sizeof(u32)); ar 1354 arch/s390/kvm/priv.c u8 ar; ar 1361 arch/s390/kvm/priv.c ga = kvm_s390_get_base_disp_rsy(vcpu, &ar); ar 1370 arch/s390/kvm/priv.c rc = read_guest(vcpu, ga, ar, ctl_array, nr_regs * sizeof(u64)); ar 1392 arch/s390/kvm/priv.c u8 ar; ar 1399 arch/s390/kvm/priv.c ga = kvm_s390_get_base_disp_rsy(vcpu, &ar); ar 1415 arch/s390/kvm/priv.c rc = write_guest(vcpu, ga, ar, ctl_array, nr_regs * sizeof(u64)); ar 1441 arch/s390/kvm/priv.c u8 ar; ar 1448 arch/s390/kvm/priv.c kvm_s390_get_base_disp_sse(vcpu, &address1, &address2, &ar, NULL); ar 1457 arch/s390/kvm/priv.c ret = guest_translate_address(vcpu, address1, ar, &gpa, GACC_STORE); ar 1461 arch/s390/kvm/priv.c ret = guest_translate_address(vcpu, address1, ar, &gpa, ar 443 arch/x86/include/asm/vmx.h #define VMX_AR_DPL(ar) (((ar) >> VMX_AR_DPL_SHIFT) & 3) ar 76 arch/x86/kernel/signal.c u32 ar; ar 81 arch/x86/kernel/signal.c : [ar] "=r" (ar) ar 90 arch/x86/kernel/signal.c ar &= AR_DPL_MASK | AR_S | AR_P | AR_TYPE_MASK; ar 91 arch/x86/kernel/signal.c if (ar != (AR_DPL3 | AR_S | AR_P | AR_TYPE_RWDATA) && ar 92 arch/x86/kernel/signal.c ar != (AR_DPL3 | AR_S | AR_P | AR_TYPE_RWDATA_EXPDOWN)) ar 744 arch/x86/kvm/vmx/vmx.c u32 *p = &vmx->segment_cache.seg[seg].ar; ar 3082 arch/x86/kvm/vmx/vmx.c u32 ar; ar 3096 arch/x86/kvm/vmx/vmx.c ar = vmx_read_guest_seg_ar(vmx, seg); ar 3097 arch/x86/kvm/vmx/vmx.c var->unusable = (ar >> 16) & 1; ar 3098 arch/x86/kvm/vmx/vmx.c var->type = ar & 15; ar 3099 arch/x86/kvm/vmx/vmx.c var->s = (ar >> 4) & 1; ar 3100 arch/x86/kvm/vmx/vmx.c var->dpl = (ar >> 5) & 3; ar 3109 arch/x86/kvm/vmx/vmx.c var->avl = (ar >> 12) & 1; ar 3110 arch/x86/kvm/vmx/vmx.c var->l = (ar >> 13) & 1; ar 3111 arch/x86/kvm/vmx/vmx.c var->db = (ar >> 14) & 1; ar 3112 arch/x86/kvm/vmx/vmx.c var->g = (ar >> 15) & 1; ar 3133 arch/x86/kvm/vmx/vmx.c int ar = vmx_read_guest_seg_ar(vmx, VCPU_SREG_SS); ar 3134 arch/x86/kvm/vmx/vmx.c return VMX_AR_DPL(ar); ar 3140 arch/x86/kvm/vmx/vmx.c u32 ar; ar 3143 arch/x86/kvm/vmx/vmx.c ar = 1 << 16; ar 3145 arch/x86/kvm/vmx/vmx.c ar = var->type & 15; ar 3146 arch/x86/kvm/vmx/vmx.c ar |= (var->s & 1) << 4; ar 3147 arch/x86/kvm/vmx/vmx.c ar |= (var->dpl & 3) << 5; ar 3148 arch/x86/kvm/vmx/vmx.c ar |= (var->present & 1) << 7; ar 3149 arch/x86/kvm/vmx/vmx.c ar |= (var->avl & 1) << 12; ar 3150 arch/x86/kvm/vmx/vmx.c ar |= (var->l & 1) << 13; ar 3151 arch/x86/kvm/vmx/vmx.c ar |= (var->db & 1) << 14; ar 3152 arch/x86/kvm/vmx/vmx.c ar |= (var->g & 1) << 15; ar 3155 arch/x86/kvm/vmx/vmx.c return ar; ar 3200 arch/x86/kvm/vmx/vmx.c u32 ar = vmx_read_guest_seg_ar(to_vmx(vcpu), VCPU_SREG_CS); ar 3202 arch/x86/kvm/vmx/vmx.c *db = (ar >> 14) & 1; ar 3203 arch/x86/kvm/vmx/vmx.c *l = (ar >> 13) & 1; ar 3233 arch/x86/kvm/vmx/vmx.c u32 ar; ar 3239 arch/x86/kvm/vmx/vmx.c ar = vmx_segment_access_rights(&var); ar 3245 arch/x86/kvm/vmx/vmx.c if (ar != 0xf3) ar 3505 arch/x86/kvm/vmx/vmx.c unsigned int ar; ar 3510 arch/x86/kvm/vmx/vmx.c ar = 0x93; ar 3512 arch/x86/kvm/vmx/vmx.c ar |= 0x08; /* code segment */ ar 3514 arch/x86/kvm/vmx/vmx.c vmcs_write32(sf->ar_bytes, ar); ar 244 arch/x86/kvm/vmx/vmx.h u32 ar; ar 49 arch/xtensa/include/asm/asmmacro.h .macro __loopi ar, at, size, incr ar 65 arch/xtensa/include/asm/asmmacro.h .macro __loops ar, as, at, incr_log2, mask_log2, cond, ncond ar 104 arch/xtensa/include/asm/asmmacro.h .macro __loopt ar, as, at, incr_log2 ar 137 arch/xtensa/include/asm/asmmacro.h .macro __endl ar, as ar 148 arch/xtensa/include/asm/asmmacro.h .macro __endla ar, as, incr ar 35 arch/xtensa/include/asm/cacheasm.h .macro __loop_cache_unroll ar at insn size line_width max_immed ar 56 arch/xtensa/include/asm/cacheasm.h .macro __loop_cache_all ar at insn size line_width max_immed ar 64 arch/xtensa/include/asm/cacheasm.h .macro __loop_cache_range ar as at insn line_width ar 76 arch/xtensa/include/asm/cacheasm.h .macro __loop_cache_page ar at insn line_width max_immed ar 83 arch/xtensa/include/asm/cacheasm.h .macro ___unlock_dcache_all ar at ar 93 arch/xtensa/include/asm/cacheasm.h .macro ___unlock_icache_all ar at ar 103 arch/xtensa/include/asm/cacheasm.h .macro ___flush_invalidate_dcache_all ar at ar 113 arch/xtensa/include/asm/cacheasm.h .macro ___flush_dcache_all ar at ar 123 arch/xtensa/include/asm/cacheasm.h .macro ___invalidate_dcache_all ar at ar 133 arch/xtensa/include/asm/cacheasm.h .macro ___invalidate_icache_all ar at ar 144 arch/xtensa/include/asm/cacheasm.h .macro ___flush_invalidate_dcache_range ar as at ar 153 arch/xtensa/include/asm/cacheasm.h .macro ___flush_dcache_range ar as at ar 162 arch/xtensa/include/asm/cacheasm.h .macro ___invalidate_dcache_range ar as at ar 171 arch/xtensa/include/asm/cacheasm.h .macro ___invalidate_icache_range ar as at ar 181 arch/xtensa/include/asm/cacheasm.h .macro ___flush_invalidate_dcache_page ar as ar 190 arch/xtensa/include/asm/cacheasm.h .macro ___flush_dcache_page ar as ar 199 arch/xtensa/include/asm/cacheasm.h .macro ___invalidate_dcache_page ar as ar 208 arch/xtensa/include/asm/cacheasm.h .macro ___invalidate_icache_page ar as ar 291 drivers/clk/clk-aspeed.c struct aspeed_reset *ar = to_aspeed_reset(rcdev); ar 300 drivers/clk/clk-aspeed.c return regmap_update_bits(ar->map, reg, BIT(bit), 0); ar 306 drivers/clk/clk-aspeed.c struct aspeed_reset *ar = to_aspeed_reset(rcdev); ar 315 drivers/clk/clk-aspeed.c return regmap_update_bits(ar->map, reg, BIT(bit), BIT(bit)); ar 321 drivers/clk/clk-aspeed.c struct aspeed_reset *ar = to_aspeed_reset(rcdev); ar 331 drivers/clk/clk-aspeed.c ret = regmap_read(ar->map, reg, &val); ar 385 drivers/clk/clk-aspeed.c struct aspeed_reset *ar; ar 397 drivers/clk/clk-aspeed.c ar = devm_kzalloc(dev, sizeof(*ar), GFP_KERNEL); ar 398 drivers/clk/clk-aspeed.c if (!ar) ar 401 drivers/clk/clk-aspeed.c ar->map = map; ar 402 drivers/clk/clk-aspeed.c ar->rcdev.owner = THIS_MODULE; ar 403 drivers/clk/clk-aspeed.c ar->rcdev.nr_resets = ARRAY_SIZE(aspeed_resets); ar 404 drivers/clk/clk-aspeed.c ar->rcdev.ops = &aspeed_reset_ops; ar 405 drivers/clk/clk-aspeed.c ar->rcdev.of_node = dev->of_node; ar 407 drivers/clk/clk-aspeed.c ret = devm_reset_controller_register(dev, &ar->rcdev); ar 315 drivers/clk/clk-ast2600.c struct aspeed_reset *ar = to_aspeed_reset(rcdev); ar 320 drivers/clk/clk-ast2600.c return regmap_write(ar->map, reg + 0x04, rst); ar 326 drivers/clk/clk-ast2600.c struct aspeed_reset *ar = to_aspeed_reset(rcdev); ar 330 drivers/clk/clk-ast2600.c return regmap_write(ar->map, reg, rst); ar 336 drivers/clk/clk-ast2600.c struct aspeed_reset *ar = to_aspeed_reset(rcdev); ar 342 drivers/clk/clk-ast2600.c ret = regmap_read(ar->map, reg, &val); ar 410 drivers/clk/clk-ast2600.c struct aspeed_reset *ar; ar 422 drivers/clk/clk-ast2600.c ar = devm_kzalloc(dev, sizeof(*ar), GFP_KERNEL); ar 423 drivers/clk/clk-ast2600.c if (!ar) ar 426 drivers/clk/clk-ast2600.c ar->map = map; ar 428 drivers/clk/clk-ast2600.c ar->rcdev.owner = THIS_MODULE; ar 429 drivers/clk/clk-ast2600.c ar->rcdev.nr_resets = 64; ar 430 drivers/clk/clk-ast2600.c ar->rcdev.ops = &aspeed_g6_reset_ops; ar 431 drivers/clk/clk-ast2600.c ar->rcdev.of_node = dev->of_node; ar 433 drivers/clk/clk-ast2600.c ret = devm_reset_controller_register(dev, &ar->rcdev); ar 34 drivers/edac/cell_edac.c static void cell_edac_count_ce(struct mem_ctl_info *mci, int chan, u64 ar) ar 41 drivers/edac/cell_edac.c priv->node, chan, ar); ar 44 drivers/edac/cell_edac.c address = (ar & 0xffffffffe0000000ul) >> 29; ar 49 drivers/edac/cell_edac.c syndrome = (ar & 0x000000001fe00000ul) >> 21; ar 57 drivers/edac/cell_edac.c static void cell_edac_count_ue(struct mem_ctl_info *mci, int chan, u64 ar) ar 64 drivers/edac/cell_edac.c priv->node, chan, ar); ar 67 drivers/edac/cell_edac.c address = (ar & 0xffffffffe0000000ul) >> 29; ar 247 drivers/gpu/drm/ast/ast_drv.h u8 ar[20]; ar 264 drivers/gpu/drm/ast/ast_mode.c jreg = stdtable->ar[i]; ar 237 drivers/media/pci/saa7164/saa7164-api.c struct tmComResEncVideoInputAspectRatio ar; ar 280 drivers/media/pci/saa7164/saa7164-api.c ar.width = 0; ar 281 drivers/media/pci/saa7164/saa7164-api.c ar.height = 0; ar 284 drivers/media/pci/saa7164/saa7164-api.c sizeof(struct tmComResEncVideoInputAspectRatio), &ar); ar 305 drivers/media/pci/saa7164/saa7164-api.c ar.width, ar.height); ar 313 drivers/media/pci/saa7164/saa7164-api.c struct tmComResEncVideoInputAspectRatio ar; ar 321 drivers/media/pci/saa7164/saa7164-api.c ar.width = 1; ar 322 drivers/media/pci/saa7164/saa7164-api.c ar.height = 1; ar 325 drivers/media/pci/saa7164/saa7164-api.c ar.width = 4; ar 326 drivers/media/pci/saa7164/saa7164-api.c ar.height = 3; ar 329 drivers/media/pci/saa7164/saa7164-api.c ar.width = 16; ar 330 drivers/media/pci/saa7164/saa7164-api.c ar.height = 9; ar 333 drivers/media/pci/saa7164/saa7164-api.c ar.width = 221; ar 334 drivers/media/pci/saa7164/saa7164-api.c ar.height = 100; ar 342 drivers/media/pci/saa7164/saa7164-api.c ar.width, ar.height); ar 347 drivers/media/pci/saa7164/saa7164-api.c sizeof(struct tmComResEncVideoInputAspectRatio), &ar); ar 347 drivers/net/ethernet/aquantia/atlantic/aq_nic.c self->mc_list.ar, ar 644 drivers/net/ethernet/aquantia/atlantic/aq_nic.c ether_addr_copy(self->mc_list.ar[i++], ha->addr); ar 654 drivers/net/ethernet/aquantia/atlantic/aq_nic.c ether_addr_copy(self->mc_list.ar[i++], ar 663 drivers/net/ethernet/aquantia/atlantic/aq_nic.c self->mc_list.ar, ar 101 drivers/net/ethernet/aquantia/atlantic/aq_nic.h u8 ar[AQ_HW_MULTICAST_ADDRESS_MAX][ETH_ALEN]; ar 5176 drivers/net/ethernet/broadcom/bnxt/bnxt.c req.ar = cpu_to_le16(bp->grp_info[grp_idx].agg_fw_ring_id); ar 5332 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h __le16 ar; ar 655 drivers/net/ethernet/freescale/fman/fman_keygen.c u32 ar; ar 683 drivers/net/ethernet/freescale/fman/fman_keygen.c ar = build_ar_bind_scheme(i, true); ar 684 drivers/net/ethernet/freescale/fman/fman_keygen.c keygen_write_ar_wait(keygen_regs, ar); ar 688 drivers/net/ethernet/freescale/fman/fman_keygen.c ar = build_ar_bind_cls_plan(i, true); ar 689 drivers/net/ethernet/freescale/fman/fman_keygen.c keygen_write_ar_wait(keygen_regs, ar); ar 45 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_submit_rx_cmd(struct ar5523 *ar); ar 46 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_data_tx_pkt_put(struct ar5523 *ar); ar 48 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_read_reply(struct ar5523 *ar, struct ar5523_cmd_hdr *hdr, ar 61 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "Code = %d len = %d\n", be32_to_cpu(hdr->code) & 0xff, ar 77 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "olen to small %d < %d\n", ar 94 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = urb->context; ar 95 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523_tx_cmd *cmd = &ar->tx_cmd; ar 96 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523_cmd_hdr *hdr = ar->rx_cmd_buf; ar 102 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "RX USB error %d.\n", urb->status); ar 107 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "RX USB to short.\n"); ar 111 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "%s code %02x priv %d\n", __func__, ar 121 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Unexpected command id: %02x\n", ar 125 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_read_reply(ar, hdr, cmd); ar 129 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "WDCMSG_DEVICE_AVAIL\n"); ar 136 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "WDCMSG_SEND_COMPLETE: %d pending\n", ar 137 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_pending)); ar 138 drivers/net/wireless/ath/ar5523/ar5523.c if (!test_bit(AR5523_HW_UP, &ar->flags)) ar 139 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "Unexpected WDCMSG_SEND_COMPLETE\n"); ar 141 drivers/net/wireless/ath/ar5523/ar5523.c mod_timer(&ar->tx_wd_timer, ar 143 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_data_tx_pkt_put(ar); ar 153 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Invalid reply to WDCMSG_TARGET_START"); ar 163 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "WDCMSG_STATS_UPDATE\n"); ar 168 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_submit_rx_cmd(ar); ar 171 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_alloc_rx_cmd(struct ar5523 *ar) ar 173 drivers/net/wireless/ath/ar5523/ar5523.c ar->rx_cmd_urb = usb_alloc_urb(0, GFP_KERNEL); ar 174 drivers/net/wireless/ath/ar5523/ar5523.c if (!ar->rx_cmd_urb) ar 177 drivers/net/wireless/ath/ar5523/ar5523.c ar->rx_cmd_buf = usb_alloc_coherent(ar->dev, AR5523_MAX_RXCMDSZ, ar 179 drivers/net/wireless/ath/ar5523/ar5523.c &ar->rx_cmd_urb->transfer_dma); ar 180 drivers/net/wireless/ath/ar5523/ar5523.c if (!ar->rx_cmd_buf) { ar 181 drivers/net/wireless/ath/ar5523/ar5523.c usb_free_urb(ar->rx_cmd_urb); ar 187 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_cancel_rx_cmd(struct ar5523 *ar) ar 189 drivers/net/wireless/ath/ar5523/ar5523.c usb_kill_urb(ar->rx_cmd_urb); ar 192 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_free_rx_cmd(struct ar5523 *ar) ar 194 drivers/net/wireless/ath/ar5523/ar5523.c usb_free_coherent(ar->dev, AR5523_MAX_RXCMDSZ, ar 195 drivers/net/wireless/ath/ar5523/ar5523.c ar->rx_cmd_buf, ar->rx_cmd_urb->transfer_dma); ar 196 drivers/net/wireless/ath/ar5523/ar5523.c usb_free_urb(ar->rx_cmd_urb); ar 199 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_submit_rx_cmd(struct ar5523 *ar) ar 203 drivers/net/wireless/ath/ar5523/ar5523.c usb_fill_bulk_urb(ar->rx_cmd_urb, ar->dev, ar 204 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cmd_rx_pipe(ar->dev), ar->rx_cmd_buf, ar 205 drivers/net/wireless/ath/ar5523/ar5523.c AR5523_MAX_RXCMDSZ, ar5523_cmd_rx_cb, ar); ar 206 drivers/net/wireless/ath/ar5523/ar5523.c ar->rx_cmd_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; ar 208 drivers/net/wireless/ath/ar5523/ar5523.c error = usb_submit_urb(ar->rx_cmd_urb, GFP_ATOMIC); ar 211 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "error %d when submitting rx urb\n", ar 224 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = cmd->ar; ar 227 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Failed to TX command. Status = %d\n", ar 240 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_cmd(struct ar5523 *ar, u32 code, const void *idata, ar 244 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523_tx_cmd *cmd = &ar->tx_cmd; ar 265 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "do cmd %02x\n", code); ar 267 drivers/net/wireless/ath/ar5523/ar5523.c usb_fill_bulk_urb(cmd->urb_tx, ar->dev, ar5523_cmd_tx_pipe(ar->dev), ar 273 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not send command 0x%x, error=%d\n", ar 280 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "timeout waiting for command %02x reply\n", ar 287 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_cmd_write(struct ar5523 *ar, u32 code, const void *data, ar 291 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd(ar, code, data, len, NULL, 0, flags); ar 294 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_cmd_read(struct ar5523 *ar, u32 code, const void *idata, ar 298 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd(ar, code, idata, ilen, odata, olen, flags); ar 301 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_config(struct ar5523 *ar, u32 reg, u32 val) ar 310 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_cmd_write(ar, WDCMSG_TARGET_SET_CONFIG, &write, ar 313 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not write register 0x%02x\n", reg); ar 317 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_config_multi(struct ar5523 *ar, u32 reg, const void *data, ar 328 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_cmd_write(ar, WDCMSG_TARGET_SET_CONFIG, &write, ar 331 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not write %d bytes to register 0x%02x\n", ar 336 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_get_status(struct ar5523 *ar, u32 which, void *odata, ar 343 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_cmd_read(ar, WDCMSG_TARGET_GET_STATUS, ar 346 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not read EEPROM offset 0x%02x\n", which); ar 350 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_get_capability(struct ar5523 *ar, u32 cap, u32 *val) ar 356 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_cmd_read(ar, WDCMSG_TARGET_GET_CAPABILITY, &cap_be, ar 360 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not read capability %u\n", cap); ar 367 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_get_devcap(struct ar5523 *ar) ar 370 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_get_capability(ar, x, &cap); \ ar 373 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_info(ar, "Cap: " \ ar 416 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_set_ledsteady(struct ar5523 *ar, int lednum, int ledmode) ar 423 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "set %s led %s (steady)\n", ar 426 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_SET_LED_STEADY, &led, sizeof(led), ar 430 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_set_rxfilter(struct ar5523 *ar, u32 bits, u32 op) ar 437 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "setting Rx filter=0x%x flags=0x%x\n", bits, op); ar 438 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_RX_FILTER, &rxfilter, ar 442 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_reset_tx_queues(struct ar5523 *ar) ar 446 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "resetting Tx queue\n"); ar 447 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_RELEASE_TX_QUEUE, ar 451 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_set_chan(struct ar5523 *ar) ar 453 drivers/net/wireless/ath/ar5523/ar5523.c struct ieee80211_conf *conf = &ar->hw->conf; ar 465 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "set chan flags 0x%x freq %d\n", ar 468 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_RESET, &reset, sizeof(reset), 0); ar 471 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_queue_init(struct ar5523 *ar) ar 475 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "setting up Tx queue\n"); ar 485 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_SETUP_TX_QUEUE, &qinfo, ar 489 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_switch_chan(struct ar5523 *ar) ar 493 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_set_chan(ar); ar 495 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not set chan, error %d\n", error); ar 500 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_reset_tx_queues(ar); ar 502 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not reset Tx queues, error %d\n", ar 507 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_queue_init(ar); ar 509 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not init wme, error %d\n", error); ar 515 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_rx_data_put(struct ar5523 *ar, ar 519 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->rx_data_list_lock, flags); ar 520 drivers/net/wireless/ath/ar5523/ar5523.c list_move(&data->list, &ar->rx_data_free); ar 521 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->rx_data_list_lock, flags); ar 527 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = data->ar; ar 530 drivers/net/wireless/ath/ar5523/ar5523.c struct ieee80211_hw *hw = ar->hw; ar 536 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "%s\n", __func__); ar 540 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "%s: USB err: %d\n", __func__, ar 546 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "RX: wrong xfer size (usblen=%d)\n", usblen); ar 554 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "RX: No final flag. s: %d f: %02x l: %d\n", ar 565 drivers/net/wireless/ath/ar5523/ar5523.c if (rxlen > ar->rxbufsz) { ar 566 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "RX: Bad descriptor (len=%d)\n", ar 572 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "RX: rxlen is 0\n"); ar 577 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "Bad RX status (0x%x len = %d). Skip\n", ar 587 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "eek, alignment workaround activated\n"); ar 609 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_rx_data_put(ar, data); ar 610 drivers/net/wireless/ath/ar5523/ar5523.c if (atomic_inc_return(&ar->rx_data_free_cnt) >= ar 612 drivers/net/wireless/ath/ar5523/ar5523.c test_bit(AR5523_HW_UP, &ar->flags)) ar 613 drivers/net/wireless/ath/ar5523/ar5523.c queue_work(ar->wq, &ar->rx_refill_work); ar 618 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = container_of(work, struct ar5523, rx_refill_work); ar 623 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "%s\n", __func__); ar 625 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->rx_data_list_lock, flags); ar 627 drivers/net/wireless/ath/ar5523/ar5523.c if (!list_empty(&ar->rx_data_free)) ar 628 drivers/net/wireless/ath/ar5523/ar5523.c data = (struct ar5523_rx_data *) ar->rx_data_free.next; ar 631 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->rx_data_list_lock, flags); ar 636 drivers/net/wireless/ath/ar5523/ar5523.c data->skb = alloc_skb(ar->rxbufsz, GFP_KERNEL); ar 638 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not allocate rx skbuff\n"); ar 642 drivers/net/wireless/ath/ar5523/ar5523.c usb_fill_bulk_urb(data->urb, ar->dev, ar 643 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_data_rx_pipe(ar->dev), data->skb->data, ar 644 drivers/net/wireless/ath/ar5523/ar5523.c ar->rxbufsz, ar5523_data_rx_cb, data); ar 646 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->rx_data_list_lock, flags); ar 647 drivers/net/wireless/ath/ar5523/ar5523.c list_move(&data->list, &ar->rx_data_used); ar 648 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->rx_data_list_lock, flags); ar 649 drivers/net/wireless/ath/ar5523/ar5523.c atomic_dec(&ar->rx_data_free_cnt); ar 655 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Err sending rx data urb %d\n", ar 657 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_rx_data_put(ar, data); ar 658 drivers/net/wireless/ath/ar5523/ar5523.c atomic_inc(&ar->rx_data_free_cnt); ar 667 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_cancel_rx_bufs(struct ar5523 *ar) ar 673 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->rx_data_list_lock, flags); ar 674 drivers/net/wireless/ath/ar5523/ar5523.c if (!list_empty(&ar->rx_data_used)) ar 675 drivers/net/wireless/ath/ar5523/ar5523.c data = (struct ar5523_rx_data *) ar->rx_data_used.next; ar 678 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->rx_data_list_lock, flags); ar 684 drivers/net/wireless/ath/ar5523/ar5523.c list_move(&data->list, &ar->rx_data_free); ar 685 drivers/net/wireless/ath/ar5523/ar5523.c atomic_inc(&ar->rx_data_free_cnt); ar 689 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_free_rx_bufs(struct ar5523 *ar) ar 693 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cancel_rx_bufs(ar); ar 694 drivers/net/wireless/ath/ar5523/ar5523.c while (!list_empty(&ar->rx_data_free)) { ar 695 drivers/net/wireless/ath/ar5523/ar5523.c data = (struct ar5523_rx_data *) ar->rx_data_free.next; ar 701 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_alloc_rx_bufs(struct ar5523 *ar) ar 706 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523_rx_data *data = &ar->rx_data[i]; ar 708 drivers/net/wireless/ath/ar5523/ar5523.c data->ar = ar; ar 712 drivers/net/wireless/ath/ar5523/ar5523.c list_add_tail(&data->list, &ar->rx_data_free); ar 713 drivers/net/wireless/ath/ar5523/ar5523.c atomic_inc(&ar->rx_data_free_cnt); ar 718 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_free_rx_bufs(ar); ar 722 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_data_tx_pkt_put(struct ar5523 *ar) ar 724 drivers/net/wireless/ath/ar5523/ar5523.c atomic_dec(&ar->tx_nr_total); ar 725 drivers/net/wireless/ath/ar5523/ar5523.c if (!atomic_dec_return(&ar->tx_nr_pending)) { ar 726 drivers/net/wireless/ath/ar5523/ar5523.c del_timer(&ar->tx_wd_timer); ar 727 drivers/net/wireless/ath/ar5523/ar5523.c wake_up(&ar->tx_flush_waitq); ar 730 drivers/net/wireless/ath/ar5523/ar5523.c if (atomic_read(&ar->tx_nr_total) < AR5523_TX_DATA_RESTART_COUNT) { ar 731 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "restart tx queue\n"); ar 732 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_wake_queues(ar->hw); ar 742 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = data->ar; ar 745 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "data tx urb completed: %d\n", urb->status); ar 747 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->tx_data_list_lock, flags); ar 749 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->tx_data_list_lock, flags); ar 752 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "%s: urb status: %d\n", __func__, urb->status); ar 753 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_data_tx_pkt_put(ar); ar 754 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_free_txskb(ar->hw, skb); ar 757 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_tx_status_irqsafe(ar->hw, skb); ar 769 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 772 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "tx called\n"); ar 773 drivers/net/wireless/ath/ar5523/ar5523.c if (atomic_inc_return(&ar->tx_nr_total) >= AR5523_TX_DATA_COUNT) { ar 774 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "tx queue full\n"); ar 775 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "stop queues (tot %d pend %d)\n", ar 776 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_total), ar 777 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_pending)); ar 781 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->tx_data_list_lock, flags); ar 782 drivers/net/wireless/ath/ar5523/ar5523.c list_add_tail(&data->list, &ar->tx_queue_pending); ar 783 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->tx_data_list_lock, flags); ar 785 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_queue_work(ar->hw, &ar->tx_work); ar 788 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_tx_work_locked(struct ar5523 *ar) ar 803 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "%s\n", __func__); ar 805 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->tx_data_list_lock, flags); ar 806 drivers/net/wireless/ath/ar5523/ar5523.c if (!list_empty(&ar->tx_queue_pending)) { ar 808 drivers/net/wireless/ath/ar5523/ar5523.c ar->tx_queue_pending.next; ar 812 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->tx_data_list_lock, flags); ar 826 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_free_txskb(ar->hw, skb); ar 830 drivers/net/wireless/ath/ar5523/ar5523.c data->ar = ar; ar 846 drivers/net/wireless/ath/ar5523/ar5523.c if (test_bit(AR5523_CONNECTED, &ar->flags)) ar 857 drivers/net/wireless/ath/ar5523/ar5523.c usb_fill_bulk_urb(urb, ar->dev, ar5523_data_tx_pipe(ar->dev), ar 860 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->tx_data_list_lock, flags); ar 861 drivers/net/wireless/ath/ar5523/ar5523.c list_add_tail(&data->list, &ar->tx_queue_submitted); ar 862 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->tx_data_list_lock, flags); ar 863 drivers/net/wireless/ath/ar5523/ar5523.c mod_timer(&ar->tx_wd_timer, jiffies + AR5523_TX_WD_TIMEOUT); ar 864 drivers/net/wireless/ath/ar5523/ar5523.c atomic_inc(&ar->tx_nr_pending); ar 866 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "TX Frame (%d pending)\n", ar 867 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_pending)); ar 870 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "error %d when submitting tx urb\n", ar 872 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_irqsave(&ar->tx_data_list_lock, flags); ar 874 drivers/net/wireless/ath/ar5523/ar5523.c spin_unlock_irqrestore(&ar->tx_data_list_lock, flags); ar 875 drivers/net/wireless/ath/ar5523/ar5523.c atomic_dec(&ar->tx_nr_pending); ar 876 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_data_tx_pkt_put(ar); ar 878 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_free_txskb(ar->hw, skb); ar 885 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = container_of(work, struct ar5523, tx_work); ar 887 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "%s\n", __func__); ar 888 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 889 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_tx_work_locked(ar); ar 890 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 895 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = from_timer(ar, t, tx_wd_timer); ar 897 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "TX watchdog timer triggered\n"); ar 898 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_queue_work(ar->hw, &ar->tx_wd_work); ar 903 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = container_of(work, struct ar5523, tx_wd_work); ar 909 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 910 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "TX queue stuck (tot %d pend %d)\n", ar 911 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_total), ar 912 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_pending)); ar 914 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Will restart dongle.\n"); ar 915 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cmd_write(ar, WDCMSG_TARGET_RESET, NULL, 0, 0); ar 916 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 919 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_flush_tx(struct ar5523 *ar) ar 921 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_tx_work_locked(ar); ar 924 drivers/net/wireless/ath/ar5523/ar5523.c if (test_bit(AR5523_USB_DISCONNECTED, &ar->flags)) ar 926 drivers/net/wireless/ath/ar5523/ar5523.c if (!wait_event_timeout(ar->tx_flush_waitq, ar 927 drivers/net/wireless/ath/ar5523/ar5523.c !atomic_read(&ar->tx_nr_pending), AR5523_FLUSH_TIMEOUT)) ar 928 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "flush timeout (tot %d pend %d)\n", ar 929 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_total), ar 930 drivers/net/wireless/ath/ar5523/ar5523.c atomic_read(&ar->tx_nr_pending)); ar 933 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_free_tx_cmd(struct ar5523 *ar) ar 935 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523_tx_cmd *cmd = &ar->tx_cmd; ar 937 drivers/net/wireless/ath/ar5523/ar5523.c usb_free_coherent(ar->dev, AR5523_MAX_RXCMDSZ, cmd->buf_tx, ar 942 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_alloc_tx_cmd(struct ar5523 *ar) ar 944 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523_tx_cmd *cmd = &ar->tx_cmd; ar 946 drivers/net/wireless/ath/ar5523/ar5523.c cmd->ar = ar; ar 952 drivers/net/wireless/ath/ar5523/ar5523.c cmd->buf_tx = usb_alloc_coherent(ar->dev, AR5523_MAX_TXCMDSZ, ar 968 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = container_of(work, struct ar5523, stat_work.work); ar 971 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "%s\n", __func__); ar 972 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 978 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_cmd_write(ar, WDCMSG_TARGET_GET_STATS, NULL, 0, 0); ar 980 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not query stats, error %d\n", error); ar 981 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 982 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_queue_delayed_work(ar->hw, &ar->stat_work, HZ); ar 990 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 994 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "start called\n"); ar 996 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 998 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cmd_write(ar, WDCMSG_BIND, &val, sizeof(val), 0); ar 1001 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config_multi(ar, CFG_MAC_ADDR, &ar->hw->wiphy->perm_addr, ar 1005 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_RATE_CONTROL_ENABLE, 0x00000001); ar 1006 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_DIVERSITY_CTL, 0x00000001); ar 1007 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_ABOLT, 0x0000003f); ar 1008 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_WME_ENABLED, 0x00000000); ar 1010 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_SERVICE_TYPE, 1); ar 1011 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_TP_SCALE, 0x00000000); ar 1012 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_TPC_HALF_DBM5, 0x0000003c); ar 1013 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_TPC_HALF_DBM2, 0x0000003c); ar 1014 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_OVERRD_TX_POWER, 0x00000000); ar 1015 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_GMODE_PROTECTION, 0x00000000); ar 1016 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_GMODE_PROTECT_RATE_INDEX, 0x00000003); ar 1017 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_PROTECTION_TYPE, 0x00000000); ar 1018 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_config(ar, CFG_MODE_CTS, 0x00000002); ar 1020 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_cmd_read(ar, WDCMSG_TARGET_START, NULL, 0, ar 1023 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "could not start target, error %d\n", error); ar 1026 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "WDCMSG_TARGET_START returns handle: 0x%x\n", ar 1029 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_switch_chan(ar); ar 1032 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cmd_write(ar, WDCMSG_SET_PWR_MODE, &val, sizeof(val), 0); ar 1034 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cmd_write(ar, WDCMSG_RESET_KEY_CACHE, NULL, 0, 0); ar 1036 drivers/net/wireless/ath/ar5523/ar5523.c set_bit(AR5523_HW_UP, &ar->flags); ar 1037 drivers/net/wireless/ath/ar5523/ar5523.c queue_work(ar->wq, &ar->rx_refill_work); ar 1040 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_rxfilter(ar, 0, UATH_FILTER_OP_INIT); ar 1041 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_rxfilter(ar, ar 1046 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_ledsteady(ar, UATH_LED_ACTIVITY, UATH_LED_ON); ar 1047 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "start OK\n"); ar 1050 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 1056 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1058 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "stop called\n"); ar 1060 drivers/net/wireless/ath/ar5523/ar5523.c cancel_delayed_work_sync(&ar->stat_work); ar 1061 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 1062 drivers/net/wireless/ath/ar5523/ar5523.c clear_bit(AR5523_HW_UP, &ar->flags); ar 1064 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_ledsteady(ar, UATH_LED_LINK, UATH_LED_OFF); ar 1065 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_ledsteady(ar, UATH_LED_ACTIVITY, UATH_LED_OFF); ar 1067 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cmd_write(ar, WDCMSG_TARGET_STOP, NULL, 0, 0); ar 1069 drivers/net/wireless/ath/ar5523/ar5523.c del_timer_sync(&ar->tx_wd_timer); ar 1070 drivers/net/wireless/ath/ar5523/ar5523.c cancel_work_sync(&ar->tx_wd_work); ar 1071 drivers/net/wireless/ath/ar5523/ar5523.c cancel_work_sync(&ar->rx_refill_work); ar 1072 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cancel_rx_bufs(ar); ar 1073 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 1078 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1081 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "set_rts_threshold called\n"); ar 1082 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 1084 drivers/net/wireless/ath/ar5523/ar5523.c ret = ar5523_config(ar, CFG_USER_RTS_THRESHOLD, value); ar 1086 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 1093 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1095 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "flush called\n"); ar 1096 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_flush_tx(ar); ar 1102 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1104 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "add interface called\n"); ar 1106 drivers/net/wireless/ath/ar5523/ar5523.c if (ar->vif) { ar 1107 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "invalid add_interface\n"); ar 1113 drivers/net/wireless/ath/ar5523/ar5523.c ar->vif = vif; ar 1124 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1126 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "remove interface called\n"); ar 1127 drivers/net/wireless/ath/ar5523/ar5523.c ar->vif = NULL; ar 1132 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1134 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "config called\n"); ar 1135 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 1137 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "Do channel switch\n"); ar 1138 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_flush_tx(ar); ar 1139 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_switch_chan(ar); ar 1141 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 1145 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_get_wlan_mode(struct ar5523 *ar, ar 1153 drivers/net/wireless/ath/ar5523/ar5523.c band = ar->hw->wiphy->bands[ar->hw->conf.chandef.chan->band]; ar 1154 drivers/net/wireless/ath/ar5523/ar5523.c sta = ieee80211_find_sta(ar->vif, bss_conf->bssid); ar 1156 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_info(ar, "STA not found!\n"); ar 1159 drivers/net/wireless/ath/ar5523/ar5523.c sta_rate_set = sta->supp_rates[ar->hw->conf.chandef.chan->band]; ar 1181 drivers/net/wireless/ath/ar5523/ar5523.c static void ar5523_create_rateset(struct ar5523 *ar, ar 1191 drivers/net/wireless/ath/ar5523/ar5523.c sta = ieee80211_find_sta(ar->vif, bss_conf->bssid); ar 1194 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_info(ar, "STA not found. Cannot set rates\n"); ar 1197 drivers/net/wireless/ath/ar5523/ar5523.c sta_rate_set = sta->supp_rates[ar->hw->conf.chandef.chan->band]; ar 1199 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "sta rate_set = %08x\n", sta_rate_set); ar 1201 drivers/net/wireless/ath/ar5523/ar5523.c band = ar->hw->wiphy->bands[ar->hw->conf.chandef.chan->band]; ar 1204 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "Considering rate %d : %d\n", ar 1219 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_set_basic_rates(struct ar5523 *ar, ar 1227 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_create_rateset(ar, bss, &rates.rateset, true); ar 1229 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_SET_BASIC_RATE, &rates, ar 1233 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_create_connection(struct ar5523 *ar, ar 1246 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_create_rateset(ar, bss, &create.connattr.rateset, false); ar 1248 drivers/net/wireless/ath/ar5523/ar5523.c wlan_mode = ar5523_get_wlan_mode(ar, bss); ar 1251 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_CREATE_CONNECTION, &create, ar 1255 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_write_associd(struct ar5523 *ar, ar 1265 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_write(ar, WDCMSG_WRITE_ASSOCID, &associd, ar 1274 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1277 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "bss_info_changed called\n"); ar 1278 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 1284 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_create_connection(ar, vif, bss); ar 1286 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not create connection\n"); ar 1290 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_set_basic_rates(ar, bss); ar 1292 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not set negotiated rate set\n"); ar 1296 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_write_associd(ar, bss); ar 1298 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not set association\n"); ar 1303 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_ledsteady(ar, UATH_LED_LINK, UATH_LED_ON); ar 1304 drivers/net/wireless/ath/ar5523/ar5523.c set_bit(AR5523_CONNECTED, &ar->flags); ar 1305 drivers/net/wireless/ath/ar5523/ar5523.c ieee80211_queue_delayed_work(hw, &ar->stat_work, HZ); ar 1308 drivers/net/wireless/ath/ar5523/ar5523.c cancel_delayed_work(&ar->stat_work); ar 1309 drivers/net/wireless/ath/ar5523/ar5523.c clear_bit(AR5523_CONNECTED, &ar->flags); ar 1310 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_ledsteady(ar, UATH_LED_LINK, UATH_LED_OFF); ar 1314 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 1327 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1330 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "configure_filter called\n"); ar 1331 drivers/net/wireless/ath/ar5523/ar5523.c mutex_lock(&ar->mutex); ar 1332 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_flush_tx(ar); ar 1344 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_rxfilter(ar, 0, UATH_FILTER_OP_INIT); ar 1345 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_set_rxfilter(ar, filter, UATH_FILTER_OP_SET); ar 1347 drivers/net/wireless/ath/ar5523/ar5523.c mutex_unlock(&ar->mutex); ar 1363 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_host_available(struct ar5523 *ar) ar 1372 drivers/net/wireless/ath/ar5523/ar5523.c return ar5523_cmd_read(ar, WDCMSG_HOST_AVAILABLE, ar 1376 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_get_devstatus(struct ar5523 *ar) ar 1382 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_get_status(ar, ST_MAC_ADDR, macaddr, ETH_ALEN); ar 1384 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not read MAC address\n"); ar 1388 drivers/net/wireless/ath/ar5523/ar5523.c SET_IEEE80211_PERM_ADDR(ar->hw, macaddr); ar 1390 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_get_status(ar, ST_SERIAL_NUMBER, ar 1391 drivers/net/wireless/ath/ar5523/ar5523.c &ar->serial[0], sizeof(ar->serial)); ar 1393 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not read device serial number\n"); ar 1401 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_get_max_rxsz(struct ar5523 *ar) ar 1407 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_get_status(ar, ST_WDC_TRANSPORT_CHUNK_SIZE, &rxsize, ar 1410 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not read max RX size\n"); ar 1414 drivers/net/wireless/ath/ar5523/ar5523.c ar->rxbufsz = be32_to_cpu(rxsize); ar 1416 drivers/net/wireless/ath/ar5523/ar5523.c if (!ar->rxbufsz || ar->rxbufsz > AR5523_SANE_RXBUFSZ) { ar 1417 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Bad rxbufsz from device. Using %d instead\n", ar 1419 drivers/net/wireless/ath/ar5523/ar5523.c ar->rxbufsz = AR5523_SANE_RXBUFSZ; ar 1422 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "Max RX buf size: %d\n", ar->rxbufsz); ar 1462 drivers/net/wireless/ath/ar5523/ar5523.c static int ar5523_init_modes(struct ar5523 *ar) ar 1464 drivers/net/wireless/ath/ar5523/ar5523.c BUILD_BUG_ON(sizeof(ar->channels) != sizeof(ar5523_channels)); ar 1465 drivers/net/wireless/ath/ar5523/ar5523.c BUILD_BUG_ON(sizeof(ar->rates) != sizeof(ar5523_rates)); ar 1467 drivers/net/wireless/ath/ar5523/ar5523.c memcpy(ar->channels, ar5523_channels, sizeof(ar5523_channels)); ar 1468 drivers/net/wireless/ath/ar5523/ar5523.c memcpy(ar->rates, ar5523_rates, sizeof(ar5523_rates)); ar 1470 drivers/net/wireless/ath/ar5523/ar5523.c ar->band.band = NL80211_BAND_2GHZ; ar 1471 drivers/net/wireless/ath/ar5523/ar5523.c ar->band.channels = ar->channels; ar 1472 drivers/net/wireless/ath/ar5523/ar5523.c ar->band.n_channels = ARRAY_SIZE(ar5523_channels); ar 1473 drivers/net/wireless/ath/ar5523/ar5523.c ar->band.bitrates = ar->rates; ar 1474 drivers/net/wireless/ath/ar5523/ar5523.c ar->band.n_bitrates = ARRAY_SIZE(ar5523_rates); ar 1475 drivers/net/wireless/ath/ar5523/ar5523.c ar->hw->wiphy->bands[NL80211_BAND_2GHZ] = &ar->band; ar 1580 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar; ar 1592 drivers/net/wireless/ath/ar5523/ar5523.c hw = ieee80211_alloc_hw(sizeof(*ar), &ar5523_ops); ar 1597 drivers/net/wireless/ath/ar5523/ar5523.c ar = hw->priv; ar 1598 drivers/net/wireless/ath/ar5523/ar5523.c ar->hw = hw; ar 1599 drivers/net/wireless/ath/ar5523/ar5523.c ar->dev = dev; ar 1600 drivers/net/wireless/ath/ar5523/ar5523.c mutex_init(&ar->mutex); ar 1602 drivers/net/wireless/ath/ar5523/ar5523.c INIT_DELAYED_WORK(&ar->stat_work, ar5523_stat_work); ar 1603 drivers/net/wireless/ath/ar5523/ar5523.c timer_setup(&ar->tx_wd_timer, ar5523_tx_wd_timer, 0); ar 1604 drivers/net/wireless/ath/ar5523/ar5523.c INIT_WORK(&ar->tx_wd_work, ar5523_tx_wd_work); ar 1605 drivers/net/wireless/ath/ar5523/ar5523.c INIT_WORK(&ar->tx_work, ar5523_tx_work); ar 1606 drivers/net/wireless/ath/ar5523/ar5523.c INIT_LIST_HEAD(&ar->tx_queue_pending); ar 1607 drivers/net/wireless/ath/ar5523/ar5523.c INIT_LIST_HEAD(&ar->tx_queue_submitted); ar 1608 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_init(&ar->tx_data_list_lock); ar 1609 drivers/net/wireless/ath/ar5523/ar5523.c atomic_set(&ar->tx_nr_total, 0); ar 1610 drivers/net/wireless/ath/ar5523/ar5523.c atomic_set(&ar->tx_nr_pending, 0); ar 1611 drivers/net/wireless/ath/ar5523/ar5523.c init_waitqueue_head(&ar->tx_flush_waitq); ar 1613 drivers/net/wireless/ath/ar5523/ar5523.c atomic_set(&ar->rx_data_free_cnt, 0); ar 1614 drivers/net/wireless/ath/ar5523/ar5523.c INIT_WORK(&ar->rx_refill_work, ar5523_rx_refill_work); ar 1615 drivers/net/wireless/ath/ar5523/ar5523.c INIT_LIST_HEAD(&ar->rx_data_free); ar 1616 drivers/net/wireless/ath/ar5523/ar5523.c INIT_LIST_HEAD(&ar->rx_data_used); ar 1617 drivers/net/wireless/ath/ar5523/ar5523.c spin_lock_init(&ar->rx_data_list_lock); ar 1619 drivers/net/wireless/ath/ar5523/ar5523.c ar->wq = create_singlethread_workqueue("ar5523"); ar 1620 drivers/net/wireless/ath/ar5523/ar5523.c if (!ar->wq) { ar 1621 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Could not create wq\n"); ar 1625 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_alloc_rx_bufs(ar); ar 1627 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Could not allocate rx buffers\n"); ar 1631 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_alloc_rx_cmd(ar); ar 1633 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Could not allocate rx command buffers\n"); ar 1637 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_alloc_tx_cmd(ar); ar 1639 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Could not allocate tx command buffers\n"); ar 1643 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_submit_rx_cmd(ar); ar 1645 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "Failed to submit rx cmd\n"); ar 1652 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_host_available(ar); ar 1654 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not initialize adapter\n"); ar 1658 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_get_max_rxsz(ar); ar 1660 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not get caps from adapter\n"); ar 1664 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_get_devcap(ar); ar 1666 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not get caps from adapter\n"); ar 1670 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_get_devstatus(ar); ar 1672 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not get device status\n"); ar 1676 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_info(ar, "MAC/BBP AR5523, RF AR%c112\n", ar 1679 drivers/net/wireless/ath/ar5523/ar5523.c ar->vif = NULL; ar 1688 drivers/net/wireless/ath/ar5523/ar5523.c error = ar5523_init_modes(ar); ar 1698 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_err(ar, "could not register device\n"); ar 1702 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_info(ar, "Found and initialized AR5523 device\n"); ar 1706 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cancel_rx_cmd(ar); ar 1708 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_free_tx_cmd(ar); ar 1710 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_free_rx_cmd(ar); ar 1712 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_free_rx_bufs(ar); ar 1714 drivers/net/wireless/ath/ar5523/ar5523.c destroy_workqueue(ar->wq); ar 1724 drivers/net/wireless/ath/ar5523/ar5523.c struct ar5523 *ar = hw->priv; ar 1726 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_dbg(ar, "detaching\n"); ar 1727 drivers/net/wireless/ath/ar5523/ar5523.c set_bit(AR5523_USB_DISCONNECTED, &ar->flags); ar 1731 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_cancel_rx_cmd(ar); ar 1732 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_free_tx_cmd(ar); ar 1733 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_free_rx_cmd(ar); ar 1734 drivers/net/wireless/ath/ar5523/ar5523.c ar5523_free_rx_bufs(ar); ar 1736 drivers/net/wireless/ath/ar5523/ar5523.c destroy_workqueue(ar->wq); ar 61 drivers/net/wireless/ath/ar5523/ar5523.h struct ar5523 *ar; ar 76 drivers/net/wireless/ath/ar5523/ar5523.h struct ar5523 *ar; ar 82 drivers/net/wireless/ath/ar5523/ar5523.h struct ar5523 *ar; ar 137 drivers/net/wireless/ath/ar5523/ar5523.h #define ar5523_dbg(ar, format, arg...) \ ar 138 drivers/net/wireless/ath/ar5523/ar5523.h dev_dbg(&(ar)->dev->dev, format, ## arg) ar 144 drivers/net/wireless/ath/ar5523/ar5523.h #define ar5523_err(ar, format, arg...) \ ar 146 drivers/net/wireless/ath/ar5523/ar5523.h if (!test_bit(AR5523_USB_DISCONNECTED, &ar->flags)) { \ ar 147 drivers/net/wireless/ath/ar5523/ar5523.h dev_err(&(ar)->dev->dev, format, ## arg); \ ar 150 drivers/net/wireless/ath/ar5523/ar5523.h #define ar5523_info(ar, format, arg...) \ ar 151 drivers/net/wireless/ath/ar5523/ar5523.h dev_info(&(ar)->dev->dev, format, ## arg) ar 28 drivers/net/wireless/ath/ath10k/ahb.c static inline struct ath10k_ahb *ath10k_ahb_priv(struct ath10k *ar) ar 30 drivers/net/wireless/ath/ath10k/ahb.c return &((struct ath10k_pci *)ar->drv_priv)->ahb[0]; ar 33 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_write32(struct ath10k *ar, u32 offset, u32 value) ar 35 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 40 drivers/net/wireless/ath/ath10k/ahb.c static u32 ath10k_ahb_read32(struct ath10k *ar, u32 offset) ar 42 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 47 drivers/net/wireless/ath/ath10k/ahb.c static u32 ath10k_ahb_gcc_read32(struct ath10k *ar, u32 offset) ar 49 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 54 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_tcsr_write32(struct ath10k *ar, u32 offset, u32 value) ar 56 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 61 drivers/net/wireless/ath/ath10k/ahb.c static u32 ath10k_ahb_tcsr_read32(struct ath10k *ar, u32 offset) ar 63 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 68 drivers/net/wireless/ath/ath10k/ahb.c static u32 ath10k_ahb_soc_read32(struct ath10k *ar, u32 addr) ar 70 drivers/net/wireless/ath/ath10k/ahb.c return ath10k_ahb_read32(ar, RTC_SOC_BASE_ADDRESS + addr); ar 73 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_get_num_banks(struct ath10k *ar) ar 75 drivers/net/wireless/ath/ath10k/ahb.c if (ar->hw_rev == ATH10K_HW_QCA4019) ar 78 drivers/net/wireless/ath/ath10k/ahb.c ath10k_warn(ar, "unknown number of banks, assuming 1\n"); ar 82 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_clock_init(struct ath10k *ar) ar 84 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 91 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get cmd clk: %ld\n", ar 98 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get ref clk: %ld\n", ar 105 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get rtc clk: %ld\n", ar 113 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_clock_deinit(struct ath10k *ar) ar 115 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 122 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_clock_enable(struct ath10k *ar) ar 124 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 130 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "clock(s) is/are not initialized\n"); ar 137 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to enable cmd clk: %d\n", ret); ar 143 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to enable ref clk: %d\n", ret); ar 149 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to enable rtc clk: %d\n", ret); ar 165 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_clock_disable(struct ath10k *ar) ar 167 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 176 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_rst_ctrl_init(struct ath10k *ar) ar 178 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 186 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get core cold rst ctrl: %ld\n", ar 194 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get radio cold rst ctrl: %ld\n", ar 202 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get radio warm rst ctrl: %ld\n", ar 210 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get radio srif rst ctrl: %ld\n", ar 218 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get cpu init rst ctrl: %ld\n", ar 226 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_rst_ctrl_deinit(struct ath10k *ar) ar 228 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 237 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_release_reset(struct ath10k *ar) ar 239 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 246 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "rst ctrl(s) is/are not initialized\n"); ar 252 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to deassert radio cold rst: %d\n", ret); ar 258 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to deassert radio warm rst: %d\n", ret); ar 264 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to deassert radio srif rst: %d\n", ret); ar 270 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to deassert cpu init rst: %d\n", ret); ar 277 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_halt_axi_bus(struct ath10k *ar, u32 haltreq_reg, ar 284 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_ahb_tcsr_read32(ar, haltreq_reg); ar 286 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_tcsr_write32(ar, haltreq_reg, val); ar 291 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_ahb_tcsr_read32(ar, haltack_reg); ar 299 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to halt axi bus: %d\n", val); ar 303 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_AHB, "axi bus halted\n"); ar 306 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_halt_chip(struct ath10k *ar) ar 308 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 318 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "rst ctrl(s) is/are not initialized\n"); ar 322 drivers/net/wireless/ath/ath10k/ahb.c core_id = ath10k_ahb_read32(ar, ATH10K_AHB_WLAN_CORE_ID_REG); ar 336 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "invalid core id %d found, skipping reset sequence\n", ar 341 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_halt_axi_bus(ar, haltreq_reg, haltack_reg); ar 343 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_ahb_tcsr_read32(ar, glb_cfg_reg); ar 345 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_tcsr_write32(ar, glb_cfg_reg, val); ar 349 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to assert core cold rst: %d\n", ret); ar 354 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to assert radio cold rst: %d\n", ret); ar 359 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to assert radio warm rst: %d\n", ret); ar 364 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to assert radio srif rst: %d\n", ret); ar 369 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to assert cpu init rst: %d\n", ret); ar 375 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_ahb_tcsr_read32(ar, haltreq_reg); ar 377 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_tcsr_write32(ar, haltreq_reg, val); ar 379 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_ahb_tcsr_read32(ar, glb_cfg_reg); ar 381 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_tcsr_write32(ar, glb_cfg_reg, val); ar 385 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to deassert core cold rst: %d\n", ret); ar 387 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_AHB, "core %d reset done\n", core_id); ar 392 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k *ar = arg; ar 394 drivers/net/wireless/ath/ath10k/ahb.c if (!ath10k_pci_irq_pending(ar)) ar 397 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_disable_and_clear_legacy_irq(ar); ar 398 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_irq_msi_fw_mask(ar); ar 399 drivers/net/wireless/ath/ath10k/ahb.c napi_schedule(&ar->napi); ar 404 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_request_irq_legacy(struct ath10k *ar) ar 406 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 407 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 412 drivers/net/wireless/ath/ath10k/ahb.c IRQF_SHARED, "ath10k_ahb", ar); ar 414 drivers/net/wireless/ath/ath10k/ahb.c ath10k_warn(ar, "failed to request legacy irq %d: %d\n", ar 423 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_release_irq_legacy(struct ath10k *ar) ar 425 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 427 drivers/net/wireless/ath/ath10k/ahb.c free_irq(ar_ahb->irq, ar); ar 430 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_irq_disable(struct ath10k *ar) ar 432 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ce_disable_interrupts(ar); ar 433 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_disable_and_clear_legacy_irq(ar); ar 436 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_resource_init(struct ath10k *ar) ar 438 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 447 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get memory resource\n"); ar 454 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "mem ioremap error\n"); ar 464 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "gcc mem ioremap error\n"); ar 472 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "tcsr mem ioremap error\n"); ar 479 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to set 32-bit dma mask: %d\n", ret); ar 485 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to set 32-bit consistent dma: %d\n", ar 490 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_clock_init(ar); ar 494 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_rst_ctrl_init(ar); ar 500 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get irq number: %d\n", ar_ahb->irq); ar 505 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "irq: %d\n", ar_ahb->irq); ar 507 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "mem: 0x%pK mem_len: %lu gcc mem: 0x%pK tcsr_mem: 0x%pK\n", ar 513 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_clock_deinit(ar); ar 531 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_resource_deinit(struct ath10k *ar) ar 533 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 551 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_clock_deinit(ar); ar 552 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_rst_ctrl_deinit(ar); ar 555 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_prepare_device(struct ath10k *ar) ar 560 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_clock_enable(ar); ar 562 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to enable clocks\n"); ar 573 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_ahb_gcc_read32(ar, ATH10K_AHB_GCC_FEPLL_PLL_DIV); ar 574 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_write32(ar, ATH10K_AHB_WIFI_SCRATCH_5_REG, val); ar 576 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_release_reset(ar); ar 580 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_irq_disable(ar); ar 582 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_write32(ar, FW_INDICATOR_ADDRESS, FW_IND_HOST_READY); ar 584 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_pci_wait_for_target_init(ar); ar 591 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_halt_chip(ar); ar 594 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_clock_disable(ar); ar 599 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_chip_reset(struct ath10k *ar) ar 603 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_halt_chip(ar); ar 604 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_clock_disable(ar); ar 606 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_prepare_device(ar); ar 613 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_wake_target_cpu(struct ath10k *ar) ar 618 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_ahb_read32(ar, addr); ar 620 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_write32(ar, addr, val); ar 625 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_hif_start(struct ath10k *ar) ar 627 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot ahb hif start\n"); ar 629 drivers/net/wireless/ath/ath10k/ahb.c napi_enable(&ar->napi); ar 630 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ce_enable_interrupts(ar); ar 631 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_enable_legacy_irq(ar); ar 633 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_rx_post(ar); ar 638 drivers/net/wireless/ath/ath10k/ahb.c static void ath10k_ahb_hif_stop(struct ath10k *ar) ar 640 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k_ahb *ar_ahb = ath10k_ahb_priv(ar); ar 642 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot ahb hif stop\n"); ar 644 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_irq_disable(ar); ar 647 drivers/net/wireless/ath/ath10k/ahb.c napi_synchronize(&ar->napi); ar 648 drivers/net/wireless/ath/ath10k/ahb.c napi_disable(&ar->napi); ar 650 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_flush(ar); ar 653 drivers/net/wireless/ath/ath10k/ahb.c static int ath10k_ahb_hif_power_up(struct ath10k *ar, ar 658 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot ahb hif power up\n"); ar 660 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_chip_reset(ar); ar 662 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to reset chip: %d\n", ret); ar 666 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_pci_init_pipes(ar); ar 668 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to initialize CE: %d\n", ret); ar 672 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_pci_init_config(ar); ar 674 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to setup init config: %d\n", ret); ar 678 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_wake_target_cpu(ar); ar 680 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "could not wake up target CPU: %d\n", ret); ar 687 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_ce_deinit(ar); ar 692 drivers/net/wireless/ath/ath10k/ahb.c static u32 ath10k_ahb_qca4019_targ_cpu_to_ce_addr(struct ath10k *ar, u32 addr) ar 696 drivers/net/wireless/ath/ath10k/ahb.c val = ath10k_pci_read32(ar, PCIE_BAR_REG_ADDRESS); ar 736 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k *ar; ar 754 drivers/net/wireless/ath/ath10k/ahb.c ar = ath10k_core_create(size, &pdev->dev, ATH10K_BUS_AHB, ar 756 drivers/net/wireless/ath/ath10k/ahb.c if (!ar) { ar 761 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "ahb probe\n"); ar 763 drivers/net/wireless/ath/ath10k/ahb.c ar_pci = ath10k_pci_priv(ar); ar 764 drivers/net/wireless/ath/ath10k/ahb.c ar_ahb = ath10k_ahb_priv(ar); ar 767 drivers/net/wireless/ath/ath10k/ahb.c platform_set_drvdata(pdev, ar); ar 769 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_resource_init(ar); ar 773 drivers/net/wireless/ath/ath10k/ahb.c ar->dev_id = 0; ar 776 drivers/net/wireless/ath/ath10k/ahb.c ar_pci->ar = ar; ar 779 drivers/net/wireless/ath/ath10k/ahb.c ar->ce_priv = &ar_pci->ce; ar 781 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_pci_setup_resource(ar); ar 783 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to setup resource: %d\n", ret); ar 787 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_init_napi(ar); ar 789 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_request_irq_legacy(ar); ar 793 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_ahb_prepare_device(ar); ar 797 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_ce_deinit(ar); ar 800 drivers/net/wireless/ath/ath10k/ahb.c bus_params.chip_id = ath10k_ahb_soc_read32(ar, SOC_CHIP_ID_ADDRESS); ar 802 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to get chip id\n"); ar 807 drivers/net/wireless/ath/ath10k/ahb.c ret = ath10k_core_register(ar, &bus_params); ar 809 drivers/net/wireless/ath/ath10k/ahb.c ath10k_err(ar, "failed to register driver core: %d\n", ret); ar 816 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_halt_chip(ar); ar 817 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_clock_disable(ar); ar 820 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_release_irq_legacy(ar); ar 823 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_free_pipes(ar); ar 826 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_resource_deinit(ar); ar 829 drivers/net/wireless/ath/ath10k/ahb.c ath10k_core_destroy(ar); ar 837 drivers/net/wireless/ath/ath10k/ahb.c struct ath10k *ar = platform_get_drvdata(pdev); ar 840 drivers/net/wireless/ath/ath10k/ahb.c if (!ar) ar 843 drivers/net/wireless/ath/ath10k/ahb.c ar_ahb = ath10k_ahb_priv(ar); ar 848 drivers/net/wireless/ath/ath10k/ahb.c ath10k_dbg(ar, ATH10K_DBG_AHB, "ahb remove\n"); ar 850 drivers/net/wireless/ath/ath10k/ahb.c ath10k_core_unregister(ar); ar 851 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_irq_disable(ar); ar 852 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_release_irq_legacy(ar); ar 853 drivers/net/wireless/ath/ath10k/ahb.c ath10k_pci_release_resource(ar); ar 854 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_halt_chip(ar); ar 855 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_clock_disable(ar); ar 856 drivers/net/wireless/ath/ath10k/ahb.c ath10k_ahb_resource_deinit(ar); ar 857 drivers/net/wireless/ath/ath10k/ahb.c ath10k_core_destroy(ar); ar 13 drivers/net/wireless/ath/ath10k/bmi.c void ath10k_bmi_start(struct ath10k *ar) ar 17 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi start\n"); ar 19 drivers/net/wireless/ath/ath10k/bmi.c ar->bmi.done_sent = false; ar 22 drivers/net/wireless/ath/ath10k/bmi.c if (ar->hw_params.hw_ops->enable_pll_clk) { ar 23 drivers/net/wireless/ath/ath10k/bmi.c ret = ar->hw_params.hw_ops->enable_pll_clk(ar); ar 24 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi enable pll ret %d\n", ret); ar 28 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_done(struct ath10k *ar) ar 34 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi done\n"); ar 36 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 37 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi skipped\n"); ar 41 drivers/net/wireless/ath/ath10k/bmi.c ar->bmi.done_sent = true; ar 44 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, NULL, NULL); ar 46 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to write to the device: %d\n", ret); ar 53 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_get_target_info(struct ath10k *ar, ar 62 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi get target info\n"); ar 64 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 65 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "BMI Get Target Info Command disallowed\n"); ar 71 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, &resp, &resplen); ar 73 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to get target info from device\n"); ar 78 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "invalid get_target_info response length (%d)\n", ar 91 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_get_target_info_sdio(struct ath10k *ar, ar 101 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi get target info SDIO\n"); ar 103 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 104 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "BMI Get Target Info Command disallowed\n"); ar 115 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, &tmp, &resplen); ar 117 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to read from device\n"); ar 127 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, NULL, 0, &tmp, ar 130 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to read from device\n"); ar 139 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "Unexpected target info len: %u. Expected: %zu\n", ar 146 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, NULL, 0, ar 150 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to read from device\n"); ar 160 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_read_memory(struct ath10k *ar, ar 169 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi read address 0x%x length %d\n", ar 172 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 173 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "command disallowed\n"); ar 184 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, ar 187 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to read from the device (%d)\n", ar 201 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_write_soc_reg(struct ath10k *ar, u32 address, u32 reg_val) ar 207 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, ar 211 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 212 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "bmi write soc register command in progress\n"); ar 220 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, NULL, NULL); ar 222 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "Unable to write soc register to device: %d\n", ar 230 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_read_soc_reg(struct ath10k *ar, u32 address, u32 *reg_val) ar 238 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi read soc register 0x%08x\n", ar 241 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 242 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "bmi read soc register command in progress\n"); ar 249 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, &resp, &resplen); ar 251 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "Unable to read soc register from device: %d\n", ar 258 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi read soc register value 0x%08x\n", ar 264 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_write_memory(struct ath10k *ar, ar 272 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi write address 0x%x length %d\n", ar 275 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 276 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "command disallowed\n"); ar 291 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, hdrlen + txlen, ar 294 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to write to the device (%d)\n", ar 310 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_execute(struct ath10k *ar, u32 address, u32 param, u32 *result) ar 318 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi execute address 0x%x param 0x%x\n", ar 321 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 322 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "command disallowed\n"); ar 330 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, &resp, &resplen); ar 332 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to read from the device\n"); ar 337 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "invalid execute response length (%d)\n", ar 344 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi execute result 0x%x\n", *result); ar 349 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_lz_data(struct ath10k *ar, const void *buffer, u32 length) ar 356 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi lz data buffer 0x%pK length %d\n", ar 359 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 360 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "command disallowed\n"); ar 373 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, hdrlen + txlen, ar 376 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to write to the device\n"); ar 387 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_lz_stream_start(struct ath10k *ar, u32 address) ar 393 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, "bmi lz stream start address 0x%x\n", ar 396 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 397 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "command disallowed\n"); ar 404 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, NULL, NULL); ar 406 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to Start LZ Stream to the device\n"); ar 413 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_fast_download(struct ath10k *ar, ar 421 drivers/net/wireless/ath/ath10k/bmi.c ath10k_dbg(ar, ATH10K_DBG_BMI, ar 425 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_bmi_lz_stream_start(ar, address); ar 433 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_bmi_lz_data(ar, buffer, head_len); ar 438 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_bmi_lz_data(ar, trailer, 4); ar 447 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_bmi_lz_stream_start(ar, 0x00); ar 452 drivers/net/wireless/ath/ath10k/bmi.c int ath10k_bmi_set_start(struct ath10k *ar, u32 address) ar 458 drivers/net/wireless/ath/ath10k/bmi.c if (ar->bmi.done_sent) { ar 459 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "bmi set start command disallowed\n"); ar 466 drivers/net/wireless/ath/ath10k/bmi.c ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, NULL, NULL); ar 468 drivers/net/wireless/ath/ath10k/bmi.c ath10k_warn(ar, "unable to set start to the device:%d\n", ret); ar 222 drivers/net/wireless/ath/ath10k/bmi.h void ath10k_bmi_start(struct ath10k *ar); ar 223 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_done(struct ath10k *ar); ar 224 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_get_target_info(struct ath10k *ar, ar 226 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_get_target_info_sdio(struct ath10k *ar, ar 228 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_read_memory(struct ath10k *ar, u32 address, ar 230 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_write_memory(struct ath10k *ar, u32 address, ar 233 drivers/net/wireless/ath/ath10k/bmi.h #define ath10k_bmi_read32(ar, item, val) \ ar 240 drivers/net/wireless/ath/ath10k/bmi.h ret = ath10k_bmi_read_memory(ar, addr, (u8 *)&tmp, 4); \ ar 246 drivers/net/wireless/ath/ath10k/bmi.h #define ath10k_bmi_write32(ar, item, val) \ ar 253 drivers/net/wireless/ath/ath10k/bmi.h ret = ath10k_bmi_write_memory(ar, address, \ ar 258 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_execute(struct ath10k *ar, u32 address, u32 param, u32 *result); ar 259 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_lz_stream_start(struct ath10k *ar, u32 address); ar 260 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_lz_data(struct ath10k *ar, const void *buffer, u32 length); ar 261 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_fast_download(struct ath10k *ar, u32 address, ar 263 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_read_soc_reg(struct ath10k *ar, u32 address, u32 *reg_val); ar 264 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_write_soc_reg(struct ath10k *ar, u32 address, u32 reg_val); ar 265 drivers/net/wireless/ath/ath10k/bmi.h int ath10k_bmi_set_start(struct ath10k *ar, u32 address); ar 51 drivers/net/wireless/ath/ath10k/ce.c static inline u32 shadow_sr_wr_ind_addr(struct ath10k *ar, ar 74 drivers/net/wireless/ath/ath10k/ce.c ath10k_warn(ar, "invalid CE id: %d", ce_id); ar 80 drivers/net/wireless/ath/ath10k/ce.c static inline u32 shadow_dst_wr_ind_addr(struct ath10k *ar, ar 112 drivers/net/wireless/ath/ath10k/ce.c ath10k_warn(ar, "invalid CE id: %d", ce_id); ar 133 drivers/net/wireless/ath/ath10k/ce.c static inline u32 ath10k_ce_read32(struct ath10k *ar, u32 offset) ar 135 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 137 drivers/net/wireless/ath/ath10k/ce.c return ce->bus_ops->read32(ar, offset); ar 140 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_write32(struct ath10k *ar, u32 offset, u32 value) ar 142 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 144 drivers/net/wireless/ath/ath10k/ce.c ce->bus_ops->write32(ar, offset, value); ar 147 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_dest_ring_write_index_set(struct ath10k *ar, ar 151 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 152 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->dst_wr_index_addr, n); ar 155 drivers/net/wireless/ath/ath10k/ce.c static inline u32 ath10k_ce_dest_ring_write_index_get(struct ath10k *ar, ar 158 drivers/net/wireless/ath/ath10k/ce.c return ath10k_ce_read32(ar, ce_ctrl_addr + ar 159 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->dst_wr_index_addr); ar 162 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_src_ring_write_index_set(struct ath10k *ar, ar 166 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 167 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->sr_wr_index_addr, n); ar 170 drivers/net/wireless/ath/ath10k/ce.c static inline u32 ath10k_ce_src_ring_write_index_get(struct ath10k *ar, ar 173 drivers/net/wireless/ath/ath10k/ce.c return ath10k_ce_read32(ar, ce_ctrl_addr + ar 174 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->sr_wr_index_addr); ar 177 drivers/net/wireless/ath/ath10k/ce.c static inline u32 ath10k_ce_src_ring_read_index_from_ddr(struct ath10k *ar, ar 180 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 185 drivers/net/wireless/ath/ath10k/ce.c static inline u32 ath10k_ce_src_ring_read_index_get(struct ath10k *ar, ar 188 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 193 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.rri_on_ddr && ar 195 drivers/net/wireless/ath/ath10k/ce.c index = ath10k_ce_src_ring_read_index_from_ddr(ar, ce_id); ar 197 drivers/net/wireless/ath/ath10k/ce.c index = ath10k_ce_read32(ar, ce_ctrl_addr + ar 198 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->current_srri_addr); ar 204 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_shadow_src_ring_write_index_set(struct ath10k *ar, ar 208 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, shadow_sr_wr_ind_addr(ar, ce_state), value); ar 212 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_shadow_dest_ring_write_index_set(struct ath10k *ar, ar 216 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, shadow_dst_wr_ind_addr(ar, ce_state), value); ar 219 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_src_ring_base_addr_set(struct ath10k *ar, ar 223 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 225 drivers/net/wireless/ath/ath10k/ce.c u32 ce_ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 228 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 229 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->sr_base_addr_lo, addr_lo); ar 232 drivers/net/wireless/ath/ath10k/ce.c ce_state->ops->ce_set_src_ring_base_addr_hi(ar, ce_ctrl_addr, ar 237 drivers/net/wireless/ath/ath10k/ce.c static void ath10k_ce_set_src_ring_base_addr_hi(struct ath10k *ar, ar 243 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 244 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->sr_base_addr_hi, addr_hi); ar 247 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_src_ring_size_set(struct ath10k *ar, ar 251 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 252 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->sr_size_addr, n); ar 255 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_src_ring_dmax_set(struct ath10k *ar, ar 259 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_ctrl1 *ctrl_regs = ar->hw_ce_regs->ctrl1_regs; ar 261 drivers/net/wireless/ath/ath10k/ce.c u32 ctrl1_addr = ath10k_ce_read32(ar, ce_ctrl_addr + ar 264 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ctrl_regs->addr, ar 269 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_src_ring_byte_swap_set(struct ath10k *ar, ar 273 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_ctrl1 *ctrl_regs = ar->hw_ce_regs->ctrl1_regs; ar 275 drivers/net/wireless/ath/ath10k/ce.c u32 ctrl1_addr = ath10k_ce_read32(ar, ce_ctrl_addr + ar 278 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ctrl_regs->addr, ar 283 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_dest_ring_byte_swap_set(struct ath10k *ar, ar 287 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_ctrl1 *ctrl_regs = ar->hw_ce_regs->ctrl1_regs; ar 289 drivers/net/wireless/ath/ath10k/ce.c u32 ctrl1_addr = ath10k_ce_read32(ar, ce_ctrl_addr + ar 292 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ctrl_regs->addr, ar 298 drivers/net/wireless/ath/ath10k/ce.c u32 ath10k_ce_dest_ring_read_index_from_ddr(struct ath10k *ar, u32 ce_id) ar 300 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 306 drivers/net/wireless/ath/ath10k/ce.c static inline u32 ath10k_ce_dest_ring_read_index_get(struct ath10k *ar, ar 309 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 314 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.rri_on_ddr && ar 316 drivers/net/wireless/ath/ath10k/ce.c index = ath10k_ce_dest_ring_read_index_from_ddr(ar, ce_id); ar 318 drivers/net/wireless/ath/ath10k/ce.c index = ath10k_ce_read32(ar, ce_ctrl_addr + ar 319 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->current_drri_addr); ar 324 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_dest_ring_base_addr_set(struct ath10k *ar, ar 328 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 330 drivers/net/wireless/ath/ath10k/ce.c u32 ce_ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 333 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 334 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->dr_base_addr_lo, addr_lo); ar 337 drivers/net/wireless/ath/ath10k/ce.c ce_state->ops->ce_set_dest_ring_base_addr_hi(ar, ce_ctrl_addr, ar 342 drivers/net/wireless/ath/ath10k/ce.c static void ath10k_ce_set_dest_ring_base_addr_hi(struct ath10k *ar, ar 349 drivers/net/wireless/ath/ath10k/ce.c reg_value = ath10k_ce_read32(ar, ce_ctrl_addr + ar 350 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->dr_base_addr_hi); ar 353 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 354 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->dr_base_addr_hi, reg_value); ar 357 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_dest_ring_size_set(struct ath10k *ar, ar 361 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar 362 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->dr_size_addr, n); ar 365 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_src_ring_highmark_set(struct ath10k *ar, ar 369 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_dst_src_wm_regs *srcr_wm = ar->hw_ce_regs->wm_srcr; ar 370 drivers/net/wireless/ath/ath10k/ce.c u32 addr = ath10k_ce_read32(ar, ce_ctrl_addr + srcr_wm->addr); ar 372 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + srcr_wm->addr, ar 377 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_src_ring_lowmark_set(struct ath10k *ar, ar 381 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_dst_src_wm_regs *srcr_wm = ar->hw_ce_regs->wm_srcr; ar 382 drivers/net/wireless/ath/ath10k/ce.c u32 addr = ath10k_ce_read32(ar, ce_ctrl_addr + srcr_wm->addr); ar 384 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + srcr_wm->addr, ar 389 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_dest_ring_highmark_set(struct ath10k *ar, ar 393 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_dst_src_wm_regs *dstr_wm = ar->hw_ce_regs->wm_dstr; ar 394 drivers/net/wireless/ath/ath10k/ce.c u32 addr = ath10k_ce_read32(ar, ce_ctrl_addr + dstr_wm->addr); ar 396 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + dstr_wm->addr, ar 401 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_dest_ring_lowmark_set(struct ath10k *ar, ar 405 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_dst_src_wm_regs *dstr_wm = ar->hw_ce_regs->wm_dstr; ar 406 drivers/net/wireless/ath/ath10k/ce.c u32 addr = ath10k_ce_read32(ar, ce_ctrl_addr + dstr_wm->addr); ar 408 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + dstr_wm->addr, ar 413 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_copy_complete_inter_enable(struct ath10k *ar, ar 416 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_host_ie *host_ie = ar->hw_ce_regs->host_ie; ar 418 drivers/net/wireless/ath/ath10k/ce.c u32 host_ie_addr = ath10k_ce_read32(ar, ce_ctrl_addr + ar 419 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->host_ie_addr); ar 421 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar->hw_ce_regs->host_ie_addr, ar 425 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_copy_complete_intr_disable(struct ath10k *ar, ar 428 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_host_ie *host_ie = ar->hw_ce_regs->host_ie; ar 430 drivers/net/wireless/ath/ath10k/ce.c u32 host_ie_addr = ath10k_ce_read32(ar, ce_ctrl_addr + ar 431 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->host_ie_addr); ar 433 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar->hw_ce_regs->host_ie_addr, ar 437 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_watermark_intr_disable(struct ath10k *ar, ar 440 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_host_wm_regs *wm_regs = ar->hw_ce_regs->wm_regs; ar 442 drivers/net/wireless/ath/ath10k/ce.c u32 host_ie_addr = ath10k_ce_read32(ar, ce_ctrl_addr + ar 443 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->host_ie_addr); ar 445 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + ar->hw_ce_regs->host_ie_addr, ar 449 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_error_intr_enable(struct ath10k *ar, ar 452 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_misc_regs *misc_regs = ar->hw_ce_regs->misc_regs; ar 454 drivers/net/wireless/ath/ath10k/ce.c u32 misc_ie_addr = ath10k_ce_read32(ar, ce_ctrl_addr + ar 455 drivers/net/wireless/ath/ath10k/ce.c ar->hw_ce_regs->misc_ie_addr); ar 457 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ar 458 drivers/net/wireless/ath/ath10k/ce.c ce_ctrl_addr + ar->hw_ce_regs->misc_ie_addr, ar 462 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_error_intr_disable(struct ath10k *ar, ar 465 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_misc_regs *misc_regs = ar->hw_ce_regs->misc_regs; ar 467 drivers/net/wireless/ath/ath10k/ce.c u32 misc_ie_addr = ath10k_ce_read32(ar, ar 468 drivers/net/wireless/ath/ath10k/ce.c ce_ctrl_addr + ar->hw_ce_regs->misc_ie_addr); ar 470 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ar 471 drivers/net/wireless/ath/ath10k/ce.c ce_ctrl_addr + ar->hw_ce_regs->misc_ie_addr, ar 475 drivers/net/wireless/ath/ath10k/ce.c static inline void ath10k_ce_engine_int_status_clear(struct ath10k *ar, ar 479 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_host_wm_regs *wm_regs = ar->hw_ce_regs->wm_regs; ar 481 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_ctrl_addr + wm_regs->addr, mask); ar 495 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 506 drivers/net/wireless/ath/ath10k/ce.c ath10k_warn(ar, "%s: send more we can (nbytes: %d, max: %d)\n", ar 538 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_write_index_set(ar, ctrl_addr, write_index); ar 552 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 563 drivers/net/wireless/ath/ath10k/ce.c if (test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)) ar 567 drivers/net/wireless/ath/ath10k/ce.c ath10k_warn(ar, "%s: send more we can (nbytes: %d, max: %d)\n", ar 570 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.rri_on_ddr) ar 571 drivers/net/wireless/ath/ath10k/ce.c sw_index = ath10k_ce_src_ring_read_index_from_ddr(ar, ce_state->id); ar 613 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.shadow_reg_support) ar 614 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_shadow_src_ring_write_index_set(ar, ce_state, ar 617 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_write_index_set(ar, ctrl_addr, ar 640 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = pipe->ar; ar 641 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 656 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_write_index_get(ar, ctrl_addr))) ar 673 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 674 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 688 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = pipe->ar; ar 689 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 704 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = pipe->ar; ar 705 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 720 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = pipe->ar; ar 721 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 741 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_write_index_set(ar, ctrl_addr, write_index); ar 751 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = pipe->ar; ar 752 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 774 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_write_index_set(ar, ctrl_addr, write_index); ar 782 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = pipe->ar; ar 787 drivers/net/wireless/ath/ath10k/ce.c u32 cur_write_idx = ath10k_ce_dest_ring_write_index_get(ar, ctrl_addr); ar 796 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_write_index_set(ar, ctrl_addr, write_index); ar 804 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = pipe->ar; ar 805 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 933 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 934 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 957 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar; ar 965 drivers/net/wireless/ath/ath10k/ce.c ar = ce_state->ar; ar 966 drivers/net/wireless/ath/ath10k/ce.c ce = ath10k_ce_priv(ar); ar 1010 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar; ar 1018 drivers/net/wireless/ath/ath10k/ce.c ar = ce_state->ar; ar 1019 drivers/net/wireless/ath/ath10k/ce.c ce = ath10k_ce_priv(ar); ar 1074 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 1089 drivers/net/wireless/ath/ath10k/ce.c read_index = ath10k_ce_src_ring_read_index_get(ar, ctrl_addr); ar 1097 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.rri_on_ddr) ar 1098 drivers/net/wireless/ath/ath10k/ce.c read_index = ath10k_ce_src_ring_read_index_get(ar, ctrl_addr); ar 1127 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 1142 drivers/net/wireless/ath/ath10k/ce.c read_index = ath10k_ce_src_ring_read_index_get(ar, ctrl_addr); ar 1150 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.rri_on_ddr) ar 1151 drivers/net/wireless/ath/ath10k/ce.c read_index = ath10k_ce_src_ring_read_index_get(ar, ctrl_addr); ar 1183 drivers/net/wireless/ath/ath10k/ce.c static void ath10k_ce_extract_desc_data(struct ath10k *ar, ar 1200 drivers/net/wireless/ath/ath10k/ce.c static void ath10k_ce_extract_desc_data_64(struct ath10k *ar, ar 1230 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar; ar 1238 drivers/net/wireless/ath/ath10k/ce.c ar = ce_state->ar; ar 1239 drivers/net/wireless/ath/ath10k/ce.c ce = ath10k_ce_priv(ar); ar 1248 drivers/net/wireless/ath/ath10k/ce.c ce_state->ops->ce_extract_desc_data(ar, src_ring, sw_index, ar 1276 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 1277 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1295 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_per_engine_service(struct ath10k *ar, unsigned int ce_id) ar 1297 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1299 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_hw_ce_host_wm_regs *wm_regs = ar->hw_ce_regs->wm_regs; ar 1305 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_engine_int_status_clear(ar, ctrl_addr, ar 1322 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_engine_int_status_clear(ar, ctrl_addr, wm_regs->wm_mask); ar 1334 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_per_engine_service_any(struct ath10k *ar) ar 1339 drivers/net/wireless/ath/ath10k/ce.c intr_summary = ath10k_ce_interrupt_summary(ar); ar 1348 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_per_engine_service(ar, ce_id); ar 1363 drivers/net/wireless/ath/ath10k/ce.c struct ath10k *ar = ce_state->ar; ar 1368 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_copy_complete_inter_enable(ar, ctrl_addr); ar 1370 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_copy_complete_intr_disable(ar, ctrl_addr); ar 1372 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_watermark_intr_disable(ar, ctrl_addr); ar 1375 drivers/net/wireless/ath/ath10k/ce.c int ath10k_ce_disable_interrupts(struct ath10k *ar) ar 1377 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1387 drivers/net/wireless/ath/ath10k/ce.c ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 1389 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_copy_complete_intr_disable(ar, ctrl_addr); ar 1390 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_error_intr_disable(ar, ctrl_addr); ar 1391 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_watermark_intr_disable(ar, ctrl_addr); ar 1398 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_enable_interrupts(struct ath10k *ar) ar 1400 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1417 drivers/net/wireless/ath/ath10k/ce.c static int ath10k_ce_init_src_ring(struct ath10k *ar, ar 1421 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1424 drivers/net/wireless/ath/ath10k/ce.c u32 nentries, ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 1428 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.target_64bit) ar 1435 drivers/net/wireless/ath/ath10k/ce.c src_ring->sw_index = ath10k_ce_src_ring_read_index_get(ar, ctrl_addr); ar 1440 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_write_index_get(ar, ctrl_addr); ar 1443 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_base_addr_set(ar, ce_id, ar 1445 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_size_set(ar, ctrl_addr, nentries); ar 1446 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_dmax_set(ar, ctrl_addr, attr->src_sz_max); ar 1447 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_byte_swap_set(ar, ctrl_addr, 0); ar 1448 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_lowmark_set(ar, ctrl_addr, 0); ar 1449 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_highmark_set(ar, ctrl_addr, nentries); ar 1451 drivers/net/wireless/ath/ath10k/ce.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1458 drivers/net/wireless/ath/ath10k/ce.c static int ath10k_ce_init_dest_ring(struct ath10k *ar, ar 1462 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1465 drivers/net/wireless/ath/ath10k/ce.c u32 nentries, ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 1469 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.target_64bit) ar 1476 drivers/net/wireless/ath/ath10k/ce.c dest_ring->sw_index = ath10k_ce_dest_ring_read_index_get(ar, ctrl_addr); ar 1479 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_write_index_get(ar, ctrl_addr); ar 1482 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_base_addr_set(ar, ce_id, ar 1484 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_size_set(ar, ctrl_addr, nentries); ar 1485 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_byte_swap_set(ar, ctrl_addr, 0); ar 1486 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_lowmark_set(ar, ctrl_addr, 0); ar 1487 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_highmark_set(ar, ctrl_addr, nentries); ar 1489 drivers/net/wireless/ath/ath10k/ce.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1496 drivers/net/wireless/ath/ath10k/ce.c static int ath10k_ce_alloc_shadow_base(struct ath10k *ar, ar 1513 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_alloc_src_ring(struct ath10k *ar, unsigned int ce_id, ar 1536 drivers/net/wireless/ath/ath10k/ce.c dma_alloc_coherent(ar->dev, ar 1554 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.shadow_reg_support) { ar 1555 drivers/net/wireless/ath/ath10k/ce.c ret = ath10k_ce_alloc_shadow_base(ar, src_ring, nentries); ar 1557 drivers/net/wireless/ath/ath10k/ce.c dma_free_coherent(ar->dev, ar 1571 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_alloc_src_ring_64(struct ath10k *ar, unsigned int ce_id, ar 1593 drivers/net/wireless/ath/ath10k/ce.c dma_alloc_coherent(ar->dev, ar 1611 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.shadow_reg_support) { ar 1612 drivers/net/wireless/ath/ath10k/ce.c ret = ath10k_ce_alloc_shadow_base(ar, src_ring, nentries); ar 1614 drivers/net/wireless/ath/ath10k/ce.c dma_free_coherent(ar->dev, ar 1628 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_alloc_dest_ring(struct ath10k *ar, unsigned int ce_id, ar 1650 drivers/net/wireless/ath/ath10k/ce.c dma_alloc_coherent(ar->dev, ar 1672 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_alloc_dest_ring_64(struct ath10k *ar, unsigned int ce_id, ar 1693 drivers/net/wireless/ath/ath10k/ce.c dma_alloc_coherent(ar->dev, ar 1727 drivers/net/wireless/ath/ath10k/ce.c int ath10k_ce_init_pipe(struct ath10k *ar, unsigned int ce_id, ar 1733 drivers/net/wireless/ath/ath10k/ce.c ret = ath10k_ce_init_src_ring(ar, ce_id, attr); ar 1735 drivers/net/wireless/ath/ath10k/ce.c ath10k_err(ar, "Failed to initialize CE src ring for ID: %d (%d)\n", ar 1742 drivers/net/wireless/ath/ath10k/ce.c ret = ath10k_ce_init_dest_ring(ar, ce_id, attr); ar 1744 drivers/net/wireless/ath/ath10k/ce.c ath10k_err(ar, "Failed to initialize CE dest ring for ID: %d (%d)\n", ar 1754 drivers/net/wireless/ath/ath10k/ce.c static void ath10k_ce_deinit_src_ring(struct ath10k *ar, unsigned int ce_id) ar 1756 drivers/net/wireless/ath/ath10k/ce.c u32 ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 1758 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_base_addr_set(ar, ce_id, 0); ar 1759 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_size_set(ar, ctrl_addr, 0); ar 1760 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_dmax_set(ar, ctrl_addr, 0); ar 1761 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_src_ring_highmark_set(ar, ctrl_addr, 0); ar 1764 drivers/net/wireless/ath/ath10k/ce.c static void ath10k_ce_deinit_dest_ring(struct ath10k *ar, unsigned int ce_id) ar 1766 drivers/net/wireless/ath/ath10k/ce.c u32 ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 1768 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_base_addr_set(ar, ce_id, 0); ar 1769 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_size_set(ar, ctrl_addr, 0); ar 1770 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_dest_ring_highmark_set(ar, ctrl_addr, 0); ar 1773 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_deinit_pipe(struct ath10k *ar, unsigned int ce_id) ar 1775 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_deinit_src_ring(ar, ce_id); ar 1776 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_deinit_dest_ring(ar, ce_id); ar 1780 drivers/net/wireless/ath/ath10k/ce.c static void _ath10k_ce_free_pipe(struct ath10k *ar, int ce_id) ar 1782 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1786 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.shadow_reg_support) ar 1788 drivers/net/wireless/ath/ath10k/ce.c dma_free_coherent(ar->dev, ar 1798 drivers/net/wireless/ath/ath10k/ce.c dma_free_coherent(ar->dev, ar 1811 drivers/net/wireless/ath/ath10k/ce.c static void _ath10k_ce_free_pipe_64(struct ath10k *ar, int ce_id) ar 1813 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1817 drivers/net/wireless/ath/ath10k/ce.c if (ar->hw_params.shadow_reg_support) ar 1819 drivers/net/wireless/ath/ath10k/ce.c dma_free_coherent(ar->dev, ar 1829 drivers/net/wireless/ath/ath10k/ce.c dma_free_coherent(ar->dev, ar 1842 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_free_pipe(struct ath10k *ar, int ce_id) ar 1844 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1847 drivers/net/wireless/ath/ath10k/ce.c ce_state->ops->ce_free_pipe(ar, ce_id); ar 1851 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_dump_registers(struct ath10k *ar, ar 1854 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1858 drivers/net/wireless/ath/ath10k/ce.c lockdep_assert_held(&ar->dump_mutex); ar 1860 drivers/net/wireless/ath/ath10k/ce.c ath10k_err(ar, "Copy Engine register dump:\n"); ar 1864 drivers/net/wireless/ath/ath10k/ce.c addr = ath10k_ce_base_address(ar, id); ar 1868 drivers/net/wireless/ath/ath10k/ce.c cpu_to_le32(ath10k_ce_src_ring_write_index_get(ar, addr)); ar 1870 drivers/net/wireless/ath/ath10k/ce.c cpu_to_le32(ath10k_ce_src_ring_read_index_get(ar, addr)); ar 1872 drivers/net/wireless/ath/ath10k/ce.c cpu_to_le32(ath10k_ce_dest_ring_write_index_get(ar, addr)); ar 1874 drivers/net/wireless/ath/ath10k/ce.c cpu_to_le32(ath10k_ce_dest_ring_read_index_get(ar, addr)); ar 1879 drivers/net/wireless/ath/ath10k/ce.c ath10k_err(ar, "[%02d]: 0x%08x %3u %3u %3u %3u", id, ar 1920 drivers/net/wireless/ath/ath10k/ce.c static void ath10k_ce_set_ops(struct ath10k *ar, ar 1923 drivers/net/wireless/ath/ath10k/ce.c switch (ar->hw_rev) { ar 1933 drivers/net/wireless/ath/ath10k/ce.c int ath10k_ce_alloc_pipe(struct ath10k *ar, int ce_id, ar 1936 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1940 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_set_ops(ar, ce_state); ar 1953 drivers/net/wireless/ath/ath10k/ce.c ce_state->ar = ar; ar 1955 drivers/net/wireless/ath/ath10k/ce.c ce_state->ctrl_addr = ath10k_ce_base_address(ar, ce_id); ar 1967 drivers/net/wireless/ath/ath10k/ce.c ce_state->ops->ce_alloc_src_ring(ar, ce_id, attr); ar 1970 drivers/net/wireless/ath/ath10k/ce.c ath10k_err(ar, "failed to alloc CE src ring %d: %d\n", ar 1978 drivers/net/wireless/ath/ath10k/ce.c ce_state->dest_ring = ce_state->ops->ce_alloc_dst_ring(ar, ar 1983 drivers/net/wireless/ath/ath10k/ce.c ath10k_err(ar, "failed to alloc CE dest ring %d: %d\n", ar 1994 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_alloc_rri(struct ath10k *ar) ar 2000 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 2002 drivers/net/wireless/ath/ath10k/ce.c ce->vaddr_rri = dma_alloc_coherent(ar->dev, ar 2009 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ar->hw_ce_regs->ce_rri_low, ar 2011 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ar->hw_ce_regs->ce_rri_high, ar 2016 drivers/net/wireless/ath/ath10k/ce.c ctrl1_regs = ar->hw_ce_regs->ctrl1_regs->addr; ar 2017 drivers/net/wireless/ath/ath10k/ce.c ce_base_addr = ath10k_ce_base_address(ar, i); ar 2018 drivers/net/wireless/ath/ath10k/ce.c value = ath10k_ce_read32(ar, ce_base_addr + ctrl1_regs); ar 2019 drivers/net/wireless/ath/ath10k/ce.c value |= ar->hw_ce_regs->upd->mask; ar 2020 drivers/net/wireless/ath/ath10k/ce.c ath10k_ce_write32(ar, ce_base_addr + ctrl1_regs, value); ar 2027 drivers/net/wireless/ath/ath10k/ce.c void ath10k_ce_free_rri(struct ath10k *ar) ar 2029 drivers/net/wireless/ath/ath10k/ce.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 2031 drivers/net/wireless/ath/ath10k/ce.c dma_free_coherent(ar->dev, (CE_COUNT * sizeof(u32)), ar 38 drivers/net/wireless/ath/ath10k/ce.h #define CE_DESC_FLAGS_META_DATA_MASK ar->hw_values->ce_desc_meta_data_mask ar 39 drivers/net/wireless/ath/ath10k/ce.h #define CE_DESC_FLAGS_META_DATA_LSB ar->hw_values->ce_desc_meta_data_lsb ar 117 drivers/net/wireless/ath/ath10k/ce.h struct ath10k *ar; ar 137 drivers/net/wireless/ath/ath10k/ce.h u32 (*read32)(struct ath10k *ar, u32 offset); ar 138 drivers/net/wireless/ath/ath10k/ce.h void (*write32)(struct ath10k *ar, u32 offset, u32 value); ar 139 drivers/net/wireless/ath/ath10k/ce.h int (*get_num_banks)(struct ath10k *ar); ar 142 drivers/net/wireless/ath/ath10k/ce.h static inline struct ath10k_ce *ath10k_ce_priv(struct ath10k *ar) ar 144 drivers/net/wireless/ath/ath10k/ce.h return (struct ath10k_ce *)ar->ce_priv; ar 223 drivers/net/wireless/ath/ath10k/ce.h int ath10k_ce_init_pipe(struct ath10k *ar, unsigned int ce_id, ar 225 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_deinit_pipe(struct ath10k *ar, unsigned int ce_id); ar 226 drivers/net/wireless/ath/ath10k/ce.h int ath10k_ce_alloc_pipe(struct ath10k *ar, int ce_id, ar 228 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_free_pipe(struct ath10k *ar, int ce_id); ar 256 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_per_engine_service_any(struct ath10k *ar); ar 257 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_per_engine_service(struct ath10k *ar, unsigned int ce_id); ar 258 drivers/net/wireless/ath/ath10k/ce.h int ath10k_ce_disable_interrupts(struct ath10k *ar); ar 259 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_enable_interrupts(struct ath10k *ar); ar 260 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_dump_registers(struct ath10k *ar, ar 262 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_alloc_rri(struct ath10k *ar); ar 263 drivers/net/wireless/ath/ath10k/ce.h void ath10k_ce_free_rri(struct ath10k *ar); ar 303 drivers/net/wireless/ath/ath10k/ce.h struct ath10k_ce_ring *(*ce_alloc_src_ring)(struct ath10k *ar, ar 306 drivers/net/wireless/ath/ath10k/ce.h struct ath10k_ce_ring *(*ce_alloc_dst_ring)(struct ath10k *ar, ar 317 drivers/net/wireless/ath/ath10k/ce.h void (*ce_extract_desc_data)(struct ath10k *ar, ar 321 drivers/net/wireless/ath/ath10k/ce.h void (*ce_free_pipe)(struct ath10k *ar, int ce_id); ar 326 drivers/net/wireless/ath/ath10k/ce.h void (*ce_set_src_ring_base_addr_hi)(struct ath10k *ar, ar 329 drivers/net/wireless/ath/ath10k/ce.h void (*ce_set_dest_ring_base_addr_hi)(struct ath10k *ar, ar 336 drivers/net/wireless/ath/ath10k/ce.h static inline u32 ath10k_ce_base_address(struct ath10k *ar, unsigned int ce_id) ar 365 drivers/net/wireless/ath/ath10k/ce.h ar->regs->ce_wrap_intr_sum_host_msi_lsb ar 367 drivers/net/wireless/ath/ath10k/ce.h ar->regs->ce_wrap_intr_sum_host_msi_mask ar 374 drivers/net/wireless/ath/ath10k/ce.h static inline u32 ath10k_ce_interrupt_summary(struct ath10k *ar) ar 376 drivers/net/wireless/ath/ath10k/ce.h struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 378 drivers/net/wireless/ath/ath10k/ce.h if (!ar->hw_params.per_ce_irq) ar 380 drivers/net/wireless/ath/ath10k/ce.h ce->bus_ops->read32((ar), CE_WRAPPER_BASE_ADDRESS + ar 654 drivers/net/wireless/ath/ath10k/core.c void ath10k_core_get_fw_features_str(struct ath10k *ar, ar 662 drivers/net/wireless/ath/ath10k/core.c if (test_bit(i, ar->normal_mode_fw.fw_file.fw_features)) { ar 673 drivers/net/wireless/ath/ath10k/core.c static void ath10k_send_suspend_complete(struct ath10k *ar) ar 675 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot suspend complete\n"); ar 677 drivers/net/wireless/ath/ath10k/core.c complete(&ar->target_suspend); ar 680 drivers/net/wireless/ath/ath10k/core.c static void ath10k_init_sdio(struct ath10k *ar, enum ath10k_firmware_mode mode) ar 684 drivers/net/wireless/ath/ath10k/core.c ath10k_bmi_write32(ar, hi_mbox_io_block_sz, 256); ar 685 drivers/net/wireless/ath/ath10k/core.c ath10k_bmi_write32(ar, hi_mbox_isr_yield_limit, 99); ar 686 drivers/net/wireless/ath/ath10k/core.c ath10k_bmi_read32(ar, hi_acs_flags, ¶m); ar 703 drivers/net/wireless/ath/ath10k/core.c ath10k_bmi_write32(ar, hi_acs_flags, param); ar 708 drivers/net/wireless/ath/ath10k/core.c ath10k_bmi_read32(ar, hi_option_flag, ¶m); ar 710 drivers/net/wireless/ath/ath10k/core.c ath10k_bmi_write32(ar, hi_option_flag, param); ar 713 drivers/net/wireless/ath/ath10k/core.c static int ath10k_init_configure_target(struct ath10k *ar) ar 719 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_app_host_interest, ar 722 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "settings HTC version failed\n"); ar 727 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_read32(ar, hi_option_flag, ¶m_host); ar 729 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "setting firmware mode (1/2) failed\n"); ar 746 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_option_flag, param_host); ar 748 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "setting firmware mode (2/2) failed\n"); ar 753 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_be, 0); ar 755 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "setting host CPU BE mode failed\n"); ar 760 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_fw_swap, 0); ar 763 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "setting FW data/desc swap flags failed\n"); ar 771 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_hci_uart_pwr_mgmt_params_ext, ar 772 drivers/net/wireless/ath/ath10k/core.c ar->dev_id); ar 774 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to set pwr_mgmt_params: %d\n", ret); ar 781 drivers/net/wireless/ath/ath10k/core.c static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar, ar 796 drivers/net/wireless/ath/ath10k/core.c ret = firmware_request_nowarn(&fw, filename, ar->dev); ar 797 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n", ar 806 drivers/net/wireless/ath/ath10k/core.c static int ath10k_push_board_ext_data(struct ath10k *ar, const void *data, ar 809 drivers/net/wireless/ath/ath10k/core.c u32 board_data_size = ar->hw_params.fw.board_size; ar 810 drivers/net/wireless/ath/ath10k/core.c u32 board_ext_data_size = ar->hw_params.fw.board_ext_size; ar 814 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_read32(ar, hi_board_ext_data, &board_ext_data_addr); ar 816 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not read board ext data addr (%d)\n", ar 821 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 829 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "invalid board (ext) data sizes %zu != %d+%d\n", ar 834 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write_memory(ar, board_ext_data_addr, ar 838 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write board ext data (%d)\n", ret); ar 842 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_board_ext_data_config, ar 845 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write board ext data bit (%d)\n", ar 853 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_get_board_id_from_otp(struct ath10k *ar) ar 860 drivers/net/wireless/ath/ath10k/core.c address = ar->hw_params.patch_load_addr; ar 862 drivers/net/wireless/ath/ath10k/core.c if (!ar->normal_mode_fw.fw_file.otp_data || ar 863 drivers/net/wireless/ath/ath10k/core.c !ar->normal_mode_fw.fw_file.otp_len) { ar 864 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, ar 869 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 871 drivers/net/wireless/ath/ath10k/core.c address, ar->normal_mode_fw.fw_file.otp_len); ar 873 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_fast_download(ar, address, ar 874 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.otp_data, ar 875 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.otp_len); ar 877 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write otp for board id check: %d\n", ar 882 drivers/net/wireless/ath/ath10k/core.c if (ar->cal_mode == ATH10K_PRE_CAL_MODE_DT || ar 883 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode == ATH10K_PRE_CAL_MODE_FILE) ar 888 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_execute(ar, address, bmi_board_id_param, &result); ar 890 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not execute otp for board id check: %d\n", ar 899 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 903 drivers/net/wireless/ath/ath10k/core.c ar->id.ext_bid_supported = ext_bid_support; ar 907 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 912 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_ids_valid = true; ar 913 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_board_id = board_id; ar 914 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_chip_id = chip_id; ar 921 drivers/net/wireless/ath/ath10k/core.c struct ath10k *ar = data; ar 931 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 939 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "bdf variant name not found.\n"); ar 947 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 954 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 961 drivers/net/wireless/ath/ath10k/core.c if (strscpy(ar->id.bdf_ext, bdf_ext + strlen(magic), ar 962 drivers/net/wireless/ath/ath10k/core.c sizeof(ar->id.bdf_ext)) < 0) { ar 963 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 969 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 974 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_check_smbios(struct ath10k *ar) ar 976 drivers/net/wireless/ath/ath10k/core.c ar->id.bdf_ext[0] = '\0'; ar 977 drivers/net/wireless/ath/ath10k/core.c dmi_walk(ath10k_core_check_bdfext, ar); ar 979 drivers/net/wireless/ath/ath10k/core.c if (ar->id.bdf_ext[0] == '\0') ar 985 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_check_dt(struct ath10k *ar) ar 990 drivers/net/wireless/ath/ath10k/core.c node = ar->dev->of_node; ar 999 drivers/net/wireless/ath/ath10k/core.c if (strscpy(ar->id.bdf_ext, variant, sizeof(ar->id.bdf_ext)) < 0) ar 1000 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1007 drivers/net/wireless/ath/ath10k/core.c static int ath10k_download_fw(struct ath10k *ar) ar 1013 drivers/net/wireless/ath/ath10k/core.c address = ar->hw_params.patch_load_addr; ar 1015 drivers/net/wireless/ath/ath10k/core.c data = ar->running_fw->fw_file.firmware_data; ar 1016 drivers/net/wireless/ath/ath10k/core.c data_len = ar->running_fw->fw_file.firmware_len; ar 1018 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_swap_code_seg_configure(ar, &ar->running_fw->fw_file); ar 1020 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to configure fw code swap: %d\n", ar 1025 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1033 drivers/net/wireless/ath/ath10k/core.c if (ar->hw_params.fw_diag_ce_download) { ar 1034 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_hw_diag_fast_download(ar, address, ar 1040 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, ar 1045 drivers/net/wireless/ath/ath10k/core.c return ath10k_bmi_fast_download(ar, address, ar 1049 drivers/net/wireless/ath/ath10k/core.c void ath10k_core_free_board_files(struct ath10k *ar) ar 1051 drivers/net/wireless/ath/ath10k/core.c if (!IS_ERR(ar->normal_mode_fw.board)) ar 1052 drivers/net/wireless/ath/ath10k/core.c release_firmware(ar->normal_mode_fw.board); ar 1054 drivers/net/wireless/ath/ath10k/core.c if (!IS_ERR(ar->normal_mode_fw.ext_board)) ar 1055 drivers/net/wireless/ath/ath10k/core.c release_firmware(ar->normal_mode_fw.ext_board); ar 1057 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board = NULL; ar 1058 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board_data = NULL; ar 1059 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board_len = 0; ar 1060 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board = NULL; ar 1061 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board_data = NULL; ar 1062 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board_len = 0; ar 1066 drivers/net/wireless/ath/ath10k/core.c static void ath10k_core_free_firmware_files(struct ath10k *ar) ar 1068 drivers/net/wireless/ath/ath10k/core.c if (!IS_ERR(ar->normal_mode_fw.fw_file.firmware)) ar 1069 drivers/net/wireless/ath/ath10k/core.c release_firmware(ar->normal_mode_fw.fw_file.firmware); ar 1071 drivers/net/wireless/ath/ath10k/core.c if (!IS_ERR(ar->cal_file)) ar 1072 drivers/net/wireless/ath/ath10k/core.c release_firmware(ar->cal_file); ar 1074 drivers/net/wireless/ath/ath10k/core.c if (!IS_ERR(ar->pre_cal_file)) ar 1075 drivers/net/wireless/ath/ath10k/core.c release_firmware(ar->pre_cal_file); ar 1077 drivers/net/wireless/ath/ath10k/core.c ath10k_swap_code_seg_release(ar, &ar->normal_mode_fw.fw_file); ar 1079 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.otp_data = NULL; ar 1080 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.otp_len = 0; ar 1082 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.firmware = NULL; ar 1083 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.firmware_data = NULL; ar 1084 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.firmware_len = 0; ar 1086 drivers/net/wireless/ath/ath10k/core.c ar->cal_file = NULL; ar 1087 drivers/net/wireless/ath/ath10k/core.c ar->pre_cal_file = NULL; ar 1090 drivers/net/wireless/ath/ath10k/core.c static int ath10k_fetch_cal_file(struct ath10k *ar) ar 1096 drivers/net/wireless/ath/ath10k/core.c ath10k_bus_str(ar->hif.bus), dev_name(ar->dev)); ar 1098 drivers/net/wireless/ath/ath10k/core.c ar->pre_cal_file = ath10k_fetch_fw_file(ar, ATH10K_FW_DIR, filename); ar 1099 drivers/net/wireless/ath/ath10k/core.c if (!IS_ERR(ar->pre_cal_file)) ar 1104 drivers/net/wireless/ath/ath10k/core.c ath10k_bus_str(ar->hif.bus), dev_name(ar->dev)); ar 1106 drivers/net/wireless/ath/ath10k/core.c ar->cal_file = ath10k_fetch_fw_file(ar, ATH10K_FW_DIR, filename); ar 1107 drivers/net/wireless/ath/ath10k/core.c if (IS_ERR(ar->cal_file)) ar 1109 drivers/net/wireless/ath/ath10k/core.c return PTR_ERR(ar->cal_file); ar 1111 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "found calibration file %s/%s\n", ar 1117 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_fetch_board_data_api_1(struct ath10k *ar, int bd_ie_type) ar 1122 drivers/net/wireless/ath/ath10k/core.c if (!ar->hw_params.fw.board) { ar 1123 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to find board file fw entry\n"); ar 1127 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board = ath10k_fetch_fw_file(ar, ar 1128 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.dir, ar 1129 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.board); ar 1130 drivers/net/wireless/ath/ath10k/core.c if (IS_ERR(ar->normal_mode_fw.board)) ar 1131 drivers/net/wireless/ath/ath10k/core.c return PTR_ERR(ar->normal_mode_fw.board); ar 1133 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board_data = ar->normal_mode_fw.board->data; ar 1134 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board_len = ar->normal_mode_fw.board->size; ar 1136 drivers/net/wireless/ath/ath10k/core.c if (!ar->hw_params.fw.eboard) { ar 1137 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to find eboard file fw entry\n"); ar 1141 drivers/net/wireless/ath/ath10k/core.c fw = ath10k_fetch_fw_file(ar, ar->hw_params.fw.dir, ar 1142 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.eboard); ar 1143 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board = fw; ar 1144 drivers/net/wireless/ath/ath10k/core.c if (IS_ERR(ar->normal_mode_fw.ext_board)) ar 1145 drivers/net/wireless/ath/ath10k/core.c return PTR_ERR(ar->normal_mode_fw.ext_board); ar 1147 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board_data = ar->normal_mode_fw.ext_board->data; ar 1148 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board_len = ar->normal_mode_fw.ext_board->size; ar 1154 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_parse_bd_ie_board(struct ath10k *ar, ar 1178 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "invalid ATH10K_BD_IE_BOARD length: %zu < %zu\n", ar 1186 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg_dump(ar, ATH10K_DBG_BOOT, "board name", "", ar 1197 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1207 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1211 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board_data = board_ie_data; ar 1212 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board_len = board_ie_len; ar 1214 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1218 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board_data = board_ie_data; ar 1219 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board_len = board_ie_len; ar 1225 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "unknown ATH10K_BD_IE_BOARD found: %d\n", ar 1244 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_search_bd(struct ath10k *ar, ar 1262 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "invalid length for board ie_id %d ie_len %zu len %zu\n", ar 1269 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_parse_bd_ie_board(ar, data, ie_len, ar 1279 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_parse_bd_ie_board(ar, data, ie_len, ar 1302 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_fetch_board_data_api_n(struct ath10k *ar, ar 1312 drivers/net/wireless/ath/ath10k/core.c if (!ar->normal_mode_fw.board) ar 1313 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.board = ath10k_fetch_fw_file(ar, ar 1314 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.dir, ar 1316 drivers/net/wireless/ath/ath10k/core.c if (IS_ERR(ar->normal_mode_fw.board)) ar 1317 drivers/net/wireless/ath/ath10k/core.c return PTR_ERR(ar->normal_mode_fw.board); ar 1319 drivers/net/wireless/ath/ath10k/core.c data = ar->normal_mode_fw.board->data; ar 1320 drivers/net/wireless/ath/ath10k/core.c len = ar->normal_mode_fw.board->size; ar 1325 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to find magic value in %s/%s, file too short: %zu\n", ar 1326 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.dir, filename, len); ar 1332 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "found invalid board magic\n"); ar 1340 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed: %s/%s too small to contain board data, len: %zu\n", ar 1341 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.dir, filename, len); ar 1350 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_search_bd(ar, boardname, data, len); ar 1354 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_search_bd(ar, fallback_boardname, data, len); ar 1357 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, ar 1359 drivers/net/wireless/ath/ath10k/core.c boardname, ar->hw_params.fw.dir, filename); ar 1369 drivers/net/wireless/ath/ath10k/core.c ath10k_core_free_board_files(ar); ar 1373 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_create_board_name(struct ath10k *ar, char *name, ar 1379 drivers/net/wireless/ath/ath10k/core.c if (with_variant && ar->id.bdf_ext[0] != '\0') ar 1381 drivers/net/wireless/ath/ath10k/core.c ar->id.bdf_ext); ar 1383 drivers/net/wireless/ath/ath10k/core.c if (ar->id.bmi_ids_valid) { ar 1386 drivers/net/wireless/ath/ath10k/core.c ath10k_bus_str(ar->hif.bus), ar 1387 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_chip_id, ar 1388 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_board_id, variant); ar 1392 drivers/net/wireless/ath/ath10k/core.c if (ar->id.qmi_ids_valid) { ar 1395 drivers/net/wireless/ath/ath10k/core.c ath10k_bus_str(ar->hif.bus), ar 1396 drivers/net/wireless/ath/ath10k/core.c ar->id.qmi_board_id); ar 1402 drivers/net/wireless/ath/ath10k/core.c ath10k_bus_str(ar->hif.bus), ar 1403 drivers/net/wireless/ath/ath10k/core.c ar->id.vendor, ar->id.device, ar 1404 drivers/net/wireless/ath/ath10k/core.c ar->id.subsystem_vendor, ar->id.subsystem_device, variant); ar 1406 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot using board name '%s'\n", name); ar 1411 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_create_eboard_name(struct ath10k *ar, char *name, ar 1414 drivers/net/wireless/ath/ath10k/core.c if (ar->id.bmi_ids_valid) { ar 1417 drivers/net/wireless/ath/ath10k/core.c ath10k_bus_str(ar->hif.bus), ar 1418 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_chip_id, ar 1419 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_eboard_id); ar 1421 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot using eboard name '%s'\n", name); ar 1428 drivers/net/wireless/ath/ath10k/core.c int ath10k_core_fetch_board_file(struct ath10k *ar, int bd_ie_type) ar 1434 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_create_board_name(ar, boardname, ar 1437 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to create board name: %d", ret); ar 1441 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_create_board_name(ar, fallback_boardname, ar 1444 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to create fallback board name: %d", ret); ar 1448 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_create_eboard_name(ar, boardname, ar 1451 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "fallback to eboard.bin since board id 0"); ar 1456 drivers/net/wireless/ath/ath10k/core.c ar->bd_api = 2; ar 1457 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_fetch_board_data_api_n(ar, boardname, ar 1464 drivers/net/wireless/ath/ath10k/core.c ar->bd_api = 1; ar 1465 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_fetch_board_data_api_1(ar, bd_ie_type); ar 1467 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to fetch board-2.bin or board.bin from %s\n", ar 1468 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.dir); ar 1473 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "using board api %d\n", ar->bd_api); ar 1478 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_get_ext_board_id_from_otp(struct ath10k *ar) ar 1484 drivers/net/wireless/ath/ath10k/core.c address = ar->hw_params.patch_load_addr; ar 1486 drivers/net/wireless/ath/ath10k/core.c if (!ar->normal_mode_fw.fw_file.otp_data || ar 1487 drivers/net/wireless/ath/ath10k/core.c !ar->normal_mode_fw.fw_file.otp_len) { ar 1488 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, ar 1493 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1495 drivers/net/wireless/ath/ath10k/core.c address, ar->normal_mode_fw.fw_file.otp_len); ar 1497 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_fast_download(ar, address, ar 1498 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.otp_data, ar 1499 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.otp_len); ar 1501 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write otp for ext board id check: %d\n", ar 1506 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_execute(ar, address, BMI_PARAM_GET_EXT_BOARD_ID, &result); ar 1508 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not execute otp for ext board id check: %d\n", ar 1514 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1521 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1525 drivers/net/wireless/ath/ath10k/core.c ar->id.bmi_eboard_id = ext_board_id; ar 1530 drivers/net/wireless/ath/ath10k/core.c static int ath10k_download_board_data(struct ath10k *ar, const void *data, ar 1533 drivers/net/wireless/ath/ath10k/core.c u32 board_data_size = ar->hw_params.fw.board_size; ar 1534 drivers/net/wireless/ath/ath10k/core.c u32 eboard_data_size = ar->hw_params.fw.ext_board_size; ar 1539 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_push_board_ext_data(ar, data, data_len); ar 1541 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not push board ext data (%d)\n", ret); ar 1545 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_read32(ar, hi_board_data, &board_address); ar 1547 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not read board data addr (%d)\n", ret); ar 1551 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write_memory(ar, board_address, data, ar 1555 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write board data (%d)\n", ret); ar 1559 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_board_data_initialized, 1); ar 1561 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write board data bit (%d)\n", ret); ar 1565 drivers/net/wireless/ath/ath10k/core.c if (!ar->id.ext_bid_supported) ar 1569 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_get_ext_board_id_from_otp(ar); ar 1572 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "otp returned ext board id 0\n"); ar 1575 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to get extended board id: %d\n", ret); ar 1579 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_fetch_board_file(ar, ATH10K_BD_IE_BOARD_EXT); ar 1583 drivers/net/wireless/ath/ath10k/core.c if (ar->normal_mode_fw.ext_board_data) { ar 1585 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1588 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write_memory(ar, ext_board_address, ar 1589 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.ext_board_data, ar 1592 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to write ext board data: %d\n", ret); ar 1599 drivers/net/wireless/ath/ath10k/core.c static int ath10k_download_and_run_otp(struct ath10k *ar) ar 1601 drivers/net/wireless/ath/ath10k/core.c u32 result, address = ar->hw_params.patch_load_addr; ar 1602 drivers/net/wireless/ath/ath10k/core.c u32 bmi_otp_exe_param = ar->hw_params.otp_exe_param; ar 1605 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_board_data(ar, ar 1606 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->board_data, ar 1607 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->board_len); ar 1609 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to download board data: %d\n", ret); ar 1615 drivers/net/wireless/ath/ath10k/core.c if (!ar->running_fw->fw_file.otp_data || ar 1616 drivers/net/wireless/ath/ath10k/core.c !ar->running_fw->fw_file.otp_len) { ar 1617 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "Not running otp, calibration will be incorrect (otp-data %pK otp_len %zd)!\n", ar 1618 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.otp_data, ar 1619 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.otp_len); ar 1623 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot upload otp to 0x%x len %zd\n", ar 1624 drivers/net/wireless/ath/ath10k/core.c address, ar->running_fw->fw_file.otp_len); ar 1626 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_fast_download(ar, address, ar 1627 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.otp_data, ar 1628 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.otp_len); ar 1630 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write otp (%d)\n", ret); ar 1635 drivers/net/wireless/ath/ath10k/core.c if (ar->cal_mode == ATH10K_PRE_CAL_MODE_DT || ar 1636 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode == ATH10K_PRE_CAL_MODE_FILE) ar 1639 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_execute(ar, address, bmi_otp_exe_param, &result); ar 1641 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not execute otp (%d)\n", ret); ar 1645 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot otp execute result %d\n", result); ar 1648 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.fw_features)) && ar 1650 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "otp calibration failed: %d", result); ar 1657 drivers/net/wireless/ath/ath10k/core.c static int ath10k_download_cal_file(struct ath10k *ar, ar 1668 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_board_data(ar, file->data, file->size); ar 1670 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to download cal_file data: %d\n", ret); ar 1674 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot cal file downloaded\n"); ar 1679 drivers/net/wireless/ath/ath10k/core.c static int ath10k_download_cal_dt(struct ath10k *ar, const char *dt_name) ar 1686 drivers/net/wireless/ath/ath10k/core.c node = ar->dev->of_node; ar 1698 drivers/net/wireless/ath/ath10k/core.c if (data_len != ar->hw_params.cal_data_len) { ar 1699 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "invalid calibration data length in DT: %d\n", ar 1713 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "failed to read calibration data from DT: %d\n", ar 1718 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_board_data(ar, data, data_len); ar 1720 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "failed to download calibration data from Device Tree: %d\n", ar 1734 drivers/net/wireless/ath/ath10k/core.c static int ath10k_download_cal_eeprom(struct ath10k *ar) ar 1740 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_hif_fetch_cal_eeprom(ar, &data, &data_len); ar 1743 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "failed to read calibration data from EEPROM: %d\n", ar 1748 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_board_data(ar, data, data_len); ar 1750 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "failed to download calibration data from EEPROM: %d\n", ar 1763 drivers/net/wireless/ath/ath10k/core.c int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name, ar 1773 drivers/net/wireless/ath/ath10k/core.c fw_file->firmware = ath10k_fetch_fw_file(ar, ar->hw_params.fw.dir, ar 1785 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "firmware file '%s/%s' too small to contain magic: %zu\n", ar 1786 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.dir, name, len); ar 1792 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "invalid firmware magic\n"); ar 1814 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "invalid length for FW IE %d (%zu < %zu)\n", ar 1828 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1838 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "found fw timestamp %d\n", ar 1842 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1854 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1861 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg_dump(ar, ATH10K_DBG_BOOT, "features", "", ar 1866 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1875 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1891 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "found fw ie wmi op version %d\n", ar 1902 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "found fw ie htt op version %d\n", ar 1906 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1913 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "Unknown FW IE: %u\n", ar 1927 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "No ATH10K_FW_IE_FW_IMAGE found from '%s/%s', skipping\n", ar 1928 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.fw.dir, name); ar 1936 drivers/net/wireless/ath/ath10k/core.c ath10k_core_free_firmware_files(ar); ar 1940 drivers/net/wireless/ath/ath10k/core.c static void ath10k_core_get_fw_name(struct ath10k *ar, char *fw_name, ar 1943 drivers/net/wireless/ath/ath10k/core.c switch (ar->hif.bus) { ar 1947 drivers/net/wireless/ath/ath10k/core.c ATH10K_FW_FILE_BASE, ath10k_bus_str(ar->hif.bus), ar 1959 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_fetch_firmware_files(struct ath10k *ar) ar 1965 drivers/net/wireless/ath/ath10k/core.c ath10k_fetch_cal_file(ar); ar 1968 drivers/net/wireless/ath/ath10k/core.c ar->fw_api = i; ar 1969 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "trying fw api %d\n", ar 1970 drivers/net/wireless/ath/ath10k/core.c ar->fw_api); ar 1972 drivers/net/wireless/ath/ath10k/core.c ath10k_core_get_fw_name(ar, fw_name, sizeof(fw_name), ar->fw_api); ar 1973 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_fetch_firmware_api_n(ar, fw_name, ar 1974 drivers/net/wireless/ath/ath10k/core.c &ar->normal_mode_fw.fw_file); ar 1981 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "Failed to find firmware-N.bin (N between %d and %d) from %s: %d", ar 1982 drivers/net/wireless/ath/ath10k/core.c ATH10K_FW_API_MIN, ATH10K_FW_API_MAX, ar->hw_params.fw.dir, ar 1988 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "using fw api %d\n", ar->fw_api); ar 1993 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_pre_cal_download(struct ath10k *ar) ar 1997 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_cal_file(ar, ar->pre_cal_file); ar 1999 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode = ATH10K_PRE_CAL_MODE_FILE; ar 2003 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2007 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_cal_dt(ar, "qcom,ath10k-pre-calibration-data"); ar 2009 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2013 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode = ATH10K_PRE_CAL_MODE_DT; ar 2016 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot using calibration mode %s\n", ar 2017 drivers/net/wireless/ath/ath10k/core.c ath10k_cal_mode_str(ar->cal_mode)); ar 2022 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_pre_cal_config(struct ath10k *ar) ar 2026 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_pre_cal_download(ar); ar 2028 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2033 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_get_board_id_from_otp(ar); ar 2035 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to get board id: %d\n", ret); ar 2039 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_and_run_otp(ar); ar 2041 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to run otp: %d\n", ret); ar 2045 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2051 drivers/net/wireless/ath/ath10k/core.c static int ath10k_download_cal_data(struct ath10k *ar) ar 2055 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_pre_cal_config(ar); ar 2059 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2063 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_cal_file(ar, ar->cal_file); ar 2065 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode = ATH10K_CAL_MODE_FILE; ar 2069 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2073 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_cal_dt(ar, "qcom,ath10k-calibration-data"); ar 2075 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode = ATH10K_CAL_MODE_DT; ar 2079 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2083 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_cal_eeprom(ar); ar 2085 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode = ATH10K_CAL_MODE_EEPROM; ar 2089 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2093 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_download_and_run_otp(ar); ar 2095 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to run otp: %d\n", ret); ar 2099 drivers/net/wireless/ath/ath10k/core.c ar->cal_mode = ATH10K_CAL_MODE_OTP; ar 2102 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot using calibration mode %s\n", ar 2103 drivers/net/wireless/ath/ath10k/core.c ath10k_cal_mode_str(ar->cal_mode)); ar 2107 drivers/net/wireless/ath/ath10k/core.c static int ath10k_init_uart(struct ath10k *ar) ar 2115 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_serial_enable, 0); ar 2117 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "could not disable UART prints (%d)\n", ret); ar 2122 drivers/net/wireless/ath/ath10k/core.c if (ar->hw_params.uart_pin_workaround) { ar 2123 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_dbg_uart_txpin, ar 2124 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.uart_pin); ar 2126 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "failed to set UART TX pin: %d", ar 2135 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_dbg_uart_txpin, ar->hw_params.uart_pin); ar 2137 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "could not enable UART prints (%d)\n", ret); ar 2141 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_serial_enable, 1); ar 2143 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "could not enable UART prints (%d)\n", ret); ar 2148 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_write32(ar, hi_desired_baud_rate, 19200); ar 2150 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "could not set the baud rate (%d)\n", ret); ar 2154 drivers/net/wireless/ath/ath10k/core.c ath10k_info(ar, "UART prints enabled\n"); ar 2158 drivers/net/wireless/ath/ath10k/core.c static int ath10k_init_hw_params(struct ath10k *ar) ar 2166 drivers/net/wireless/ath/ath10k/core.c if (hw_params->bus == ar->hif.bus && ar 2167 drivers/net/wireless/ath/ath10k/core.c hw_params->id == ar->target_version && ar 2168 drivers/net/wireless/ath/ath10k/core.c hw_params->dev_id == ar->dev_id) ar 2173 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "Unsupported hardware version: 0x%x\n", ar 2174 drivers/net/wireless/ath/ath10k/core.c ar->target_version); ar 2178 drivers/net/wireless/ath/ath10k/core.c ar->hw_params = *hw_params; ar 2180 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "Hardware name %s version 0x%x\n", ar 2181 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.name, ar->target_version); ar 2188 drivers/net/wireless/ath/ath10k/core.c struct ath10k *ar = container_of(work, struct ath10k, restart_work); ar 2191 drivers/net/wireless/ath/ath10k/core.c set_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags); ar 2198 drivers/net/wireless/ath/ath10k/core.c ieee80211_stop_queues(ar->hw); ar 2199 drivers/net/wireless/ath/ath10k/core.c ath10k_drain_tx(ar); ar 2200 drivers/net/wireless/ath/ath10k/core.c complete(&ar->scan.started); ar 2201 drivers/net/wireless/ath/ath10k/core.c complete(&ar->scan.completed); ar 2202 drivers/net/wireless/ath/ath10k/core.c complete(&ar->scan.on_channel); ar 2203 drivers/net/wireless/ath/ath10k/core.c complete(&ar->offchan_tx_completed); ar 2204 drivers/net/wireless/ath/ath10k/core.c complete(&ar->install_key_done); ar 2205 drivers/net/wireless/ath/ath10k/core.c complete(&ar->vdev_setup_done); ar 2206 drivers/net/wireless/ath/ath10k/core.c complete(&ar->vdev_delete_done); ar 2207 drivers/net/wireless/ath/ath10k/core.c complete(&ar->thermal.wmi_sync); ar 2208 drivers/net/wireless/ath/ath10k/core.c complete(&ar->bss_survey_done); ar 2209 drivers/net/wireless/ath/ath10k/core.c wake_up(&ar->htt.empty_tx_wq); ar 2210 drivers/net/wireless/ath/ath10k/core.c wake_up(&ar->wmi.tx_credits_wq); ar 2211 drivers/net/wireless/ath/ath10k/core.c wake_up(&ar->peer_mapping_wq); ar 2218 drivers/net/wireless/ath/ath10k/core.c cancel_work_sync(&ar->set_coverage_class_work); ar 2220 drivers/net/wireless/ath/ath10k/core.c mutex_lock(&ar->conf_mutex); ar 2222 drivers/net/wireless/ath/ath10k/core.c switch (ar->state) { ar 2224 drivers/net/wireless/ath/ath10k/core.c ar->state = ATH10K_STATE_RESTARTING; ar 2225 drivers/net/wireless/ath/ath10k/core.c ath10k_halt(ar); ar 2226 drivers/net/wireless/ath/ath10k/core.c ath10k_scan_finish(ar); ar 2227 drivers/net/wireless/ath/ath10k/core.c ieee80211_restart_hw(ar->hw); ar 2233 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "cannot restart a device that hasn't been started\n"); ar 2239 drivers/net/wireless/ath/ath10k/core.c ar->state = ATH10K_STATE_WEDGED; ar 2242 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "device is wedged, will not restart\n"); ar 2245 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "firmware restart in UTF mode not supported\n"); ar 2249 drivers/net/wireless/ath/ath10k/core.c mutex_unlock(&ar->conf_mutex); ar 2251 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_coredump_submit(ar); ar 2253 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "failed to send firmware crash dump via devcoredump: %d", ar 2256 drivers/net/wireless/ath/ath10k/core.c complete(&ar->driver_recovery); ar 2261 drivers/net/wireless/ath/ath10k/core.c struct ath10k *ar = container_of(work, struct ath10k, ar 2264 drivers/net/wireless/ath/ath10k/core.c if (ar->hw_params.hw_ops->set_coverage_class) ar 2265 drivers/net/wireless/ath/ath10k/core.c ar->hw_params.hw_ops->set_coverage_class(ar, -1); ar 2268 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_init_firmware_features(struct ath10k *ar) ar 2270 drivers/net/wireless/ath/ath10k/core.c struct ath10k_fw_file *fw_file = &ar->normal_mode_fw.fw_file; ar 2275 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "feature bits corrupted: 10.2 feature requires 10.x feature to be set as well"); ar 2280 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "unsupported WMI OP version (max %d): %d\n", ar 2285 drivers/net/wireless/ath/ath10k/core.c ar->wmi.rx_decap_mode = ATH10K_HW_TXRX_NATIVE_WIFI; ar 2288 drivers/net/wireless/ath/ath10k/core.c clear_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags); ar 2289 drivers/net/wireless/ath/ath10k/core.c clear_bit(ATH10K_FLAG_HW_CRYPTO_DISABLED, &ar->dev_flags); ar 2294 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "cryptmode > 0 requires raw mode support from firmware"); ar 2298 drivers/net/wireless/ath/ath10k/core.c set_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags); ar 2299 drivers/net/wireless/ath/ath10k/core.c set_bit(ATH10K_FLAG_HW_CRYPTO_DISABLED, &ar->dev_flags); ar 2302 drivers/net/wireless/ath/ath10k/core.c ath10k_info(ar, "invalid cryptmode: %d\n", ar 2307 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_amsdu = ATH10K_HTT_MAX_NUM_AMSDU_DEFAULT; ar 2308 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_ampdu = ATH10K_HTT_MAX_NUM_AMPDU_DEFAULT; ar 2313 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "rawmode = 1 requires support from firmware"); ar 2316 drivers/net/wireless/ath/ath10k/core.c set_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags); ar 2319 drivers/net/wireless/ath/ath10k/core.c if (test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) { ar 2320 drivers/net/wireless/ath/ath10k/core.c ar->wmi.rx_decap_mode = ATH10K_HW_TXRX_RAW; ar 2331 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_amsdu = 1; ar 2352 drivers/net/wireless/ath/ath10k/core.c ar->max_num_stations = TARGET_NUM_STATIONS; ar 2353 drivers/net/wireless/ath/ath10k/core.c ar->max_num_vdevs = TARGET_NUM_VDEVS; ar 2354 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_NUM_MSDU_DESC; ar 2355 drivers/net/wireless/ath/ath10k/core.c ar->fw_stats_req_mask = WMI_STAT_PDEV | WMI_STAT_VDEV | ar 2357 drivers/net/wireless/ath/ath10k/core.c ar->max_spatial_stream = WMI_MAX_SPATIAL_STREAM; ar 2362 drivers/net/wireless/ath/ath10k/core.c if (ath10k_peer_stats_enabled(ar)) { ar 2364 drivers/net/wireless/ath/ath10k/core.c ar->max_num_stations = TARGET_10X_TX_STATS_NUM_STATIONS; ar 2367 drivers/net/wireless/ath/ath10k/core.c ar->max_num_stations = TARGET_10X_NUM_STATIONS; ar 2369 drivers/net/wireless/ath/ath10k/core.c ar->max_num_vdevs = TARGET_10X_NUM_VDEVS; ar 2370 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_10X_NUM_MSDU_DESC; ar 2371 drivers/net/wireless/ath/ath10k/core.c ar->fw_stats_req_mask = WMI_STAT_PEER; ar 2372 drivers/net/wireless/ath/ath10k/core.c ar->max_spatial_stream = WMI_MAX_SPATIAL_STREAM; ar 2376 drivers/net/wireless/ath/ath10k/core.c ar->max_num_stations = TARGET_TLV_NUM_STATIONS; ar 2377 drivers/net/wireless/ath/ath10k/core.c ar->max_num_vdevs = TARGET_TLV_NUM_VDEVS; ar 2378 drivers/net/wireless/ath/ath10k/core.c ar->max_num_tdls_vdevs = TARGET_TLV_NUM_TDLS_VDEVS; ar 2379 drivers/net/wireless/ath/ath10k/core.c if (ar->hif.bus == ATH10K_BUS_SDIO) ar 2380 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = ar 2383 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_TLV_NUM_MSDU_DESC; ar 2384 drivers/net/wireless/ath/ath10k/core.c ar->wow.max_num_patterns = TARGET_TLV_NUM_WOW_PATTERNS; ar 2385 drivers/net/wireless/ath/ath10k/core.c ar->fw_stats_req_mask = WMI_TLV_STAT_PDEV | WMI_TLV_STAT_VDEV | ar 2387 drivers/net/wireless/ath/ath10k/core.c ar->max_spatial_stream = WMI_MAX_SPATIAL_STREAM; ar 2388 drivers/net/wireless/ath/ath10k/core.c ar->wmi.mgmt_max_num_pending_tx = TARGET_TLV_MGMT_NUM_MSDU_DESC; ar 2392 drivers/net/wireless/ath/ath10k/core.c ar->max_num_stations = TARGET_10_4_NUM_STATIONS; ar 2393 drivers/net/wireless/ath/ath10k/core.c ar->num_active_peers = TARGET_10_4_ACTIVE_PEERS; ar 2394 drivers/net/wireless/ath/ath10k/core.c ar->max_num_vdevs = TARGET_10_4_NUM_VDEVS; ar 2395 drivers/net/wireless/ath/ath10k/core.c ar->num_tids = TARGET_10_4_TGT_NUM_TIDS; ar 2396 drivers/net/wireless/ath/ath10k/core.c ar->fw_stats_req_mask = WMI_10_4_STAT_PEER | ar 2399 drivers/net/wireless/ath/ath10k/core.c ar->max_spatial_stream = ar->hw_params.max_spatial_stream; ar 2400 drivers/net/wireless/ath/ath10k/core.c ar->max_num_tdls_vdevs = TARGET_10_4_NUM_TDLS_VDEVS; ar 2404 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_10_4_NUM_MSDU_DESC_PFC; ar 2406 drivers/net/wireless/ath/ath10k/core.c ar->htt.max_num_pending_tx = TARGET_10_4_NUM_MSDU_DESC; ar 2415 drivers/net/wireless/ath/ath10k/core.c if (ar->hw_params.num_peers) ar 2416 drivers/net/wireless/ath/ath10k/core.c ar->max_num_peers = ar->hw_params.num_peers; ar 2418 drivers/net/wireless/ath/ath10k/core.c ar->max_num_peers = max_num_peers; ar 2439 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "htt op version not found from fw meta data"); ar 2447 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_reset_rx_filter(struct ath10k *ar) ar 2457 drivers/net/wireless/ath/ath10k/core.c vdev_subtype = ath10k_wmi_get_vdev_subtype(ar, WMI_VDEV_SUBTYPE_NONE); ar 2458 drivers/net/wireless/ath/ath10k/core.c vdev_addr = ar->mac_addr; ar 2460 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_wmi_vdev_create(ar, vdev_id, vdev_type, vdev_subtype, ar 2463 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to create dummy vdev: %d\n", ret); ar 2467 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_wmi_vdev_delete(ar, vdev_id); ar 2469 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to delete dummy vdev: %d\n", ret); ar 2487 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_wmi_barrier(ar); ar 2489 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to ping firmware: %d\n", ret); ar 2496 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_compat_services(struct ath10k *ar) ar 2498 drivers/net/wireless/ath/ath10k/core.c struct ath10k_fw_file *fw_file = &ar->normal_mode_fw.fw_file; ar 2509 drivers/net/wireless/ath/ath10k/core.c set_bit(WMI_SERVICE_THERM_THROT, ar->wmi.svc_map); ar 2518 drivers/net/wireless/ath/ath10k/core.c int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, ar 2524 drivers/net/wireless/ath/ath10k/core.c lockdep_assert_held(&ar->conf_mutex); ar 2526 drivers/net/wireless/ath/ath10k/core.c clear_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags); ar 2528 drivers/net/wireless/ath/ath10k/core.c ar->running_fw = fw; ar 2531 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.fw_features)) { ar 2532 drivers/net/wireless/ath/ath10k/core.c ath10k_bmi_start(ar); ar 2534 drivers/net/wireless/ath/ath10k/core.c if (ath10k_init_configure_target(ar)) { ar 2539 drivers/net/wireless/ath/ath10k/core.c status = ath10k_download_cal_data(ar); ar 2551 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.fw_features)) { ar 2552 drivers/net/wireless/ath/ath10k/core.c status = ath10k_bmi_write32(ar, hi_skip_clock_init, 1); ar 2554 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not write to skip_clock_init: %d\n", ar 2560 drivers/net/wireless/ath/ath10k/core.c status = ath10k_download_fw(ar); ar 2564 drivers/net/wireless/ath/ath10k/core.c status = ath10k_init_uart(ar); ar 2568 drivers/net/wireless/ath/ath10k/core.c if (ar->hif.bus == ATH10K_BUS_SDIO) ar 2569 drivers/net/wireless/ath/ath10k/core.c ath10k_init_sdio(ar, mode); ar 2572 drivers/net/wireless/ath/ath10k/core.c ar->htc.htc_ops.target_send_suspend_complete = ar 2575 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htc_init(ar); ar 2577 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not init HTC (%d)\n", status); ar 2582 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.fw_features)) { ar 2583 drivers/net/wireless/ath/ath10k/core.c status = ath10k_bmi_done(ar); ar 2588 drivers/net/wireless/ath/ath10k/core.c status = ath10k_wmi_attach(ar); ar 2590 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "WMI attach failed: %d\n", status); ar 2594 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_init(ar); ar 2596 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to init htt: %d\n", status); ar 2600 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_tx_start(&ar->htt); ar 2602 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to alloc htt tx: %d\n", status); ar 2609 drivers/net/wireless/ath/ath10k/core.c ar->htt.rx_ring.in_ord_rx = !!(test_bit(WMI_SERVICE_RX_FULL_REORDER, ar 2610 drivers/net/wireless/ath/ath10k/core.c ar->wmi.svc_map)); ar 2612 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_rx_alloc(&ar->htt); ar 2614 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to alloc htt rx: %d\n", status); ar 2618 drivers/net/wireless/ath/ath10k/core.c status = ath10k_hif_start(ar); ar 2620 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not start HIF: %d\n", status); ar 2624 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htc_wait_target(&ar->htc); ar 2626 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to connect to HTC: %d\n", status); ar 2630 drivers/net/wireless/ath/ath10k/core.c status = ath10k_hif_swap_mailbox(ar); ar 2632 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to swap mailbox: %d\n", status); ar 2637 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_connect(&ar->htt); ar 2639 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to connect htt (%d)\n", status); ar 2644 drivers/net/wireless/ath/ath10k/core.c status = ath10k_wmi_connect(ar); ar 2646 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not connect wmi: %d\n", status); ar 2650 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htc_start(&ar->htc); ar 2652 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to start htc: %d\n", status); ar 2657 drivers/net/wireless/ath/ath10k/core.c status = ath10k_wmi_wait_for_service_ready(ar); ar 2659 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "wmi service ready event not received"); ar 2664 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "firmware %s booted\n", ar 2665 drivers/net/wireless/ath/ath10k/core.c ar->hw->wiphy->fw_version); ar 2667 drivers/net/wireless/ath/ath10k/core.c if (test_bit(WMI_SERVICE_EXT_RES_CFG_SUPPORT, ar->wmi.svc_map) && ar 2670 drivers/net/wireless/ath/ath10k/core.c if (ath10k_peer_stats_enabled(ar)) ar 2676 drivers/net/wireless/ath/ath10k/core.c if (test_bit(WMI_SERVICE_BSS_CHANNEL_INFO_64, ar->wmi.svc_map)) ar 2684 drivers/net/wireless/ath/ath10k/core.c if (test_bit(WMI_SERVICE_COEX_GPIO, ar->wmi.svc_map) && ar 2686 drivers/net/wireless/ath/ath10k/core.c ar->running_fw->fw_file.fw_features)) ar 2690 drivers/net/wireless/ath/ath10k/core.c ar->wmi.svc_map)) ar 2694 drivers/net/wireless/ath/ath10k/core.c ar->wmi.svc_map)) ar 2698 drivers/net/wireless/ath/ath10k/core.c ar->wmi.svc_map)) ar 2701 drivers/net/wireless/ath/ath10k/core.c if (test_bit(WMI_SERVICE_REPORT_AIRTIME, ar->wmi.svc_map)) ar 2704 drivers/net/wireless/ath/ath10k/core.c status = ath10k_mac_ext_resource_config(ar, val); ar 2706 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, ar 2713 drivers/net/wireless/ath/ath10k/core.c status = ath10k_wmi_cmd_init(ar); ar 2715 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not send WMI init command (%d)\n", ar 2720 drivers/net/wireless/ath/ath10k/core.c status = ath10k_wmi_wait_for_unified_ready(ar); ar 2722 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "wmi unified ready event not received\n"); ar 2726 drivers/net/wireless/ath/ath10k/core.c status = ath10k_core_compat_services(ar); ar 2728 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "compat services failed: %d\n", status); ar 2732 drivers/net/wireless/ath/ath10k/core.c status = ath10k_wmi_pdev_set_base_macaddr(ar, ar->mac_addr); ar 2734 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, ar 2752 drivers/net/wireless/ath/ath10k/core.c if (ar->hw_params.hw_filter_reset_required && ar 2754 drivers/net/wireless/ath/ath10k/core.c status = ath10k_core_reset_rx_filter(ar); ar 2756 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, ar 2762 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_rx_ring_refill(ar); ar 2764 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to refill htt rx ring: %d\n", status); ar 2768 drivers/net/wireless/ath/ath10k/core.c if (ar->max_num_vdevs >= 64) ar 2769 drivers/net/wireless/ath/ath10k/core.c ar->free_vdev_map = 0xFFFFFFFFFFFFFFFFLL; ar 2771 drivers/net/wireless/ath/ath10k/core.c ar->free_vdev_map = (1LL << ar->max_num_vdevs) - 1; ar 2773 drivers/net/wireless/ath/ath10k/core.c INIT_LIST_HEAD(&ar->arvifs); ar 2777 drivers/net/wireless/ath/ath10k/core.c status = ath10k_htt_setup(&ar->htt); ar 2779 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to setup htt: %d\n", status); ar 2784 drivers/net/wireless/ath/ath10k/core.c status = ath10k_debug_start(ar); ar 2788 drivers/net/wireless/ath/ath10k/core.c status = ath10k_hif_set_target_log_mode(ar, fw_diag_log); ar 2790 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "set traget log mode faileds: %d\n", status); ar 2797 drivers/net/wireless/ath/ath10k/core.c ath10k_hif_stop(ar); ar 2799 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_rx_free(&ar->htt); ar 2801 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_tx_free(&ar->htt); ar 2803 drivers/net/wireless/ath/ath10k/core.c ath10k_wmi_detach(ar); ar 2809 drivers/net/wireless/ath/ath10k/core.c int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt) ar 2814 drivers/net/wireless/ath/ath10k/core.c reinit_completion(&ar->target_suspend); ar 2816 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_wmi_pdev_suspend_target(ar, suspend_opt); ar 2818 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "could not suspend target (%d)\n", ret); ar 2822 drivers/net/wireless/ath/ath10k/core.c time_left = wait_for_completion_timeout(&ar->target_suspend, 1 * HZ); ar 2825 drivers/net/wireless/ath/ath10k/core.c ath10k_warn(ar, "suspend timed out - target pause event never came\n"); ar 2832 drivers/net/wireless/ath/ath10k/core.c void ath10k_core_stop(struct ath10k *ar) ar 2834 drivers/net/wireless/ath/ath10k/core.c lockdep_assert_held(&ar->conf_mutex); ar 2835 drivers/net/wireless/ath/ath10k/core.c ath10k_debug_stop(ar); ar 2838 drivers/net/wireless/ath/ath10k/core.c if (ar->state != ATH10K_STATE_RESTARTING && ar 2839 drivers/net/wireless/ath/ath10k/core.c ar->state != ATH10K_STATE_UTF) ar 2840 drivers/net/wireless/ath/ath10k/core.c ath10k_wait_for_suspend(ar, WMI_PDEV_SUSPEND_AND_DISABLE_INTR); ar 2842 drivers/net/wireless/ath/ath10k/core.c ath10k_hif_stop(ar); ar 2843 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_tx_stop(&ar->htt); ar 2844 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_rx_free(&ar->htt); ar 2845 drivers/net/wireless/ath/ath10k/core.c ath10k_wmi_detach(ar); ar 2854 drivers/net/wireless/ath/ath10k/core.c static int ath10k_core_probe_fw(struct ath10k *ar) ar 2859 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_hif_power_up(ar, ATH10K_FIRMWARE_MODE_NORMAL); ar 2861 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not power on hif bus (%d)\n", ret); ar 2865 drivers/net/wireless/ath/ath10k/core.c switch (ar->hif.bus) { ar 2868 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_get_target_info_sdio(ar, &target_info); ar 2870 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not get target info (%d)\n", ret); ar 2873 drivers/net/wireless/ath/ath10k/core.c ar->target_version = target_info.version; ar 2874 drivers/net/wireless/ath/ath10k/core.c ar->hw->wiphy->hw_version = target_info.version; ar 2880 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_bmi_get_target_info(ar, &target_info); ar 2882 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not get target info (%d)\n", ret); ar 2885 drivers/net/wireless/ath/ath10k/core.c ar->target_version = target_info.version; ar 2886 drivers/net/wireless/ath/ath10k/core.c ar->hw->wiphy->hw_version = target_info.version; ar 2890 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_hif_get_target_info(ar, &target_info); ar 2892 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not get target info (%d)\n", ret); ar 2895 drivers/net/wireless/ath/ath10k/core.c ar->target_version = target_info.version; ar 2896 drivers/net/wireless/ath/ath10k/core.c ar->hw->wiphy->hw_version = target_info.version; ar 2899 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "incorrect hif bus type: %d\n", ar->hif.bus); ar 2902 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_init_hw_params(ar); ar 2904 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not get hw params (%d)\n", ret); ar 2908 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_fetch_firmware_files(ar); ar 2910 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not fetch firmware files (%d)\n", ret); ar 2914 drivers/net/wireless/ath/ath10k/core.c BUILD_BUG_ON(sizeof(ar->hw->wiphy->fw_version) != ar 2915 drivers/net/wireless/ath/ath10k/core.c sizeof(ar->normal_mode_fw.fw_file.fw_version)); ar 2916 drivers/net/wireless/ath/ath10k/core.c memcpy(ar->hw->wiphy->fw_version, ar->normal_mode_fw.fw_file.fw_version, ar 2917 drivers/net/wireless/ath/ath10k/core.c sizeof(ar->hw->wiphy->fw_version)); ar 2919 drivers/net/wireless/ath/ath10k/core.c ath10k_debug_print_hwfw_info(ar); ar 2922 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.fw_features)) { ar 2923 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_pre_cal_download(ar); ar 2928 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2932 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_get_board_id_from_otp(ar); ar 2934 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to get board id from otp: %d\n", ar 2939 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_check_smbios(ar); ar 2941 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "SMBIOS bdf variant name not set.\n"); ar 2943 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_check_dt(ar); ar 2945 drivers/net/wireless/ath/ath10k/core.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "DT bdf variant name not set.\n"); ar 2947 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_fetch_board_file(ar, ATH10K_BD_IE_BOARD); ar 2949 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to fetch board file: %d\n", ret); ar 2953 drivers/net/wireless/ath/ath10k/core.c ath10k_debug_print_board_info(ar); ar 2956 drivers/net/wireless/ath/ath10k/core.c device_get_mac_address(ar->dev, ar->mac_addr, sizeof(ar->mac_addr)); ar 2958 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_init_firmware_features(ar); ar 2960 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "fatal problem with firmware features: %d\n", ar 2966 drivers/net/wireless/ath/ath10k/core.c ar->normal_mode_fw.fw_file.fw_features)) { ar 2967 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_swap_code_seg_init(ar, ar 2968 drivers/net/wireless/ath/ath10k/core.c &ar->normal_mode_fw.fw_file); ar 2970 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to initialize code swap segment: %d\n", ar 2976 drivers/net/wireless/ath/ath10k/core.c mutex_lock(&ar->conf_mutex); ar 2978 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_core_start(ar, ATH10K_FIRMWARE_MODE_NORMAL, ar 2979 drivers/net/wireless/ath/ath10k/core.c &ar->normal_mode_fw); ar 2981 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not init core (%d)\n", ret); ar 2985 drivers/net/wireless/ath/ath10k/core.c ath10k_debug_print_boot_info(ar); ar 2986 drivers/net/wireless/ath/ath10k/core.c ath10k_core_stop(ar); ar 2988 drivers/net/wireless/ath/ath10k/core.c mutex_unlock(&ar->conf_mutex); ar 2990 drivers/net/wireless/ath/ath10k/core.c ath10k_hif_power_down(ar); ar 2994 drivers/net/wireless/ath/ath10k/core.c mutex_unlock(&ar->conf_mutex); ar 2997 drivers/net/wireless/ath/ath10k/core.c ath10k_core_free_firmware_files(ar); ar 3000 drivers/net/wireless/ath/ath10k/core.c ath10k_hif_power_down(ar); ar 3007 drivers/net/wireless/ath/ath10k/core.c struct ath10k *ar = container_of(work, struct ath10k, register_work); ar 3011 drivers/net/wireless/ath/ath10k/core.c set_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags); ar 3013 drivers/net/wireless/ath/ath10k/core.c status = ath10k_core_probe_fw(ar); ar 3015 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not probe fw (%d)\n", status); ar 3019 drivers/net/wireless/ath/ath10k/core.c status = ath10k_mac_register(ar); ar 3021 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not register to mac80211 (%d)\n", status); ar 3025 drivers/net/wireless/ath/ath10k/core.c status = ath10k_coredump_register(ar); ar 3027 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "unable to register coredump\n"); ar 3031 drivers/net/wireless/ath/ath10k/core.c status = ath10k_debug_register(ar); ar 3033 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "unable to initialize debugfs\n"); ar 3037 drivers/net/wireless/ath/ath10k/core.c status = ath10k_spectral_create(ar); ar 3039 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "failed to initialize spectral\n"); ar 3043 drivers/net/wireless/ath/ath10k/core.c status = ath10k_thermal_register(ar); ar 3045 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "could not register thermal device: %d\n", ar 3050 drivers/net/wireless/ath/ath10k/core.c set_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags); ar 3054 drivers/net/wireless/ath/ath10k/core.c ath10k_spectral_destroy(ar); ar 3056 drivers/net/wireless/ath/ath10k/core.c ath10k_debug_destroy(ar); ar 3058 drivers/net/wireless/ath/ath10k/core.c ath10k_coredump_unregister(ar); ar 3060 drivers/net/wireless/ath/ath10k/core.c ath10k_mac_unregister(ar); ar 3062 drivers/net/wireless/ath/ath10k/core.c ath10k_core_free_firmware_files(ar); ar 3070 drivers/net/wireless/ath/ath10k/core.c int ath10k_core_register(struct ath10k *ar, ar 3073 drivers/net/wireless/ath/ath10k/core.c ar->bus_param = *bus_params; ar 3075 drivers/net/wireless/ath/ath10k/core.c queue_work(ar->workqueue, &ar->register_work); ar 3081 drivers/net/wireless/ath/ath10k/core.c void ath10k_core_unregister(struct ath10k *ar) ar 3083 drivers/net/wireless/ath/ath10k/core.c cancel_work_sync(&ar->register_work); ar 3085 drivers/net/wireless/ath/ath10k/core.c if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) ar 3088 drivers/net/wireless/ath/ath10k/core.c ath10k_thermal_unregister(ar); ar 3093 drivers/net/wireless/ath/ath10k/core.c ath10k_spectral_destroy(ar); ar 3099 drivers/net/wireless/ath/ath10k/core.c ath10k_mac_unregister(ar); ar 3101 drivers/net/wireless/ath/ath10k/core.c ath10k_testmode_destroy(ar); ar 3103 drivers/net/wireless/ath/ath10k/core.c ath10k_core_free_firmware_files(ar); ar 3104 drivers/net/wireless/ath/ath10k/core.c ath10k_core_free_board_files(ar); ar 3106 drivers/net/wireless/ath/ath10k/core.c ath10k_debug_unregister(ar); ar 3115 drivers/net/wireless/ath/ath10k/core.c struct ath10k *ar; ar 3118 drivers/net/wireless/ath/ath10k/core.c ar = ath10k_mac_create(priv_size); ar 3119 drivers/net/wireless/ath/ath10k/core.c if (!ar) ar 3122 drivers/net/wireless/ath/ath10k/core.c ar->ath_common.priv = ar; ar 3123 drivers/net/wireless/ath/ath10k/core.c ar->ath_common.hw = ar->hw; ar 3124 drivers/net/wireless/ath/ath10k/core.c ar->dev = dev; ar 3125 drivers/net/wireless/ath/ath10k/core.c ar->hw_rev = hw_rev; ar 3126 drivers/net/wireless/ath/ath10k/core.c ar->hif.ops = hif_ops; ar 3127 drivers/net/wireless/ath/ath10k/core.c ar->hif.bus = bus; ar 3132 drivers/net/wireless/ath/ath10k/core.c ar->regs = &qca988x_regs; ar 3133 drivers/net/wireless/ath/ath10k/core.c ar->hw_ce_regs = &qcax_ce_regs; ar 3134 drivers/net/wireless/ath/ath10k/core.c ar->hw_values = &qca988x_values; ar 3138 drivers/net/wireless/ath/ath10k/core.c ar->regs = &qca6174_regs; ar 3139 drivers/net/wireless/ath/ath10k/core.c ar->hw_ce_regs = &qcax_ce_regs; ar 3140 drivers/net/wireless/ath/ath10k/core.c ar->hw_values = &qca6174_values; ar 3144 drivers/net/wireless/ath/ath10k/core.c ar->regs = &qca99x0_regs; ar 3145 drivers/net/wireless/ath/ath10k/core.c ar->hw_ce_regs = &qcax_ce_regs; ar 3146 drivers/net/wireless/ath/ath10k/core.c ar->hw_values = &qca99x0_values; ar 3149 drivers/net/wireless/ath/ath10k/core.c ar->regs = &qca99x0_regs; ar 3150 drivers/net/wireless/ath/ath10k/core.c ar->hw_ce_regs = &qcax_ce_regs; ar 3151 drivers/net/wireless/ath/ath10k/core.c ar->hw_values = &qca9888_values; ar 3154 drivers/net/wireless/ath/ath10k/core.c ar->regs = &qca4019_regs; ar 3155 drivers/net/wireless/ath/ath10k/core.c ar->hw_ce_regs = &qcax_ce_regs; ar 3156 drivers/net/wireless/ath/ath10k/core.c ar->hw_values = &qca4019_values; ar 3159 drivers/net/wireless/ath/ath10k/core.c ar->regs = &wcn3990_regs; ar 3160 drivers/net/wireless/ath/ath10k/core.c ar->hw_ce_regs = &wcn3990_ce_regs; ar 3161 drivers/net/wireless/ath/ath10k/core.c ar->hw_values = &wcn3990_values; ar 3164 drivers/net/wireless/ath/ath10k/core.c ath10k_err(ar, "unsupported core hardware revision %d\n", ar 3170 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->scan.started); ar 3171 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->scan.completed); ar 3172 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->scan.on_channel); ar 3173 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->target_suspend); ar 3174 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->driver_recovery); ar 3175 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->wow.wakeup_completed); ar 3177 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->install_key_done); ar 3178 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->vdev_setup_done); ar 3179 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->vdev_delete_done); ar 3180 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->thermal.wmi_sync); ar 3181 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->bss_survey_done); ar 3182 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->peer_delete_done); ar 3184 drivers/net/wireless/ath/ath10k/core.c INIT_DELAYED_WORK(&ar->scan.timeout, ath10k_scan_timeout_work); ar 3186 drivers/net/wireless/ath/ath10k/core.c ar->workqueue = create_singlethread_workqueue("ath10k_wq"); ar 3187 drivers/net/wireless/ath/ath10k/core.c if (!ar->workqueue) ar 3190 drivers/net/wireless/ath/ath10k/core.c ar->workqueue_aux = create_singlethread_workqueue("ath10k_aux_wq"); ar 3191 drivers/net/wireless/ath/ath10k/core.c if (!ar->workqueue_aux) ar 3194 drivers/net/wireless/ath/ath10k/core.c mutex_init(&ar->conf_mutex); ar 3195 drivers/net/wireless/ath/ath10k/core.c mutex_init(&ar->dump_mutex); ar 3196 drivers/net/wireless/ath/ath10k/core.c spin_lock_init(&ar->data_lock); ar 3198 drivers/net/wireless/ath/ath10k/core.c INIT_LIST_HEAD(&ar->peers); ar 3199 drivers/net/wireless/ath/ath10k/core.c init_waitqueue_head(&ar->peer_mapping_wq); ar 3200 drivers/net/wireless/ath/ath10k/core.c init_waitqueue_head(&ar->htt.empty_tx_wq); ar 3201 drivers/net/wireless/ath/ath10k/core.c init_waitqueue_head(&ar->wmi.tx_credits_wq); ar 3203 drivers/net/wireless/ath/ath10k/core.c init_completion(&ar->offchan_tx_completed); ar 3204 drivers/net/wireless/ath/ath10k/core.c INIT_WORK(&ar->offchan_tx_work, ath10k_offchan_tx_work); ar 3205 drivers/net/wireless/ath/ath10k/core.c skb_queue_head_init(&ar->offchan_tx_queue); ar 3207 drivers/net/wireless/ath/ath10k/core.c INIT_WORK(&ar->wmi_mgmt_tx_work, ath10k_mgmt_over_wmi_tx_work); ar 3208 drivers/net/wireless/ath/ath10k/core.c skb_queue_head_init(&ar->wmi_mgmt_tx_queue); ar 3210 drivers/net/wireless/ath/ath10k/core.c INIT_WORK(&ar->register_work, ath10k_core_register_work); ar 3211 drivers/net/wireless/ath/ath10k/core.c INIT_WORK(&ar->restart_work, ath10k_core_restart); ar 3212 drivers/net/wireless/ath/ath10k/core.c INIT_WORK(&ar->set_coverage_class_work, ar 3215 drivers/net/wireless/ath/ath10k/core.c init_dummy_netdev(&ar->napi_dev); ar 3217 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_coredump_create(ar); ar 3221 drivers/net/wireless/ath/ath10k/core.c ret = ath10k_debug_create(ar); ar 3225 drivers/net/wireless/ath/ath10k/core.c return ar; ar 3228 drivers/net/wireless/ath/ath10k/core.c ath10k_coredump_destroy(ar); ar 3231 drivers/net/wireless/ath/ath10k/core.c destroy_workqueue(ar->workqueue_aux); ar 3233 drivers/net/wireless/ath/ath10k/core.c destroy_workqueue(ar->workqueue); ar 3236 drivers/net/wireless/ath/ath10k/core.c ath10k_mac_destroy(ar); ar 3242 drivers/net/wireless/ath/ath10k/core.c void ath10k_core_destroy(struct ath10k *ar) ar 3244 drivers/net/wireless/ath/ath10k/core.c flush_workqueue(ar->workqueue); ar 3245 drivers/net/wireless/ath/ath10k/core.c destroy_workqueue(ar->workqueue); ar 3247 drivers/net/wireless/ath/ath10k/core.c flush_workqueue(ar->workqueue_aux); ar 3248 drivers/net/wireless/ath/ath10k/core.c destroy_workqueue(ar->workqueue_aux); ar 3250 drivers/net/wireless/ath/ath10k/core.c ath10k_debug_destroy(ar); ar 3251 drivers/net/wireless/ath/ath10k/core.c ath10k_coredump_destroy(ar); ar 3252 drivers/net/wireless/ath/ath10k/core.c ath10k_htt_tx_destroy(&ar->htt); ar 3253 drivers/net/wireless/ath/ath10k/core.c ath10k_wmi_free_host_mem(ar); ar 3254 drivers/net/wireless/ath/ath10k/core.c ath10k_mac_destroy(ar); ar 542 drivers/net/wireless/ath/ath10k/core.h struct ath10k *ar; ar 1218 drivers/net/wireless/ath/ath10k/core.h static inline bool ath10k_peer_stats_enabled(struct ath10k *ar) ar 1220 drivers/net/wireless/ath/ath10k/core.h if (test_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags) && ar 1221 drivers/net/wireless/ath/ath10k/core.h test_bit(WMI_SERVICE_PEER_STATS, ar->wmi.svc_map)) ar 1233 drivers/net/wireless/ath/ath10k/core.h void ath10k_core_destroy(struct ath10k *ar); ar 1234 drivers/net/wireless/ath/ath10k/core.h void ath10k_core_get_fw_features_str(struct ath10k *ar, ar 1237 drivers/net/wireless/ath/ath10k/core.h int ath10k_core_fetch_firmware_api_n(struct ath10k *ar, const char *name, ar 1240 drivers/net/wireless/ath/ath10k/core.h int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, ar 1242 drivers/net/wireless/ath/ath10k/core.h int ath10k_wait_for_suspend(struct ath10k *ar, u32 suspend_opt); ar 1243 drivers/net/wireless/ath/ath10k/core.h void ath10k_core_stop(struct ath10k *ar); ar 1244 drivers/net/wireless/ath/ath10k/core.h int ath10k_core_register(struct ath10k *ar, ar 1246 drivers/net/wireless/ath/ath10k/core.h void ath10k_core_unregister(struct ath10k *ar); ar 1247 drivers/net/wireless/ath/ath10k/core.h int ath10k_core_fetch_board_file(struct ath10k *ar, int bd_ie_type); ar 1248 drivers/net/wireless/ath/ath10k/core.h void ath10k_core_free_board_files(struct ath10k *ar); ar 1053 drivers/net/wireless/ath/ath10k/coredump.c static u32 ath10k_coredump_get_ramdump_size(struct ath10k *ar) ar 1060 drivers/net/wireless/ath/ath10k/coredump.c hw = ath10k_coredump_get_mem_layout(ar); ar 1081 drivers/net/wireless/ath/ath10k/coredump.c const struct ath10k_hw_mem_layout *ath10k_coredump_get_mem_layout(struct ath10k *ar) ar 1088 drivers/net/wireless/ath/ath10k/coredump.c if (WARN_ON(ar->target_version == 0)) ar 1092 drivers/net/wireless/ath/ath10k/coredump.c if (ar->target_version == hw_mem_layouts[i].hw_id && ar 1093 drivers/net/wireless/ath/ath10k/coredump.c ar->hw_rev == hw_mem_layouts[i].hw_rev) ar 1101 drivers/net/wireless/ath/ath10k/coredump.c struct ath10k_fw_crash_data *ath10k_coredump_new(struct ath10k *ar) ar 1103 drivers/net/wireless/ath/ath10k/coredump.c struct ath10k_fw_crash_data *crash_data = ar->coredump.fw_crash_data; ar 1105 drivers/net/wireless/ath/ath10k/coredump.c lockdep_assert_held(&ar->dump_mutex); ar 1118 drivers/net/wireless/ath/ath10k/coredump.c static struct ath10k_dump_file_data *ath10k_coredump_build(struct ath10k *ar) ar 1120 drivers/net/wireless/ath/ath10k/coredump.c struct ath10k_fw_crash_data *crash_data = ar->coredump.fw_crash_data; ar 1149 drivers/net/wireless/ath/ath10k/coredump.c mutex_lock(&ar->dump_mutex); ar 1159 drivers/net/wireless/ath/ath10k/coredump.c dump_data->chip_id = cpu_to_le32(ar->bus_param.chip_id); ar 1161 drivers/net/wireless/ath/ath10k/coredump.c dump_data->target_version = cpu_to_le32(ar->target_version); ar 1162 drivers/net/wireless/ath/ath10k/coredump.c dump_data->fw_version_major = cpu_to_le32(ar->fw_version_major); ar 1163 drivers/net/wireless/ath/ath10k/coredump.c dump_data->fw_version_minor = cpu_to_le32(ar->fw_version_minor); ar 1164 drivers/net/wireless/ath/ath10k/coredump.c dump_data->fw_version_release = cpu_to_le32(ar->fw_version_release); ar 1165 drivers/net/wireless/ath/ath10k/coredump.c dump_data->fw_version_build = cpu_to_le32(ar->fw_version_build); ar 1166 drivers/net/wireless/ath/ath10k/coredump.c dump_data->phy_capability = cpu_to_le32(ar->phy_capability); ar 1167 drivers/net/wireless/ath/ath10k/coredump.c dump_data->hw_min_tx_power = cpu_to_le32(ar->hw_min_tx_power); ar 1168 drivers/net/wireless/ath/ath10k/coredump.c dump_data->hw_max_tx_power = cpu_to_le32(ar->hw_max_tx_power); ar 1169 drivers/net/wireless/ath/ath10k/coredump.c dump_data->ht_cap_info = cpu_to_le32(ar->ht_cap_info); ar 1170 drivers/net/wireless/ath/ath10k/coredump.c dump_data->vht_cap_info = cpu_to_le32(ar->vht_cap_info); ar 1171 drivers/net/wireless/ath/ath10k/coredump.c dump_data->num_rf_chains = cpu_to_le32(ar->num_rf_chains); ar 1173 drivers/net/wireless/ath/ath10k/coredump.c strlcpy(dump_data->fw_ver, ar->hw->wiphy->fw_version, ar 1218 drivers/net/wireless/ath/ath10k/coredump.c mutex_unlock(&ar->dump_mutex); ar 1223 drivers/net/wireless/ath/ath10k/coredump.c int ath10k_coredump_submit(struct ath10k *ar) ar 1231 drivers/net/wireless/ath/ath10k/coredump.c dump = ath10k_coredump_build(ar); ar 1233 drivers/net/wireless/ath/ath10k/coredump.c ath10k_warn(ar, "no crash dump data found for devcoredump"); ar 1237 drivers/net/wireless/ath/ath10k/coredump.c dev_coredumpv(ar->dev, dump, le32_to_cpu(dump->len), GFP_KERNEL); ar 1242 drivers/net/wireless/ath/ath10k/coredump.c int ath10k_coredump_create(struct ath10k *ar) ar 1248 drivers/net/wireless/ath/ath10k/coredump.c ar->coredump.fw_crash_data = vzalloc(sizeof(*ar->coredump.fw_crash_data)); ar 1249 drivers/net/wireless/ath/ath10k/coredump.c if (!ar->coredump.fw_crash_data) ar 1255 drivers/net/wireless/ath/ath10k/coredump.c int ath10k_coredump_register(struct ath10k *ar) ar 1257 drivers/net/wireless/ath/ath10k/coredump.c struct ath10k_fw_crash_data *crash_data = ar->coredump.fw_crash_data; ar 1260 drivers/net/wireless/ath/ath10k/coredump.c crash_data->ramdump_buf_len = ath10k_coredump_get_ramdump_size(ar); ar 1273 drivers/net/wireless/ath/ath10k/coredump.c void ath10k_coredump_unregister(struct ath10k *ar) ar 1275 drivers/net/wireless/ath/ath10k/coredump.c struct ath10k_fw_crash_data *crash_data = ar->coredump.fw_crash_data; ar 1280 drivers/net/wireless/ath/ath10k/coredump.c void ath10k_coredump_destroy(struct ath10k *ar) ar 1282 drivers/net/wireless/ath/ath10k/coredump.c if (ar->coredump.fw_crash_data->ramdump_buf) { ar 1283 drivers/net/wireless/ath/ath10k/coredump.c vfree(ar->coredump.fw_crash_data->ramdump_buf); ar 1284 drivers/net/wireless/ath/ath10k/coredump.c ar->coredump.fw_crash_data->ramdump_buf = NULL; ar 1285 drivers/net/wireless/ath/ath10k/coredump.c ar->coredump.fw_crash_data->ramdump_buf_len = 0; ar 1288 drivers/net/wireless/ath/ath10k/coredump.c vfree(ar->coredump.fw_crash_data); ar 1289 drivers/net/wireless/ath/ath10k/coredump.c ar->coredump.fw_crash_data = NULL; ar 170 drivers/net/wireless/ath/ath10k/coredump.h int ath10k_coredump_submit(struct ath10k *ar); ar 171 drivers/net/wireless/ath/ath10k/coredump.h struct ath10k_fw_crash_data *ath10k_coredump_new(struct ath10k *ar); ar 172 drivers/net/wireless/ath/ath10k/coredump.h int ath10k_coredump_create(struct ath10k *ar); ar 173 drivers/net/wireless/ath/ath10k/coredump.h int ath10k_coredump_register(struct ath10k *ar); ar 174 drivers/net/wireless/ath/ath10k/coredump.h void ath10k_coredump_unregister(struct ath10k *ar); ar 175 drivers/net/wireless/ath/ath10k/coredump.h void ath10k_coredump_destroy(struct ath10k *ar); ar 177 drivers/net/wireless/ath/ath10k/coredump.h const struct ath10k_hw_mem_layout *ath10k_coredump_get_mem_layout(struct ath10k *ar); ar 181 drivers/net/wireless/ath/ath10k/coredump.h static inline int ath10k_coredump_submit(struct ath10k *ar) ar 186 drivers/net/wireless/ath/ath10k/coredump.h static inline struct ath10k_fw_crash_data *ath10k_coredump_new(struct ath10k *ar) ar 191 drivers/net/wireless/ath/ath10k/coredump.h static inline int ath10k_coredump_create(struct ath10k *ar) ar 196 drivers/net/wireless/ath/ath10k/coredump.h static inline int ath10k_coredump_register(struct ath10k *ar) ar 201 drivers/net/wireless/ath/ath10k/coredump.h static inline void ath10k_coredump_unregister(struct ath10k *ar) ar 205 drivers/net/wireless/ath/ath10k/coredump.h static inline void ath10k_coredump_destroy(struct ath10k *ar) ar 210 drivers/net/wireless/ath/ath10k/coredump.h ath10k_coredump_get_mem_layout(struct ath10k *ar) ar 24 drivers/net/wireless/ath/ath10k/debug.c void ath10k_info(struct ath10k *ar, const char *fmt, ...) ar 33 drivers/net/wireless/ath/ath10k/debug.c dev_info(ar->dev, "%pV", &vaf); ar 34 drivers/net/wireless/ath/ath10k/debug.c trace_ath10k_log_info(ar, &vaf); ar 39 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_print_hwfw_info(struct ath10k *ar) ar 45 drivers/net/wireless/ath/ath10k/debug.c ath10k_core_get_fw_features_str(ar, fw_features, sizeof(fw_features)); ar 47 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "%s target 0x%08x chip_id 0x%08x sub %04x:%04x", ar 48 drivers/net/wireless/ath/ath10k/debug.c ar->hw_params.name, ar 49 drivers/net/wireless/ath/ath10k/debug.c ar->target_version, ar 50 drivers/net/wireless/ath/ath10k/debug.c ar->bus_param.chip_id, ar 51 drivers/net/wireless/ath/ath10k/debug.c ar->id.subsystem_vendor, ar->id.subsystem_device); ar 53 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "kconfig debug %d debugfs %d tracing %d dfs %d testmode %d\n", ar 60 drivers/net/wireless/ath/ath10k/debug.c firmware = ar->normal_mode_fw.fw_file.firmware; ar 64 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "firmware ver %s api %d features %s crc32 %08x\n", ar 65 drivers/net/wireless/ath/ath10k/debug.c ar->hw->wiphy->fw_version, ar 66 drivers/net/wireless/ath/ath10k/debug.c ar->fw_api, ar 71 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_print_board_info(struct ath10k *ar) ar 77 drivers/net/wireless/ath/ath10k/debug.c if (ar->id.bmi_ids_valid) ar 79 drivers/net/wireless/ath/ath10k/debug.c ar->id.bmi_chip_id, ar->id.bmi_board_id); ar 83 drivers/net/wireless/ath/ath10k/debug.c board = ar->normal_mode_fw.board; ar 89 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "board_file api %d bmi_id %s crc32 %08x", ar 90 drivers/net/wireless/ath/ath10k/debug.c ar->bd_api, ar 95 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_print_boot_info(struct ath10k *ar) ar 97 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "htt-ver %d.%d wmi-op %d htt-op %d cal %s max-sta %d raw %d hwcrypto %d\n", ar 98 drivers/net/wireless/ath/ath10k/debug.c ar->htt.target_version_major, ar 99 drivers/net/wireless/ath/ath10k/debug.c ar->htt.target_version_minor, ar 100 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.wmi_op_version, ar 101 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.htt_op_version, ar 102 drivers/net/wireless/ath/ath10k/debug.c ath10k_cal_mode_str(ar->cal_mode), ar 103 drivers/net/wireless/ath/ath10k/debug.c ar->max_num_stations, ar 104 drivers/net/wireless/ath/ath10k/debug.c test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags), ar 105 drivers/net/wireless/ath/ath10k/debug.c !test_bit(ATH10K_FLAG_HW_CRYPTO_DISABLED, &ar->dev_flags)); ar 108 drivers/net/wireless/ath/ath10k/debug.c void ath10k_print_driver_info(struct ath10k *ar) ar 110 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_print_hwfw_info(ar); ar 111 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_print_board_info(ar); ar 112 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_print_boot_info(ar); ar 116 drivers/net/wireless/ath/ath10k/debug.c void ath10k_err(struct ath10k *ar, const char *fmt, ...) ar 125 drivers/net/wireless/ath/ath10k/debug.c dev_err(ar->dev, "%pV", &vaf); ar 126 drivers/net/wireless/ath/ath10k/debug.c trace_ath10k_log_err(ar, &vaf); ar 131 drivers/net/wireless/ath/ath10k/debug.c void ath10k_warn(struct ath10k *ar, const char *fmt, ...) ar 140 drivers/net/wireless/ath/ath10k/debug.c dev_warn_ratelimited(ar->dev, "%pV", &vaf); ar 141 drivers/net/wireless/ath/ath10k/debug.c trace_ath10k_log_warn(ar, &vaf); ar 153 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 165 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 167 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 169 drivers/net/wireless/ath/ath10k/debug.c enabled = test_bit(i, ar->wmi.svc_map); ar 185 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 189 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 242 drivers/net/wireless/ath/ath10k/debug.c static void ath10k_debug_fw_stats_reset(struct ath10k *ar) ar 244 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 245 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_stats_done = false; ar 246 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_stats.extended = false; ar 247 drivers/net/wireless/ath/ath10k/debug.c ath10k_fw_stats_pdevs_free(&ar->debug.fw_stats.pdevs); ar 248 drivers/net/wireless/ath/ath10k/debug.c ath10k_fw_stats_vdevs_free(&ar->debug.fw_stats.vdevs); ar 249 drivers/net/wireless/ath/ath10k/debug.c ath10k_fw_stats_peers_free(&ar->debug.fw_stats.peers); ar 250 drivers/net/wireless/ath/ath10k/debug.c ath10k_fw_extd_stats_peers_free(&ar->debug.fw_stats.peers_extd); ar 251 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 254 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_fw_stats_process(struct ath10k *ar, struct sk_buff *skb) ar 267 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 268 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pull_fw_stats(ar, skb, &stats); ar 270 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to pull fw stats: %d\n", ret); ar 285 drivers/net/wireless/ath/ath10k/debug.c if (ath10k_peer_stats_enabled(ar)) ar 286 drivers/net/wireless/ath/ath10k/debug.c ath10k_sta_update_rx_duration(ar, &stats); ar 288 drivers/net/wireless/ath/ath10k/debug.c if (ar->debug.fw_stats_done) { ar 289 drivers/net/wireless/ath/ath10k/debug.c if (!ath10k_peer_stats_enabled(ar)) ar 290 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "received unsolicited stats update event\n"); ar 295 drivers/net/wireless/ath/ath10k/debug.c num_peers = ath10k_wmi_fw_stats_num_peers(&ar->debug.fw_stats.peers); ar 296 drivers/net/wireless/ath/ath10k/debug.c num_vdevs = ath10k_wmi_fw_stats_num_vdevs(&ar->debug.fw_stats.vdevs); ar 297 drivers/net/wireless/ath/ath10k/debug.c is_start = (list_empty(&ar->debug.fw_stats.pdevs) && ar 299 drivers/net/wireless/ath/ath10k/debug.c is_end = (!list_empty(&ar->debug.fw_stats.pdevs) && ar 303 drivers/net/wireless/ath/ath10k/debug.c list_splice_tail_init(&stats.pdevs, &ar->debug.fw_stats.pdevs); ar 306 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_stats_done = true; ar 309 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_stats.extended = true; ar 311 drivers/net/wireless/ath/ath10k/debug.c is_started = !list_empty(&ar->debug.fw_stats.pdevs); ar 318 drivers/net/wireless/ath/ath10k/debug.c ath10k_fw_stats_peers_free(&ar->debug.fw_stats.peers); ar 319 drivers/net/wireless/ath/ath10k/debug.c ath10k_fw_extd_stats_peers_free(&ar->debug.fw_stats.peers_extd); ar 320 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "dropping fw peer stats\n"); ar 325 drivers/net/wireless/ath/ath10k/debug.c ath10k_fw_stats_vdevs_free(&ar->debug.fw_stats.vdevs); ar 326 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "dropping fw vdev stats\n"); ar 332 drivers/net/wireless/ath/ath10k/debug.c &ar->debug.fw_stats.peers_extd); ar 334 drivers/net/wireless/ath/ath10k/debug.c list_splice_tail_init(&stats.peers, &ar->debug.fw_stats.peers); ar 335 drivers/net/wireless/ath/ath10k/debug.c list_splice_tail_init(&stats.vdevs, &ar->debug.fw_stats.vdevs); ar 338 drivers/net/wireless/ath/ath10k/debug.c complete(&ar->debug.fw_stats_complete); ar 349 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 352 drivers/net/wireless/ath/ath10k/debug.c static int ath10k_debug_fw_stats_request(struct ath10k *ar) ar 357 drivers/net/wireless/ath/ath10k/debug.c lockdep_assert_held(&ar->conf_mutex); ar 361 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_fw_stats_reset(ar); ar 367 drivers/net/wireless/ath/ath10k/debug.c reinit_completion(&ar->debug.fw_stats_complete); ar 369 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_request_stats(ar, ar->fw_stats_req_mask); ar 371 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "could not request stats (%d)\n", ret); ar 376 drivers/net/wireless/ath/ath10k/debug.c wait_for_completion_timeout(&ar->debug.fw_stats_complete, ar 381 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 382 drivers/net/wireless/ath/ath10k/debug.c if (ar->debug.fw_stats_done) { ar 383 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 386 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 394 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = inode->i_private; ar 398 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 400 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) { ar 411 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_fw_stats_request(ar); ar 413 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to request fw stats: %d\n", ret); ar 417 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_fw_stats_fill(ar, &ar->debug.fw_stats, buf); ar 419 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to fill fw stats: %d\n", ret); ar 425 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 432 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 464 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 473 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 476 drivers/net/wireless/ath/ath10k/debug.c "fw_crash_counter\t\t%d\n", ar->stats.fw_crash_counter); ar 479 drivers/net/wireless/ath/ath10k/debug.c ar->stats.fw_warm_reset_counter); ar 482 drivers/net/wireless/ath/ath10k/debug.c ar->stats.fw_cold_reset_counter); ar 484 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 501 drivers/net/wireless/ath/ath10k/debug.c static int ath10k_debug_fw_assert(struct ath10k *ar) ar 506 drivers/net/wireless/ath/ath10k/debug.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd) + 16); ar 516 drivers/net/wireless/ath/ath10k/debug.c return ath10k_wmi_cmd_send(ar, skb, ar 517 drivers/net/wireless/ath/ath10k/debug.c ar->wmi.cmd->vdev_install_key_cmdid); ar 545 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 562 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 564 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON && ar 565 drivers/net/wireless/ath/ath10k/debug.c ar->state != ATH10K_STATE_RESTARTED) { ar 571 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "simulating soft firmware crash\n"); ar 572 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_force_fw_hang(ar, WMI_FORCE_FW_HANG_ASSERT, 0); ar 574 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "simulating hard firmware crash\n"); ar 578 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_vdev_set_param(ar, 0x7fff, ar 579 drivers/net/wireless/ath/ath10k/debug.c ar->wmi.vdev_param->rts_threshold, ar 582 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "simulating firmware assert crash\n"); ar 583 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_fw_assert(ar); ar 585 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "user requested hw restart\n"); ar 586 drivers/net/wireless/ath/ath10k/debug.c queue_work(ar->workqueue, &ar->restart_work); ar 594 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to simulate firmware crash: %d\n", ret); ar 601 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 616 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 620 drivers/net/wireless/ath/ath10k/debug.c len = scnprintf(buf, sizeof(buf), "0x%08x\n", ar->bus_param.chip_id); ar 636 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 641 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 642 drivers/net/wireless/ath/ath10k/debug.c reg_addr = ar->debug.reg_addr; ar 643 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 654 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 665 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 666 drivers/net/wireless/ath/ath10k/debug.c ar->debug.reg_addr = reg_addr; ar 667 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 684 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 690 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 692 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON && ar 693 drivers/net/wireless/ath/ath10k/debug.c ar->state != ATH10K_STATE_UTF) { ar 698 drivers/net/wireless/ath/ath10k/debug.c reg_addr = ar->debug.reg_addr; ar 700 drivers/net/wireless/ath/ath10k/debug.c reg_val = ath10k_hif_read32(ar, reg_addr); ar 706 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 715 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 719 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 721 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON && ar 722 drivers/net/wireless/ath/ath10k/debug.c ar->state != ATH10K_STATE_UTF) { ar 727 drivers/net/wireless/ath/ath10k/debug.c reg_addr = ar->debug.reg_addr; ar 733 drivers/net/wireless/ath/ath10k/debug.c ath10k_hif_write32(ar, reg_addr, reg_val); ar 738 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 755 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 765 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 773 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON && ar 774 drivers/net/wireless/ath/ath10k/debug.c ar->state != ATH10K_STATE_UTF) { ar 779 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_hif_diag_read(ar, *ppos, buf, count); ar 781 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to read address 0x%08x via diagnose window fnrom debugfs: %d\n", ar 798 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 807 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 817 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 825 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON && ar 826 drivers/net/wireless/ath/ath10k/debug.c ar->state != ATH10K_STATE_UTF) { ar 837 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_hif_diag_write(ar, *ppos, buf, count); ar 839 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to write address 0x%08x via diagnose window from debugfs: %d\n", ar 849 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 862 drivers/net/wireless/ath/ath10k/debug.c static int ath10k_debug_htt_stats_req(struct ath10k *ar) ar 867 drivers/net/wireless/ath/ath10k/debug.c lockdep_assert_held(&ar->conf_mutex); ar 869 drivers/net/wireless/ath/ath10k/debug.c if (ar->debug.htt_stats_mask == 0) ar 873 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) ar 878 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_htt_h2t_stats_req(&ar->htt, ar->debug.htt_stats_mask, ar 879 drivers/net/wireless/ath/ath10k/debug.c ar->debug.reset_htt_stats, cookie); ar 881 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to send htt stats request: %d\n", ret); ar 885 drivers/net/wireless/ath/ath10k/debug.c queue_delayed_work(ar->workqueue, &ar->debug.htt_stats_dwork, ar 893 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = container_of(work, struct ath10k, ar 896 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 898 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_htt_stats_req(ar); ar 900 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 907 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 911 drivers/net/wireless/ath/ath10k/debug.c len = scnprintf(buf, sizeof(buf), "%lu\n", ar->debug.htt_stats_mask); ar 920 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 932 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 934 drivers/net/wireless/ath/ath10k/debug.c ar->debug.htt_stats_mask = mask; ar 936 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_htt_stats_req(ar); ar 943 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 960 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 965 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 967 drivers/net/wireless/ath/ath10k/debug.c amsdu = ar->htt.max_num_amsdu; ar 968 drivers/net/wireless/ath/ath10k/debug.c ampdu = ar->htt.max_num_ampdu; ar 969 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 980 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 995 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 997 drivers/net/wireless/ath/ath10k/debug.c res = ath10k_htt_h2t_aggr_cfg_msg(&ar->htt, ampdu, amsdu); ar 1002 drivers/net/wireless/ath/ath10k/debug.c ar->htt.max_num_amsdu = amsdu; ar 1003 drivers/net/wireless/ath/ath10k/debug.c ar->htt.max_num_ampdu = ampdu; ar 1006 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1022 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1027 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_dbglog_mask, ar->debug.fw_dbglog_level); ar 1036 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1056 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1058 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_dbglog_mask = mask; ar 1059 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_dbglog_level = log_level; ar 1061 drivers/net/wireless/ath/ath10k/debug.c if (ar->state == ATH10K_STATE_ON) { ar 1062 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_dbglog_cfg(ar, ar->debug.fw_dbglog_mask, ar 1063 drivers/net/wireless/ath/ath10k/debug.c ar->debug.fw_dbglog_level); ar 1065 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "dbglog cfg failed from debugfs: %d\n", ar 1074 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1158 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = hw->priv; ar 1163 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1165 drivers/net/wireless/ath/ath10k/debug.c if (ar->state == ATH10K_STATE_ON) { ar 1166 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_fw_stats_request(ar); ar 1169 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, ar 1175 drivers/net/wireless/ath/ath10k/debug.c pdev_stats = list_first_entry_or_null(&ar->debug.fw_stats.pdevs, ar 1183 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 1228 drivers/net/wireless/ath/ath10k/debug.c data[i++] = ar->stats.fw_crash_counter; ar 1229 drivers/net/wireless/ath/ath10k/debug.c data[i++] = ar->stats.fw_warm_reset_counter; ar 1230 drivers/net/wireless/ath/ath10k/debug.c data[i++] = ar->stats.fw_cold_reset_counter; ar 1232 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 1234 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1247 drivers/net/wireless/ath/ath10k/debug.c static int ath10k_debug_cal_data_fetch(struct ath10k *ar) ar 1253 drivers/net/wireless/ath/ath10k/debug.c lockdep_assert_held(&ar->conf_mutex); ar 1255 drivers/net/wireless/ath/ath10k/debug.c if (WARN_ON(ar->hw_params.cal_data_len > ATH10K_DEBUG_CAL_DATA_LEN)) ar 1258 drivers/net/wireless/ath/ath10k/debug.c if (ar->hw_params.cal_data_len == 0) ar 1263 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_hif_diag_read(ar, hi_addr, &addr, sizeof(addr)); ar 1265 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to read hi_board_data address: %d\n", ar 1270 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_hif_diag_read(ar, le32_to_cpu(addr), ar->debug.cal_data, ar 1271 drivers/net/wireless/ath/ath10k/debug.c ar->hw_params.cal_data_len); ar 1273 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to read calibration data: %d\n", ret); ar 1282 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = inode->i_private; ar 1284 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1286 drivers/net/wireless/ath/ath10k/debug.c if (ar->state == ATH10K_STATE_ON || ar 1287 drivers/net/wireless/ath/ath10k/debug.c ar->state == ATH10K_STATE_UTF) { ar 1288 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_cal_data_fetch(ar); ar 1291 drivers/net/wireless/ath/ath10k/debug.c file->private_data = ar; ar 1292 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1301 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1303 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1306 drivers/net/wireless/ath/ath10k/debug.c ar->debug.cal_data, ar 1307 drivers/net/wireless/ath/ath10k/debug.c ar->hw_params.cal_data_len); ar 1309 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1318 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1325 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1327 drivers/net/wireless/ath/ath10k/debug.c if (ar->ani_enabled == enable) { ar 1332 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->ani_enable, ar 1335 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "ani_enable failed from debugfs: %d\n", ret); ar 1338 drivers/net/wireless/ath/ath10k/debug.c ar->ani_enabled = enable; ar 1343 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1351 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1355 drivers/net/wireless/ath/ath10k/debug.c len = scnprintf(buf, sizeof(buf), "%d\n", ar->ani_enabled); ar 1379 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1383 drivers/net/wireless/ath/ath10k/debug.c len = scnprintf(buf, sizeof(buf), "%d\n", ar->debug.nf_cal_period); ar 1392 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1407 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1409 drivers/net/wireless/ath/ath10k/debug.c ar->debug.nf_cal_period = period; ar 1411 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) { ar 1417 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->cal_period, ar 1418 drivers/net/wireless/ath/ath10k/debug.c ar->debug.nf_cal_period); ar 1420 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "cal period cfg failed from debugfs: %d\n", ar 1428 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1443 drivers/net/wireless/ath/ath10k/debug.c static int ath10k_debug_tpc_stats_request(struct ath10k *ar) ar 1448 drivers/net/wireless/ath/ath10k/debug.c lockdep_assert_held(&ar->conf_mutex); ar 1450 drivers/net/wireless/ath/ath10k/debug.c reinit_completion(&ar->debug.tpc_complete); ar 1452 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_get_tpc_config(ar, WMI_TPC_CONFIG_PARAM); ar 1454 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to request tpc config: %d\n", ret); ar 1458 drivers/net/wireless/ath/ath10k/debug.c time_left = wait_for_completion_timeout(&ar->debug.tpc_complete, ar 1466 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_tpc_stats_process(struct ath10k *ar, ar 1469 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 1471 drivers/net/wireless/ath/ath10k/debug.c kfree(ar->debug.tpc_stats); ar 1472 drivers/net/wireless/ath/ath10k/debug.c ar->debug.tpc_stats = tpc_stats; ar 1473 drivers/net/wireless/ath/ath10k/debug.c complete(&ar->debug.tpc_complete); ar 1475 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 1479 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_tpc_stats_final_process(struct ath10k *ar, ar 1482 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 1484 drivers/net/wireless/ath/ath10k/debug.c kfree(ar->debug.tpc_stats_final); ar 1485 drivers/net/wireless/ath/ath10k/debug.c ar->debug.tpc_stats_final = tpc_stats; ar 1486 drivers/net/wireless/ath/ath10k/debug.c complete(&ar->debug.tpc_complete); ar 1488 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 1537 drivers/net/wireless/ath/ath10k/debug.c static void ath10k_tpc_stats_fill(struct ath10k *ar, ar 1547 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 1550 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to get tpc stats\n"); ar 1617 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 1627 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = inode->i_private; ar 1631 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1633 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) { ar 1644 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_tpc_stats_request(ar); ar 1646 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to request tpc config stats: %d\n", ar 1651 drivers/net/wireless/ath/ath10k/debug.c ath10k_tpc_stats_fill(ar, ar->debug.tpc_stats, buf); ar 1654 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1661 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1689 drivers/net/wireless/ath/ath10k/debug.c int ath10k_debug_start(struct ath10k *ar) ar 1693 drivers/net/wireless/ath/ath10k/debug.c lockdep_assert_held(&ar->conf_mutex); ar 1695 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_htt_stats_req(ar); ar 1698 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to start htt stats workqueue: %d\n", ar 1701 drivers/net/wireless/ath/ath10k/debug.c if (ar->debug.fw_dbglog_mask) { ar 1702 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_dbglog_cfg(ar, ar->debug.fw_dbglog_mask, ar 1706 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to enable dbglog during start: %d", ar 1710 drivers/net/wireless/ath/ath10k/debug.c if (ar->pktlog_filter) { ar 1711 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_pktlog_enable(ar, ar 1712 drivers/net/wireless/ath/ath10k/debug.c ar->pktlog_filter); ar 1715 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, ar 1717 drivers/net/wireless/ath/ath10k/debug.c ar->pktlog_filter, ret); ar 1719 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_pktlog_disable(ar); ar 1722 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to disable pktlog: %d\n", ret); ar 1725 drivers/net/wireless/ath/ath10k/debug.c if (ar->debug.nf_cal_period && ar 1727 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.fw_features)) { ar 1728 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_set_param(ar, ar 1729 drivers/net/wireless/ath/ath10k/debug.c ar->wmi.pdev_param->cal_period, ar 1730 drivers/net/wireless/ath/ath10k/debug.c ar->debug.nf_cal_period); ar 1733 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "cal period cfg failed from debug start: %d\n", ar 1740 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_stop(struct ath10k *ar) ar 1742 drivers/net/wireless/ath/ath10k/debug.c lockdep_assert_held(&ar->conf_mutex); ar 1745 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.fw_features)) ar 1746 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_cal_data_fetch(ar); ar 1752 drivers/net/wireless/ath/ath10k/debug.c if (ar->debug.htt_stats_mask != 0) ar 1753 drivers/net/wireless/ath/ath10k/debug.c cancel_delayed_work(&ar->debug.htt_stats_dwork); ar 1755 drivers/net/wireless/ath/ath10k/debug.c ath10k_wmi_pdev_pktlog_disable(ar); ar 1762 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1769 drivers/net/wireless/ath/ath10k/debug.c arvif = list_first_entry(&ar->arvifs, typeof(*arvif), list); ar 1773 drivers/net/wireless/ath/ath10k/debug.c ieee80211_radar_detected(ar->hw); ar 1787 drivers/net/wireless/ath/ath10k/debug.c ar->debug.dfs_stats.p)) ar 1791 drivers/net/wireless/ath/ath10k/debug.c ar->debug.dfs_pool_stats.p)) ar 1798 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1805 drivers/net/wireless/ath/ath10k/debug.c if (!ar->dfs_detector) { ar 1810 drivers/net/wireless/ath/ath10k/debug.c ar->debug.dfs_pool_stats = ar 1811 drivers/net/wireless/ath/ath10k/debug.c ar->dfs_detector->get_stats(ar->dfs_detector); ar 1851 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1858 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1860 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) { ar 1861 drivers/net/wireless/ath/ath10k/debug.c ar->pktlog_filter = filter; ar 1866 drivers/net/wireless/ath/ath10k/debug.c if (filter == ar->pktlog_filter) { ar 1872 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_pktlog_enable(ar, filter); ar 1874 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to enable pktlog filter %x: %d\n", ar 1875 drivers/net/wireless/ath/ath10k/debug.c ar->pktlog_filter, ret); ar 1879 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_pktlog_disable(ar); ar 1881 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to disable pktlog: %d\n", ret); ar 1886 drivers/net/wireless/ath/ath10k/debug.c ar->pktlog_filter = filter; ar 1890 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1898 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1901 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1903 drivers/net/wireless/ath/ath10k/debug.c ar->pktlog_filter); ar 1904 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1919 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1926 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "Quiet period %u can not be lesser than 25ms\n", ar 1930 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1931 drivers/net/wireless/ath/ath10k/debug.c ar->thermal.quiet_period = period; ar 1932 drivers/net/wireless/ath/ath10k/debug.c ath10k_thermal_set_throttling(ar); ar 1933 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1942 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1945 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1947 drivers/net/wireless/ath/ath10k/debug.c ar->thermal.quiet_period); ar 1948 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 1963 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 1979 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 1981 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON && ar 1982 drivers/net/wireless/ath/ath10k/debug.c ar->state != ATH10K_STATE_RESTARTED) { ar 1987 drivers/net/wireless/ath/ath10k/debug.c if (!(test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags) ^ val)) { ar 1992 drivers/net/wireless/ath/ath10k/debug.c pdev_param = ar->wmi.pdev_param->enable_btcoex; ar 1994 drivers/net/wireless/ath/ath10k/debug.c ar->running_fw->fw_file.fw_features)) { ar 1995 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_set_param(ar, pdev_param, val); ar 1997 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to enable btcoex: %d\n", ret); ar 2002 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "restarting firmware due to btcoex change"); ar 2003 drivers/net/wireless/ath/ath10k/debug.c queue_work(ar->workqueue, &ar->restart_work); ar 2007 drivers/net/wireless/ath/ath10k/debug.c set_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags); ar 2009 drivers/net/wireless/ath/ath10k/debug.c clear_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags); ar 2014 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2023 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2026 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2028 drivers/net/wireless/ath/ath10k/debug.c test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags)); ar 2029 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2044 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2051 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2053 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) { ar 2054 drivers/net/wireless/ath/ath10k/debug.c ar->debug.enable_extd_tx_stats = filter; ar 2059 drivers/net/wireless/ath/ath10k/debug.c if (filter == ar->debug.enable_extd_tx_stats) { ar 2064 drivers/net/wireless/ath/ath10k/debug.c ar->debug.enable_extd_tx_stats = filter; ar 2068 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2078 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2081 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2083 drivers/net/wireless/ath/ath10k/debug.c ar->debug.enable_extd_tx_stats); ar 2084 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2099 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2114 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2116 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON && ar 2117 drivers/net/wireless/ath/ath10k/debug.c ar->state != ATH10K_STATE_RESTARTED) { ar 2122 drivers/net/wireless/ath/ath10k/debug.c if (!(test_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags) ^ val)) { ar 2128 drivers/net/wireless/ath/ath10k/debug.c set_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags); ar 2130 drivers/net/wireless/ath/ath10k/debug.c clear_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags); ar 2132 drivers/net/wireless/ath/ath10k/debug.c ath10k_info(ar, "restarting firmware due to Peer stats change"); ar 2134 drivers/net/wireless/ath/ath10k/debug.c queue_work(ar->workqueue, &ar->restart_work); ar 2138 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2147 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2150 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2152 drivers/net/wireless/ath/ath10k/debug.c test_bit(ATH10K_FLAG_PEER_STATS, &ar->dev_flags)); ar 2153 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2168 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2177 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2181 drivers/net/wireless/ath/ath10k/debug.c crc32_le(0, ar->normal_mode_fw.fw_file.firmware->data, ar 2182 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.firmware->size)); ar 2185 drivers/net/wireless/ath/ath10k/debug.c crc32_le(0, ar->normal_mode_fw.fw_file.firmware_data, ar 2186 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.firmware_len)); ar 2189 drivers/net/wireless/ath/ath10k/debug.c crc32_le(0, ar->normal_mode_fw.fw_file.otp_data, ar 2190 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.otp_len)); ar 2193 drivers/net/wireless/ath/ath10k/debug.c crc32_le(0, ar->normal_mode_fw.fw_file.codeswap_data, ar 2194 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.codeswap_len)); ar 2197 drivers/net/wireless/ath/ath10k/debug.c crc32_le(0, ar->normal_mode_fw.board->data, ar 2198 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.board->size)); ar 2201 drivers/net/wireless/ath/ath10k/debug.c crc32_le(0, ar->normal_mode_fw.board_data, ar 2202 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.board_len)); ar 2206 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2223 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2227 drivers/net/wireless/ath/ath10k/debug.c len = scnprintf(buf, sizeof(buf), "0x%08x\n", ar->sta_tid_stats_mask); ar 2235 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2248 drivers/net/wireless/ath/ath10k/debug.c ar->sta_tid_stats_mask = mask; ar 2261 drivers/net/wireless/ath/ath10k/debug.c static int ath10k_debug_tpc_stats_final_request(struct ath10k *ar) ar 2266 drivers/net/wireless/ath/ath10k/debug.c lockdep_assert_held(&ar->conf_mutex); ar 2268 drivers/net/wireless/ath/ath10k/debug.c reinit_completion(&ar->debug.tpc_complete); ar 2270 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_get_tpc_table_cmdid(ar, WMI_TPC_CONFIG_PARAM); ar 2272 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to request tpc table cmdid: %d\n", ret); ar 2276 drivers/net/wireless/ath/ath10k/debug.c time_left = wait_for_completion_timeout(&ar->debug.tpc_complete, ar 2286 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = inode->i_private; ar 2290 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2292 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) { ar 2303 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_tpc_stats_final_request(ar); ar 2305 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to request tpc stats final: %d\n", ar 2310 drivers/net/wireless/ath/ath10k/debug.c ath10k_tpc_stats_fill(ar, ar->debug.tpc_stats, buf); ar 2313 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2320 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2354 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2364 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2366 drivers/net/wireless/ath/ath10k/debug.c if (ar->state != ATH10K_STATE_ON) { ar 2371 drivers/net/wireless/ath/ath10k/debug.c if (!(test_bit(WMI_SERVICE_RESET_CHIP, ar->wmi.svc_map))) ar 2372 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "wmi service for reset chip is not available\n"); ar 2374 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->pdev_reset, ar 2378 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to enable warm hw reset: %d\n", ret); ar 2385 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2399 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = data; ar 2402 drivers/net/wireless/ath/ath10k/debug.c spin_lock_bh(&ar->data_lock); ar 2404 drivers/net/wireless/ath/ath10k/debug.c spin_unlock_bh(&ar->data_lock); ar 2411 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2422 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2424 drivers/net/wireless/ath/ath10k/debug.c if (ar->ps_state_enable == ps_state_enable) { ar 2429 drivers/net/wireless/ath/ath10k/debug.c param = ar->wmi.pdev_param->peer_sta_ps_statechg_enable; ar 2430 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_wmi_pdev_set_param(ar, param, ps_state_enable); ar 2432 drivers/net/wireless/ath/ath10k/debug.c ath10k_warn(ar, "failed to enable ps_state_enable: %d\n", ar 2436 drivers/net/wireless/ath/ath10k/debug.c ar->ps_state_enable = ps_state_enable; ar 2438 drivers/net/wireless/ath/ath10k/debug.c if (!ar->ps_state_enable) ar 2439 drivers/net/wireless/ath/ath10k/debug.c ieee80211_iterate_stations_atomic(ar->hw, ar 2441 drivers/net/wireless/ath/ath10k/debug.c ar); ar 2446 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2455 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2459 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2461 drivers/net/wireless/ath/ath10k/debug.c ar->ps_state_enable); ar 2462 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2479 drivers/net/wireless/ath/ath10k/debug.c struct ath10k *ar = file->private_data; ar 2490 drivers/net/wireless/ath/ath10k/debug.c mutex_lock(&ar->conf_mutex); ar 2492 drivers/net/wireless/ath/ath10k/debug.c ar->debug.reset_htt_stats = reset; ar 2494 drivers/net/wireless/ath/ath10k/debug.c ret = ath10k_debug_htt_stats_req(ar); ar 2498 drivers/net/wireless/ath/ath10k/debug.c ar->debug.reset_htt_stats = 0; ar 2502 drivers/net/wireless/ath/ath10k/debug.c mutex_unlock(&ar->conf_mutex); ar 2513 drivers/net/wireless/ath/ath10k/debug.c int ath10k_debug_create(struct ath10k *ar) ar 2515 drivers/net/wireless/ath/ath10k/debug.c ar->debug.cal_data = vzalloc(ATH10K_DEBUG_CAL_DATA_LEN); ar 2516 drivers/net/wireless/ath/ath10k/debug.c if (!ar->debug.cal_data) ar 2519 drivers/net/wireless/ath/ath10k/debug.c INIT_LIST_HEAD(&ar->debug.fw_stats.pdevs); ar 2520 drivers/net/wireless/ath/ath10k/debug.c INIT_LIST_HEAD(&ar->debug.fw_stats.vdevs); ar 2521 drivers/net/wireless/ath/ath10k/debug.c INIT_LIST_HEAD(&ar->debug.fw_stats.peers); ar 2522 drivers/net/wireless/ath/ath10k/debug.c INIT_LIST_HEAD(&ar->debug.fw_stats.peers_extd); ar 2527 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_destroy(struct ath10k *ar) ar 2529 drivers/net/wireless/ath/ath10k/debug.c vfree(ar->debug.cal_data); ar 2530 drivers/net/wireless/ath/ath10k/debug.c ar->debug.cal_data = NULL; ar 2532 drivers/net/wireless/ath/ath10k/debug.c ath10k_debug_fw_stats_reset(ar); ar 2534 drivers/net/wireless/ath/ath10k/debug.c kfree(ar->debug.tpc_stats); ar 2537 drivers/net/wireless/ath/ath10k/debug.c int ath10k_debug_register(struct ath10k *ar) ar 2539 drivers/net/wireless/ath/ath10k/debug.c ar->debug.debugfs_phy = debugfs_create_dir("ath10k", ar 2540 drivers/net/wireless/ath/ath10k/debug.c ar->hw->wiphy->debugfsdir); ar 2541 drivers/net/wireless/ath/ath10k/debug.c if (IS_ERR_OR_NULL(ar->debug.debugfs_phy)) { ar 2542 drivers/net/wireless/ath/ath10k/debug.c if (IS_ERR(ar->debug.debugfs_phy)) ar 2543 drivers/net/wireless/ath/ath10k/debug.c return PTR_ERR(ar->debug.debugfs_phy); ar 2548 drivers/net/wireless/ath/ath10k/debug.c INIT_DELAYED_WORK(&ar->debug.htt_stats_dwork, ar 2551 drivers/net/wireless/ath/ath10k/debug.c init_completion(&ar->debug.tpc_complete); ar 2552 drivers/net/wireless/ath/ath10k/debug.c init_completion(&ar->debug.fw_stats_complete); ar 2554 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("fw_stats", 0400, ar->debug.debugfs_phy, ar, ar 2557 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("fw_reset_stats", 0400, ar->debug.debugfs_phy, ar, ar 2560 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("wmi_services", 0400, ar->debug.debugfs_phy, ar, ar 2563 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("simulate_fw_crash", 0600, ar->debug.debugfs_phy, ar, ar 2566 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("reg_addr", 0600, ar->debug.debugfs_phy, ar, ar 2569 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("reg_value", 0600, ar->debug.debugfs_phy, ar, ar 2572 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("mem_value", 0600, ar->debug.debugfs_phy, ar, ar 2575 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("chip_id", 0400, ar->debug.debugfs_phy, ar, ar 2578 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("htt_stats_mask", 0600, ar->debug.debugfs_phy, ar, ar 2581 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("htt_max_amsdu_ampdu", 0600, ar->debug.debugfs_phy, ar, ar 2584 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("fw_dbglog", 0600, ar->debug.debugfs_phy, ar, ar 2588 drivers/net/wireless/ath/ath10k/debug.c ar->normal_mode_fw.fw_file.fw_features)) { ar 2589 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("cal_data", 0400, ar->debug.debugfs_phy, ar, ar 2592 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("nf_cal_period", 0600, ar->debug.debugfs_phy, ar, ar 2596 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("ani_enable", 0600, ar->debug.debugfs_phy, ar, ar 2600 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("dfs_simulate_radar", 0200, ar->debug.debugfs_phy, ar 2601 drivers/net/wireless/ath/ath10k/debug.c ar, &fops_simulate_radar); ar 2604 drivers/net/wireless/ath/ath10k/debug.c ar->debug.debugfs_phy, ar 2605 drivers/net/wireless/ath/ath10k/debug.c &ar->dfs_block_radar_events); ar 2607 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("dfs_stats", 0400, ar->debug.debugfs_phy, ar, ar 2611 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("pktlog_filter", 0644, ar->debug.debugfs_phy, ar, ar 2614 drivers/net/wireless/ath/ath10k/debug.c if (test_bit(WMI_SERVICE_THERM_THROT, ar->wmi.svc_map)) ar 2615 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("quiet_period", 0644, ar->debug.debugfs_phy, ar, ar 2618 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("tpc_stats", 0400, ar->debug.debugfs_phy, ar, ar 2621 drivers/net/wireless/ath/ath10k/debug.c if (test_bit(WMI_SERVICE_COEX_GPIO, ar->wmi.svc_map)) ar 2622 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("btcoex", 0644, ar->debug.debugfs_phy, ar, ar 2625 drivers/net/wireless/ath/ath10k/debug.c if (test_bit(WMI_SERVICE_PEER_STATS, ar->wmi.svc_map)) { ar 2626 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("peer_stats", 0644, ar->debug.debugfs_phy, ar, ar 2630 drivers/net/wireless/ath/ath10k/debug.c ar->debug.debugfs_phy, ar, ar 2634 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("fw_checksums", 0400, ar->debug.debugfs_phy, ar, ar 2639 drivers/net/wireless/ath/ath10k/debug.c ar->debug.debugfs_phy, ar 2640 drivers/net/wireless/ath/ath10k/debug.c ar, &fops_sta_tid_stats_mask); ar 2642 drivers/net/wireless/ath/ath10k/debug.c if (test_bit(WMI_SERVICE_TPC_STATS_FINAL, ar->wmi.svc_map)) ar 2644 drivers/net/wireless/ath/ath10k/debug.c ar->debug.debugfs_phy, ar, ar 2647 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("warm_hw_reset", 0600, ar->debug.debugfs_phy, ar, ar 2650 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("ps_state_enable", 0600, ar->debug.debugfs_phy, ar, ar 2653 drivers/net/wireless/ath/ath10k/debug.c debugfs_create_file("reset_htt_stats", 0200, ar->debug.debugfs_phy, ar, ar 2659 drivers/net/wireless/ath/ath10k/debug.c void ath10k_debug_unregister(struct ath10k *ar) ar 2661 drivers/net/wireless/ath/ath10k/debug.c cancel_delayed_work_sync(&ar->debug.htt_stats_dwork); ar 2667 drivers/net/wireless/ath/ath10k/debug.c void __ath10k_dbg(struct ath10k *ar, enum ath10k_debug_mask mask, ar 2679 drivers/net/wireless/ath/ath10k/debug.c dev_printk(KERN_DEBUG, ar->dev, "%pV", &vaf); ar 2681 drivers/net/wireless/ath/ath10k/debug.c trace_ath10k_log_dbg(ar, mask, &vaf); ar 2687 drivers/net/wireless/ath/ath10k/debug.c void ath10k_dbg_dump(struct ath10k *ar, ar 2698 drivers/net/wireless/ath/ath10k/debug.c __ath10k_dbg(ar, mask, "%s\n", msg); ar 2710 drivers/net/wireless/ath/ath10k/debug.c dev_printk(KERN_DEBUG, ar->dev, "%s\n", linebuf); ar 2715 drivers/net/wireless/ath/ath10k/debug.c trace_ath10k_log_dbg_dump(ar, msg ? msg : "", prefix ? prefix : "", ar 79 drivers/net/wireless/ath/ath10k/debug.h __printf(2, 3) void ath10k_info(struct ath10k *ar, const char *fmt, ...); ar 80 drivers/net/wireless/ath/ath10k/debug.h __printf(2, 3) void ath10k_err(struct ath10k *ar, const char *fmt, ...); ar 81 drivers/net/wireless/ath/ath10k/debug.h __printf(2, 3) void ath10k_warn(struct ath10k *ar, const char *fmt, ...); ar 83 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_print_hwfw_info(struct ath10k *ar); ar 84 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_print_board_info(struct ath10k *ar); ar 85 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_print_boot_info(struct ath10k *ar); ar 86 drivers/net/wireless/ath/ath10k/debug.h void ath10k_print_driver_info(struct ath10k *ar); ar 89 drivers/net/wireless/ath/ath10k/debug.h int ath10k_debug_start(struct ath10k *ar); ar 90 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_stop(struct ath10k *ar); ar 91 drivers/net/wireless/ath/ath10k/debug.h int ath10k_debug_create(struct ath10k *ar); ar 92 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_destroy(struct ath10k *ar); ar 93 drivers/net/wireless/ath/ath10k/debug.h int ath10k_debug_register(struct ath10k *ar); ar 94 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_unregister(struct ath10k *ar); ar 95 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_fw_stats_process(struct ath10k *ar, struct sk_buff *skb); ar 96 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_tpc_stats_process(struct ath10k *ar, ar 99 drivers/net/wireless/ath/ath10k/debug.h ath10k_debug_tpc_stats_final_process(struct ath10k *ar, ar 101 drivers/net/wireless/ath/ath10k/debug.h void ath10k_debug_dbglog_add(struct ath10k *ar, u8 *buffer, int len); ar 103 drivers/net/wireless/ath/ath10k/debug.h #define ATH10K_DFS_STAT_INC(ar, c) (ar->debug.dfs_stats.c++) ar 114 drivers/net/wireless/ath/ath10k/debug.h static inline u64 ath10k_debug_get_fw_dbglog_mask(struct ath10k *ar) ar 116 drivers/net/wireless/ath/ath10k/debug.h return ar->debug.fw_dbglog_mask; ar 119 drivers/net/wireless/ath/ath10k/debug.h static inline u32 ath10k_debug_get_fw_dbglog_level(struct ath10k *ar) ar 121 drivers/net/wireless/ath/ath10k/debug.h return ar->debug.fw_dbglog_level; ar 124 drivers/net/wireless/ath/ath10k/debug.h static inline int ath10k_debug_is_extd_tx_stats_enabled(struct ath10k *ar) ar 126 drivers/net/wireless/ath/ath10k/debug.h return ar->debug.enable_extd_tx_stats; ar 130 drivers/net/wireless/ath/ath10k/debug.h static inline int ath10k_debug_start(struct ath10k *ar) ar 135 drivers/net/wireless/ath/ath10k/debug.h static inline void ath10k_debug_stop(struct ath10k *ar) ar 139 drivers/net/wireless/ath/ath10k/debug.h static inline int ath10k_debug_create(struct ath10k *ar) ar 144 drivers/net/wireless/ath/ath10k/debug.h static inline void ath10k_debug_destroy(struct ath10k *ar) ar 148 drivers/net/wireless/ath/ath10k/debug.h static inline int ath10k_debug_register(struct ath10k *ar) ar 153 drivers/net/wireless/ath/ath10k/debug.h static inline void ath10k_debug_unregister(struct ath10k *ar) ar 157 drivers/net/wireless/ath/ath10k/debug.h static inline void ath10k_debug_fw_stats_process(struct ath10k *ar, ar 162 drivers/net/wireless/ath/ath10k/debug.h static inline void ath10k_debug_tpc_stats_process(struct ath10k *ar, ar 169 drivers/net/wireless/ath/ath10k/debug.h ath10k_debug_tpc_stats_final_process(struct ath10k *ar, ar 175 drivers/net/wireless/ath/ath10k/debug.h static inline void ath10k_debug_dbglog_add(struct ath10k *ar, u8 *buffer, ar 180 drivers/net/wireless/ath/ath10k/debug.h static inline u64 ath10k_debug_get_fw_dbglog_mask(struct ath10k *ar) ar 185 drivers/net/wireless/ath/ath10k/debug.h static inline u32 ath10k_debug_get_fw_dbglog_level(struct ath10k *ar) ar 190 drivers/net/wireless/ath/ath10k/debug.h static inline int ath10k_debug_is_extd_tx_stats_enabled(struct ath10k *ar) ar 195 drivers/net/wireless/ath/ath10k/debug.h #define ATH10K_DFS_STAT_INC(ar, c) do { } while (0) ar 205 drivers/net/wireless/ath/ath10k/debug.h void ath10k_sta_update_rx_duration(struct ath10k *ar, ar 207 drivers/net/wireless/ath/ath10k/debug.h void ath10k_sta_update_rx_tid_stats(struct ath10k *ar, u8 *first_hdr, ar 214 drivers/net/wireless/ath/ath10k/debug.h void ath10k_sta_update_rx_tid_stats_ampdu(struct ath10k *ar, ar 220 drivers/net/wireless/ath/ath10k/debug.h void ath10k_sta_update_rx_duration(struct ath10k *ar, ar 226 drivers/net/wireless/ath/ath10k/debug.h void ath10k_sta_update_rx_tid_stats(struct ath10k *ar, u8 *first_hdr, ar 237 drivers/net/wireless/ath/ath10k/debug.h void ath10k_sta_update_rx_tid_stats_ampdu(struct ath10k *ar, ar 246 drivers/net/wireless/ath/ath10k/debug.h __printf(3, 4) void __ath10k_dbg(struct ath10k *ar, ar 249 drivers/net/wireless/ath/ath10k/debug.h void ath10k_dbg_dump(struct ath10k *ar, ar 255 drivers/net/wireless/ath/ath10k/debug.h static inline int __ath10k_dbg(struct ath10k *ar, ar 262 drivers/net/wireless/ath/ath10k/debug.h static inline void ath10k_dbg_dump(struct ath10k *ar, ar 273 drivers/net/wireless/ath/ath10k/debug.h #define ath10k_dbg(ar, dbg_mask, fmt, ...) \ ar 277 drivers/net/wireless/ath/ath10k/debug.h __ath10k_dbg(ar, dbg_mask, fmt, ##__VA_ARGS__); \ ar 12 drivers/net/wireless/ath/ath10k/debugfs_sta.c static void ath10k_rx_stats_update_amsdu_subfrm(struct ath10k *ar, ar 28 drivers/net/wireless/ath/ath10k/debugfs_sta.c static void ath10k_rx_stats_update_ampdu_subfrm(struct ath10k *ar, ar 48 drivers/net/wireless/ath/ath10k/debugfs_sta.c void ath10k_sta_update_rx_tid_stats_ampdu(struct ath10k *ar, u16 peer_id, u8 tid, ar 56 drivers/net/wireless/ath/ath10k/debugfs_sta.c if (tid > IEEE80211_NUM_TIDS || !(ar->sta_tid_stats_mask & BIT(tid))) ar 60 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_lock_bh(&ar->data_lock); ar 62 drivers/net/wireless/ath/ath10k/debugfs_sta.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 69 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_rx_stats_update_ampdu_subfrm(ar, ar 74 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_unlock_bh(&ar->data_lock); ar 78 drivers/net/wireless/ath/ath10k/debugfs_sta.c void ath10k_sta_update_rx_tid_stats(struct ath10k *ar, u8 *first_hdr, ar 100 drivers/net/wireless/ath/ath10k/debugfs_sta.c if (!(ar->sta_tid_stats_mask & BIT(tid)) || non_data_frm) ar 105 drivers/net/wireless/ath/ath10k/debugfs_sta.c sta = ieee80211_find_sta_by_ifaddr(ar->hw, hdr->addr2, NULL); ar 111 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_lock_bh(&ar->data_lock); ar 120 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_rx_stats_update_amsdu_subfrm(ar, &arsta->tid_stats[tid], ar 122 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_unlock_bh(&ar->data_lock); ar 128 drivers/net/wireless/ath/ath10k/debugfs_sta.c static void ath10k_sta_update_extd_stats_rx_duration(struct ath10k *ar, ar 137 drivers/net/wireless/ath/ath10k/debugfs_sta.c sta = ieee80211_find_sta_by_ifaddr(ar->hw, peer->peer_macaddr, ar 147 drivers/net/wireless/ath/ath10k/debugfs_sta.c static void ath10k_sta_update_stats_rx_duration(struct ath10k *ar, ar 156 drivers/net/wireless/ath/ath10k/debugfs_sta.c sta = ieee80211_find_sta_by_ifaddr(ar->hw, peer->peer_macaddr, ar 166 drivers/net/wireless/ath/ath10k/debugfs_sta.c void ath10k_sta_update_rx_duration(struct ath10k *ar, ar 170 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_sta_update_extd_stats_rx_duration(ar, stats); ar 172 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_sta_update_stats_rx_duration(ar, stats); ar 181 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 185 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 189 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 200 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 210 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 211 drivers/net/wireless/ath/ath10k/debugfs_sta.c if ((ar->state != ATH10K_STATE_ON) || ar 217 drivers/net/wireless/ath/ath10k/debugfs_sta.c ret = ath10k_wmi_addba_clear_resp(ar, arsta->arvif->vdev_id, sta->addr); ar 219 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_warn(ar, "failed to clear addba session ret: %d\n", ret); ar 225 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 243 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 261 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 262 drivers/net/wireless/ath/ath10k/debugfs_sta.c if ((ar->state != ATH10K_STATE_ON) || ar 268 drivers/net/wireless/ath/ath10k/debugfs_sta.c ret = ath10k_wmi_addba_send(ar, arsta->arvif->vdev_id, sta->addr, ar 271 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_warn(ar, "failed to send addba request: vdev_id %u peer %pM tid %u buf_size %u\n", ar 277 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 294 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 312 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 313 drivers/net/wireless/ath/ath10k/debugfs_sta.c if ((ar->state != ATH10K_STATE_ON) || ar 319 drivers/net/wireless/ath/ath10k/debugfs_sta.c ret = ath10k_wmi_addba_set_resp(ar, arsta->arvif->vdev_id, sta->addr, ar 322 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_warn(ar, "failed to send addba response: vdev_id %u peer %pM tid %u status%u\n", ar 327 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 344 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 362 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 363 drivers/net/wireless/ath/ath10k/debugfs_sta.c if ((ar->state != ATH10K_STATE_ON) || ar 369 drivers/net/wireless/ath/ath10k/debugfs_sta.c ret = ath10k_wmi_delba_send(ar, arsta->arvif->vdev_id, sta->addr, ar 372 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_warn(ar, "failed to send delba: vdev_id %u peer %pM tid %u initiator %u reason %u\n", ar 378 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 396 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 400 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 403 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 415 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 425 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 427 drivers/net/wireless/ath/ath10k/debugfs_sta.c if (ar->state != ATH10K_STATE_ON) { ar 432 drivers/net/wireless/ath/ath10k/debugfs_sta.c ret = ath10k_wmi_peer_set_param(ar, arsta->arvif->vdev_id, sta->addr, ar 435 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_warn(ar, "failed to set param to trigger peer tid logs for station ret: %d\n", ar 440 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 458 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 462 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_lock_bh(&ar->data_lock); ar 467 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_unlock_bh(&ar->data_lock); ar 545 drivers/net/wireless/ath/ath10k/debugfs_sta.c if (ar->sta_tid_stats_mask & BIT(j)) { \ ar 568 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 579 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 581 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_lock_bh(&ar->data_lock); ar 627 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_unlock_bh(&ar->data_lock); ar 633 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 651 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = arsta->arvif->ar; ar 664 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_lock(&ar->conf_mutex); ar 667 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_warn(ar, "failed to get tx stats"); ar 668 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 673 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_lock_bh(&ar->data_lock); ar 739 drivers/net/wireless/ath/ath10k/debugfs_sta.c spin_unlock_bh(&ar->data_lock); ar 746 drivers/net/wireless/ath/ath10k/debugfs_sta.c mutex_unlock(&ar->conf_mutex); ar 760 drivers/net/wireless/ath/ath10k/debugfs_sta.c struct ath10k *ar = hw->priv; ar 771 drivers/net/wireless/ath/ath10k/debugfs_sta.c if (ath10k_peer_stats_enabled(ar) && ar 772 drivers/net/wireless/ath/ath10k/debugfs_sta.c ath10k_debug_is_extd_tx_stats_enabled(ar)) ar 31 drivers/net/wireless/ath/ath10k/hif.h int (*tx_sg)(struct ath10k *ar, u8 pipe_id, ar 35 drivers/net/wireless/ath/ath10k/hif.h int (*diag_read)(struct ath10k *ar, u32 address, void *buf, ar 38 drivers/net/wireless/ath/ath10k/hif.h int (*diag_write)(struct ath10k *ar, u32 address, const void *data, ar 45 drivers/net/wireless/ath/ath10k/hif.h int (*exchange_bmi_msg)(struct ath10k *ar, ar 50 drivers/net/wireless/ath/ath10k/hif.h int (*start)(struct ath10k *ar); ar 55 drivers/net/wireless/ath/ath10k/hif.h void (*stop)(struct ath10k *ar); ar 57 drivers/net/wireless/ath/ath10k/hif.h int (*swap_mailbox)(struct ath10k *ar); ar 59 drivers/net/wireless/ath/ath10k/hif.h int (*map_service_to_pipe)(struct ath10k *ar, u16 service_id, ar 62 drivers/net/wireless/ath/ath10k/hif.h void (*get_default_pipe)(struct ath10k *ar, u8 *ul_pipe, u8 *dl_pipe); ar 72 drivers/net/wireless/ath/ath10k/hif.h void (*send_complete_check)(struct ath10k *ar, u8 pipe_id, int force); ar 74 drivers/net/wireless/ath/ath10k/hif.h u16 (*get_free_queue_number)(struct ath10k *ar, u8 pipe_id); ar 76 drivers/net/wireless/ath/ath10k/hif.h u32 (*read32)(struct ath10k *ar, u32 address); ar 78 drivers/net/wireless/ath/ath10k/hif.h void (*write32)(struct ath10k *ar, u32 address, u32 value); ar 81 drivers/net/wireless/ath/ath10k/hif.h int (*power_up)(struct ath10k *ar, enum ath10k_firmware_mode fw_mode); ar 86 drivers/net/wireless/ath/ath10k/hif.h void (*power_down)(struct ath10k *ar); ar 88 drivers/net/wireless/ath/ath10k/hif.h int (*suspend)(struct ath10k *ar); ar 89 drivers/net/wireless/ath/ath10k/hif.h int (*resume)(struct ath10k *ar); ar 92 drivers/net/wireless/ath/ath10k/hif.h int (*fetch_cal_eeprom)(struct ath10k *ar, void **data, ar 95 drivers/net/wireless/ath/ath10k/hif.h int (*get_target_info)(struct ath10k *ar, ar 97 drivers/net/wireless/ath/ath10k/hif.h int (*set_target_log_mode)(struct ath10k *ar, u8 fw_log_mode); ar 100 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_tx_sg(struct ath10k *ar, u8 pipe_id, ar 104 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->tx_sg(ar, pipe_id, items, n_items); ar 107 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_diag_read(struct ath10k *ar, u32 address, void *buf, ar 110 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->diag_read(ar, address, buf, buf_len); ar 113 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_diag_write(struct ath10k *ar, u32 address, ar 116 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->diag_write) ar 119 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->diag_write(ar, address, data, nbytes); ar 122 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_exchange_bmi_msg(struct ath10k *ar, ar 126 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->exchange_bmi_msg(ar, request, request_len, ar 130 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_start(struct ath10k *ar) ar 132 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->start(ar); ar 135 drivers/net/wireless/ath/ath10k/hif.h static inline void ath10k_hif_stop(struct ath10k *ar) ar 137 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->stop(ar); ar 140 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_swap_mailbox(struct ath10k *ar) ar 142 drivers/net/wireless/ath/ath10k/hif.h if (ar->hif.ops->swap_mailbox) ar 143 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->swap_mailbox(ar); ar 147 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_map_service_to_pipe(struct ath10k *ar, ar 151 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->map_service_to_pipe(ar, service_id, ar 155 drivers/net/wireless/ath/ath10k/hif.h static inline void ath10k_hif_get_default_pipe(struct ath10k *ar, ar 158 drivers/net/wireless/ath/ath10k/hif.h ar->hif.ops->get_default_pipe(ar, ul_pipe, dl_pipe); ar 161 drivers/net/wireless/ath/ath10k/hif.h static inline void ath10k_hif_send_complete_check(struct ath10k *ar, ar 164 drivers/net/wireless/ath/ath10k/hif.h ar->hif.ops->send_complete_check(ar, pipe_id, force); ar 167 drivers/net/wireless/ath/ath10k/hif.h static inline u16 ath10k_hif_get_free_queue_number(struct ath10k *ar, ar 170 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->get_free_queue_number(ar, pipe_id); ar 173 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_power_up(struct ath10k *ar, ar 176 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->power_up(ar, fw_mode); ar 179 drivers/net/wireless/ath/ath10k/hif.h static inline void ath10k_hif_power_down(struct ath10k *ar) ar 181 drivers/net/wireless/ath/ath10k/hif.h ar->hif.ops->power_down(ar); ar 184 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_suspend(struct ath10k *ar) ar 186 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->suspend) ar 189 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->suspend(ar); ar 192 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_resume(struct ath10k *ar) ar 194 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->resume) ar 197 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->resume(ar); ar 200 drivers/net/wireless/ath/ath10k/hif.h static inline u32 ath10k_hif_read32(struct ath10k *ar, u32 address) ar 202 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->read32) { ar 203 drivers/net/wireless/ath/ath10k/hif.h ath10k_warn(ar, "hif read32 not supported\n"); ar 207 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->read32(ar, address); ar 210 drivers/net/wireless/ath/ath10k/hif.h static inline void ath10k_hif_write32(struct ath10k *ar, ar 213 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->write32) { ar 214 drivers/net/wireless/ath/ath10k/hif.h ath10k_warn(ar, "hif write32 not supported\n"); ar 218 drivers/net/wireless/ath/ath10k/hif.h ar->hif.ops->write32(ar, address, data); ar 221 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_fetch_cal_eeprom(struct ath10k *ar, ar 225 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->fetch_cal_eeprom) ar 228 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->fetch_cal_eeprom(ar, data, data_len); ar 231 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_get_target_info(struct ath10k *ar, ar 234 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->get_target_info) ar 237 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->get_target_info(ar, tgt_info); ar 240 drivers/net/wireless/ath/ath10k/hif.h static inline int ath10k_hif_set_target_log_mode(struct ath10k *ar, ar 243 drivers/net/wireless/ath/ath10k/hif.h if (!ar->hif.ops->set_target_log_mode) ar 246 drivers/net/wireless/ath/ath10k/hif.h return ar->hif.ops->set_target_log_mode(ar, fw_log_mode); ar 15 drivers/net/wireless/ath/ath10k/htc.c static void ath10k_htc_control_tx_complete(struct ath10k *ar, ar 21 drivers/net/wireless/ath/ath10k/htc.c static struct sk_buff *ath10k_htc_build_tx_ctrl_skb(void *ar) ar 36 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, "%s: skb %pK\n", __func__, skb); ar 45 drivers/net/wireless/ath/ath10k/htc.c if (htc->ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL) ar 46 drivers/net/wireless/ath/ath10k/htc.c dma_unmap_single(htc->ar->dev, skb_cb->paddr, skb->len, DMA_TO_DEVICE); ar 53 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = ep->htc->ar; ar 55 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, "%s: ep %d skb %pK\n", __func__, ar 61 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "no tx handler for eid %d\n", ep->eid); ar 66 drivers/net/wireless/ath/ath10k/htc.c ep->ep_ops.ep_tx_complete(ep->htc->ar, skb); ar 93 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 97 drivers/net/wireless/ath/ath10k/htc.c struct device *dev = htc->ar->dev; ar 101 drivers/net/wireless/ath/ath10k/htc.c if (htc->ar->state == ATH10K_STATE_WEDGED) ar 105 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Invalid endpoint id: %d\n", eid); ar 115 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 123 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 132 drivers/net/wireless/ath/ath10k/htc.c if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL) { ar 148 drivers/net/wireless/ath/ath10k/htc.c ret = ath10k_hif_tx_sg(htc->ar, ep->ul_pipe_id, &sg_item, 1); ar 155 drivers/net/wireless/ath/ath10k/htc.c if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL) ar 161 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 167 drivers/net/wireless/ath/ath10k/htc.c ep->ep_ops.ep_tx_credits(htc->ar); ar 174 drivers/net/wireless/ath/ath10k/htc.c void ath10k_htc_tx_completion_handler(struct ath10k *ar, struct sk_buff *skb) ar 176 drivers/net/wireless/ath/ath10k/htc.c struct ath10k_htc *htc = &ar->htc; ar 201 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 206 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Uneven credit report len %d", len); ar 218 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, "htc ep %d got %d credits (total %d)\n", ar 223 drivers/net/wireless/ath/ath10k/htc.c ep->ep_ops.ep_tx_credits(htc->ar); ar 238 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 249 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 270 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 274 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Invalid lookahead bundle count: %d\n", ar 302 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 322 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Invalid record length: %d\n", ar 332 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Credit report too long\n"); ar 344 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Lookahead report too long\n"); ar 365 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Unhandled record: id:%d length:%d\n", ar 379 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg_dump(ar, ATH10K_DBG_HTC, "htc rx bad trailer", "", ar 386 drivers/net/wireless/ath/ath10k/htc.c void ath10k_htc_rx_completion_handler(struct ath10k *ar, struct sk_buff *skb) ar 389 drivers/net/wireless/ath/ath10k/htc.c struct ath10k_htc *htc = &ar->htc; ar 404 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "HTC Rx: invalid eid %d\n", eid); ar 405 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg_dump(ar, ATH10K_DBG_HTC, "htc bad header", "", ar 415 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "HTC rx frame too long, len: %zu\n", ar 417 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg_dump(ar, ATH10K_DBG_HTC, "htc bad rx pkt len", "", ar 423 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 426 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg_dump(ar, ATH10K_DBG_HTC, "htc bad rx pkt len", ar 441 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Invalid trailer length: %d\n", ar 463 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, "htc rx completion ep %d skb %pK\n", ar 465 drivers/net/wireless/ath/ath10k/htc.c ep->ep_ops.ep_rx_complete(ar, skb); ar 474 drivers/net/wireless/ath/ath10k/htc.c static void ath10k_htc_control_rx_complete(struct ath10k *ar, ar 477 drivers/net/wireless/ath/ath10k/htc.c struct ath10k_htc *htc = &ar->htc; ar 488 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "HTC rx ctrl still processing\n"); ar 503 drivers/net/wireless/ath/ath10k/htc.c htc->htc_ops.target_send_suspend_complete(ar); ar 506 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "ignoring unsolicited htc ep0 event\n"); ar 586 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 601 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "failed to receive control response completion, polling..\n"); ar 604 drivers/net/wireless/ath/ath10k/htc.c ath10k_hif_send_complete_check(htc->ar, i, 1); ar 615 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "ctl_resp never came in (%d)\n", status); ar 620 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "Invalid HTC ready msg len:%d\n", ar 629 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "Invalid HTC ready msg: 0x%x\n", message_id); ar 636 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 643 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "Invalid credit size received\n"); ar 655 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 667 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 694 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 698 drivers/net/wireless/ath/ath10k/htc.c skb = ath10k_htc_build_tx_ctrl_skb(htc->ar); ar 700 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "Failed to allocate HTC packet\n"); ar 736 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "Service connect timeout\n"); ar 749 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "Invalid resp message ID 0x%x", message_id); ar 753 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, ar 762 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "HTC Service %s connect request failed: 0x%x)\n", ar 798 drivers/net/wireless/ath/ath10k/htc.c status = ath10k_hif_map_service_to_pipe(htc->ar, ar 803 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "unsupported HTC service id: %d\n", ar 808 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 815 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 823 drivers/net/wireless/ath/ath10k/htc.c struct sk_buff *ath10k_htc_alloc_skb(struct ath10k *ar, int size) ar 835 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "Unaligned HTC tx skb\n"); ar 840 drivers/net/wireless/ath/ath10k/htc.c static void ath10k_htc_pktlog_process_rx(struct ath10k *ar, struct sk_buff *skb) ar 842 drivers/net/wireless/ath/ath10k/htc.c trace_ath10k_htt_pktlog(ar, skb->data, skb->len); ar 846 drivers/net/wireless/ath/ath10k/htc.c static int ath10k_htc_pktlog_connect(struct ath10k *ar) ar 861 drivers/net/wireless/ath/ath10k/htc.c status = ath10k_htc_connect_service(&ar->htc, &conn_req, &conn_resp); ar 863 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "failed to connect to PKTLOG service: %d\n", ar 871 drivers/net/wireless/ath/ath10k/htc.c static bool ath10k_htc_pktlog_svc_supported(struct ath10k *ar) ar 877 drivers/net/wireless/ath/ath10k/htc.c status = ath10k_hif_map_service_to_pipe(ar, ATH10K_HTC_SVC_ID_HTT_LOG_MSG, ar 881 drivers/net/wireless/ath/ath10k/htc.c ath10k_warn(ar, "unsupported HTC service id: %d\n", ar 892 drivers/net/wireless/ath/ath10k/htc.c struct ath10k *ar = htc->ar; ar 897 drivers/net/wireless/ath/ath10k/htc.c skb = ath10k_htc_build_tx_ctrl_skb(htc->ar); ar 908 drivers/net/wireless/ath/ath10k/htc.c if (ar->hif.bus == ATH10K_BUS_SDIO) { ar 915 drivers/net/wireless/ath/ath10k/htc.c ath10k_dbg(ar, ATH10K_DBG_HTC, "HTC is using TX credit flow control\n"); ar 923 drivers/net/wireless/ath/ath10k/htc.c if (ath10k_htc_pktlog_svc_supported(ar)) { ar 924 drivers/net/wireless/ath/ath10k/htc.c status = ath10k_htc_pktlog_connect(ar); ar 926 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "failed to connect to pktlog: %d\n", status); ar 935 drivers/net/wireless/ath/ath10k/htc.c int ath10k_htc_init(struct ath10k *ar) ar 938 drivers/net/wireless/ath/ath10k/htc.c struct ath10k_htc *htc = &ar->htc; ar 946 drivers/net/wireless/ath/ath10k/htc.c htc->ar = ar; ar 959 drivers/net/wireless/ath/ath10k/htc.c ath10k_err(ar, "could not connect to htc service (%d)\n", ar 291 drivers/net/wireless/ath/ath10k/htc.h void (*target_send_suspend_complete)(struct ath10k *ar); ar 346 drivers/net/wireless/ath/ath10k/htc.h struct ath10k *ar; ar 364 drivers/net/wireless/ath/ath10k/htc.h int ath10k_htc_init(struct ath10k *ar); ar 372 drivers/net/wireless/ath/ath10k/htc.h struct sk_buff *ath10k_htc_alloc_skb(struct ath10k *ar, int size); ar 373 drivers/net/wireless/ath/ath10k/htc.h void ath10k_htc_tx_completion_handler(struct ath10k *ar, struct sk_buff *skb); ar 374 drivers/net/wireless/ath/ath10k/htc.h void ath10k_htc_rx_completion_handler(struct ath10k *ar, struct sk_buff *skb); ar 148 drivers/net/wireless/ath/ath10k/htt.c status = ath10k_htc_connect_service(&htt->ar->htc, &conn_req, ar 159 drivers/net/wireless/ath/ath10k/htt.c int ath10k_htt_init(struct ath10k *ar) ar 161 drivers/net/wireless/ath/ath10k/htt.c struct ath10k_htt *htt = &ar->htt; ar 163 drivers/net/wireless/ath/ath10k/htt.c htt->ar = ar; ar 177 drivers/net/wireless/ath/ath10k/htt.c switch (ar->running_fw->fw_file.htt_op_version) { ar 179 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_10_4_t2h_msg_types; ar 180 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_10_4_T2H_NUM_MSGS; ar 183 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_10x_t2h_msg_types; ar 184 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_10X_T2H_NUM_MSGS; ar 187 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_tlv_t2h_msg_types; ar 188 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_TLV_T2H_NUM_MSGS; ar 191 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types = htt_main_t2h_msg_types; ar 192 drivers/net/wireless/ath/ath10k/htt.c ar->htt.t2h_msg_types_max = HTT_MAIN_T2H_NUM_MSGS; ar 209 drivers/net/wireless/ath/ath10k/htt.c struct ath10k *ar = htt->ar; ar 211 drivers/net/wireless/ath/ath10k/htt.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "htt target version %d.%d\n", ar 216 drivers/net/wireless/ath/ath10k/htt.c ath10k_err(ar, "unsupported htt major version %d. supported versions are 2 and 3\n", ar 226 drivers/net/wireless/ath/ath10k/htt.c struct ath10k *ar = htt->ar; ar 238 drivers/net/wireless/ath/ath10k/htt.c ath10k_warn(ar, "htt version request timed out\n"); ar 244 drivers/net/wireless/ath/ath10k/htt.c ath10k_warn(ar, "failed to verify htt version: %d\n", ar 255 drivers/net/wireless/ath/ath10k/htt.c ath10k_warn(ar, "failed to setup rx ring: %d\n", ar 264 drivers/net/wireless/ath/ath10k/htt.c ath10k_warn(ar, "failed to setup amsdu/ampdu limit: %d\n", ar 1869 drivers/net/wireless/ath/ath10k/htt.h struct ath10k *ar; ar 2244 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_init(struct ath10k *ar); ar 2253 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_rx_ring_refill(struct ath10k *ar); ar 2256 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_htc_tx_complete(struct ath10k *ar, struct sk_buff *skb); ar 2257 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_htc_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb); ar 2258 drivers/net/wireless/ath/ath10k/htt.h bool ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb); ar 2262 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_hif_tx_complete(struct ath10k *ar, struct sk_buff *skb); ar 2263 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_tx_fetch_resp(struct ath10k *ar, ar 2273 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_tx_txq_sync(struct ath10k *ar); ar 2283 drivers/net/wireless/ath/ath10k/htt.h void ath10k_htt_rx_pktlog_completion_handler(struct ath10k *ar, ar 2285 drivers/net/wireless/ath/ath10k/htt.h int ath10k_htt_txrx_compl_task(struct ath10k *ar, int budget); ar 27 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_find_skb_paddr(struct ath10k *ar, u64 paddr) ar 31 drivers/net/wireless/ath/ath10k/htt_rx.c hash_for_each_possible(ar->htt.rx_ring.skb_table, rxcb, hlist, paddr) ar 49 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, rxcb->paddr, ar 62 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, rxcb->paddr, ar 161 drivers/net/wireless/ath/ath10k/htt_rx.c paddr = dma_map_single(htt->ar->dev, skb->data, ar 165 drivers/net/wireless/ath/ath10k/htt_rx.c if (unlikely(dma_mapping_error(htt->ar->dev, paddr))) { ar 252 drivers/net/wireless/ath/ath10k/htt_rx.c int ath10k_htt_rx_ring_refill(struct ath10k *ar) ar 254 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; ar 257 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) ar 274 drivers/net/wireless/ath/ath10k/htt_rx.c if (htt->ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) ar 287 drivers/net/wireless/ath/ath10k/htt_rx.c dma_free_coherent(htt->ar->dev, ar 292 drivers/net/wireless/ath/ath10k/htt_rx.c dma_free_coherent(htt->ar->dev, ar 302 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 309 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "tried to pop sk_buff from an empty rx ring\n"); ar 323 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, ar 327 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "htt rx netbuf pop: ", ar 337 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 409 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_rx_desc(ar, &rx_desc->attention, ar 438 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 444 drivers/net/wireless/ath/ath10k/htt_rx.c msdu = ath10k_htt_rx_find_skb_paddr(ar, paddr); ar 452 drivers/net/wireless/ath/ath10k/htt_rx.c dma_unmap_single(htt->ar->dev, rxcb->paddr, ar 455 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "htt rx netbuf pop: ", ar 474 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 484 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_rx_desc(ar, rxd, sizeof(*rxd)); ar 494 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "invalid amsdu len %u, left %d", ar 505 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to pop frag-1 paddr: 0x%x", paddr); ar 520 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to pop frag-n paddr: 0x%x", ar 535 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "invalid amsdu len %u, left %d", ar 550 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 560 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_rx_desc(ar, rxd, sizeof(*rxd)); ar 570 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "invalid amsdu len %u, left %d", ar 581 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to pop frag-1 paddr: 0x%llx", paddr); ar 596 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to pop frag-n paddr: 0x%llx", ar 611 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "invalid amsdu len %u, left %d", ar 625 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 647 drivers/net/wireless/ath/ath10k/htt_rx.c if (!is_offload && ar->monitor_arvif) { ar 664 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_rx_desc(ar, rxd, sizeof(*rxd)); ar 672 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(htt->ar, "tried to pop an incomplete frame, oops!\n"); ar 687 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 708 drivers/net/wireless/ath/ath10k/htt_rx.c if (!is_offload && ar->monitor_arvif) { ar 725 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_rx_desc(ar, rxd, sizeof(*rxd)); ar 733 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(htt->ar, "tried to pop an incomplete frame, oops!\n"); ar 746 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 752 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) ar 762 drivers/net/wireless/ath/ath10k/htt_rx.c htt->rx_ring.fill_level = ar->hw_params.rx_ring_fill_level; ar 765 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "htt rx ring size is not power of 2\n"); ar 777 drivers/net/wireless/ath/ath10k/htt_rx.c vaddr_ring = dma_alloc_coherent(htt->ar->dev, size, &paddr, GFP_KERNEL); ar 784 drivers/net/wireless/ath/ath10k/htt_rx.c vaddr = dma_alloc_coherent(htt->ar->dev, ar 809 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "htt rx ring size %d fill_level %d\n", ar 814 drivers/net/wireless/ath/ath10k/htt_rx.c dma_free_coherent(htt->ar->dev, ar 824 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_crypto_param_len(struct ath10k *ar, ar 848 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "unsupported encryption type %d\n", type); ar 854 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_crypto_mic_len(struct ath10k *ar, ar 876 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "unsupported encryption type %d\n", type); ar 880 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_crypto_icv_len(struct ath10k *ar, ar 901 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "unsupported encryption type %d\n", type); ar 935 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_rates(struct ath10k *ar, ar 963 drivers/net/wireless/ath/ath10k/htt_rx.c sband = &ar->mac.sbands[status->band]; ar 1009 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "invalid MCS received %u\n", mcs); ar 1010 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "rxd %08x mpdu start %08x %08x msdu start %08x %08x ppdu start %08x %08x %08x %08x %08x\n", ar 1022 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "msdu end %08x mpdu end %08x\n", ar 1026 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, ar 1046 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_peer_channel(struct ath10k *ar, struct htt_rx_desc *rxd) ar 1053 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&ar->data_lock); ar 1069 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 1073 drivers/net/wireless/ath/ath10k/htt_rx.c arvif = ath10k_get_arvif(ar, peer->vdev_id); ar 1084 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_vdev_channel(struct ath10k *ar, u32 vdev_id) ar 1089 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&ar->data_lock); ar 1091 drivers/net/wireless/ath/ath10k/htt_rx.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 1111 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_any_channel(struct ath10k *ar) ar 1115 drivers/net/wireless/ath/ath10k/htt_rx.c ieee80211_iter_chan_contexts_atomic(ar->hw, ar 1122 drivers/net/wireless/ath/ath10k/htt_rx.c static bool ath10k_htt_rx_h_channel(struct ath10k *ar, ar 1129 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 1130 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ar->scan_channel; ar 1132 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ar->rx_channel; ar 1134 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ath10k_htt_rx_h_peer_channel(ar, rxd); ar 1136 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ath10k_htt_rx_h_vdev_channel(ar, vdev_id); ar 1138 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ath10k_htt_rx_h_any_channel(ar); ar 1140 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ar->tgt_oper_chan; ar 1141 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 1152 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_signal(struct ath10k *ar, ar 1175 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_mactime(struct ath10k *ar, ar 1189 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_ppdu(struct ath10k *ar, ar 1223 drivers/net/wireless/ath/ath10k/htt_rx.c status->ampdu_reference = ar->ampdu_reference; ar 1225 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_signal(ar, status, rxd); ar 1226 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_channel(ar, status, rxd, vdev_id); ar 1227 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_rates(ar, status, rxd); ar 1231 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_mactime(ar, status, rxd); ar 1235 drivers/net/wireless/ath/ath10k/htt_rx.c ar->ampdu_reference++; ar 1268 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_queue_msdu(struct ath10k *ar, ar 1277 drivers/net/wireless/ath/ath10k/htt_rx.c skb_queue_tail(&ar->htt.rx_msdus_q, skb); ar 1280 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_process_rx(struct ath10k *ar, struct sk_buff *skb) ar 1288 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_DATA, ar 1311 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "rx skb: ", ar 1313 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_rx_hdr(ar, skb->data, skb->len); ar 1314 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_rx_payload(ar, skb->data, skb->len); ar 1316 drivers/net/wireless/ath/ath10k/htt_rx.c ieee80211_rx_napi(ar->hw, NULL, skb, &ar->napi); ar 1319 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_nwifi_hdrlen(struct ath10k *ar, ar 1325 drivers/net/wireless/ath/ath10k/htt_rx.c ar->running_fw->fw_file.fw_features)) ar 1331 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_undecap_raw(struct ath10k *ar, ar 1345 drivers/net/wireless/ath/ath10k/htt_rx.c int bytes_aligned = ar->hw_params.decap_align_bytes; ar 1369 drivers/net/wireless/ath/ath10k/htt_rx.c msdu_limit_err = ath10k_rx_desc_msdu_limit_error(&ar->hw_params, rxd); ar 1388 drivers/net/wireless/ath/ath10k/htt_rx.c crypto_len = ath10k_htt_rx_crypto_param_len(ar, enctype); ar 1422 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_mic_len(ar, enctype)); ar 1425 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_icv_len(ar, enctype)); ar 1430 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_mic_len(ar, enctype)); ar 1435 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_icv_len(ar, enctype)); ar 1447 drivers/net/wireless/ath/ath10k/htt_rx.c crypto_len = ath10k_htt_rx_crypto_param_len(ar, enctype); ar 1455 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_undecap_nwifi(struct ath10k *ar, ar 1467 drivers/net/wireless/ath/ath10k/htt_rx.c int bytes_aligned = ar->hw_params.decap_align_bytes; ar 1483 drivers/net/wireless/ath/ath10k/htt_rx.c l3_pad_bytes = ath10k_rx_desc_get_l3_pad_bytes(&ar->hw_params, rxd); ar 1488 drivers/net/wireless/ath/ath10k/htt_rx.c hdr_len = ath10k_htt_rx_nwifi_hdrlen(ar, hdr); ar 1499 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_param_len(ar, enctype)), ar 1501 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_param_len(ar, enctype)); ar 1514 drivers/net/wireless/ath/ath10k/htt_rx.c static void *ath10k_htt_rx_h_find_rfc1042(struct ath10k *ar, ar 1523 drivers/net/wireless/ath/ath10k/htt_rx.c int bytes_aligned = ar->hw_params.decap_align_bytes; ar 1538 drivers/net/wireless/ath/ath10k/htt_rx.c crypto_len = ath10k_htt_rx_crypto_param_len(ar, enctype); ar 1550 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_undecap_eth(struct ath10k *ar, ar 1564 drivers/net/wireless/ath/ath10k/htt_rx.c int bytes_aligned = ar->hw_params.decap_align_bytes; ar 1571 drivers/net/wireless/ath/ath10k/htt_rx.c rfc1042 = ath10k_htt_rx_h_find_rfc1042(ar, msdu, enctype); ar 1576 drivers/net/wireless/ath/ath10k/htt_rx.c l3_pad_bytes = ath10k_rx_desc_get_l3_pad_bytes(&ar->hw_params, rxd); ar 1596 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_param_len(ar, enctype)), ar 1598 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_param_len(ar, enctype)); ar 1611 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_undecap_snap(struct ath10k *ar, ar 1621 drivers/net/wireless/ath/ath10k/htt_rx.c int bytes_aligned = ar->hw_params.decap_align_bytes; ar 1630 drivers/net/wireless/ath/ath10k/htt_rx.c l3_pad_bytes = ath10k_rx_desc_get_l3_pad_bytes(&ar->hw_params, rxd); ar 1640 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_param_len(ar, enctype)), ar 1642 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_crypto_param_len(ar, enctype)); ar 1648 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_undecap(struct ath10k *ar, ar 1675 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_undecap_raw(ar, msdu, status, enctype, ar 1679 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_undecap_nwifi(ar, msdu, status, first_hdr, ar 1683 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_undecap_eth(ar, msdu, status, first_hdr, enctype); ar 1686 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_undecap_snap(ar, msdu, status, first_hdr, ar 1728 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_mpdu(struct ath10k *ar, ar 1849 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_undecap(ar, msdu, status, first_hdr, enctype, ar 1869 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_enqueue(struct ath10k *ar, ar 1892 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_queue_msdu(ar, status, msdu); ar 1944 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_unchain(struct ath10k *ar, ar 1973 drivers/net/wireless/ath/ath10k/htt_rx.c static bool ath10k_htt_rx_amsdu_allowed(struct ath10k *ar, ar 1982 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "no channel configured; ignoring frame(s)!\n"); ar 1986 drivers/net/wireless/ath/ath10k/htt_rx.c if (test_bit(ATH10K_CAC_RUNNING, &ar->dev_flags)) { ar 1987 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx cac running\n"); ar 1994 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_filter(struct ath10k *ar, ar 2002 drivers/net/wireless/ath/ath10k/htt_rx.c if (ath10k_htt_rx_amsdu_allowed(ar, amsdu, rx_status)) ar 2013 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 2035 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "rx ring became corrupted: %d\n", ret); ar 2046 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_ppdu(ar, &amsdu, rx_status, 0xffff); ar 2050 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_unchain(ar, &amsdu, &drop_cnt, &unchain_cnt); ar 2052 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_filter(ar, &amsdu, rx_status, &drop_cnt_filter); ar 2053 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_mpdu(ar, &amsdu, rx_status, true, first_hdr, &err); ar 2055 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_enqueue(ar, &amsdu, rx_status); ar 2057 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_sta_update_rx_tid_stats(ar, first_hdr, num_msdus, err, ar 2086 drivers/net/wireless/ath/ath10k/htt_rx.c static bool ath10k_htt_rx_pn_check_replay_hl(struct ath10k *ar, ar 2099 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&ar->data_lock); ar 2150 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 2171 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 2172 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 2173 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2175 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "Got RX ind from invalid peer: %u\n", peer_id); ar 2191 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, ar 2199 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "MPDU range status: %d\n", ar 2218 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 2219 drivers/net/wireless/ath/ath10k/htt_rx.c pn_invalid = ath10k_htt_rx_pn_check_replay_hl(ar, peer, rx); ar 2220 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2250 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 2251 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ar->scan_channel; ar 2253 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ar->rx_channel; ar 2255 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ath10k_htt_rx_h_any_channel(ar); ar 2257 drivers/net/wireless/ath/ath10k/htt_rx.c ch = ar->tgt_oper_chan; ar 2258 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2353 drivers/net/wireless/ath/ath10k/htt_rx.c ieee80211_rx_ni(ar->hw, skb); ar 2442 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 2465 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 2466 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 2468 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "invalid peer: %u\n", peer_id); ar 2487 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2551 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2560 drivers/net/wireless/ath/ath10k/htt_rx.c if (ath10k_htt_rx_pn_check_replay_hl(ar, peer, &resp->rx_ind_hl)) ar 2577 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2583 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2594 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 2608 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "htt rx ind: ", ar 2616 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_sta_update_rx_tid_stats_ampdu(ar, peer_id, tid, mpdu_ranges, ar 2620 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_tx_compl_ind(struct ath10k *ar, ar 2623 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; ar 2649 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "unhandled tx completion status %d\n", status); ar 2654 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx completion num_msdus %d\n", ar 2659 drivers/net/wireless/ath/ath10k/htt_rx.c rssi_enabled = ath10k_is_rssi_enable(&ar->hw_params, resp); ar 2662 drivers/net/wireless/ath/ath10k/htt_rx.c htt_pad = ath10k_tx_data_rssi_get_pad_bytes(&ar->hw_params, ar 2691 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) { ar 2694 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "txdone fifo overrun, msdu_id %d status %d\n", ar 2726 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 2728 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 2730 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2740 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2745 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_addba(struct ath10k *ar, struct htt_resp *resp) ar 2756 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 2760 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 2761 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 2763 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received addba event for invalid peer_id: %hu\n", ar 2765 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2769 drivers/net/wireless/ath/ath10k/htt_rx.c arvif = ath10k_get_arvif(ar, peer->vdev_id); ar 2771 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received addba event for invalid vdev_id: %u\n", ar 2773 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2777 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 2782 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2785 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_delba(struct ath10k *ar, struct htt_resp *resp) ar 2796 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 2800 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 2801 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 2803 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received addba event for invalid peer_id: %hu\n", ar 2805 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2809 drivers/net/wireless/ath/ath10k/htt_rx.c arvif = ath10k_get_arvif(ar, peer->vdev_id); ar 2811 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received addba event for invalid vdev_id: %u\n", ar 2813 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2817 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 2822 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 2876 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_h_rx_offload(struct ath10k *ar, ar 2879 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; ar 2896 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "dropping frame: offloaded rx msdu is too long!\n"); ar 2921 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_channel(ar, status, NULL, rx->vdev_id); ar 2922 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_queue_msdu(ar, status, msdu); ar 2926 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_in_ord_ind(struct ath10k *ar, struct sk_buff *skb) ar 2928 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; ar 2957 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 2962 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "dropping invalid in order rx indication\n"); ar 2970 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->hw_params.target_64bit) ar 2978 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to pop paddr list: %d\n", ret); ar 2987 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_rx_offload(ar, &list); ar 3000 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_ppdu(ar, &amsdu, status, vdev_id); ar 3001 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_filter(ar, &amsdu, status, NULL); ar 3002 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_mpdu(ar, &amsdu, status, false, NULL, ar 3004 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_h_enqueue(ar, &amsdu, status); ar 3010 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to extract amsdu: %d\n", ret); ar 3019 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_tx_fetch_resp_id_confirm(struct ath10k *ar, ar 3026 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx tx fetch confirm num_resp_ids %d\n", ar 3032 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx tx fetch confirm resp_id %u\n", ar 3039 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_tx_fetch_ind(struct ath10k *ar, struct sk_buff *skb) ar 3041 drivers/net/wireless/ath/ath10k/htt_rx.c struct ieee80211_hw *hw = ar->hw; ar 3059 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx tx fetch ind\n"); ar 3063 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received corrupted tx_fetch_ind event: buffer too short\n"); ar 3074 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received corrupted tx_fetch_ind event: too many records/resp_ids\n"); ar 3078 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx tx fetch ind num records %hu num resps %hu seq %hu\n", ar 3082 drivers/net/wireless/ath/ath10k/htt_rx.c if (!ar->htt.tx_q_state.enabled) { ar 3083 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received unexpected tx_fetch_ind event: not enabled\n"); ar 3087 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->htt.tx_q_state.mode == HTT_TX_MODE_SWITCH_PUSH) { ar 3088 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received unexpected tx_fetch_ind event: in push mode\n"); ar 3103 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx tx fetch record %i peer_id %hu tid %hhu msdus %zu bytes %zu\n", ar 3106 drivers/net/wireless/ath/ath10k/htt_rx.c if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || ar 3107 drivers/net/wireless/ath/ath10k/htt_rx.c unlikely(tid >= ar->htt.tx_q_state.num_tids)) { ar 3108 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received out of range peer_id %hu tid %hhu\n", ar 3113 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 3114 drivers/net/wireless/ath/ath10k/htt_rx.c txq = ath10k_mac_txq_lookup(ar, peer_id, tid); ar 3115 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 3122 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to lookup txq for peer_id %hu tid %hhu\n", ar 3156 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_tx_fetch_resp_id_confirm(ar, resp_ids, num_resp_ids); ar 3158 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_tx_fetch_resp(ar, ar 3164 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to submit tx fetch resp for token 0x%08x: %d\n", ar 3169 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_tx_txq_sync(ar); ar 3172 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_tx_fetch_confirm(struct ath10k *ar, ar 3179 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx tx fetch confirm\n"); ar 3183 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received corrupted tx_fetch_confirm event: buffer too short\n"); ar 3191 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received corrupted tx_fetch_confirm event: resp_ids buffer overflow\n"); ar 3195 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_tx_fetch_resp_id_confirm(ar, ar 3200 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_tx_mode_switch_ind(struct ath10k *ar, ar 3218 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx tx mode switch ind\n"); ar 3222 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received corrupted tx_mode_switch_ind event: buffer too short\n"); ar 3234 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 3241 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received corrupted tx_mode_switch_mode_ind event: too many records\n"); ar 3250 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received invalid tx_mode_switch_mode_ind mode %d, ignoring\n", ar 3258 drivers/net/wireless/ath/ath10k/htt_rx.c ar->htt.tx_q_state.enabled = enable; ar 3259 drivers/net/wireless/ath/ath10k/htt_rx.c ar->htt.tx_q_state.mode = mode; ar 3260 drivers/net/wireless/ath/ath10k/htt_rx.c ar->htt.tx_q_state.num_push_allowed = threshold; ar 3270 drivers/net/wireless/ath/ath10k/htt_rx.c if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || ar 3271 drivers/net/wireless/ath/ath10k/htt_rx.c unlikely(tid >= ar->htt.tx_q_state.num_tids)) { ar 3272 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received out of range peer_id %hu tid %hhu\n", ar 3277 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 3278 drivers/net/wireless/ath/ath10k/htt_rx.c txq = ath10k_mac_txq_lookup(ar, peer_id, tid); ar 3279 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 3286 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to lookup txq for peer_id %hu tid %hhu\n", ar 3291 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->htt.tx_lock); ar 3294 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->htt.tx_lock); ar 3299 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_mac_tx_push_pending(ar); ar 3302 drivers/net/wireless/ath/ath10k/htt_rx.c void ath10k_htt_htc_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) ar 3306 drivers/net/wireless/ath/ath10k/htt_rx.c release = ath10k_htt_t2h_msg_handler(ar, skb); ar 3313 drivers/net/wireless/ath/ath10k/htt_rx.c static inline s8 ath10k_get_legacy_rate_idx(struct ath10k *ar, u8 rate) ar 3324 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "Invalid legacy rate %hhd peer stats", rate); ar 3329 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_accumulate_per_peer_tx_stats(struct ath10k *ar, ar 3451 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_update_per_peer_tx_stats(struct ath10k *ar, ar 3462 drivers/net/wireless/ath/ath10k/htt_rx.c lockdep_assert_held(&ar->data_lock); ar 3478 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "Invalid VHT mcs %hhd peer stats", txrate.mcs); ar 3484 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "Invalid HT mcs %hhd nss %hhd peer stats", ar 3497 drivers/net/wireless/ath/ath10k/htt_rx.c rate_idx = ath10k_get_legacy_rate_idx(ar, rate); ar 3561 drivers/net/wireless/ath/ath10k/htt_rx.c ieee80211_tx_rate_update(ar->hw, sta, &arsta->tx_info); ar 3564 drivers/net/wireless/ath/ath10k/htt_rx.c if (ath10k_debug_is_extd_tx_stats_enabled(ar)) ar 3565 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_accumulate_per_peer_tx_stats(ar, arsta, peer_stats, ar 3569 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_fetch_peer_stats(struct ath10k *ar, ar 3573 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_per_peer_tx_stats *p_tx_stats = &ar->peer_tx_stats; ar 3584 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "Invalid peer stats buf length %d\n", skb->len); ar 3593 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 3594 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 3596 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "Invalid peer id %d peer stats buffer\n", ar 3617 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_update_per_peer_tx_stats(ar, sta, p_tx_stats); ar 3621 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 3625 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_fetch_10_2_tx_stats(struct ath10k *ar, u8 *data) ar 3628 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_per_peer_tx_stats *p_tx_stats = &ar->peer_tx_stats; ar 3647 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 3648 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, peer_id); ar 3650 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "Invalid peer id %d in peer stats buffer\n", ar 3669 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_update_per_peer_tx_stats(ar, sta, p_tx_stats); ar 3671 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 3677 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 3693 drivers/net/wireless/ath/ath10k/htt_rx.c static void ath10k_htt_rx_sec_ind_handler(struct ath10k *ar, ar 3700 drivers/net/wireless/ath/ath10k/htt_rx.c spin_lock_bh(&ar->data_lock); ar 3702 drivers/net/wireless/ath/ath10k/htt_rx.c peer = ath10k_peer_find_by_id(ar, __le16_to_cpu(ev->peer_id)); ar 3704 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to find peer id %d for security indication", ar 3723 drivers/net/wireless/ath/ath10k/htt_rx.c spin_unlock_bh(&ar->data_lock); ar 3726 drivers/net/wireless/ath/ath10k/htt_rx.c bool ath10k_htt_t2h_msg_handler(struct ath10k *ar, struct sk_buff *skb) ar 3728 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; ar 3734 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "unaligned htt message, expect trouble\n"); ar 3736 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx, msg_type: 0x%0X\n", ar 3739 drivers/net/wireless/ath/ath10k/htt_rx.c if (resp->hdr.msg_type >= ar->htt.t2h_msg_types_max) { ar 3740 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt rx, unsupported msg_type: 0x%0X\n max: 0x%0X", ar 3741 drivers/net/wireless/ath/ath10k/htt_rx.c resp->hdr.msg_type, ar->htt.t2h_msg_types_max); ar 3744 drivers/net/wireless/ath/ath10k/htt_rx.c type = ar->htt.t2h_msg_types[resp->hdr.msg_type]; ar 3754 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) ar 3790 drivers/net/wireless/ath/ath10k/htt_rx.c ar->wmi.svc_map) && ar 3815 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_tx_compl_ind(htt->ar, skb); ar 3818 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 3821 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_sec_ind_handler(ar, ev); ar 3822 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 3827 drivers/net/wireless/ath/ath10k/htt_rx.c complete(&ar->install_key_done); ar 3831 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "htt event: ", ar 3843 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_stats(ar, skb->data, skb->len); ar 3851 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "received an unexpected htt tx inspect event\n"); ar 3854 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_addba(ar, resp); ar 3857 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_delba(ar, resp); ar 3860 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_pktlog(ar, resp->pktlog_msg.payload, ar 3865 drivers/net/wireless/ath/ath10k/htt_rx.c if (ath10k_peer_stats_enabled(ar)) ar 3866 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_fetch_10_2_tx_stats(ar, ar 3886 drivers/net/wireless/ath/ath10k/htt_rx.c ar->tgt_oper_chan = ieee80211_get_channel(ar->hw->wiphy, freq); ar 3887 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 3898 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "failed to copy htt tx fetch ind\n"); ar 3905 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_tx_fetch_confirm(ar, skb); ar 3908 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_tx_mode_switch_ind(ar, skb); ar 3911 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_fetch_peer_stats(ar, skb); ar 3915 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_warn(ar, "htt event (%d) not handled\n", ar 3917 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "htt event: ", ar 3925 drivers/net/wireless/ath/ath10k/htt_rx.c void ath10k_htt_rx_pktlog_completion_handler(struct ath10k *ar, ar 3928 drivers/net/wireless/ath/ath10k/htt_rx.c trace_ath10k_htt_pktlog(ar, skb->data, skb->len); ar 3933 drivers/net/wireless/ath/ath10k/htt_rx.c static int ath10k_htt_rx_deliver_msdu(struct ath10k *ar, int quota, int budget) ar 3938 drivers/net/wireless/ath/ath10k/htt_rx.c if (skb_queue_empty(&ar->htt.rx_msdus_q)) ar 3941 drivers/net/wireless/ath/ath10k/htt_rx.c skb = skb_dequeue(&ar->htt.rx_msdus_q); ar 3944 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_process_rx(ar, skb); ar 3951 drivers/net/wireless/ath/ath10k/htt_rx.c int ath10k_htt_txrx_compl_task(struct ath10k *ar, int budget) ar 3953 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k_htt *htt = &ar->htt; ar 3966 drivers/net/wireless/ath/ath10k/htt_rx.c quota = ath10k_htt_rx_deliver_msdu(ar, quota, budget); ar 3974 drivers/net/wireless/ath/ath10k/htt_rx.c ret = ath10k_htt_rx_in_ord_ind(ar, skb); ar 3994 drivers/net/wireless/ath/ath10k/htt_rx.c quota = ath10k_htt_rx_deliver_msdu(ar, quota, budget); ar 4012 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_mac_tx_push_pending(ar); ar 4019 drivers/net/wireless/ath/ath10k/htt_rx.c ath10k_htt_rx_tx_fetch_ind(ar, skb); ar 4056 drivers/net/wireless/ath/ath10k/htt_rx.c struct ath10k *ar = htt->ar; ar 4058 drivers/net/wireless/ath/ath10k/htt_rx.c if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) ar 4060 drivers/net/wireless/ath/ath10k/htt_rx.c else if (ar->hw_params.target_64bit) ar 40 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = hw->priv; ar 51 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&ar->htt.tx_lock); ar 53 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->htt.tx_q_state.enabled) ar 56 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH_PULL) ar 73 drivers/net/wireless/ath/ath10k/htt_tx.c if (unlikely(peer_id >= ar->htt.tx_q_state.num_peers) || ar 74 drivers/net/wireless/ath/ath10k/htt_tx.c unlikely(tid >= ar->htt.tx_q_state.num_tids)) { ar 75 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "refusing to update txq for peer_id %hu tid %hhu due to out of bounds\n", ar 80 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->count[tid][peer_id] = count; ar 81 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->map[tid][idx] &= ~bit; ar 82 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->map[tid][idx] |= count ? bit : 0; ar 84 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx txq state update peer_id %hu tid %hhu count %hhu\n", ar 88 drivers/net/wireless/ath/ath10k/htt_tx.c static void __ath10k_htt_tx_txq_sync(struct ath10k *ar) ar 93 drivers/net/wireless/ath/ath10k/htt_tx.c lockdep_assert_held(&ar->htt.tx_lock); ar 95 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->htt.tx_q_state.enabled) ar 98 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH_PULL) ar 101 drivers/net/wireless/ath/ath10k/htt_tx.c seq = le32_to_cpu(ar->htt.tx_q_state.vaddr->seq); ar 103 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.vaddr->seq = cpu_to_le32(seq); ar 105 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx txq state update commit seq %u\n", ar 108 drivers/net/wireless/ath/ath10k/htt_tx.c size = sizeof(*ar->htt.tx_q_state.vaddr); ar 109 drivers/net/wireless/ath/ath10k/htt_tx.c dma_sync_single_for_device(ar->dev, ar 110 drivers/net/wireless/ath/ath10k/htt_tx.c ar->htt.tx_q_state.paddr, ar 118 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = hw->priv; ar 120 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&ar->htt.tx_lock); ar 122 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&ar->htt.tx_lock); ar 125 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_tx_txq_sync(struct ath10k *ar) ar 127 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&ar->htt.tx_lock); ar 128 drivers/net/wireless/ath/ath10k/htt_tx.c __ath10k_htt_tx_txq_sync(ar); ar 129 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&ar->htt.tx_lock); ar 135 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = hw->priv; ar 137 drivers/net/wireless/ath/ath10k/htt_tx.c spin_lock_bh(&ar->htt.tx_lock); ar 139 drivers/net/wireless/ath/ath10k/htt_tx.c __ath10k_htt_tx_txq_sync(ar); ar 140 drivers/net/wireless/ath/ath10k/htt_tx.c spin_unlock_bh(&ar->htt.tx_lock); ar 149 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_mac_tx_unlock(htt->ar, ATH10K_TX_PAUSE_Q_FULL); ar 161 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_mac_tx_lock(htt->ar, ATH10K_TX_PAUSE_Q_FULL); ar 169 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 173 drivers/net/wireless/ath/ath10k/htt_tx.c if (!is_mgmt || !ar->hw_params.max_probe_resp_desc_thres) ar 177 drivers/net/wireless/ath/ath10k/htt_tx.c ar->hw_params.max_probe_resp_desc_thres < htt->num_pending_mgmt_tx) ar 189 drivers/net/wireless/ath/ath10k/htt_tx.c if (!htt->ar->hw_params.max_probe_resp_desc_thres) ar 197 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 205 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx alloc msdu_id %d\n", ret); ar 212 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 216 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt tx free msdu_id %hu\n", msdu_id); ar 223 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 230 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(ar->dev, size, htt->txbuf.vaddr_txbuff_32, ar 237 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 243 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.vaddr_txbuff_32 = dma_alloc_coherent(ar->dev, size, ar 256 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 263 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(ar->dev, size, htt->txbuf.vaddr_txbuff_64, ar 270 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 276 drivers/net/wireless/ath/ath10k/htt_tx.c htt->txbuf.vaddr_txbuff_64 = dma_alloc_coherent(ar->dev, size, ar 297 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(htt->ar->dev, ar 307 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 310 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->hw_params.continuous_frag_desc) ar 315 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_32 = dma_alloc_coherent(ar->dev, size, ar 319 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_err(ar, "failed to alloc fragment desc memory\n"); ar 337 drivers/net/wireless/ath/ath10k/htt_tx.c dma_free_coherent(htt->ar->dev, ar 347 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 350 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->hw_params.continuous_frag_desc) ar 356 drivers/net/wireless/ath/ath10k/htt_tx.c htt->frag_desc.vaddr_desc_64 = dma_alloc_coherent(ar->dev, size, ar 360 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_err(ar, "failed to alloc fragment desc memory\n"); ar 370 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 374 drivers/net/wireless/ath/ath10k/htt_tx.c ar->running_fw->fw_file.fw_features)) ar 379 drivers/net/wireless/ath/ath10k/htt_tx.c dma_unmap_single(ar->dev, htt->tx_q_state.paddr, size, DMA_TO_DEVICE); ar 385 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 390 drivers/net/wireless/ath/ath10k/htt_tx.c ar->running_fw->fw_file.fw_features)) ar 402 drivers/net/wireless/ath/ath10k/htt_tx.c htt->tx_q_state.paddr = dma_map_single(ar->dev, htt->tx_q_state.vaddr, ar 404 drivers/net/wireless/ath/ath10k/htt_tx.c ret = dma_mapping_error(ar->dev, htt->tx_q_state.paddr); ar 406 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "failed to dma map tx_q_state: %d\n", ret); ar 432 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 437 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_err(ar, "failed to alloc cont tx buffer: %d\n", ret); ar 443 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_err(ar, "failed to alloc cont frag desc: %d\n", ret); ar 449 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_err(ar, "failed to alloc txq: %d\n", ret); ar 455 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_err(ar, "failed to alloc txdone fifo: %d\n", ret); ar 475 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 478 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "htt tx max num pending tx %d\n", ar 487 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) ar 506 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = ctx; ar 507 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k_htt *htt = &ar->htt; ar 510 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "force cleanup msdu_id %hu\n", msdu_id); ar 534 drivers/net/wireless/ath/ath10k/htt_tx.c idr_for_each(&htt->pending_tx, ath10k_htt_tx_clean_up_pending, htt->ar); ar 544 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_htc_tx_complete(struct ath10k *ar, struct sk_buff *skb) ar 549 drivers/net/wireless/ath/ath10k/htt_tx.c void ath10k_htt_hif_tx_complete(struct ath10k *ar, struct sk_buff *skb) ar 557 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 566 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 574 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 586 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 595 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 616 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 618 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "failed to send htt type stats request: %d", ar 629 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 636 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->hw_params.continuous_frag_desc) ar 640 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "invalid frag desc memory\n"); ar 645 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, size); ar 658 drivers/net/wireless/ath/ath10k/htt_tx.c ar->running_fw->fw_file.fw_features)) ar 676 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt frag desc bank cmd\n"); ar 678 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 680 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "failed to send frag desc bank cfg request: %d\n", ar 691 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 698 drivers/net/wireless/ath/ath10k/htt_tx.c if (!ar->hw_params.continuous_frag_desc) ar 702 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "invalid frag desc memory\n"); ar 707 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, size); ar 720 drivers/net/wireless/ath/ath10k/htt_tx.c ar->running_fw->fw_file.fw_features)) ar 738 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt frag desc bank cmd\n"); ar 740 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 742 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "failed to send frag desc bank cfg request: %d\n", ar 791 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 810 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 852 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 863 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 881 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 921 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 932 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 950 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 972 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 985 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 1003 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 1015 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt h2t aggr cfg msg amsdu %d ampdu %d", ar 1019 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 1032 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 1050 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 1062 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt h2t aggr cfg msg amsdu %d ampdu %d", ar 1066 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&htt->ar->htc, htt->eid, skb); ar 1075 drivers/net/wireless/ath/ath10k/htt_tx.c int ath10k_htt_tx_fetch_resp(struct ath10k *ar, ar 1095 drivers/net/wireless/ath/ath10k/htt_tx.c skb = ath10k_htc_alloc_skb(ar, len); ar 1110 drivers/net/wireless/ath/ath10k/htt_tx.c ret = ath10k_htc_send(&ar->htc, ar->htt.eid, skb); ar 1112 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(ar, "failed to submit htc command: %d\n", ret); ar 1124 drivers/net/wireless/ath/ath10k/htt_tx.c static u8 ath10k_htt_tx_get_vdev_id(struct ath10k *ar, struct sk_buff *skb) ar 1131 drivers/net/wireless/ath/ath10k/htt_tx.c return ar->scan.vdev_id; ar 1135 drivers/net/wireless/ath/ath10k/htt_tx.c } else if (ar->monitor_started) { ar 1136 drivers/net/wireless/ath/ath10k/htt_tx.c return ar->monitor_vdev_id; ar 1157 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 1158 drivers/net/wireless/ath/ath10k/htt_tx.c struct device *dev = ar->dev; ar 1162 drivers/net/wireless/ath/ath10k/htt_tx.c u8 vdev_id = ath10k_htt_tx_get_vdev_id(ar, msdu); ar 1184 drivers/net/wireless/ath/ath10k/htt_tx.c txdesc = ath10k_htc_alloc_skb(ar, len); ar 1210 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htc_send(&htt->ar->htc, htt->eid, txdesc); ar 1217 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL) ar 1237 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 1245 drivers/net/wireless/ath/ath10k/htt_tx.c u8 vdev_id = ath10k_htt_tx_get_vdev_id(ar, msdu); ar 1281 drivers/net/wireless/ath/ath10k/htt_tx.c !test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) { ar 1292 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(htt->ar, ATH10K_DBG_HTT, ar 1298 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_warn(htt->ar, "htt hl tx: Unable to realloc skb!\n"); ar 1304 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->bus_param.hl_msdu_ids) { ar 1308 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_err(ar, "msdu_id allocation failed %d\n", res); ar 1337 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_htc_send(&htt->ar->htc, htt->eid, msdu); ar 1347 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 1348 drivers/net/wireless/ath/ath10k/htt_tx.c struct device *dev = ar->dev; ar 1356 drivers/net/wireless/ath/ath10k/htt_tx.c u8 vdev_id = ath10k_htt_tx_get_vdev_id(ar, msdu); ar 1401 drivers/net/wireless/ath/ath10k/htt_tx.c freq = ar->scan.roc_freq; ar 1409 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->hw_params.continuous_frag_desc) { ar 1473 drivers/net/wireless/ath/ath10k/htt_tx.c !test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) { ar 1476 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->hw_params.continuous_frag_desc) ar 1492 drivers/net/wireless/ath/ath10k/htt_tx.c if (ath10k_mac_tx_frm_has_freq(ar)) { ar 1502 drivers/net/wireless/ath/ath10k/htt_tx.c trace_ath10k_htt_tx(ar, msdu_id, msdu->len, vdev_id, tid); ar 1503 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 1507 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "htt tx msdu: ", ar 1509 drivers/net/wireless/ath/ath10k/htt_tx.c trace_ath10k_tx_hdr(ar, msdu->data, msdu->len); ar 1510 drivers/net/wireless/ath/ath10k/htt_tx.c trace_ath10k_tx_payload(ar, msdu->data, msdu->len); ar 1527 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_hif_tx_sg(htt->ar, ar 1528 drivers/net/wireless/ath/ath10k/htt_tx.c htt->ar->htc.endpoint[htt->eid].ul_pipe_id, ar 1547 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 1548 drivers/net/wireless/ath/ath10k/htt_tx.c struct device *dev = ar->dev; ar 1556 drivers/net/wireless/ath/ath10k/htt_tx.c u8 vdev_id = ath10k_htt_tx_get_vdev_id(ar, msdu); ar 1601 drivers/net/wireless/ath/ath10k/htt_tx.c freq = ar->scan.roc_freq; ar 1609 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->hw_params.continuous_frag_desc) { ar 1675 drivers/net/wireless/ath/ath10k/htt_tx.c !test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) { ar 1678 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->hw_params.continuous_frag_desc) { ar 1699 drivers/net/wireless/ath/ath10k/htt_tx.c if (ath10k_mac_tx_frm_has_freq(ar)) { ar 1709 drivers/net/wireless/ath/ath10k/htt_tx.c trace_ath10k_htt_tx(ar, msdu_id, msdu->len, vdev_id, tid); ar 1710 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 1714 drivers/net/wireless/ath/ath10k/htt_tx.c ath10k_dbg_dump(ar, ATH10K_DBG_HTT_DUMP, NULL, "htt tx msdu: ", ar 1716 drivers/net/wireless/ath/ath10k/htt_tx.c trace_ath10k_tx_hdr(ar, msdu->data, msdu->len); ar 1717 drivers/net/wireless/ath/ath10k/htt_tx.c trace_ath10k_tx_payload(ar, msdu->data, msdu->len); ar 1734 drivers/net/wireless/ath/ath10k/htt_tx.c res = ath10k_hif_tx_sg(htt->ar, ar 1735 drivers/net/wireless/ath/ath10k/htt_tx.c htt->ar->htc.endpoint[htt->eid].ul_pipe_id, ar 1781 drivers/net/wireless/ath/ath10k/htt_tx.c struct ath10k *ar = htt->ar; ar 1783 drivers/net/wireless/ath/ath10k/htt_tx.c if (ar->bus_param.dev_type == ATH10K_DEV_TYPE_HL) ar 1785 drivers/net/wireless/ath/ath10k/htt_tx.c else if (ar->hw_params.target_64bit) ar 545 drivers/net/wireless/ath/ath10k/hw.c void ath10k_hw_fill_survey_time(struct ath10k *ar, struct survey_info *survey, ar 555 drivers/net/wireless/ath/ath10k/hw.c wraparound_type = ar->hw_params.cc_wraparound_type; ar 580 drivers/net/wireless/ath/ath10k/hw.c survey->time = CCNT_TO_MSEC(ar, cc); ar 581 drivers/net/wireless/ath/ath10k/hw.c survey->time_busy = CCNT_TO_MSEC(ar, rcc); ar 587 drivers/net/wireless/ath/ath10k/hw.c static void ath10k_hw_qca988x_set_coverage_class(struct ath10k *ar, ar 600 drivers/net/wireless/ath/ath10k/hw.c mutex_lock(&ar->conf_mutex); ar 603 drivers/net/wireless/ath/ath10k/hw.c if ((ar->state != ATH10K_STATE_ON) && ar 604 drivers/net/wireless/ath/ath10k/hw.c (ar->state != ATH10K_STATE_RESTARTED)) { ar 605 drivers/net/wireless/ath/ath10k/hw.c spin_lock_bh(&ar->data_lock); ar 607 drivers/net/wireless/ath/ath10k/hw.c ar->fw_coverage.coverage_class = value; ar 608 drivers/net/wireless/ath/ath10k/hw.c spin_unlock_bh(&ar->data_lock); ar 615 drivers/net/wireless/ath/ath10k/hw.c slottime_reg = ath10k_hif_read32(ar, WLAN_MAC_BASE_ADDRESS + ar 617 drivers/net/wireless/ath/ath10k/hw.c timeout_reg = ath10k_hif_read32(ar, WLAN_MAC_BASE_ADDRESS + ar 619 drivers/net/wireless/ath/ath10k/hw.c phyclk_reg = ath10k_hif_read32(ar, WLAN_MAC_BASE_ADDRESS + ar 624 drivers/net/wireless/ath/ath10k/hw.c value = ar->fw_coverage.coverage_class; ar 629 drivers/net/wireless/ath/ath10k/hw.c if (value == ar->fw_coverage.coverage_class && ar 630 drivers/net/wireless/ath/ath10k/hw.c slottime_reg == ar->fw_coverage.reg_slottime_conf && ar 631 drivers/net/wireless/ath/ath10k/hw.c timeout_reg == ar->fw_coverage.reg_ack_cts_timeout_conf && ar 632 drivers/net/wireless/ath/ath10k/hw.c phyclk_reg == ar->fw_coverage.reg_phyclk) ar 636 drivers/net/wireless/ath/ath10k/hw.c if (slottime_reg != ar->fw_coverage.reg_slottime_conf) ar 637 drivers/net/wireless/ath/ath10k/hw.c ar->fw_coverage.reg_slottime_orig = slottime_reg; ar 638 drivers/net/wireless/ath/ath10k/hw.c if (timeout_reg != ar->fw_coverage.reg_ack_cts_timeout_conf) ar 639 drivers/net/wireless/ath/ath10k/hw.c ar->fw_coverage.reg_ack_cts_timeout_orig = timeout_reg; ar 640 drivers/net/wireless/ath/ath10k/hw.c ar->fw_coverage.reg_phyclk = phyclk_reg; ar 643 drivers/net/wireless/ath/ath10k/hw.c slottime_reg = ar->fw_coverage.reg_slottime_orig; ar 644 drivers/net/wireless/ath/ath10k/hw.c timeout_reg = ar->fw_coverage.reg_ack_cts_timeout_orig; ar 648 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 657 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 688 drivers/net/wireless/ath/ath10k/hw.c ath10k_hif_write32(ar, ar 691 drivers/net/wireless/ath/ath10k/hw.c ath10k_hif_write32(ar, ar 700 drivers/net/wireless/ath/ath10k/hw.c fw_dbglog_mask = ath10k_debug_get_fw_dbglog_mask(ar); ar 701 drivers/net/wireless/ath/ath10k/hw.c fw_dbglog_level = ath10k_debug_get_fw_dbglog_level(ar); ar 709 drivers/net/wireless/ath/ath10k/hw.c ath10k_wmi_dbglog_cfg(ar, fw_dbglog_mask, fw_dbglog_level); ar 713 drivers/net/wireless/ath/ath10k/hw.c spin_lock_bh(&ar->data_lock); ar 714 drivers/net/wireless/ath/ath10k/hw.c ar->fw_coverage.coverage_class = value; ar 715 drivers/net/wireless/ath/ath10k/hw.c spin_unlock_bh(&ar->data_lock); ar 717 drivers/net/wireless/ath/ath10k/hw.c ar->fw_coverage.reg_slottime_conf = slottime_reg; ar 718 drivers/net/wireless/ath/ath10k/hw.c ar->fw_coverage.reg_ack_cts_timeout_conf = timeout_reg; ar 721 drivers/net/wireless/ath/ath10k/hw.c mutex_unlock(&ar->conf_mutex); ar 736 drivers/net/wireless/ath/ath10k/hw.c static int ath10k_hw_qca6174_enable_pll_clock(struct ath10k *ar) ar 744 drivers/net/wireless/ath/ath10k/hw.c hw = &ar->hw_params; ar 746 drivers/net/wireless/ath/ath10k/hw.c if (ar->regs->core_clk_div_address == 0 || ar 747 drivers/net/wireless/ath/ath10k/hw.c ar->regs->cpu_pll_init_address == 0 || ar 748 drivers/net/wireless/ath/ath10k/hw.c ar->regs->cpu_speed_address == 0) ar 751 drivers/net/wireless/ath/ath10k/hw.c clk_div_addr = ar->regs->core_clk_div_address; ar 752 drivers/net/wireless/ath/ath10k/hw.c pll_init_addr = ar->regs->cpu_pll_init_address; ar 753 drivers/net/wireless/ath/ath10k/hw.c speed_addr = ar->regs->cpu_speed_address; ar 757 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 769 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 776 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_soc_reg(ar, addr, reg_val); ar 782 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 788 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_soc_reg(ar, addr, reg_val); ar 794 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 800 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_soc_reg(ar, addr, reg_val); ar 806 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_memory(ar, clk_div_addr, &mem_val, ar 813 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 820 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_soc_reg(ar, addr, reg_val); ar 828 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 845 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 851 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_soc_reg(ar, addr, reg_val); ar 859 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 876 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 882 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_soc_reg(ar, addr, reg_val); ar 888 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_read_soc_reg(ar, addr, ®_val); ar 893 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_soc_reg(ar, addr, reg_val); ar 899 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_memory(ar, pll_init_addr, &mem_val, ar 905 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_write_memory(ar, speed_addr, &hw->target_cpu_freq, ar 916 drivers/net/wireless/ath/ath10k/hw.c static void ath10k_hw_map_target_mem(struct ath10k *ar, u32 msb) ar 920 drivers/net/wireless/ath/ath10k/hw.c ath10k_hif_write32(ar, address, msb); ar 931 drivers/net/wireless/ath/ath10k/hw.c static int ath10k_hw_diag_segment_msb_download(struct ath10k *ar, ar 940 drivers/net/wireless/ath/ath10k/hw.c ath10k_hw_map_target_mem(ar, CPU_ADDR_MSB_REGION_VAL(address)); ar 946 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_hif_diag_write(ar, address, buffer, size); ar 948 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 955 drivers/net/wireless/ath/ath10k/hw.c ath10k_hw_map_target_mem(ar, ar 958 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_hif_diag_write(ar, ar 962 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 970 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_hif_diag_write(ar, address, buffer, length); ar 972 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 981 drivers/net/wireless/ath/ath10k/hw.c ath10k_hw_map_target_mem(ar, ar 986 drivers/net/wireless/ath/ath10k/hw.c static int ath10k_hw_diag_segment_download(struct ath10k *ar, ar 993 drivers/net/wireless/ath/ath10k/hw.c return ath10k_hw_diag_segment_msb_download(ar, buffer, ar 996 drivers/net/wireless/ath/ath10k/hw.c return ath10k_hif_diag_write(ar, address, buffer, length); ar 999 drivers/net/wireless/ath/ath10k/hw.c int ath10k_hw_diag_fast_download(struct ath10k *ar, ar 1021 drivers/net/wireless/ath/ath10k/hw.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1028 drivers/net/wireless/ath/ath10k/hw.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1039 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, "firmware segment is truncated: %d\n", ar 1052 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_bmi_set_start(ar, base_addr); ar 1063 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 1071 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 1078 drivers/net/wireless/ath/ath10k/hw.c ret = ath10k_hw_diag_segment_download(ar, ar 1084 drivers/net/wireless/ath/ath10k/hw.c ath10k_warn(ar, ar 1098 drivers/net/wireless/ath/ath10k/hw.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 393 drivers/net/wireless/ath/ath10k/hw.h void ath10k_hw_fill_survey_time(struct ath10k *ar, struct survey_info *survey, ar 396 drivers/net/wireless/ath/ath10k/hw.h int ath10k_hw_diag_fast_download(struct ath10k *ar, ar 401 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_988X(ar) ((ar)->hw_rev == ATH10K_HW_QCA988X) ar 402 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_9887(ar) ((ar)->hw_rev == ATH10K_HW_QCA9887) ar 403 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_6174(ar) ((ar)->hw_rev == ATH10K_HW_QCA6174) ar 404 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_99X0(ar) ((ar)->hw_rev == ATH10K_HW_QCA99X0) ar 405 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_9888(ar) ((ar)->hw_rev == ATH10K_HW_QCA9888) ar 406 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_9984(ar) ((ar)->hw_rev == ATH10K_HW_QCA9984) ar 407 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_9377(ar) ((ar)->hw_rev == ATH10K_HW_QCA9377) ar 408 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_40XX(ar) ((ar)->hw_rev == ATH10K_HW_QCA4019) ar 409 drivers/net/wireless/ath/ath10k/hw.h #define QCA_REV_WCN3990(ar) ((ar)->hw_rev == ATH10K_HW_WCN3990) ar 629 drivers/net/wireless/ath/ath10k/hw.h void (*set_coverage_class)(struct ath10k *ar, s16 value); ar 630 drivers/net/wireless/ath/ath10k/hw.h int (*enable_pll_clk)(struct ath10k *ar); ar 774 drivers/net/wireless/ath/ath10k/hw.h #define NUM_TARGET_CE_CONFIG_WLAN ar->hw_values->num_target_ce_config_wlan ar 840 drivers/net/wireless/ath/ath10k/hw.h #define CE_COUNT ar->hw_values->ce_count ar 854 drivers/net/wireless/ath/ath10k/hw.h #define MSI_ASSIGN_CE_MAX ar->hw_values->msi_assign_ce_max ar 857 drivers/net/wireless/ath/ath10k/hw.h #define RTC_STATE_V_ON ar->hw_values->rtc_state_val_on ar 867 drivers/net/wireless/ath/ath10k/hw.h #define RTC_SOC_BASE_ADDRESS ar->regs->rtc_soc_base_address ar 868 drivers/net/wireless/ath/ath10k/hw.h #define RTC_WMAC_BASE_ADDRESS ar->regs->rtc_wmac_base_address ar 872 drivers/net/wireless/ath/ath10k/hw.h #define SOC_CORE_BASE_ADDRESS ar->regs->soc_core_base_address ar 877 drivers/net/wireless/ath/ath10k/hw.h #define WLAN_MAC_BASE_ADDRESS ar->regs->wlan_mac_base_address ar 881 drivers/net/wireless/ath/ath10k/hw.h #define CE_WRAPPER_BASE_ADDRESS ar->regs->ce_wrapper_base_address ar 882 drivers/net/wireless/ath/ath10k/hw.h #define CE0_BASE_ADDRESS ar->regs->ce0_base_address ar 883 drivers/net/wireless/ath/ath10k/hw.h #define CE1_BASE_ADDRESS ar->regs->ce1_base_address ar 884 drivers/net/wireless/ath/ath10k/hw.h #define CE2_BASE_ADDRESS ar->regs->ce2_base_address ar 885 drivers/net/wireless/ath/ath10k/hw.h #define CE3_BASE_ADDRESS ar->regs->ce3_base_address ar 886 drivers/net/wireless/ath/ath10k/hw.h #define CE4_BASE_ADDRESS ar->regs->ce4_base_address ar 887 drivers/net/wireless/ath/ath10k/hw.h #define CE5_BASE_ADDRESS ar->regs->ce5_base_address ar 888 drivers/net/wireless/ath/ath10k/hw.h #define CE6_BASE_ADDRESS ar->regs->ce6_base_address ar 889 drivers/net/wireless/ath/ath10k/hw.h #define CE7_BASE_ADDRESS ar->regs->ce7_base_address ar 892 drivers/net/wireless/ath/ath10k/hw.h #define PCIE_LOCAL_BASE_ADDRESS ar->regs->pcie_local_base_address ar 896 drivers/net/wireless/ath/ath10k/hw.h #define SOC_RESET_CONTROL_SI0_RST_MASK ar->regs->soc_reset_control_si0_rst_mask ar 897 drivers/net/wireless/ath/ath10k/hw.h #define SOC_RESET_CONTROL_CE_RST_MASK ar->regs->soc_reset_control_ce_rst_mask ar 911 drivers/net/wireless/ath/ath10k/hw.h #define SOC_CHIP_ID_ADDRESS ar->regs->soc_chip_id_address ar 973 drivers/net/wireless/ath/ath10k/hw.h #define PCIE_INTR_CLR_ADDRESS ar->regs->pcie_intr_clr_address ar 974 drivers/net/wireless/ath/ath10k/hw.h #define SCRATCH_3_ADDRESS ar->regs->scratch_3_address ar 978 drivers/net/wireless/ath/ath10k/hw.h #define CCNT_TO_MSEC(ar, x) ((x) / ar->hw_params.channel_counters_freq_hz) ar 981 drivers/net/wireless/ath/ath10k/hw.h #define FW_INDICATOR_ADDRESS ar->regs->fw_indicator_address ar 987 drivers/net/wireless/ath/ath10k/hw.h #define PCIE_INTR_FIRMWARE_MASK ar->regs->pcie_intr_fw_mask ar 988 drivers/net/wireless/ath/ath10k/hw.h #define PCIE_INTR_CE_MASK_ALL ar->regs->pcie_intr_ce_mask_all ar 199 drivers/net/wireless/ath/ath10k/mac.c int ath10k_mac_ext_resource_config(struct ath10k *ar, u32 val) ar 204 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_TX_MODE_DYNAMIC, ar->wmi.svc_map)) ar 209 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_ext_resource_config(ar, platform_type, val); ar 212 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to configure ext resource: %d\n", ret); ar 228 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 238 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 242 drivers/net/wireless/ath/ath10k/mac.c arg.key_cipher = ar->wmi_key_cipher[WMI_CIPHER_AES_CCM]; ar 246 drivers/net/wireless/ath/ath10k/mac.c arg.key_cipher = ar->wmi_key_cipher[WMI_CIPHER_TKIP]; ar 252 drivers/net/wireless/ath/ath10k/mac.c arg.key_cipher = ar->wmi_key_cipher[WMI_CIPHER_WEP]; ar 255 drivers/net/wireless/ath/ath10k/mac.c arg.key_cipher = ar->wmi_key_cipher[WMI_CIPHER_AES_CCM]; ar 259 drivers/net/wireless/ath/ath10k/mac.c arg.key_cipher = ar->wmi_key_cipher[WMI_CIPHER_AES_GCM]; ar 268 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "cipher %d is not supported\n", key->cipher); ar 272 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) ar 276 drivers/net/wireless/ath/ath10k/mac.c arg.key_cipher = ar->wmi_key_cipher[WMI_CIPHER_NONE]; ar 280 drivers/net/wireless/ath/ath10k/mac.c return ath10k_wmi_vdev_install_key(arvif->ar, &arg); ar 288 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 292 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 294 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->install_key_done); ar 303 drivers/net/wireless/ath/ath10k/mac.c time_left = wait_for_completion_timeout(&ar->install_key_done, 3 * HZ); ar 313 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 319 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 326 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 327 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, arvif->vdev_id, addr); ar 328 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 366 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 368 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 385 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(arvif->ar, ar 387 drivers/net/wireless/ath/ath10k/mac.c arvif->ar->wmi.vdev_param->def_keyid, ar 390 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to re-set def wpa key idxon vdev %i: %d\n", ar 401 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 408 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 410 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 411 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, arvif->vdev_id, addr); ar 412 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 428 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to remove peer wep key %d: %d\n", ar 431 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 433 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 439 drivers/net/wireless/ath/ath10k/mac.c bool ath10k_mac_is_peer_wep_key_set(struct ath10k *ar, const u8 *addr, ar 445 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->data_lock); ar 452 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, 0, addr); ar 467 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 475 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 481 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 483 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(peer, &ar->peers, list) { ar 495 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 505 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to remove key for %pM: %d\n", ar 515 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 519 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 521 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(peer, &ar->peers, list) { ar 531 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vif vdev %i update key %i needs update\n", ar 536 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update wep keys on vdev %i for peer %pM: %d\n", ar 675 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_num_chanctxs(struct ath10k *ar) ar 679 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iter_chan_contexts_atomic(ar->hw, ar 696 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_wait_for_peer_delete_done(struct ath10k *ar, u32 vdev_id, ar 702 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_SYNC_DELETE_CMDS, ar->wmi.svc_map)) { ar 703 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wait_for_peer_deleted(ar, vdev_id, addr); ar 705 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed wait for peer deleted"); ar 709 drivers/net/wireless/ath/ath10k/mac.c time_left = wait_for_completion_timeout(&ar->peer_delete_done, ar 712 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "Timeout in receiving peer delete response\n"); ar 716 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_peer_create(struct ath10k *ar, ar 728 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 730 drivers/net/wireless/ath/ath10k/mac.c num_peers = ar->num_peers; ar 733 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(arvif, &ar->arvifs, list) ar 736 drivers/net/wireless/ath/ath10k/mac.c if (num_peers >= ar->max_num_peers) ar 739 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_peer_create(ar, vdev_id, addr, peer_type); ar 741 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to create wmi peer %pM on vdev %i: %i\n", ar 746 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wait_for_peer_created(ar, vdev_id, addr); ar 748 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to wait for created wmi peer %pM on vdev %i: %i\n", ar 753 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 755 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, vdev_id, addr); ar 757 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 758 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to find peer %pM on vdev %i after creation\n", ar 760 drivers/net/wireless/ath/ath10k/mac.c ath10k_wait_for_peer_delete_done(ar, vdev_id, addr); ar 767 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 769 drivers/net/wireless/ath/ath10k/mac.c ar->num_peers++; ar 776 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 780 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->sta_kickout_th; ar 781 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, ar 784 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set kickout threshold on vdev %i: %d\n", ar 789 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.vdev_param->ap_keepalive_min_idle_inactive_time_secs; ar 790 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, param, ar 793 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set keepalive minimum idle time on vdev %i: %d\n", ar 798 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.vdev_param->ap_keepalive_max_idle_inactive_time_secs; ar 799 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, param, ar 802 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set keepalive maximum idle time on vdev %i: %d\n", ar 807 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.vdev_param->ap_keepalive_max_unresponsive_time_secs; ar 808 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, param, ar 811 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set keepalive maximum unresponsive time on vdev %i: %d\n", ar 821 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 824 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->rts_threshold; ar 825 drivers/net/wireless/ath/ath10k/mac.c return ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, value); ar 828 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_peer_delete(struct ath10k *ar, u32 vdev_id, const u8 *addr) ar 832 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 834 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_peer_delete(ar, vdev_id, addr); ar 838 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wait_for_peer_deleted(ar, vdev_id, addr); ar 842 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_SYNC_DELETE_CMDS, ar->wmi.svc_map)) { ar 846 drivers/net/wireless/ath/ath10k/mac.c (&ar->peer_delete_done, 5 * HZ); ar 849 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "Timeout in receiving peer delete response\n"); ar 854 drivers/net/wireless/ath/ath10k/mac.c ar->num_peers--; ar 859 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_cleanup(struct ath10k *ar, u32 vdev_id) ar 865 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 867 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 868 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry_safe(peer, tmp, &ar->peers, list) { ar 872 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "removing stale peer %pM from vdev_id %d\n", ar 877 drivers/net/wireless/ath/ath10k/mac.c ar->peer_map[peer_id] = NULL; ar 883 drivers/net/wireless/ath/ath10k/mac.c for (i = 0; i < ARRAY_SIZE(ar->peer_map); i++) { ar 884 drivers/net/wireless/ath/ath10k/mac.c if (ar->peer_map[i] == peer) { ar 885 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "removing stale peer_map entry for %pM (ptr %pK idx %d)\n", ar 887 drivers/net/wireless/ath/ath10k/mac.c ar->peer_map[i] = NULL; ar 893 drivers/net/wireless/ath/ath10k/mac.c ar->num_peers--; ar 895 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 898 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_cleanup_all(struct ath10k *ar) ar 903 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 905 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 906 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry_safe(peer, tmp, &ar->peers, list) { ar 911 drivers/net/wireless/ath/ath10k/mac.c for (i = 0; i < ARRAY_SIZE(ar->peer_map); i++) ar 912 drivers/net/wireless/ath/ath10k/mac.c ar->peer_map[i] = NULL; ar 914 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 916 drivers/net/wireless/ath/ath10k/mac.c ar->num_peers = 0; ar 917 drivers/net/wireless/ath/ath10k/mac.c ar->num_stations = 0; ar 920 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_tdls_peer_update(struct ath10k *ar, u32 vdev_id, ar 929 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 942 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_tdls_peer_update(ar, &arg, &cap, &chan_arg); ar 944 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update tdls peer %pM on vdev %i: %i\n", ar 958 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 960 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->data_lock); ar 966 drivers/net/wireless/ath/ath10k/mac.c dma_unmap_single(ar->dev, ATH10K_SKB_CB(arvif->beacon)->paddr, ar 981 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 983 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->data_lock); ar 988 drivers/net/wireless/ath/ath10k/mac.c dma_free_coherent(ar->dev, IEEE80211_MAX_FRAME_LEN, ar 994 drivers/net/wireless/ath/ath10k/mac.c static inline int ath10k_vdev_setup_sync(struct ath10k *ar) ar 998 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1000 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)) ar 1003 drivers/net/wireless/ath/ath10k/mac.c time_left = wait_for_completion_timeout(&ar->vdev_setup_done, ar 1008 drivers/net/wireless/ath/ath10k/mac.c return ar->last_wmi_vdev_start_status; ar 1011 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id) ar 1018 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1020 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iter_chan_contexts_atomic(ar->hw, ar 1045 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_setup_done); ar 1046 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_delete_done); ar 1048 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_start(ar, &arg); ar 1050 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to request monitor vdev %i start: %d\n", ar 1055 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_vdev_setup_sync(ar); ar 1057 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to synchronize setup for monitor vdev %i start: %d\n", ar 1062 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_up(ar, vdev_id, 0, ar->mac_addr); ar 1064 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to put up monitor vdev %i: %d\n", ar 1069 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id = vdev_id; ar 1071 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac monitor vdev %i started\n", ar 1072 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id); ar 1076 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_stop(ar, ar->monitor_vdev_id); ar 1078 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop monitor vdev %i after start failure: %d\n", ar 1079 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id, ret); ar 1084 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_monitor_vdev_stop(struct ath10k *ar) ar 1088 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1090 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_down(ar, ar->monitor_vdev_id); ar 1092 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to put down monitor vdev %i: %d\n", ar 1093 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id, ret); ar 1095 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_setup_done); ar 1096 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_delete_done); ar 1098 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_stop(ar, ar->monitor_vdev_id); ar 1100 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to to request monitor vdev %i stop: %d\n", ar 1101 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id, ret); ar 1103 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_vdev_setup_sync(ar); ar 1105 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to synchronize monitor vdev %i stop: %d\n", ar 1106 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id, ret); ar 1108 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac monitor vdev %i stopped\n", ar 1109 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id); ar 1113 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_monitor_vdev_create(struct ath10k *ar) ar 1117 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1119 drivers/net/wireless/ath/ath10k/mac.c if (ar->free_vdev_map == 0) { ar 1120 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to find free vdev id for monitor vdev\n"); ar 1124 drivers/net/wireless/ath/ath10k/mac.c bit = __ffs64(ar->free_vdev_map); ar 1126 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id = bit; ar 1128 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_create(ar, ar->monitor_vdev_id, ar 1130 drivers/net/wireless/ath/ath10k/mac.c 0, ar->mac_addr); ar 1132 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to request monitor vdev %i creation: %d\n", ar 1133 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id, ret); ar 1137 drivers/net/wireless/ath/ath10k/mac.c ar->free_vdev_map &= ~(1LL << ar->monitor_vdev_id); ar 1138 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac monitor vdev %d created\n", ar 1139 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id); ar 1144 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_monitor_vdev_delete(struct ath10k *ar) ar 1148 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1150 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_delete(ar, ar->monitor_vdev_id); ar 1152 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to request wmi monitor vdev %i removal: %d\n", ar 1153 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id, ret); ar 1157 drivers/net/wireless/ath/ath10k/mac.c ar->free_vdev_map |= 1LL << ar->monitor_vdev_id; ar 1159 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac monitor vdev %d deleted\n", ar 1160 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id); ar 1164 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_monitor_start(struct ath10k *ar) ar 1168 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1170 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_vdev_create(ar); ar 1172 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to create monitor vdev: %d\n", ret); ar 1176 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_vdev_start(ar, ar->monitor_vdev_id); ar 1178 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to start monitor vdev: %d\n", ret); ar 1179 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_vdev_delete(ar); ar 1183 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_started = true; ar 1184 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac monitor started\n"); ar 1189 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_monitor_stop(struct ath10k *ar) ar 1193 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1195 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_vdev_stop(ar); ar 1197 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop monitor vdev: %d\n", ret); ar 1201 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_vdev_delete(ar); ar 1203 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to delete monitor vdev: %d\n", ret); ar 1207 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_started = false; ar 1208 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac monitor stopped\n"); ar 1213 drivers/net/wireless/ath/ath10k/mac.c static bool ath10k_mac_monitor_vdev_is_needed(struct ath10k *ar) ar 1220 drivers/net/wireless/ath/ath10k/mac.c num_ctx = ath10k_mac_num_chanctxs(ar); ar 1227 drivers/net/wireless/ath/ath10k/mac.c if (ar->monitor_arvif) ar 1230 drivers/net/wireless/ath/ath10k/mac.c return ar->monitor || ar 1232 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features) && ar 1233 drivers/net/wireless/ath/ath10k/mac.c (ar->filter_flags & FIF_OTHER_BSS)) || ar 1234 drivers/net/wireless/ath/ath10k/mac.c test_bit(ATH10K_CAC_RUNNING, &ar->dev_flags); ar 1237 drivers/net/wireless/ath/ath10k/mac.c static bool ath10k_mac_monitor_vdev_is_allowed(struct ath10k *ar) ar 1241 drivers/net/wireless/ath/ath10k/mac.c num_ctx = ath10k_mac_num_chanctxs(ar); ar 1247 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(ATH10K_CAC_RUNNING, &ar->dev_flags) && num_ctx > 1) ar 1253 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_monitor_recalc(struct ath10k *ar) ar 1259 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1261 drivers/net/wireless/ath/ath10k/mac.c needed = ath10k_mac_monitor_vdev_is_needed(ar); ar 1262 drivers/net/wireless/ath/ath10k/mac.c allowed = ath10k_mac_monitor_vdev_is_allowed(ar); ar 1264 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 1266 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_started, needed, allowed); ar 1269 drivers/net/wireless/ath/ath10k/mac.c if (ar->monitor_started) { ar 1270 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac monitor stopping disallowed monitor\n"); ar 1272 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_stop(ar); ar 1274 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop disallowed monitor: %d\n", ar 1282 drivers/net/wireless/ath/ath10k/mac.c if (needed == ar->monitor_started) ar 1286 drivers/net/wireless/ath/ath10k/mac.c return ath10k_monitor_start(ar); ar 1288 drivers/net/wireless/ath/ath10k/mac.c return ath10k_monitor_stop(ar); ar 1293 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1295 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1298 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "defer cts setup, vdev is not ready yet\n"); ar 1307 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1310 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1312 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->protection_mode; ar 1314 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %d cts_protection %d\n", ar 1317 drivers/net/wireless/ath/ath10k/mac.c return ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 1323 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1326 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1328 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->enable_rtscts; ar 1339 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %d recalc rts/cts prot %d\n", ar 1342 drivers/net/wireless/ath/ath10k/mac.c return ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 1346 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_start_cac(struct ath10k *ar) ar 1350 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1352 drivers/net/wireless/ath/ath10k/mac.c set_bit(ATH10K_CAC_RUNNING, &ar->dev_flags); ar 1354 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_recalc(ar); ar 1356 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to start monitor (cac): %d\n", ret); ar 1357 drivers/net/wireless/ath/ath10k/mac.c clear_bit(ATH10K_CAC_RUNNING, &ar->dev_flags); ar 1361 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac cac start monitor vdev %d\n", ar 1362 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_vdev_id); ar 1367 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_stop_cac(struct ath10k *ar) ar 1369 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1372 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(ATH10K_CAC_RUNNING, &ar->dev_flags)) ar 1375 drivers/net/wireless/ath/ath10k/mac.c clear_bit(ATH10K_CAC_RUNNING, &ar->dev_flags); ar 1376 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_stop(ar); ar 1378 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac cac finished\n"); ar 1393 drivers/net/wireless/ath/ath10k/mac.c static bool ath10k_mac_has_radar_enabled(struct ath10k *ar) ar 1397 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iter_chan_contexts_atomic(ar->hw, ar 1404 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_recalc_radar_detection(struct ath10k *ar) ar 1408 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1410 drivers/net/wireless/ath/ath10k/mac.c ath10k_stop_cac(ar); ar 1412 drivers/net/wireless/ath/ath10k/mac.c if (!ath10k_mac_has_radar_enabled(ar)) ar 1415 drivers/net/wireless/ath/ath10k/mac.c if (ar->num_started_vdevs > 0) ar 1418 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_start_cac(ar); ar 1425 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to start CAC: %d\n", ret); ar 1426 drivers/net/wireless/ath/ath10k/mac.c ieee80211_radar_detected(ar->hw); ar 1432 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1435 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1437 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_setup_done); ar 1438 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_delete_done); ar 1440 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_stop(ar, arvif->vdev_id); ar 1442 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop WMI vdev %i: %d\n", ar 1447 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_vdev_setup_sync(ar); ar 1449 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to synchronize setup for vdev %i: %d\n", ar 1454 drivers/net/wireless/ath/ath10k/mac.c WARN_ON(ar->num_started_vdevs == 0); ar 1456 drivers/net/wireless/ath/ath10k/mac.c if (ar->num_started_vdevs != 0) { ar 1457 drivers/net/wireless/ath/ath10k/mac.c ar->num_started_vdevs--; ar 1458 drivers/net/wireless/ath/ath10k/mac.c ath10k_recalc_radar_detection(ar); ar 1468 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1472 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1474 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_setup_done); ar 1475 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->vdev_delete_done); ar 1504 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 1510 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_restart(ar, &arg); ar 1512 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_start(ar, &arg); ar 1515 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to start WMI vdev %i: %d\n", ar 1520 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_vdev_setup_sync(ar); ar 1522 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, ar 1528 drivers/net/wireless/ath/ath10k/mac.c ar->num_started_vdevs++; ar 1529 drivers/net/wireless/ath/ath10k/mac.c ath10k_recalc_radar_detection(ar); ar 1549 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1565 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_p2p_go_bcn_ie(ar, arvif->vdev_id, p2p_ie); ar 1567 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit p2p go bcn ie for vdev %i: %d\n", ar 1607 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1608 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_hw *hw = ar->hw; ar 1614 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(WMI_SERVICE_BEACON_OFFLOAD, ar->wmi.svc_map)) ar 1623 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to get beacon template from mac80211\n"); ar 1629 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to setup p2p go bcn ie: %d\n", ret); ar 1642 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_bcn_tmpl(ar, arvif->vdev_id, offs.tim_offset, bcn, 0, ar 1647 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit beacon template command: %d\n", ar 1657 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1658 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_hw *hw = ar->hw; ar 1663 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(WMI_SERVICE_BEACON_OFFLOAD, ar->wmi.svc_map)) ar 1675 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to get probe resp template from mac80211\n"); ar 1679 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_prb_tmpl(ar, arvif->vdev_id, prb); ar 1683 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit probe resp template command: %d\n", ar 1693 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1712 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(WMI_SERVICE_BEACON_OFFLOAD, ar->wmi.svc_map)) ar 1724 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id); ar 1726 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to bring down ap vdev %i: %d\n", ar 1737 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update beacon template: %d\n", ret); ar 1743 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update presp template: %d\n", ret); ar 1749 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to restart ap vdev %i: %d\n", ar 1754 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, ar 1757 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to bring up ap vdev %i: %d\n", ar 1768 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1771 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 1774 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id); ar 1776 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to down vdev_id %i: %d\n", ar 1781 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&arvif->ar->data_lock); ar 1783 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&arvif->ar->data_lock); ar 1793 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, ar 1796 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to bring up vdev %d: %i\n", ar 1805 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to fix hidden ssid for vdev %i, expect trouble: %d\n", ar 1810 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %d up\n", arvif->vdev_id); ar 1817 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1821 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 1832 drivers/net/wireless/ath/ath10k/mac.c vdev_param = arvif->ar->wmi.vdev_param->atim_window; ar 1833 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(arvif->ar, arvif->vdev_id, vdev_param, ar 1836 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set IBSS ATIM for vdev %d: %d\n", ar 1842 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1847 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 1855 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_sta_ps_param(ar, arvif->vdev_id, param, value); ar 1857 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit ps wake threshold %u on vdev %i: %d\n", ar 1867 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1872 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 1880 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_sta_ps_param(ar, arvif->vdev_id, ar 1883 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit ps poll count %u on vdev %i: %d\n", ar 1891 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_num_vifs_started(struct ath10k *ar) ar 1896 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 1898 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(arvif, &ar->arvifs, list) ar 1907 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1909 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_conf *conf = &ar->hw->conf; ar 1916 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 1923 drivers/net/wireless/ath/ath10k/mac.c if (enable_ps && ath10k_mac_num_vifs_started(ar) > 1 && ar 1925 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features)) { ar 1926 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "refusing to enable ps on vdev %i: not supported by fw\n", ar 1949 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_sta_ps_param(ar, arvif->vdev_id, param, ar 1952 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set inactivity time for vdev %d: %i\n", ar 1960 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %d psmode %s\n", ar 1963 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_psmode(ar, arvif->vdev_id, psmode); ar 1965 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set PS Mode %d for vdev %d: %d\n", ar 1975 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 1979 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 1984 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(WMI_SERVICE_STA_KEEP_ALIVE, ar->wmi.svc_map)) ar 1995 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_sta_keepalive(ar, &arg); ar 1997 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit keepalive on vdev %i: %d\n", ar 2007 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 2011 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&arvif->ar->conf_mutex); ar 2013 drivers/net/wireless/ath/ath10k/mac.c if (WARN_ON(!test_bit(WMI_SERVICE_BEACON_OFFLOAD, ar->wmi.svc_map))) ar 2030 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update bcn tmpl during csa: %d\n", ar 2035 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update prb tmpl during csa: %d\n", ar 2046 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 2048 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 2050 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 2069 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_handle_beacon(struct ath10k *ar, struct sk_buff *skb) ar 2071 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iterate_active_interfaces_atomic(ar->hw, ar 2082 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 2083 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_hw *hw = ar->hw; ar 2102 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_handle_beacon_miss(struct ath10k *ar, u32 vdev_id) ar 2104 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iterate_active_interfaces_atomic(ar->hw, ar 2126 drivers/net/wireless/ath/ath10k/mac.c static u32 ath10k_peer_assoc_h_listen_intval(struct ath10k *ar, ar 2140 drivers/net/wireless/ath/ath10k/mac.c return ar->hw->conf.listen_interval; ar 2143 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_assoc_h_basic(struct ath10k *ar, ar 2151 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2161 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= arvif->ar->wmi.peer_flags->auth; ar 2162 drivers/net/wireless/ath/ath10k/mac.c arg->peer_listen_intval = ath10k_peer_assoc_h_listen_intval(ar, vif); ar 2167 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_assoc_h_crypto(struct ath10k *ar, ar 2178 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2183 drivers/net/wireless/ath/ath10k/mac.c bss = cfg80211_get_bss(ar->hw->wiphy, def.chan, info->bssid, NULL, 0, ar 2198 drivers/net/wireless/ath/ath10k/mac.c cfg80211_put_bss(ar->hw->wiphy, bss); ar 2203 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_WMI, "%s: rsn ie found\n", __func__); ar 2204 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->need_ptk_4_way; ar 2208 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_WMI, "%s: wpa ie found\n", __func__); ar 2209 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->need_gtk_2_way; ar 2214 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features)) { ar 2215 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->pmf; ar 2219 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_assoc_h_rates(struct ath10k *ar, ar 2234 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2240 drivers/net/wireless/ath/ath10k/mac.c sband = ar->hw->wiphy->bands[band]; ar 2281 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_assoc_h_ht(struct ath10k *ar, ar 2296 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2312 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->ht; ar 2323 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->ldbc; ar 2326 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->bw40; ar 2340 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->stbc; ar 2348 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->stbc; ar 2381 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac ht peer %pM mcs cnt %d nss %d\n", ar 2387 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_peer_assoc_qos_ap(struct ath10k *ar, ar 2395 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2398 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac uapsd_queues 0x%x max_sp %d\n", ar 2417 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_ap_ps_param(ar, arvif->vdev_id, ar 2422 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set ap ps peer param uapsd for vdev %i: %d\n", ar 2427 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_ap_ps_param(ar, arvif->vdev_id, ar 2432 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set ap ps peer param max sp for vdev %i: %d\n", ar 2442 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_ap_ps_param(ar, arvif->vdev_id, sta->addr, ar 2446 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set ap ps peer param ageout time for vdev %i: %d\n", ar 2506 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_assoc_h_vht(struct ath10k *ar, ar 2532 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->vht; ar 2535 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->vht_2g; ar 2553 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->bw80; ar 2556 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= ar->wmi.peer_flags->bw160; ar 2579 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vht peer %pM max_mpdu %d flags 0x%x\n", ar 2597 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_assoc_h_qos(struct ath10k *ar, ar 2607 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= arvif->ar->wmi.peer_flags->qos; ar 2610 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= arvif->ar->wmi.peer_flags->apsd; ar 2616 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= arvif->ar->wmi.peer_flags->qos; ar 2620 drivers/net/wireless/ath/ath10k/mac.c arg->peer_flags |= arvif->ar->wmi.peer_flags->qos; ar 2626 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac peer %pM qos %d\n", ar 2628 drivers/net/wireless/ath/ath10k/mac.c arvif->ar->wmi.peer_flags->qos)); ar 2637 drivers/net/wireless/ath/ath10k/mac.c static enum wmi_phy_mode ath10k_mac_get_phymode_vht(struct ath10k *ar, ar 2664 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_peer_assoc_h_phymode(struct ath10k *ar, ar 2710 drivers/net/wireless/ath/ath10k/mac.c phymode = ath10k_mac_get_phymode_vht(ar, sta); ar 2726 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac peer %pM phymode %s\n", ar 2733 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_peer_assoc_prepare(struct ath10k *ar, ar 2738 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2742 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_assoc_h_basic(ar, vif, sta, arg); ar 2743 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_assoc_h_crypto(ar, vif, sta, arg); ar 2744 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_assoc_h_rates(ar, vif, sta, arg); ar 2745 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_assoc_h_ht(ar, vif, sta, arg); ar 2746 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_assoc_h_vht(ar, vif, sta, arg); ar 2747 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_assoc_h_qos(ar, vif, sta, arg); ar 2748 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_assoc_h_phymode(ar, vif, sta, arg); ar 2760 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_setup_peer_smps(struct ath10k *ar, struct ath10k_vif *arvif, ar 2775 drivers/net/wireless/ath/ath10k/mac.c return ath10k_wmi_peer_set_param(ar, arvif->vdev_id, addr, ar 2780 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_vif_recalc_txbf(struct ath10k *ar, ar 2789 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_wmi_get_txbf_conf_scheme(ar) != WMI_TXBF_CONF_AFTER_ASSOC) ar 2792 drivers/net/wireless/ath/ath10k/mac.c if (!(ar->vht_cap_info & ar 2799 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.vdev_param->txbf; ar 2809 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & ar 2819 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & ar 2835 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, param, value); ar 2837 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit vdev param txbf 0x%x: %d\n", ar 2850 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 2858 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2860 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %i assoc bssid %pM aid %d\n", ar 2867 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to find station entry for bss %pM vdev %i\n", ar 2879 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_assoc_prepare(ar, vif, ap_sta, &peer_arg); ar 2881 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to prepare peer assoc for %pM vdev %i: %d\n", ar 2889 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_peer_assoc(ar, &peer_arg); ar 2891 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to run peer assoc for %pM vdev %i: %d\n", ar 2896 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_setup_peer_smps(ar, arvif, bss_conf->bssid, &ht_cap); ar 2898 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to setup peer SMPS for vdev %i: %d\n", ar 2903 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); ar 2905 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc txbf for vdev %i on bss %pM: %d\n", ar 2910 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 2919 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_up(ar, arvif->vdev_id, arvif->aid, arvif->bssid); ar 2921 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev %d up: %d\n", ar 2932 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, arvif->bssid, ar 2935 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to poke peer %pM param for ps workaround on vdev %i: %d\n", ar 2944 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 2949 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2951 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %i disassoc bssid %pM\n", ar 2954 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id); ar 2956 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to down vdev %i: %d\n", ar 2961 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_vif_recalc_txbf(ar, vif, vht_cap); ar 2963 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc txbf for vdev %i: %d\n", ar 2973 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_station_assoc(struct ath10k *ar, ar 2982 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 2984 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_assoc_prepare(ar, vif, sta, &peer_arg); ar 2986 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to prepare WMI peer assoc for %pM vdev %i: %i\n", ar 2991 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_peer_assoc(ar, &peer_arg); ar 2993 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to run peer assoc for STA %pM vdev %i: %d\n", ar 3002 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_setup_peer_smps(ar, arvif, sta->addr, ar 3005 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to setup peer SMPS for vdev %d: %d\n", ar 3010 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_assoc_qos_ap(ar, arvif, sta); ar 3012 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set qos params for STA %pM for vdev %i: %d\n", ar 3021 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalculate rts/cts prot for vdev %d: %d\n", ar 3031 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to install peer wep keys for vdev %i: %d\n", ar 3041 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_station_disassoc(struct ath10k *ar, ar 3048 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 3054 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalculate rts/cts prot for vdev %d: %d\n", ar 3062 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to clear all peer wep keys for vdev %i: %d\n", ar 3074 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_update_channel_list(struct ath10k *ar) ar 3076 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_hw *hw = ar->hw; ar 3087 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 3163 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 3173 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_scan_chan_list(ar, &arg); ar 3195 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_regd_update(struct ath10k *ar) ar 3202 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 3204 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_update_channel_list(ar); ar 3206 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update channel list: %d\n", ret); ar 3208 drivers/net/wireless/ath/ath10k/mac.c regpair = ar->ath_common.regulatory.regpair; ar 3210 drivers/net/wireless/ath/ath10k/mac.c if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED) && ar->dfs_detector) { ar 3211 drivers/net/wireless/ath/ath10k/mac.c nl_dfs_reg = ar->dfs_detector->region; ar 3220 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_regdomain(ar, ar 3228 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set pdev regdomain: %d\n", ret); ar 3231 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_mac_update_channel_list(struct ath10k *ar, ar 3236 drivers/net/wireless/ath/ath10k/mac.c if (ar->low_5ghz_chan && ar->high_5ghz_chan) { ar 3238 drivers/net/wireless/ath/ath10k/mac.c if (band->channels[i].center_freq < ar->low_5ghz_chan || ar 3239 drivers/net/wireless/ath/ath10k/mac.c band->channels[i].center_freq > ar->high_5ghz_chan) ar 3250 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 3253 drivers/net/wireless/ath/ath10k/mac.c ath_reg_notifier_apply(wiphy, request, &ar->ath_common.regulatory); ar 3255 drivers/net/wireless/ath/ath10k/mac.c if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED) && ar->dfs_detector) { ar 3256 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, "dfs region 0x%x\n", ar 3258 drivers/net/wireless/ath/ath10k/mac.c result = ar->dfs_detector->set_dfs_domain(ar->dfs_detector, ar 3261 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "DFS region 0x%X not supported, will trigger radar for every pulse\n", ar 3265 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 3266 drivers/net/wireless/ath/ath10k/mac.c if (ar->state == ATH10K_STATE_ON) ar 3267 drivers/net/wireless/ath/ath10k/mac.c ath10k_regd_update(ar); ar 3268 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 3270 drivers/net/wireless/ath/ath10k/mac.c if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) ar 3271 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_channel_list(ar, ar 3272 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->bands[NL80211_BAND_5GHZ]); ar 3275 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_stop_radar_confirmation(struct ath10k *ar) ar 3277 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 3278 drivers/net/wireless/ath/ath10k/mac.c ar->radar_conf_state = ATH10K_RADAR_CONFIRMATION_STOPPED; ar 3279 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 3281 drivers/net/wireless/ath/ath10k/mac.c cancel_work_sync(&ar->radar_confirmation_work); ar 3295 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_tx_lock(struct ath10k *ar, int reason) ar 3297 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); ar 3300 drivers/net/wireless/ath/ath10k/mac.c ar->tx_paused |= BIT(reason); ar 3301 drivers/net/wireless/ath/ath10k/mac.c ieee80211_stop_queues(ar->hw); ar 3307 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = data; ar 3313 drivers/net/wireless/ath/ath10k/mac.c ieee80211_wake_queue(ar->hw, arvif->vdev_id); ar 3316 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_tx_unlock(struct ath10k *ar, int reason) ar 3318 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); ar 3321 drivers/net/wireless/ath/ath10k/mac.c ar->tx_paused &= ~BIT(reason); ar 3323 drivers/net/wireless/ath/ath10k/mac.c if (ar->tx_paused) ar 3326 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iterate_active_interfaces_atomic(ar->hw, ar 3329 drivers/net/wireless/ath/ath10k/mac.c ar); ar 3331 drivers/net/wireless/ath/ath10k/mac.c ieee80211_wake_queue(ar->hw, ar->hw->offchannel_tx_hw_queue); ar 3336 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 3338 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); ar 3342 drivers/net/wireless/ath/ath10k/mac.c ieee80211_stop_queue(ar->hw, arvif->vdev_id); ar 3347 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 3349 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); ar 3354 drivers/net/wireless/ath/ath10k/mac.c if (ar->tx_paused) ar 3360 drivers/net/wireless/ath/ath10k/mac.c ieee80211_wake_queue(ar->hw, arvif->vdev_id); ar 3367 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 3369 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->htt.tx_lock); ar 3379 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 3404 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_handle_tx_pause_vdev(struct ath10k *ar, u32 vdev_id, ar 3414 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 3415 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iterate_active_interfaces_atomic(ar->hw, ar 3419 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 3423 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_tx_h_get_txmode(struct ath10k *ar, ar 3454 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.target_version_major < 3 && ar 3457 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features)) ar 3471 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags) || ar 3553 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_tx_h_add_p2p_noa_ie(struct ath10k *ar, ar 3565 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 3571 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 3575 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_mac_tx_h_fill_cb(struct ath10k *ar, ar 3611 drivers/net/wireless/ath/ath10k/mac.c bool ath10k_mac_tx_frm_has_freq(struct ath10k *ar) ar 3619 drivers/net/wireless/ath/ath10k/mac.c return (ar->htt.target_version_major >= 3 && ar 3620 drivers/net/wireless/ath/ath10k/mac.c ar->htt.target_version_minor >= 4 && ar 3621 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.htt_op_version == ATH10K_FW_HTT_OP_VERSION_TLV); ar 3624 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_tx_wmi_mgmt(struct ath10k *ar, struct sk_buff *skb) ar 3626 drivers/net/wireless/ath/ath10k/mac.c struct sk_buff_head *q = &ar->wmi_mgmt_tx_queue; ar 3629 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 3632 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "wmi mgmt tx queue is full\n"); ar 3638 drivers/net/wireless/ath/ath10k/mac.c ieee80211_queue_work(ar->hw, &ar->wmi_mgmt_tx_work); ar 3641 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 3647 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_tx_h_get_txpath(struct ath10k *ar, ar 3658 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features) || ar 3660 drivers/net/wireless/ath/ath10k/mac.c ar->wmi.svc_map)) ar 3662 drivers/net/wireless/ath/ath10k/mac.c else if (ar->htt.target_version_major >= 3) ar 3671 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_tx_submit(struct ath10k *ar, ar 3676 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_htt *htt = &ar->htt; ar 3687 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tx_wmi_mgmt(ar, skb); ar 3696 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to transmit packet, dropping: %d\n", ar 3698 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 3707 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_tx(struct ath10k *ar, ar 3713 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_hw *hw = ar->hw; ar 3720 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "IEEE80211_TX_CTL_NO_CCK_RATE\n"); ar 3726 drivers/net/wireless/ath/ath10k/mac.c ath10k_tx_h_add_p2p_noa_ie(ar, vif, skb); ar 3733 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags) && ar 3742 drivers/net/wireless/ath/ath10k/mac.c if (!ath10k_mac_tx_frm_has_freq(ar)) { ar 3743 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac queued offchannel skb %pK len %d\n", ar 3746 drivers/net/wireless/ath/ath10k/mac.c skb_queue_tail(&ar->offchan_tx_queue, skb); ar 3747 drivers/net/wireless/ath/ath10k/mac.c ieee80211_queue_work(hw, &ar->offchan_tx_work); ar 3752 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tx_submit(ar, txmode, txpath, skb); ar 3754 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit frame: %d\n", ret); ar 3761 drivers/net/wireless/ath/ath10k/mac.c void ath10k_offchan_tx_purge(struct ath10k *ar) ar 3766 drivers/net/wireless/ath/ath10k/mac.c skb = skb_dequeue(&ar->offchan_tx_queue); ar 3770 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 3776 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = container_of(work, struct ath10k, offchan_tx_work); ar 3800 drivers/net/wireless/ath/ath10k/mac.c skb = skb_dequeue(&ar->offchan_tx_queue); ar 3804 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 3806 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac offchannel skb %pK len %d\n", ar 3812 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 3813 drivers/net/wireless/ath/ath10k/mac.c vdev_id = ar->scan.vdev_id; ar 3814 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, vdev_id, peer_addr); ar 3815 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 3819 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "peer %pM on vdev %d already present\n", ar 3823 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_create(ar, NULL, NULL, vdev_id, ar 3827 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to create peer %pM on vdev %d: %d\n", ar 3832 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 3833 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->offchan_tx_completed); ar 3834 drivers/net/wireless/ath/ath10k/mac.c ar->offchan_tx_skb = skb; ar 3835 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 3841 drivers/net/wireless/ath/ath10k/mac.c arvif = ath10k_get_arvif(ar, vdev_id); ar 3850 drivers/net/wireless/ath/ath10k/mac.c txmode = ath10k_mac_tx_h_get_txmode(ar, vif, sta, skb); ar 3851 drivers/net/wireless/ath/ath10k/mac.c txpath = ath10k_mac_tx_h_get_txpath(ar, skb, txmode); ar 3853 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, true); ar 3855 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to transmit offchannel frame: %d\n", ar 3861 drivers/net/wireless/ath/ath10k/mac.c wait_for_completion_timeout(&ar->offchan_tx_completed, 3 * HZ); ar 3863 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "timed out waiting for offchannel skb %pK, len: %d\n", ar 3867 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_delete(ar, vdev_id, peer_addr); ar 3869 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to delete peer %pM on vdev %d: %d\n", ar 3873 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 3877 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mgmt_over_wmi_tx_purge(struct ath10k *ar) ar 3882 drivers/net/wireless/ath/ath10k/mac.c skb = skb_dequeue(&ar->wmi_mgmt_tx_queue); ar 3886 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 3892 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = container_of(work, struct ath10k, wmi_mgmt_tx_work); ar 3898 drivers/net/wireless/ath/ath10k/mac.c skb = skb_dequeue(&ar->wmi_mgmt_tx_queue); ar 3903 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features)) { ar 3904 drivers/net/wireless/ath/ath10k/mac.c paddr = dma_map_single(ar->dev, skb->data, ar 3906 drivers/net/wireless/ath/ath10k/mac.c if (dma_mapping_error(ar->dev, paddr)) { ar 3907 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 3910 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_mgmt_tx_send(ar, skb, paddr); ar 3912 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to transmit management frame by ref via WMI: %d\n", ar 3914 drivers/net/wireless/ath/ath10k/mac.c dma_unmap_single(ar->dev, paddr, skb->len, ar 3916 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 3919 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_mgmt_tx(ar, skb); ar 3921 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to transmit management frame via WMI: %d\n", ar 3923 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 3940 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_mac_txq_unref(struct ath10k *ar, struct ieee80211_txq *txq) ar 3949 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 3950 drivers/net/wireless/ath/ath10k/mac.c idr_for_each_entry(&ar->htt.pending_tx, msdu, msdu_id) { ar 3955 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 3958 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_txq *ath10k_mac_txq_lookup(struct ath10k *ar, ar 3964 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->data_lock); ar 3966 drivers/net/wireless/ath/ath10k/mac.c peer = ar->peer_map[peer_id]; ar 3984 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 3988 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.tx_q_state.mode == HTT_TX_MODE_SWITCH_PUSH) ar 3991 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.num_pending_tx < ar->htt.tx_q_state.num_push_allowed) ar 4008 drivers/net/wireless/ath/ath10k/mac.c static u16 ath10k_mac_update_airtime(struct ath10k *ar, ar 4019 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_REPORT_AIRTIME, ar->wmi.svc_map)) ar 4022 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 4041 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4049 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 4050 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_htt *htt = &ar->htt; ar 4063 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 4065 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4072 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 4074 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4079 drivers/net/wireless/ath/ath10k/mac.c airtime = ath10k_mac_update_airtime(ar, txq, skb); ar 4080 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_tx_h_fill_cb(ar, vif, txq, skb, airtime); ar 4083 drivers/net/wireless/ath/ath10k/mac.c txmode = ath10k_mac_tx_h_get_txmode(ar, vif, sta, skb); ar 4084 drivers/net/wireless/ath/ath10k/mac.c txpath = ath10k_mac_tx_h_get_txpath(ar, skb, txmode); ar 4091 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 4096 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4099 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4102 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, false); ar 4104 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to push frame: %d\n", ret); ar 4106 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 4110 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4115 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 4117 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4144 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_tx_push_pending(struct ath10k *ar) ar 4146 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_hw *hw = ar->hw; ar 4149 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH) ar 4152 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.num_pending_tx >= (ar->htt.max_num_pending_tx / 2)) ar 4168 drivers/net/wireless/ath/ath10k/mac.c void __ath10k_scan_finish(struct ath10k *ar) ar 4170 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->data_lock); ar 4172 drivers/net/wireless/ath/ath10k/mac.c switch (ar->scan.state) { ar 4177 drivers/net/wireless/ath/ath10k/mac.c if (!ar->scan.is_roc) { ar 4179 drivers/net/wireless/ath/ath10k/mac.c .aborted = (ar->scan.state == ar 4183 drivers/net/wireless/ath/ath10k/mac.c ieee80211_scan_completed(ar->hw, &info); ar 4184 drivers/net/wireless/ath/ath10k/mac.c } else if (ar->scan.roc_notify) { ar 4185 drivers/net/wireless/ath/ath10k/mac.c ieee80211_remain_on_channel_expired(ar->hw); ar 4189 drivers/net/wireless/ath/ath10k/mac.c ar->scan.state = ATH10K_SCAN_IDLE; ar 4190 drivers/net/wireless/ath/ath10k/mac.c ar->scan_channel = NULL; ar 4191 drivers/net/wireless/ath/ath10k/mac.c ar->scan.roc_freq = 0; ar 4192 drivers/net/wireless/ath/ath10k/mac.c ath10k_offchan_tx_purge(ar); ar 4193 drivers/net/wireless/ath/ath10k/mac.c cancel_delayed_work(&ar->scan.timeout); ar 4194 drivers/net/wireless/ath/ath10k/mac.c complete(&ar->scan.completed); ar 4199 drivers/net/wireless/ath/ath10k/mac.c void ath10k_scan_finish(struct ath10k *ar) ar 4201 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 4202 drivers/net/wireless/ath/ath10k/mac.c __ath10k_scan_finish(ar); ar 4203 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4206 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_scan_stop(struct ath10k *ar) ar 4215 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 4217 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_stop_scan(ar, &arg); ar 4219 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop wmi scan: %d\n", ret); ar 4223 drivers/net/wireless/ath/ath10k/mac.c ret = wait_for_completion_timeout(&ar->scan.completed, 3 * HZ); ar 4225 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to receive scan abortion completion: timed out\n"); ar 4239 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 4240 drivers/net/wireless/ath/ath10k/mac.c if (ar->scan.state != ATH10K_SCAN_IDLE) ar 4241 drivers/net/wireless/ath/ath10k/mac.c __ath10k_scan_finish(ar); ar 4242 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4247 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_scan_abort(struct ath10k *ar) ar 4251 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 4253 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 4255 drivers/net/wireless/ath/ath10k/mac.c switch (ar->scan.state) { ar 4263 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "refusing scan abortion due to invalid scan state: %s (%d)\n", ar 4264 drivers/net/wireless/ath/ath10k/mac.c ath10k_scan_state_str(ar->scan.state), ar 4265 drivers/net/wireless/ath/ath10k/mac.c ar->scan.state); ar 4268 drivers/net/wireless/ath/ath10k/mac.c ar->scan.state = ATH10K_SCAN_ABORTING; ar 4269 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4271 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_scan_stop(ar); ar 4273 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to abort scan: %d\n", ret); ar 4275 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 4279 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4284 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = container_of(work, struct ath10k, ar 4287 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 4288 drivers/net/wireless/ath/ath10k/mac.c ath10k_scan_abort(ar); ar 4289 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 4292 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_start_scan(struct ath10k *ar, ar 4297 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 4299 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_start_scan(ar, arg); ar 4303 drivers/net/wireless/ath/ath10k/mac.c ret = wait_for_completion_timeout(&ar->scan.started, 1 * HZ); ar 4305 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_scan_stop(ar); ar 4307 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop scan: %d\n", ret); ar 4316 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 4317 drivers/net/wireless/ath/ath10k/mac.c if (ar->scan.state == ATH10K_SCAN_IDLE) { ar 4318 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4321 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4334 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 4335 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_htt *htt = &ar->htt; ar 4349 drivers/net/wireless/ath/ath10k/mac.c airtime = ath10k_mac_update_airtime(ar, txq, skb); ar 4350 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_tx_h_fill_cb(ar, vif, txq, skb, airtime); ar 4352 drivers/net/wireless/ath/ath10k/mac.c txmode = ath10k_mac_tx_h_get_txmode(ar, vif, sta, skb); ar 4353 drivers/net/wireless/ath/ath10k/mac.c txpath = ath10k_mac_tx_h_get_txpath(ar, skb, txmode); ar 4359 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 4364 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to increase tx pending count: %d, dropping\n", ar 4366 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4367 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 4373 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "failed to increase tx mgmt pending count: %d, dropping\n", ar 4376 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4377 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_txskb(ar->hw, skb); ar 4380 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4383 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tx(ar, vif, txmode, txpath, skb, false); ar 4385 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to transmit frame: %d\n", ret); ar 4387 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 4391 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 4400 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 4405 drivers/net/wireless/ath/ath10k/mac.c if (ar->htt.tx_q_state.mode != HTT_TX_MODE_SWITCH_PUSH) ar 4426 drivers/net/wireless/ath/ath10k/mac.c void ath10k_drain_tx(struct ath10k *ar) ar 4431 drivers/net/wireless/ath/ath10k/mac.c ath10k_offchan_tx_purge(ar); ar 4432 drivers/net/wireless/ath/ath10k/mac.c ath10k_mgmt_over_wmi_tx_purge(ar); ar 4434 drivers/net/wireless/ath/ath10k/mac.c cancel_work_sync(&ar->offchan_tx_work); ar 4435 drivers/net/wireless/ath/ath10k/mac.c cancel_work_sync(&ar->wmi_mgmt_tx_work); ar 4438 drivers/net/wireless/ath/ath10k/mac.c void ath10k_halt(struct ath10k *ar) ar 4442 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 4444 drivers/net/wireless/ath/ath10k/mac.c clear_bit(ATH10K_CAC_RUNNING, &ar->dev_flags); ar 4445 drivers/net/wireless/ath/ath10k/mac.c ar->filter_flags = 0; ar 4446 drivers/net/wireless/ath/ath10k/mac.c ar->monitor = false; ar 4447 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_arvif = NULL; ar 4449 drivers/net/wireless/ath/ath10k/mac.c if (ar->monitor_started) ar 4450 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_stop(ar); ar 4452 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_started = false; ar 4453 drivers/net/wireless/ath/ath10k/mac.c ar->tx_paused = 0; ar 4455 drivers/net/wireless/ath/ath10k/mac.c ath10k_scan_finish(ar); ar 4456 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_cleanup_all(ar); ar 4457 drivers/net/wireless/ath/ath10k/mac.c ath10k_stop_radar_confirmation(ar); ar 4458 drivers/net/wireless/ath/ath10k/mac.c ath10k_core_stop(ar); ar 4459 drivers/net/wireless/ath/ath10k/mac.c ath10k_hif_power_down(ar); ar 4461 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 4462 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(arvif, &ar->arvifs, list) ar 4464 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 4469 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 4471 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 4473 drivers/net/wireless/ath/ath10k/mac.c *tx_ant = ar->cfg_tx_chainmask; ar 4474 drivers/net/wireless/ath/ath10k/mac.c *rx_ant = ar->cfg_rx_chainmask; ar 4476 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 4481 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_check_chain_mask(struct ath10k *ar, u32 cm, const char *dbg) ar 4490 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "mac %s antenna chainmask may be invalid: 0x%x. Suggested values: 15, 7, 3, 1 or 0.\n", ar 4494 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_get_vht_cap_bf_sts(struct ath10k *ar) ar 4496 drivers/net/wireless/ath/ath10k/mac.c int nsts = ar->vht_cap_info; ar 4511 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_get_vht_cap_bf_sound_dim(struct ath10k *ar) ar 4513 drivers/net/wireless/ath/ath10k/mac.c int sound_dim = ar->vht_cap_info; ar 4527 drivers/net/wireless/ath/ath10k/mac.c static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar) ar 4530 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_hw_params *hw = &ar->hw_params; ar 4536 drivers/net/wireless/ath/ath10k/mac.c vht_cap.cap = ar->vht_cap_info; ar 4538 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE | ar 4540 drivers/net/wireless/ath/ath10k/mac.c val = ath10k_mac_get_vht_cap_bf_sts(ar); ar 4547 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE | ar 4549 drivers/net/wireless/ath/ath10k/mac.c val = ath10k_mac_get_vht_cap_bf_sound_dim(ar); ar 4559 drivers/net/wireless/ath/ath10k/mac.c if ((ar->vht_cap_info & IEEE80211_VHT_CAP_SHORT_GI_160) && ar 4560 drivers/net/wireless/ath/ath10k/mac.c (ar->vht_cap_info & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) == 0) ar 4565 drivers/net/wireless/ath/ath10k/mac.c if ((i < ar->num_rf_chains) && (ar->cfg_tx_chainmask & BIT(i))) ar 4571 drivers/net/wireless/ath/ath10k/mac.c if (ar->cfg_tx_chainmask <= 1) ar 4591 drivers/net/wireless/ath/ath10k/mac.c static struct ieee80211_sta_ht_cap ath10k_get_ht_cap(struct ath10k *ar) ar 4596 drivers/net/wireless/ath/ath10k/mac.c if (!(ar->ht_cap_info & WMI_HT_CAP_ENABLED)) ar 4607 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_HT20_SGI) ar 4610 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_HT40_SGI) ar 4613 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_DYNAMIC_SMPS) { ar 4622 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_TX_STBC && (ar->cfg_tx_chainmask > 1)) ar 4625 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_RX_STBC) { ar 4628 drivers/net/wireless/ath/ath10k/mac.c stbc = ar->ht_cap_info; ar 4637 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_LDPC || (ar->ht_cap_info & ar 4638 drivers/net/wireless/ath/ath10k/mac.c WMI_HT_CAP_RX_LDPC && (ar->ht_cap_info & WMI_HT_CAP_TX_LDPC))) ar 4641 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_L_SIG_TXOP_PROT) ar 4645 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & WMI_VHT_CAP_MAX_MPDU_LEN_MASK) ar 4648 drivers/net/wireless/ath/ath10k/mac.c for (i = 0; i < ar->num_rf_chains; i++) { ar 4649 drivers/net/wireless/ath/ath10k/mac.c if (ar->cfg_rx_chainmask & BIT(i)) ar 4658 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_mac_setup_ht_vht_cap(struct ath10k *ar) ar 4664 drivers/net/wireless/ath/ath10k/mac.c ht_cap = ath10k_get_ht_cap(ar); ar 4665 drivers/net/wireless/ath/ath10k/mac.c vht_cap = ath10k_create_vht_cap(ar); ar 4667 drivers/net/wireless/ath/ath10k/mac.c if (ar->phy_capability & WHAL_WLAN_11G_CAPABILITY) { ar 4668 drivers/net/wireless/ath/ath10k/mac.c band = &ar->mac.sbands[NL80211_BAND_2GHZ]; ar 4671 drivers/net/wireless/ath/ath10k/mac.c if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) { ar 4672 drivers/net/wireless/ath/ath10k/mac.c band = &ar->mac.sbands[NL80211_BAND_5GHZ]; ar 4678 drivers/net/wireless/ath/ath10k/mac.c static int __ath10k_set_antenna(struct ath10k *ar, u32 tx_ant, u32 rx_ant) ar 4682 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 4684 drivers/net/wireless/ath/ath10k/mac.c ath10k_check_chain_mask(ar, tx_ant, "tx"); ar 4685 drivers/net/wireless/ath/ath10k/mac.c ath10k_check_chain_mask(ar, rx_ant, "rx"); ar 4687 drivers/net/wireless/ath/ath10k/mac.c ar->cfg_tx_chainmask = tx_ant; ar 4688 drivers/net/wireless/ath/ath10k/mac.c ar->cfg_rx_chainmask = rx_ant; ar 4690 drivers/net/wireless/ath/ath10k/mac.c if ((ar->state != ATH10K_STATE_ON) && ar 4691 drivers/net/wireless/ath/ath10k/mac.c (ar->state != ATH10K_STATE_RESTARTED)) ar 4694 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->tx_chain_mask, ar 4697 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set tx-chainmask: %d, req 0x%x\n", ar 4702 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->rx_chain_mask, ar 4705 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set rx-chainmask: %d, req 0x%x\n", ar 4711 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_setup_ht_vht_cap(ar); ar 4718 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 4721 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 4722 drivers/net/wireless/ath/ath10k/mac.c ret = __ath10k_set_antenna(ar, tx_ant, rx_ant); ar 4723 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 4727 drivers/net/wireless/ath/ath10k/mac.c static int __ath10k_fetch_bb_timing_dt(struct ath10k *ar, ar 4734 drivers/net/wireless/ath/ath10k/mac.c node = ar->dev->of_node; ar 4754 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot bb_tx_timing 0x%x bb_xpa_timing 0x%x\n", ar 4761 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 4771 drivers/net/wireless/ath/ath10k/mac.c ath10k_drain_tx(ar); ar 4773 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 4775 drivers/net/wireless/ath/ath10k/mac.c switch (ar->state) { ar 4777 drivers/net/wireless/ath/ath10k/mac.c ar->state = ATH10K_STATE_ON; ar 4780 drivers/net/wireless/ath/ath10k/mac.c ar->state = ATH10K_STATE_RESTARTED; ar 4793 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_hif_power_up(ar, ATH10K_FIRMWARE_MODE_NORMAL); ar 4795 drivers/net/wireless/ath/ath10k/mac.c ath10k_err(ar, "Could not init hif: %d\n", ret); ar 4799 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_core_start(ar, ATH10K_FIRMWARE_MODE_NORMAL, ar 4800 drivers/net/wireless/ath/ath10k/mac.c &ar->normal_mode_fw); ar 4802 drivers/net/wireless/ath/ath10k/mac.c ath10k_err(ar, "Could not init core: %d\n", ret); ar 4806 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->pmf_qos; ar 4807 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, 1); ar 4809 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to enable PMF QOS: %d\n", ret); ar 4813 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->dynamic_bw; ar 4814 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, 1); ar 4816 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to enable dynamic BW: %d\n", ret); ar 4820 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_SPOOF_MAC_SUPPORT, ar->wmi.svc_map)) { ar 4821 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_scan_prob_req_oui(ar, ar->mac_addr); ar 4823 drivers/net/wireless/ath/ath10k/mac.c ath10k_err(ar, "failed to set prob req oui: %i\n", ret); ar 4828 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_ADAPTIVE_OCS, ar->wmi.svc_map)) { ar 4829 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_adaptive_qcs(ar, true); ar 4831 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to enable adaptive qcs: %d\n", ar 4837 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_BURST, ar->wmi.svc_map)) { ar 4838 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->burst_enable; ar 4839 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, 0); ar 4841 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to disable burst: %d\n", ret); ar 4846 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->idle_ps_config; ar 4847 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, 1); ar 4849 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to enable idle_ps_config: %d\n", ret); ar 4853 drivers/net/wireless/ath/ath10k/mac.c __ath10k_set_antenna(ar, ar->cfg_tx_chainmask, ar->cfg_rx_chainmask); ar 4864 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->arp_ac_override; ar 4865 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, 0); ar 4867 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set arp ac override parameter: %d\n", ar 4873 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features)) { ar 4874 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_enable_adaptive_cca(ar, 1, ar 4878 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to enable adaptive cca: %d\n", ar 4884 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->ani_enable; ar 4885 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, 1); ar 4887 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to enable ani by default: %d\n", ar 4892 drivers/net/wireless/ath/ath10k/mac.c ar->ani_enabled = true; ar 4894 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_peer_stats_enabled(ar)) { ar 4895 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->peer_stats_update_period; ar 4896 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, ar 4899 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, ar 4906 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->enable_btcoex; ar 4907 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_COEX_GPIO, ar->wmi.svc_map) && ar 4909 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features)) { ar 4910 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, 0); ar 4912 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, ar 4916 drivers/net/wireless/ath/ath10k/mac.c clear_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags); ar 4919 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_BB_TIMING_CONFIG_SUPPORT, ar->wmi.svc_map)) { ar 4920 drivers/net/wireless/ath/ath10k/mac.c ret = __ath10k_fetch_bb_timing_dt(ar, &bb_timing); ar 4922 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_bb_timing(ar, &bb_timing); ar 4924 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, ar 4932 drivers/net/wireless/ath/ath10k/mac.c ar->num_started_vdevs = 0; ar 4933 drivers/net/wireless/ath/ath10k/mac.c ath10k_regd_update(ar); ar 4935 drivers/net/wireless/ath/ath10k/mac.c ath10k_spectral_start(ar); ar 4936 drivers/net/wireless/ath/ath10k/mac.c ath10k_thermal_set_throttling(ar); ar 4938 drivers/net/wireless/ath/ath10k/mac.c ar->radar_conf_state = ATH10K_RADAR_CONFIRMATION_IDLE; ar 4940 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 4944 drivers/net/wireless/ath/ath10k/mac.c ath10k_core_stop(ar); ar 4947 drivers/net/wireless/ath/ath10k/mac.c ath10k_hif_power_down(ar); ar 4950 drivers/net/wireless/ath/ath10k/mac.c ar->state = ATH10K_STATE_OFF; ar 4953 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 4959 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 4961 drivers/net/wireless/ath/ath10k/mac.c ath10k_drain_tx(ar); ar 4963 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 4964 drivers/net/wireless/ath/ath10k/mac.c if (ar->state != ATH10K_STATE_OFF) { ar 4965 drivers/net/wireless/ath/ath10k/mac.c ath10k_halt(ar); ar 4966 drivers/net/wireless/ath/ath10k/mac.c ar->state = ATH10K_STATE_OFF; ar 4968 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 4970 drivers/net/wireless/ath/ath10k/mac.c cancel_work_sync(&ar->set_coverage_class_work); ar 4971 drivers/net/wireless/ath/ath10k/mac.c cancel_delayed_work_sync(&ar->scan.timeout); ar 4972 drivers/net/wireless/ath/ath10k/mac.c cancel_work_sync(&ar->restart_work); ar 4975 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_config_ps(struct ath10k *ar) ar 4980 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 4982 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 4985 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to setup powersave: %d\n", ret); ar 4993 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_txpower_setup(struct ath10k *ar, int txpower) ar 4998 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 5000 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac txpower %d\n", txpower); ar 5002 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->txpower_limit2g; ar 5003 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, txpower * 2); ar 5005 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set 2g txpower %d: %d\n", ar 5010 drivers/net/wireless/ath/ath10k/mac.c param = ar->wmi.pdev_param->txpower_limit5g; ar 5011 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, param, txpower * 2); ar 5013 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set 5g txpower %d: %d\n", ar 5021 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_txpower_recalc(struct ath10k *ar) ar 5026 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 5028 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 5041 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_txpower_setup(ar, txpower); ar 5043 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to setup tx power %d: %d\n", ar 5053 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 5057 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 5060 drivers/net/wireless/ath/ath10k/mac.c ath10k_config_ps(ar); ar 5063 drivers/net/wireless/ath/ath10k/mac.c ar->monitor = conf->flags & IEEE80211_CONF_MONITOR; ar 5064 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_recalc(ar); ar 5066 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc monitor: %d\n", ret); ar 5069 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5087 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 5091 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_wmi_get_txbf_conf_scheme(ar) != WMI_TXBF_CONF_BEFORE_ASSOC) ar 5094 drivers/net/wireless/ath/ath10k/mac.c nsts = ath10k_mac_get_vht_cap_bf_sts(ar); ar 5095 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE | ar 5099 drivers/net/wireless/ath/ath10k/mac.c sound_dim = ath10k_mac_get_vht_cap_bf_sound_dim(ar); ar 5100 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE | ar 5107 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE) ar 5110 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE) ar 5114 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE) ar 5117 drivers/net/wireless/ath/ath10k/mac.c if (ar->vht_cap_info & IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE) ar 5121 drivers/net/wireless/ath/ath10k/mac.c return ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, ar 5122 drivers/net/wireless/ath/ath10k/mac.c ar->wmi.vdev_param->txbf, value); ar 5135 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 5147 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 5152 drivers/net/wireless/ath/ath10k/mac.c arvif->ar = ar; ar 5168 drivers/net/wireless/ath/ath10k/mac.c if (ar->num_peers >= ar->max_num_peers) { ar 5169 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "refusing vdev creation due to insufficient peer entry resources in firmware\n"); ar 5174 drivers/net/wireless/ath/ath10k/mac.c if (ar->free_vdev_map == 0) { ar 5175 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "Free vdev map is empty, no more interfaces allowed.\n"); ar 5179 drivers/net/wireless/ath/ath10k/mac.c bit = __ffs64(ar->free_vdev_map); ar 5181 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac create vdev %i map %llx\n", ar 5182 drivers/net/wireless/ath/ath10k/mac.c bit, ar->free_vdev_map); ar 5186 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_get_vdev_subtype(ar, WMI_VDEV_SUBTYPE_NONE); ar 5192 drivers/net/wireless/ath/ath10k/mac.c (ar, WMI_VDEV_SUBTYPE_P2P_DEVICE); ar 5199 drivers/net/wireless/ath/ath10k/mac.c (ar, WMI_VDEV_SUBTYPE_P2P_CLIENT); ar 5205 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_MESH_11S, ar->wmi.svc_map)) { ar 5207 drivers/net/wireless/ath/ath10k/mac.c (ar, WMI_VDEV_SUBTYPE_MESH_11S); ar 5208 drivers/net/wireless/ath/ath10k/mac.c } else if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) { ar 5210 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "must load driver with rawmode=1 to add mesh interfaces\n"); ar 5220 drivers/net/wireless/ath/ath10k/mac.c (ar, WMI_VDEV_SUBTYPE_P2P_GO); ar 5258 drivers/net/wireless/ath/ath10k/mac.c arvif->beacon_buf = dma_alloc_coherent(ar->dev, ar 5264 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to allocate beacon buffer: %d\n", ar 5269 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(ATH10K_FLAG_HW_CRYPTO_DISABLED, &ar->dev_flags)) ar 5273 drivers/net/wireless/ath/ath10k/mac.c !test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) { ar 5274 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "cryptmode module param needed for sw crypto\n"); ar 5278 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev create %d (add interface) type %d subtype %d bcnmode %s\n", ar 5282 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_create(ar, arvif->vdev_id, arvif->vdev_type, ar 5285 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to create WMI vdev %i: %d\n", ar 5291 drivers/net/wireless/ath/ath10k/mac.c ar->wmi.svc_map)) { ar 5292 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->disable_4addr_src_lrn; ar 5293 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5296 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to disable 4addr src lrn vdev %i: %d\n", ar 5301 drivers/net/wireless/ath/ath10k/mac.c ar->free_vdev_map &= ~(1LL << arvif->vdev_id); ar 5302 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 5303 drivers/net/wireless/ath/ath10k/mac.c list_add(&arvif->list, &ar->arvifs); ar 5304 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5311 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to disable keepalive on vdev %i: %d\n", ar 5318 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->tx_encap_type; ar 5319 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5323 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev %i TX encapsulation: %d\n", ar 5331 drivers/net/wireless/ath/ath10k/mac.c if (ar->cfg_tx_chainmask && (vif->type != NL80211_IFTYPE_MONITOR)) { ar 5332 drivers/net/wireless/ath/ath10k/mac.c u16 nss = get_nss_from_chainmask(ar->cfg_tx_chainmask); ar 5334 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->nss; ar 5335 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5338 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev %i chainmask 0x%x, nss %i: %d\n", ar 5339 drivers/net/wireless/ath/ath10k/mac.c arvif->vdev_id, ar->cfg_tx_chainmask, nss, ar 5347 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_create(ar, vif, NULL, arvif->vdev_id, ar 5350 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to create vdev %i peer for AP/IBSS: %d\n", ar 5355 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 5357 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, arvif->vdev_id, vif->addr); ar 5359 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to lookup peer %pM on vdev %i\n", ar 5361 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5369 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5377 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev %i kickout parameters: %d\n", ar 5386 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_sta_ps_param(ar, arvif->vdev_id, ar 5389 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev %i RX wake policy: %d\n", ar 5396 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc ps wake threshold on vdev %i: %d\n", ar 5403 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc ps poll count on vdev %i: %d\n", ar 5411 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set txbf for vdev %d: %d\n", ar 5416 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_set_rts(arvif, ar->hw->wiphy->rts_threshold); ar 5418 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set rts threshold for vdev %d: %d\n", ar 5424 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_txpower_recalc(ar); ar 5426 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc tx power: %d\n", ret); ar 5430 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_RTT_RESPONDER_ROLE, ar->wmi.svc_map)) { ar 5431 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->rtt_responder_role; ar 5432 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5437 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev %i FTM Responder: %d\n", ar 5442 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_arvif = arvif; ar 5443 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_recalc(ar); ar 5445 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc monitor: %d\n", ret); ar 5450 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 5451 drivers/net/wireless/ath/ath10k/mac.c if (!ar->tx_paused) ar 5452 drivers/net/wireless/ath/ath10k/mac.c ieee80211_wake_queue(ar->hw, arvif->vdev_id); ar 5453 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 5455 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5461 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_peer_delete(ar, arvif->vdev_id, vif->addr); ar 5462 drivers/net/wireless/ath/ath10k/mac.c ath10k_wait_for_peer_delete_done(ar, arvif->vdev_id, ar 5467 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_vdev_delete(ar, arvif->vdev_id); ar 5468 drivers/net/wireless/ath/ath10k/mac.c ar->free_vdev_map |= 1LL << arvif->vdev_id; ar 5469 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 5471 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5475 drivers/net/wireless/ath/ath10k/mac.c dma_free_coherent(ar->dev, IEEE80211_MAX_FRAME_LEN, ar 5480 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5496 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 5506 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 5510 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop spectral for vdev %i: %d\n", ar 5513 drivers/net/wireless/ath/ath10k/mac.c ar->free_vdev_map |= 1LL << arvif->vdev_id; ar 5514 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 5516 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5520 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_peer_delete(arvif->ar, arvif->vdev_id, ar 5523 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to submit AP/IBSS self-peer removal on vdev %i: %d\n", ar 5526 drivers/net/wireless/ath/ath10k/mac.c ath10k_wait_for_peer_delete_done(ar, arvif->vdev_id, ar 5531 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %i delete (remove interface)\n", ar 5534 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_delete(ar, arvif->vdev_id); ar 5536 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to delete WMI vdev %i: %d\n", ar 5539 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_SYNC_DELETE_CMDS, ar->wmi.svc_map)) { ar 5540 drivers/net/wireless/ath/ath10k/mac.c time_left = wait_for_completion_timeout(&ar->vdev_delete_done, ar 5543 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "Timeout in receiving vdev delete response\n"); ar 5553 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wait_for_peer_deleted(ar, arvif->vdev_id, ar 5556 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to remove AP self-peer on vdev %i: %d\n", ar 5559 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 5560 drivers/net/wireless/ath/ath10k/mac.c ar->num_peers--; ar 5561 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5564 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 5565 drivers/net/wireless/ath/ath10k/mac.c for (i = 0; i < ARRAY_SIZE(ar->peer_map); i++) { ar 5566 drivers/net/wireless/ath/ath10k/mac.c peer = ar->peer_map[i]; ar 5571 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "found vif peer %pM entry on vdev %i after it was supposedly removed\n", ar 5581 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5583 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_cleanup(ar, arvif->vdev_id); ar 5584 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_txq_unref(ar, vif->txq); ar 5587 drivers/net/wireless/ath/ath10k/mac.c ar->monitor_arvif = NULL; ar 5588 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_recalc(ar); ar 5590 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc monitor: %d\n", ret); ar 5593 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_txpower_recalc(ar); ar 5595 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc tx power: %d\n", ret); ar 5597 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 5599 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 5601 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_txq_unref(ar, vif->txq); ar 5604 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5624 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 5627 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 5631 drivers/net/wireless/ath/ath10k/mac.c ar->filter_flags = *total_flags; ar 5633 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_monitor_recalc(ar); ar 5635 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc monitor: %d\n", ret); ar 5637 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5645 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 5655 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 5662 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->beacon_interval; ar 5663 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5665 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 5670 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set beacon interval for vdev %d: %i\n", ar 5675 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 5679 drivers/net/wireless/ath/ath10k/mac.c pdev_param = ar->wmi.pdev_param->beacon_tx_mode; ar 5680 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_param(ar, pdev_param, ar 5683 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set beacon mode for vdev %d: %i\n", ar 5688 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update beacon template: %d\n", ar 5702 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to setup probe resp template on vdev %i: %d\n", ar 5709 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 5713 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->dtim_period; ar 5714 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5717 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set dtim period for vdev %d: %i\n", ar 5734 drivers/net/wireless/ath/ath10k/mac.c test_bit(WMI_SERVICE_RTT_RESPONDER_ROLE, ar->wmi.svc_map)) { ar 5737 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->rtt_responder_role; ar 5738 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5741 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 5754 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalculate rts/cts prot for vdev %d: %d\n", ar 5760 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set cts protection for vdev %d: %d\n", ar 5772 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %d slot_time %d\n", ar 5775 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->slot_time; ar 5776 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5779 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set erp slot for vdev %d: %i\n", ar 5789 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 5793 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->preamble; ar 5794 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5797 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set preamble for vdev %d: %i\n", ar 5807 drivers/net/wireless/ath/ath10k/mac.c if (ar->monitor_started) ar 5808 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_stop(ar); ar 5810 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_recalc(ar); ar 5817 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev_id %i txpower %d\n", ar 5821 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_txpower_recalc(ar); ar 5823 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc tx power: %d\n", ret); ar 5829 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_config_ps(ar); ar 5831 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to setup ps on vdev %i: %d\n", ar 5844 drivers/net/wireless/ath/ath10k/mac.c if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) ar 5856 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 5860 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->mcast_data_rate; ar 5861 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, ar 5864 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, ar 5868 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->bcast_data_rate; ar 5869 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, ar 5872 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, ar 5879 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5883 drivers/net/wireless/ath/ath10k/mac.c sband = ar->hw->wiphy->bands[def.chan->band]; ar 5889 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "bitrate not supported %d\n", bitrate); ar 5890 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5894 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->mgmt_rate; ar 5895 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 5898 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set mgmt tx rate %d\n", ret); ar 5901 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 5906 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 5911 drivers/net/wireless/ath/ath10k/mac.c if (!ar->hw_params.hw_ops->set_coverage_class) { ar 5915 drivers/net/wireless/ath/ath10k/mac.c ar->hw_params.hw_ops->set_coverage_class(ar, value); ar 5951 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 5959 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 5966 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 5967 drivers/net/wireless/ath/ath10k/mac.c switch (ar->scan.state) { ar 5969 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->scan.started); ar 5970 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->scan.completed); ar 5971 drivers/net/wireless/ath/ath10k/mac.c ar->scan.state = ATH10K_SCAN_STARTING; ar 5972 drivers/net/wireless/ath/ath10k/mac.c ar->scan.is_roc = false; ar 5973 drivers/net/wireless/ath/ath10k/mac.c ar->scan.vdev_id = arvif->vdev_id; ar 5982 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 5988 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_start_scan_init(ar, &arg); ar 6035 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_start_scan(ar, &arg); ar 6037 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to start hw scan: %d\n", ret); ar 6038 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6039 drivers/net/wireless/ath/ath10k/mac.c ar->scan.state = ATH10K_SCAN_IDLE; ar 6040 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6043 drivers/net/wireless/ath/ath10k/mac.c ieee80211_queue_delayed_work(ar->hw, &ar->scan.timeout, ar 6047 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6054 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6056 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6057 drivers/net/wireless/ath/ath10k/mac.c ath10k_scan_abort(ar); ar 6058 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6060 drivers/net/wireless/ath/ath10k/mac.c cancel_delayed_work_sync(&ar->scan.timeout); ar 6063 drivers/net/wireless/ath/ath10k/mac.c static void ath10k_set_key_h_def_keyidx(struct ath10k *ar, ar 6068 drivers/net/wireless/ath/ath10k/mac.c u32 vdev_param = arvif->ar->wmi.vdev_param->def_keyid; ar 6098 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ar 6101 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev %i group key as default key: %d\n", ar 6109 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6133 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6154 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6155 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, arvif->vdev_id, peer_addr); ar 6156 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6160 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to install key for non-existent peer %pM\n", ar 6200 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to install key for vdev %i peer %pM: %d\n", ar 6216 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to install (ucast) key for vdev %i peer %pM: %d\n", ar 6222 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to disable (mcast) key for vdev %i peer %pM: %d\n", ar 6229 drivers/net/wireless/ath/ath10k/mac.c ath10k_set_key_h_def_keyidx(ar, arvif, cmd, key); ar 6231 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6232 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, arvif->vdev_id, peer_addr); ar 6239 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "Peer %pM disappeared!\n", peer_addr); ar 6240 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6243 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 6247 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6255 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6259 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&arvif->ar->conf_mutex); ar 6261 drivers/net/wireless/ath/ath10k/mac.c if (arvif->ar->state != ATH10K_STATE_ON) ar 6264 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %d set keyidx %d\n", ar 6267 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(arvif->ar, ar 6269 drivers/net/wireless/ath/ath10k/mac.c arvif->ar->wmi.vdev_param->def_keyid, ar 6273 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update wep key index for vdev %d: %d\n", ar 6282 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&arvif->ar->conf_mutex); ar 6287 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar; ar 6301 drivers/net/wireless/ath/ath10k/mac.c ar = arvif->ar; ar 6310 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6319 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6321 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6331 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac update sta %pM peer bw %d phymode %d\n", ar 6334 drivers/net/wireless/ath/ath10k/mac.c err = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 6337 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update STA %pM peer phymode %d: %d\n", ar 6342 drivers/net/wireless/ath/ath10k/mac.c err = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 6345 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update STA %pM peer bw %d: %d\n", ar 6350 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac update sta %pM nss %d\n", ar 6353 drivers/net/wireless/ath/ath10k/mac.c err = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 6356 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update STA %pM nss %d: %d\n", ar 6361 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac update sta %pM smps %d\n", ar 6364 drivers/net/wireless/ath/ath10k/mac.c err = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 6367 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update STA %pM smps %d: %d\n", ar 6372 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac update sta %pM supp rates\n", ar 6375 drivers/net/wireless/ath/ath10k/mac.c err = ath10k_station_assoc(ar, arvif->vif, sta, true); ar 6377 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to reassociate station: %pM\n", ar 6382 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6388 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 6390 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 6395 drivers/net/wireless/ath/ath10k/mac.c if (ar->num_stations >= ar->max_num_stations) ar 6398 drivers/net/wireless/ath/ath10k/mac.c ar->num_stations++; ar 6406 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 6408 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 6413 drivers/net/wireless/ath/ath10k/mac.c ar->num_stations--; ar 6420 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6436 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6438 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 6441 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set tx power for station ret: %d\n", ar 6447 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6457 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6480 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6490 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 6493 drivers/net/wireless/ath/ath10k/mac.c ar->num_stations + 1, ar->max_num_stations, ar 6494 drivers/net/wireless/ath/ath10k/mac.c ar->num_peers + 1, ar->max_num_peers); ar 6499 drivers/net/wireless/ath/ath10k/mac.c if (num_tdls_stations >= ar->max_num_tdls_vdevs) { ar 6500 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "vdev %i exceeded maximum number of tdls vdevs %i\n", ar 6502 drivers/net/wireless/ath/ath10k/mac.c ar->max_num_tdls_vdevs); ar 6511 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "refusing to associate station: too many connected already (%d)\n", ar 6512 drivers/net/wireless/ath/ath10k/mac.c ar->max_num_stations); ar 6516 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_debug_is_extd_tx_stats_enabled(ar)) { ar 6525 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_create(ar, vif, sta, arvif->vdev_id, ar 6528 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to add peer %pM for vdev %d when adding a new sta: %i\n", ar 6535 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6537 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, arvif->vdev_id, sta->addr); ar 6539 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to lookup peer %pM on vdev %i\n", ar 6541 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6542 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_delete(ar, arvif->vdev_id, sta->addr); ar 6552 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6557 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_update_fw_tdls_state(ar, arvif->vdev_id, ar 6560 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update fw tdls state on vdev %i: %i\n", ar 6562 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_delete(ar, arvif->vdev_id, ar 6569 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tdls_peer_update(ar, arvif->vdev_id, sta, ar 6572 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, ar 6575 drivers/net/wireless/ath/ath10k/mac.c ath10k_peer_delete(ar, arvif->vdev_id, sta->addr); ar 6581 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_update_fw_tdls_state(ar, arvif->vdev_id, ar 6589 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 6594 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tdls_peer_update(ar, arvif->vdev_id, ar 6598 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update tdls peer state for %pM state %d: %i\n", ar 6603 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_peer_delete(ar, arvif->vdev_id, sta->addr); ar 6605 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to delete peer %pM for vdev %d: %i\n", ar 6610 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6611 drivers/net/wireless/ath/ath10k/mac.c for (i = 0; i < ARRAY_SIZE(ar->peer_map); i++) { ar 6612 drivers/net/wireless/ath/ath10k/mac.c peer = ar->peer_map[i]; ar 6617 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "found sta peer %pM (ptr %pK id %d) entry on vdev %i after it was supposedly removed\n", ar 6625 drivers/net/wireless/ath/ath10k/mac.c ar->peer_map[i] = NULL; ar 6627 drivers/net/wireless/ath/ath10k/mac.c ar->num_peers--; ar 6630 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6632 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_debug_is_extd_tx_stats_enabled(ar)) { ar 6638 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_txq_unref(ar, sta->txq[i]); ar 6647 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_update_fw_tdls_state(ar, arvif->vdev_id, ar 6650 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update fw tdls state on vdev %i: %i\n", ar 6661 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac sta %pM associated\n", ar 6664 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_station_assoc(ar, vif, sta, false); ar 6666 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to associate station %pM for vdev %i: %i\n", ar 6674 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac tdls sta %pM authorized\n", ar 6677 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_station_assoc(ar, vif, sta, false); ar 6679 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to associate tdls station %pM for vdev %i: %i\n", ar 6684 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_tdls_peer_update(ar, arvif->vdev_id, sta, ar 6687 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update tdls peer %pM for vdev %i: %i\n", ar 6697 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac sta %pM disassociated\n", ar 6700 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_station_disassoc(ar, vif, sta); ar 6702 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to disassociate station: %pM vdev %i: %i\n", ar 6706 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6710 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_conf_tx_uapsd(struct ath10k *ar, struct ieee80211_vif *vif, ar 6719 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 6756 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_sta_ps_param(ar, arvif->vdev_id, ar 6760 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set uapsd params: %d\n", ret); ar 6769 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_set_sta_ps_param(ar, arvif->vdev_id, ar 6773 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set rx wake param: %d\n", ret); ar 6777 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc ps wake threshold on vdev %i: %d\n", ar 6784 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to recalc ps poll count on vdev %i: %d\n", ar 6789 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_STA_UAPSD_BASIC_AUTO_TRIG, ar->wmi.svc_map) || ar 6790 drivers/net/wireless/ath/ath10k/mac.c test_bit(WMI_SERVICE_STA_UAPSD_VAR_AUTO_TRIG, ar->wmi.svc_map)) { ar 6803 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_sta_uapsd(ar, arvif->vdev_id, ar 6806 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set uapsd auto trigger %d\n", ar 6820 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6825 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6858 drivers/net/wireless/ath/ath10k/mac.c if (ar->wmi.ops->gen_vdev_wmm_conf) { ar 6859 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_wmm_conf(ar, arvif->vdev_id, ar 6862 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set vdev wmm params on vdev %i: %d\n", ar 6870 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_set_wmm_params(ar, &arvif->wmm_params); ar 6872 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set wmm params: %d\n", ret); ar 6877 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_conf_tx_uapsd(ar, vif, ac, params->uapsd); ar 6879 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set sta uapsd: %d\n", ret); ar 6882 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6894 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6900 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6907 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6908 drivers/net/wireless/ath/ath10k/mac.c switch (ar->scan.state) { ar 6910 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->scan.started); ar 6911 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->scan.completed); ar 6912 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->scan.on_channel); ar 6913 drivers/net/wireless/ath/ath10k/mac.c ar->scan.state = ATH10K_SCAN_STARTING; ar 6914 drivers/net/wireless/ath/ath10k/mac.c ar->scan.is_roc = true; ar 6915 drivers/net/wireless/ath/ath10k/mac.c ar->scan.vdev_id = arvif->vdev_id; ar 6916 drivers/net/wireless/ath/ath10k/mac.c ar->scan.roc_freq = chan->center_freq; ar 6917 drivers/net/wireless/ath/ath10k/mac.c ar->scan.roc_notify = true; ar 6926 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6931 drivers/net/wireless/ath/ath10k/mac.c scan_time_msec = ar->hw->wiphy->max_remain_on_channel_duration * 2; ar 6934 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_start_scan_init(ar, &arg); ar 6946 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_start_scan(ar, &arg); ar 6948 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to start roc scan: %d\n", ret); ar 6949 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6950 drivers/net/wireless/ath/ath10k/mac.c ar->scan.state = ATH10K_SCAN_IDLE; ar 6951 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6955 drivers/net/wireless/ath/ath10k/mac.c ret = wait_for_completion_timeout(&ar->scan.on_channel, 3 * HZ); ar 6957 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to switch to channel for roc scan\n"); ar 6959 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_scan_stop(ar); ar 6961 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop scan: %d\n", ret); ar 6967 drivers/net/wireless/ath/ath10k/mac.c ieee80211_queue_delayed_work(ar->hw, &ar->scan.timeout, ar 6972 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6979 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 6981 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 6983 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 6984 drivers/net/wireless/ath/ath10k/mac.c ar->scan.roc_notify = false; ar 6985 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 6987 drivers/net/wireless/ath/ath10k/mac.c ath10k_scan_abort(ar); ar 6989 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 6991 drivers/net/wireless/ath/ath10k/mac.c cancel_delayed_work_sync(&ar->scan.timeout); ar 7003 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7007 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7008 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 7009 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac vdev %d rts threshold %d\n", ar 7014 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set rts threshold for vdev %d: %d\n", ar 7019 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7039 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_wait_tx_complete(struct ath10k *ar) ar 7048 drivers/net/wireless/ath/ath10k/mac.c if (ar->state == ATH10K_STATE_WEDGED) ar 7051 drivers/net/wireless/ath/ath10k/mac.c time_left = wait_event_timeout(ar->htt.empty_tx_wq, ({ ar 7054 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->htt.tx_lock); ar 7055 drivers/net/wireless/ath/ath10k/mac.c empty = (ar->htt.num_pending_tx == 0); ar 7056 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->htt.tx_lock); ar 7058 drivers/net/wireless/ath/ath10k/mac.c skip = (ar->state == ATH10K_STATE_WEDGED) || ar 7060 drivers/net/wireless/ath/ath10k/mac.c &ar->dev_flags); ar 7066 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to flush transmit queue (skip %i ar-state %i): %ld\n", ar 7067 drivers/net/wireless/ath/ath10k/mac.c skip, ar->state, time_left); ar 7073 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7080 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 7082 drivers/net/wireless/ath/ath10k/mac.c ath10k_wmi_peer_flush(ar, arvif->vdev_id, ar 7089 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7090 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_wait_tx_complete(ar); ar 7091 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7106 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7111 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7116 drivers/net/wireless/ath/ath10k/mac.c if (ar->state == ATH10K_STATE_RESTARTED) { ar 7117 drivers/net/wireless/ath/ath10k/mac.c ath10k_info(ar, "device successfully recovered\n"); ar 7118 drivers/net/wireless/ath/ath10k/mac.c ar->state = ATH10K_STATE_ON; ar 7119 drivers/net/wireless/ath/ath10k/mac.c ieee80211_wake_queues(ar->hw); ar 7122 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7126 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_bss_chan_survey(struct ath10k *ar, ar 7132 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 7134 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(WMI_SERVICE_BSS_CHANNEL_INFO_64, ar->wmi.svc_map) || ar 7135 drivers/net/wireless/ath/ath10k/mac.c (ar->rx_channel != channel)) ar 7138 drivers/net/wireless/ath/ath10k/mac.c if (ar->scan.state != ATH10K_SCAN_IDLE) { ar 7139 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "ignoring bss chan info request while scanning..\n"); ar 7143 drivers/net/wireless/ath/ath10k/mac.c reinit_completion(&ar->bss_survey_done); ar 7145 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_bss_chan_info_request(ar, type); ar 7147 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to send pdev bss chan info request\n"); ar 7151 drivers/net/wireless/ath/ath10k/mac.c ret = wait_for_completion_timeout(&ar->bss_survey_done, 3 * HZ); ar 7153 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "bss channel survey timed out\n"); ar 7161 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7163 drivers/net/wireless/ath/ath10k/mac.c struct survey_info *ar_survey = &ar->survey[idx]; ar 7166 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7182 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_bss_chan_survey(ar, &sband->channels[idx]); ar 7184 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 7186 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 7190 drivers/net/wireless/ath/ath10k/mac.c if (ar->rx_channel == survey->channel) ar 7194 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7199 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_bitrate_mask_has_single_rate(struct ath10k *ar, ar 7223 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_bitrate_mask_get_single_nss(struct ath10k *ar, ar 7228 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_supported_band *sband = &ar->mac.sbands[band]; ar 7272 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_bitrate_mask_get_single_rate(struct ath10k *ar, ar 7289 drivers/net/wireless/ath/ath10k/mac.c if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) ar 7337 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 7341 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 7343 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac set fixed rate params vdev %i rate 0x%02hhx nss %hhu sgi %hhu\n", ar 7346 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->fixed_rate; ar 7347 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, rate); ar 7349 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set fixed rate param 0x%02x: %d\n", ar 7354 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->nss; ar 7355 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, nss); ar 7357 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set nss param %d: %d\n", nss, ret); ar 7361 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->sgi; ar 7362 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, sgi); ar 7364 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set sgi param %d: %d\n", sgi, ret); ar 7368 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->ldpc; ar 7369 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param, ldpc); ar 7371 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set ldpc param %d: %d\n", ldpc, ret); ar 7379 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_can_set_bitrate_mask(struct ath10k *ar, ar 7402 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "refusing bitrate mask with missing 0-7 VHT MCS rates\n"); ar 7410 drivers/net/wireless/ath/ath10k/mac.c static bool ath10k_mac_set_vht_bitrate_mask_fixup(struct ath10k *ar, ar 7421 drivers/net/wireless/ath/ath10k/mac.c err = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 7424 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to eanble STA %pM peer fixed rate: %d\n", ar 7435 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 7440 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_mac_set_vht_bitrate_mask_fixup(ar, arvif, sta)) ar 7443 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 7445 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 7447 drivers/net/wireless/ath/ath10k/mac.c ieee80211_queue_work(ar->hw, &arsta->update_wk); ar 7455 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 7462 drivers/net/wireless/ath/ath10k/mac.c err = ath10k_wmi_peer_set_param(ar, arvif->vdev_id, sta->addr, ar 7466 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to clear STA %pM peer fixed rate: %d\n", ar 7476 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arvif->ar; ar 7496 drivers/net/wireless/ath/ath10k/mac.c ldpc = !!(ar->ht_cap_info & WMI_HT_CAP_LDPC); ar 7503 drivers/net/wireless/ath/ath10k/mac.c ar->normal_mode_fw.fw_file.fw_features); ar 7505 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7506 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iterate_stations_atomic(ar->hw, ar 7509 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7512 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_mac_bitrate_mask_has_single_rate(ar, band, mask, ar 7514 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_bitrate_mask_get_single_rate(ar, band, mask, ar 7518 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to get single rate for vdev %i: %d\n", ar 7522 drivers/net/wireless/ath/ath10k/mac.c } else if (ath10k_mac_bitrate_mask_get_single_nss(ar, band, mask, ar 7528 drivers/net/wireless/ath/ath10k/mac.c nss = min(ar->num_rf_chains, ar 7532 drivers/net/wireless/ath/ath10k/mac.c if (!ath10k_mac_can_set_bitrate_mask(ar, band, mask, ar 7543 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_bitrate_mask_get_single_rate(ar, band, mask, ar 7552 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7558 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iterate_stations_atomic(ar->hw, ar 7562 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7565 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7569 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set fixed rate params on vdev %i: %d\n", ar 7575 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7585 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7591 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 7593 drivers/net/wireless/ath/ath10k/mac.c peer = ath10k_peer_find(ar, arvif->vdev_id, sta->addr); ar 7595 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 7596 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "mac sta rc update failed to find peer %pM on vdev %i\n", ar 7601 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 7623 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "Invalid bandwidth %d in rc update for %pM\n", ar 7650 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "Invalid smps %d in sta rc update for %pM\n", ar 7661 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 7669 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7675 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->dec_tsf; ar 7678 drivers/net/wireless/ath/ath10k/mac.c vdev_param = ar->wmi.vdev_param->inc_tsf; ar 7682 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, ar 7686 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set tsf offset %d cmd %d: %d\n", ar 7694 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7700 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, "mac ampdu vdev_id %i sta %pM tid %hu action %d\n", ar 7725 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_rx_channel(struct ath10k *ar, ar 7735 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 7736 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->data_lock); ar 7752 drivers/net/wireless/ath/ath10k/mac.c if (!ctx && ath10k_mac_num_chanctxs(ar) == 1) { ar 7753 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iter_chan_contexts_atomic(ar->hw, ar 7760 drivers/net/wireless/ath/ath10k/mac.c ar->rx_channel = def->chan; ar 7761 drivers/net/wireless/ath/ath10k/mac.c } else if ((ctx && ath10k_mac_num_chanctxs(ar) == 0) || ar 7762 drivers/net/wireless/ath/ath10k/mac.c (ctx && (ar->state == ATH10K_STATE_RESTARTED))) { ar 7768 drivers/net/wireless/ath/ath10k/mac.c ar->rx_channel = ctx->def.chan; ar 7770 drivers/net/wireless/ath/ath10k/mac.c ar->rx_channel = NULL; ar 7776 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_vif_chan(struct ath10k *ar, ar 7784 drivers/net/wireless/ath/ath10k/mac.c lockdep_assert_held(&ar->conf_mutex); ar 7789 drivers/net/wireless/ath/ath10k/mac.c if (ar->monitor_started) ar 7790 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_stop(ar); ar 7795 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 7809 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id); ar 7811 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to down vdev %d: %d\n", ar 7821 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 7822 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_rx_channel(ar, NULL, vifs, n_vifs); ar 7823 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 7836 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update bcn tmpl during csa: %d\n", ar 7841 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update prb tmpl during csa: %d\n", ar 7846 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to restart vdev %d: %d\n", ar 7851 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_up(arvif->ar, arvif->vdev_id, arvif->aid, ar 7854 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to bring vdev up %d: %d\n", ar 7860 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_recalc(ar); ar 7867 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7869 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 7873 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7875 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 7876 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_rx_channel(ar, ctx, NULL, 0); ar 7877 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 7879 drivers/net/wireless/ath/ath10k/mac.c ath10k_recalc_radar_detection(ar); ar 7880 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_recalc(ar); ar 7882 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7891 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7893 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 7897 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7899 drivers/net/wireless/ath/ath10k/mac.c spin_lock_bh(&ar->data_lock); ar 7900 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_rx_channel(ar, NULL, NULL, 0); ar 7901 drivers/net/wireless/ath/ath10k/mac.c spin_unlock_bh(&ar->data_lock); ar 7903 drivers/net/wireless/ath/ath10k/mac.c ath10k_recalc_radar_detection(ar); ar 7904 drivers/net/wireless/ath/ath10k/mac.c ath10k_monitor_recalc(ar); ar 7906 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 7953 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 7956 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 7958 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 7987 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_vif_chan(ar, arg.vifs, arg.n_vifs); ar 7992 drivers/net/wireless/ath/ath10k/mac.c ath10k_recalc_radar_detection(ar); ar 8002 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 8010 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 8014 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 8016 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 8021 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 8027 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to start vdev %i addr %pM on freq %d: %d\n", ar 8037 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to update vdev %i ps: %d\n", ar 8043 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_up(ar, arvif->vdev_id, 0, vif->addr); ar 8045 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to up monitor vdev %i: %d\n", ar 8056 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to set cts protection for vdev %d: %d\n", ar 8060 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_peer_stats_enabled(ar) && ar 8061 drivers/net/wireless/ath/ath10k/mac.c ar->hw_params.tx_stats_over_pktlog) { ar 8062 drivers/net/wireless/ath/ath10k/mac.c ar->pktlog_filter |= ATH10K_PKTLOG_PEER_STATS; ar 8063 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_pdev_pktlog_enable(ar, ar 8064 drivers/net/wireless/ath/ath10k/mac.c ar->pktlog_filter); ar 8066 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to enable pktlog %d\n", ret); ar 8071 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 8080 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 8089 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 8093 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 8095 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 8104 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wmi_vdev_down(ar, arvif->vdev_id); ar 8106 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to down monitor vdev %i: %d\n", ar 8114 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to stop vdev %i: %d\n", ar 8119 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 8128 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = hw->priv; ar 8130 drivers/net/wireless/ath/ath10k/mac.c mutex_lock(&ar->conf_mutex); ar 8132 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 8135 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_update_vif_chan(ar, vifs, n_vifs); ar 8137 drivers/net/wireless/ath/ath10k/mac.c mutex_unlock(&ar->conf_mutex); ar 8145 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar; ar 8148 drivers/net/wireless/ath/ath10k/mac.c ar = hw->priv; ar 8150 drivers/net/wireless/ath/ath10k/mac.c list_for_each_entry(peer, &ar->peers, list) ar 8161 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar = arsta->arvif->ar; ar 8163 drivers/net/wireless/ath/ath10k/mac.c if (!ath10k_peer_stats_enabled(ar)) ar 8310 drivers/net/wireless/ath/ath10k/mac.c struct ath10k *ar; ar 8322 drivers/net/wireless/ath/ath10k/mac.c ar = hw->priv; ar 8323 drivers/net/wireless/ath/ath10k/mac.c ar->hw = hw; ar 8324 drivers/net/wireless/ath/ath10k/mac.c ar->ops = ops; ar 8326 drivers/net/wireless/ath/ath10k/mac.c return ar; ar 8329 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_destroy(struct ath10k *ar) ar 8331 drivers/net/wireless/ath/ath10k/mac.c struct ieee80211_ops *ops = ar->ops; ar 8333 drivers/net/wireless/ath/ath10k/mac.c ieee80211_free_hw(ar->hw); ar 8553 drivers/net/wireless/ath/ath10k/mac.c struct ath10k_vif *ath10k_get_arvif(struct ath10k *ar, u32 vdev_id) ar 8562 drivers/net/wireless/ath/ath10k/mac.c ieee80211_iterate_active_interfaces_atomic(ar->hw, ar 8567 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "No VIF found for vdev %d\n", vdev_id); ar 8577 drivers/net/wireless/ath/ath10k/mac.c static u32 ath10k_mac_wrdd_get_mcc(struct ath10k *ar, union acpi_object *wrdd) ar 8588 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "ignoring malformed/unsupported wrdd structure\n"); ar 8613 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_get_wrdd_regulatory(struct ath10k *ar, u16 *rd) ar 8622 drivers/net/wireless/ath/ath10k/mac.c root_handle = ACPI_HANDLE(ar->dev); ar 8628 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 8635 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 8640 drivers/net/wireless/ath/ath10k/mac.c alpha2_code = ath10k_mac_wrdd_get_mcc(ar, wrdd.pointer); ar 8649 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 8660 drivers/net/wireless/ath/ath10k/mac.c static int ath10k_mac_init_rd(struct ath10k *ar) ar 8665 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_get_wrdd_regulatory(ar, &rd); ar 8667 drivers/net/wireless/ath/ath10k/mac.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 8669 drivers/net/wireless/ath/ath10k/mac.c rd = ar->hw_eeprom_rd; ar 8672 drivers/net/wireless/ath/ath10k/mac.c ar->ath_common.regulatory.current_rd = rd; ar 8676 drivers/net/wireless/ath/ath10k/mac.c int ath10k_mac_register(struct ath10k *ar) ar 8704 drivers/net/wireless/ath/ath10k/mac.c if (!is_valid_ether_addr(ar->mac_addr)) { ar 8705 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "invalid MAC address; choosing random\n"); ar 8706 drivers/net/wireless/ath/ath10k/mac.c eth_random_addr(ar->mac_addr); ar 8708 drivers/net/wireless/ath/ath10k/mac.c SET_IEEE80211_PERM_ADDR(ar->hw, ar->mac_addr); ar 8710 drivers/net/wireless/ath/ath10k/mac.c SET_IEEE80211_DEV(ar->hw, ar->dev); ar 8716 drivers/net/wireless/ath/ath10k/mac.c if (ar->phy_capability & WHAL_WLAN_11G_CAPABILITY) { ar 8725 drivers/net/wireless/ath/ath10k/mac.c band = &ar->mac.sbands[NL80211_BAND_2GHZ]; ar 8729 drivers/net/wireless/ath/ath10k/mac.c if (ar->hw_params.cck_rate_map_rev2) { ar 8737 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->bands[NL80211_BAND_2GHZ] = band; ar 8740 drivers/net/wireless/ath/ath10k/mac.c if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY) { ar 8749 drivers/net/wireless/ath/ath10k/mac.c band = &ar->mac.sbands[NL80211_BAND_5GHZ]; ar 8754 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band; ar 8757 drivers/net/wireless/ath/ath10k/mac.c wiphy_read_of_freq_limits(ar->hw->wiphy); ar 8758 drivers/net/wireless/ath/ath10k/mac.c ath10k_mac_setup_ht_vht_cap(ar); ar 8760 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->interface_modes = ar 8765 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->available_antennas_rx = ar->cfg_rx_chainmask; ar 8766 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->available_antennas_tx = ar->cfg_tx_chainmask; ar 8768 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(ATH10K_FW_FEATURE_NO_P2P, ar->normal_mode_fw.fw_file.fw_features)) ar 8769 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->interface_modes |= ar 8774 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SIGNAL_DBM); ar 8777 drivers/net/wireless/ath/ath10k/mac.c ar->running_fw->fw_file.fw_features)) { ar 8778 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SUPPORTS_PS); ar 8779 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SUPPORTS_DYNAMIC_PS); ar 8782 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, MFP_CAPABLE); ar 8783 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, REPORTS_TX_ACK_STATUS); ar 8784 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, HAS_RATE_CONTROL); ar 8785 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, AP_LINK_PS); ar 8786 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SPECTRUM_MGMT); ar 8787 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SUPPORT_FAST_XMIT); ar 8788 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, CONNECTION_MONITOR); ar 8789 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SUPPORTS_PER_STA_GTK); ar 8790 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, WANT_MONITOR_VIF); ar 8791 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA); ar 8792 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, QUEUE_CONTROL); ar 8793 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG); ar 8794 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, REPORTS_LOW_ACK); ar 8796 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) ar 8797 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SW_CRYPTO_CONTROL); ar 8799 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->features |= NL80211_FEATURE_STATIC_SMPS; ar 8800 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; ar 8802 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_DYNAMIC_SMPS) ar 8803 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->features |= NL80211_FEATURE_DYNAMIC_SMPS; ar 8805 drivers/net/wireless/ath/ath10k/mac.c if (ar->ht_cap_info & WMI_HT_CAP_ENABLED) { ar 8806 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, AMPDU_AGGREGATION); ar 8807 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, TX_AMPDU_SETUP_IN_HW); ar 8810 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_scan_ssids = WLAN_SCAN_PARAMS_MAX_SSID; ar 8811 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_scan_ie_len = WLAN_SCAN_PARAMS_MAX_IE_LEN; ar 8813 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_NLO, ar->wmi.svc_map)) { ar 8814 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_sched_scan_reqs = 1; ar 8815 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_sched_scan_ssids = WMI_PNO_MAX_SUPP_NETWORKS; ar 8816 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_match_sets = WMI_PNO_MAX_SUPP_NETWORKS; ar 8817 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_sched_scan_ie_len = WMI_PNO_MAX_IE_LENGTH; ar 8818 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_sched_scan_plans = WMI_PNO_MAX_SCHED_SCAN_PLANS; ar 8819 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_sched_scan_plan_interval = ar 8821 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_sched_scan_plan_iterations = ar 8825 drivers/net/wireless/ath/ath10k/mac.c ar->hw->vif_data_size = sizeof(struct ath10k_vif); ar 8826 drivers/net/wireless/ath/ath10k/mac.c ar->hw->sta_data_size = sizeof(struct ath10k_sta); ar 8827 drivers/net/wireless/ath/ath10k/mac.c ar->hw->txq_data_size = sizeof(struct ath10k_txq); ar 8829 drivers/net/wireless/ath/ath10k/mac.c ar->hw->max_listen_interval = ATH10K_MAX_HW_LISTEN_INTERVAL; ar 8831 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_BEACON_OFFLOAD, ar->wmi.svc_map)) { ar 8832 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->flags |= WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD; ar 8838 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->probe_resp_offload |= ar 8844 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_TDLS, ar->wmi.svc_map) || ar 8845 drivers/net/wireless/ath/ath10k/mac.c test_bit(WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY, ar->wmi.svc_map)) { ar 8846 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_TDLS; ar 8847 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_TDLS_WIDER_BANDWIDTH, ar->wmi.svc_map)) ar 8848 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, TDLS_WIDER_BW); ar 8851 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map)) ar 8852 drivers/net/wireless/ath/ath10k/mac.c ieee80211_hw_set(ar->hw, SUPPORTS_TDLS_BUFFER_STA); ar 8854 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; ar 8855 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH; ar 8856 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_remain_on_channel_duration = 5000; ar 8858 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->flags |= WIPHY_FLAG_AP_UAPSD; ar 8859 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE | ar 8862 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->max_ap_assoc_sta = ar->max_num_stations; ar 8864 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_wow_init(ar); ar 8866 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to init wow: %d\n", ret); ar 8870 drivers/net/wireless/ath/ath10k/mac.c wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_VHT_IBSS); ar 8871 drivers/net/wireless/ath/ath10k/mac.c wiphy_ext_feature_set(ar->hw->wiphy, ar 8874 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map) || ar 8875 drivers/net/wireless/ath/ath10k/mac.c test_bit(WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS, ar->wmi.svc_map)) ar 8876 drivers/net/wireless/ath/ath10k/mac.c wiphy_ext_feature_set(ar->hw->wiphy, ar 8879 drivers/net/wireless/ath/ath10k/mac.c if (ath10k_peer_stats_enabled(ar) || ar 8880 drivers/net/wireless/ath/ath10k/mac.c test_bit(WMI_SERVICE_REPORT_AIRTIME, ar->wmi.svc_map)) ar 8881 drivers/net/wireless/ath/ath10k/mac.c wiphy_ext_feature_set(ar->hw->wiphy, ar 8884 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_RTT_RESPONDER_ROLE, ar->wmi.svc_map)) ar 8885 drivers/net/wireless/ath/ath10k/mac.c wiphy_ext_feature_set(ar->hw->wiphy, ar 8888 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_TX_PWR_PER_PEER, ar->wmi.svc_map)) ar 8889 drivers/net/wireless/ath/ath10k/mac.c wiphy_ext_feature_set(ar->hw->wiphy, ar 8895 drivers/net/wireless/ath/ath10k/mac.c ar->hw->queues = IEEE80211_MAX_QUEUES; ar 8901 drivers/net/wireless/ath/ath10k/mac.c ar->hw->offchannel_tx_hw_queue = IEEE80211_MAX_QUEUES - 1; ar 8903 drivers/net/wireless/ath/ath10k/mac.c switch (ar->running_fw->fw_file.wmi_op_version) { ar 8905 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->iface_combinations = ath10k_if_comb; ar 8906 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->n_iface_combinations = ar 8908 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC); ar 8911 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_ADAPTIVE_OCS, ar->wmi.svc_map)) { ar 8912 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->iface_combinations = ar 8914 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->n_iface_combinations = ar 8917 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->iface_combinations = ath10k_tlv_if_comb; ar 8918 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->n_iface_combinations = ar 8921 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC); ar 8926 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->iface_combinations = ath10k_10x_if_comb; ar 8927 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->n_iface_combinations = ar 8931 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->iface_combinations = ath10k_10_4_if_comb; ar 8932 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->n_iface_combinations = ar 8935 drivers/net/wireless/ath/ath10k/mac.c ar->wmi.svc_map)) { ar 8936 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->iface_combinations = ar 8938 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->n_iface_combinations = ar 8949 drivers/net/wireless/ath/ath10k/mac.c if (!test_bit(ATH10K_FLAG_RAW_MODE, &ar->dev_flags)) ar 8950 drivers/net/wireless/ath/ath10k/mac.c ar->hw->netdev_features = NETIF_F_HW_CSUM; ar 8954 drivers/net/wireless/ath/ath10k/mac.c ar->ath_common.debug_mask = ATH_DBG_DFS; ar 8955 drivers/net/wireless/ath/ath10k/mac.c ar->dfs_detector = dfs_pattern_detector_init(&ar->ath_common, ar 8958 drivers/net/wireless/ath/ath10k/mac.c if (!ar->dfs_detector) ar 8959 drivers/net/wireless/ath/ath10k/mac.c ath10k_warn(ar, "failed to initialise DFS pattern detector\n"); ar 8962 drivers/net/wireless/ath/ath10k/mac.c ret = ath10k_mac_init_rd(ar); ar 8964 drivers/net/wireless/ath/ath10k/mac.c ath10k_err(ar, "failed to derive regdom: %d\n", ret); ar 8969 drivers/net/wireless/ath/ath10k/mac.c if (!ar->hw_params.hw_ops->set_coverage_class) ar 8970 drivers/net/wireless/ath/ath10k/mac.c ar->ops->set_coverage_class = NULL; ar 8972 drivers/net/wireless/ath/ath10k/mac.c ret = ath_regd_init(&ar->ath_common.regulatory, ar->hw->wiphy, ar 8975 drivers/net/wireless/ath/ath10k/mac.c ath10k_err(ar, "failed to initialise regulatory: %i\n", ret); ar 8979 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_SPOOF_MAC_SUPPORT, ar->wmi.svc_map)) { ar 8980 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->features |= ar 8984 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->cipher_suites = cipher_suites; ar 8990 drivers/net/wireless/ath/ath10k/mac.c if (!ar->hw_params.n_cipher_suites || ar 8991 drivers/net/wireless/ath/ath10k/mac.c ar->hw_params.n_cipher_suites > ARRAY_SIZE(cipher_suites)) { ar 8992 drivers/net/wireless/ath/ath10k/mac.c ath10k_err(ar, "invalid hw_params.n_cipher_suites %d\n", ar 8993 drivers/net/wireless/ath/ath10k/mac.c ar->hw_params.n_cipher_suites); ar 8994 drivers/net/wireless/ath/ath10k/mac.c ar->hw_params.n_cipher_suites = 8; ar 8996 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->n_cipher_suites = ar->hw_params.n_cipher_suites; ar 8998 drivers/net/wireless/ath/ath10k/mac.c wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); ar 9000 drivers/net/wireless/ath/ath10k/mac.c ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; ar 9002 drivers/net/wireless/ath/ath10k/mac.c ret = ieee80211_register_hw(ar->hw); ar 9004 drivers/net/wireless/ath/ath10k/mac.c ath10k_err(ar, "failed to register ieee80211: %d\n", ret); ar 9008 drivers/net/wireless/ath/ath10k/mac.c if (test_bit(WMI_SERVICE_PER_PACKET_SW_ENCRYPT, ar->wmi.svc_map)) { ar 9009 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_AP_VLAN); ar 9010 drivers/net/wireless/ath/ath10k/mac.c ar->hw->wiphy->software_iftypes |= BIT(NL80211_IFTYPE_AP_VLAN); ar 9013 drivers/net/wireless/ath/ath10k/mac.c if (!ath_is_world_regd(&ar->ath_common.regulatory)) { ar 9014 drivers/net/wireless/ath/ath10k/mac.c ret = regulatory_hint(ar->hw->wiphy, ar 9015 drivers/net/wireless/ath/ath10k/mac.c ar->ath_common.regulatory.alpha2); ar 9023 drivers/net/wireless/ath/ath10k/mac.c ieee80211_unregister_hw(ar->hw); ar 9026 drivers/net/wireless/ath/ath10k/mac.c if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED) && ar->dfs_detector) ar 9027 drivers/net/wireless/ath/ath10k/mac.c ar->dfs_detector->exit(ar->dfs_detector); ar 9030 drivers/net/wireless/ath/ath10k/mac.c kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels); ar 9031 drivers/net/wireless/ath/ath10k/mac.c kfree(ar->mac.sbands[NL80211_BAND_5GHZ].channels); ar 9033 drivers/net/wireless/ath/ath10k/mac.c SET_IEEE80211_DEV(ar->hw, NULL); ar 9037 drivers/net/wireless/ath/ath10k/mac.c void ath10k_mac_unregister(struct ath10k *ar) ar 9039 drivers/net/wireless/ath/ath10k/mac.c ieee80211_unregister_hw(ar->hw); ar 9041 drivers/net/wireless/ath/ath10k/mac.c if (IS_ENABLED(CONFIG_ATH10K_DFS_CERTIFIED) && ar->dfs_detector) ar 9042 drivers/net/wireless/ath/ath10k/mac.c ar->dfs_detector->exit(ar->dfs_detector); ar 9044 drivers/net/wireless/ath/ath10k/mac.c kfree(ar->mac.sbands[NL80211_BAND_2GHZ].channels); ar 9045 drivers/net/wireless/ath/ath10k/mac.c kfree(ar->mac.sbands[NL80211_BAND_5GHZ].channels); ar 9047 drivers/net/wireless/ath/ath10k/mac.c SET_IEEE80211_DEV(ar->hw, NULL); ar 19 drivers/net/wireless/ath/ath10k/mac.h struct ath10k *ar; ar 32 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_destroy(struct ath10k *ar); ar 33 drivers/net/wireless/ath/ath10k/mac.h int ath10k_mac_register(struct ath10k *ar); ar 34 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_unregister(struct ath10k *ar); ar 35 drivers/net/wireless/ath/ath10k/mac.h struct ath10k_vif *ath10k_get_arvif(struct ath10k *ar, u32 vdev_id); ar 36 drivers/net/wireless/ath/ath10k/mac.h void __ath10k_scan_finish(struct ath10k *ar); ar 37 drivers/net/wireless/ath/ath10k/mac.h void ath10k_scan_finish(struct ath10k *ar); ar 39 drivers/net/wireless/ath/ath10k/mac.h void ath10k_offchan_tx_purge(struct ath10k *ar); ar 41 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mgmt_over_wmi_tx_purge(struct ath10k *ar); ar 43 drivers/net/wireless/ath/ath10k/mac.h void ath10k_halt(struct ath10k *ar); ar 45 drivers/net/wireless/ath/ath10k/mac.h void ath10k_drain_tx(struct ath10k *ar); ar 46 drivers/net/wireless/ath/ath10k/mac.h bool ath10k_mac_is_peer_wep_key_set(struct ath10k *ar, const u8 *addr, ar 51 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_handle_beacon(struct ath10k *ar, struct sk_buff *skb); ar 52 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_handle_beacon_miss(struct ath10k *ar, u32 vdev_id); ar 53 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_handle_tx_pause_vdev(struct ath10k *ar, u32 vdev_id, ar 62 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_tx_lock(struct ath10k *ar, int reason); ar 63 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_tx_unlock(struct ath10k *ar, int reason); ar 66 drivers/net/wireless/ath/ath10k/mac.h bool ath10k_mac_tx_frm_has_freq(struct ath10k *ar); ar 67 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_tx_push_pending(struct ath10k *ar); ar 70 drivers/net/wireless/ath/ath10k/mac.h struct ieee80211_txq *ath10k_mac_txq_lookup(struct ath10k *ar, ar 73 drivers/net/wireless/ath/ath10k/mac.h int ath10k_mac_ext_resource_config(struct ath10k *ar, u32 val); ar 74 drivers/net/wireless/ath/ath10k/mac.h void ath10k_mac_wait_tx_complete(struct ath10k *ar); ar 73 drivers/net/wireless/ath/ath10k/p2p.c struct ath10k *ar = arvif->ar; ar 75 drivers/net/wireless/ath/ath10k/p2p.c lockdep_assert_held(&ar->data_lock); ar 86 drivers/net/wireless/ath/ath10k/p2p.c struct ath10k *ar = arvif->ar; ar 90 drivers/net/wireless/ath/ath10k/p2p.c lockdep_assert_held(&ar->data_lock); ar 109 drivers/net/wireless/ath/ath10k/p2p.c struct ath10k *ar = arvif->ar; ar 111 drivers/net/wireless/ath/ath10k/p2p.c spin_lock_bh(&ar->data_lock); ar 113 drivers/net/wireless/ath/ath10k/p2p.c spin_unlock_bh(&ar->data_lock); ar 133 drivers/net/wireless/ath/ath10k/p2p.c void ath10k_p2p_noa_update_by_vdev_id(struct ath10k *ar, u32 vdev_id, ar 141 drivers/net/wireless/ath/ath10k/p2p.c ieee80211_iterate_active_interfaces_atomic(ar->hw, ar 14 drivers/net/wireless/ath/ath10k/p2p.h void ath10k_p2p_noa_update_by_vdev_id(struct ath10k *ar, u32 vdev_id, ar 100 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_buffer_cleanup(struct ath10k *ar); ar 101 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_cold_reset(struct ath10k *ar); ar 102 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_safe_chip_reset(struct ath10k *ar); ar 103 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_init_irq(struct ath10k *ar); ar 104 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_deinit_irq(struct ath10k *ar); ar 105 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_request_irq(struct ath10k *ar); ar 106 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_free_irq(struct ath10k *ar); ar 107 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_bmi_wait(struct ath10k *ar, ar 111 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_qca99x0_chip_reset(struct ath10k *ar); ar 429 drivers/net/wireless/ath/ath10k/pci.c static bool ath10k_pci_is_awake(struct ath10k *ar) ar 431 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 438 drivers/net/wireless/ath/ath10k/pci.c static void __ath10k_pci_wake(struct ath10k *ar) ar 440 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 444 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI_PS, "pci ps wake reg refcount %lu awake %d\n", ar 452 drivers/net/wireless/ath/ath10k/pci.c static void __ath10k_pci_sleep(struct ath10k *ar) ar 454 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 458 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI_PS, "pci ps sleep reg refcount %lu awake %d\n", ar 467 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_wake_wait(struct ath10k *ar) ar 473 drivers/net/wireless/ath/ath10k/pci.c if (ath10k_pci_is_awake(ar)) { ar 475 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "device wakeup took %d ms which is unusually long, otherwise it works normally.\n", ar 490 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_force_wake(struct ath10k *ar) ar 492 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 506 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wake_wait(ar); ar 516 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_force_sleep(struct ath10k *ar) ar 518 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 531 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_wake(struct ath10k *ar) ar 533 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 542 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI_PS, "pci ps wake refcount %lu awake %d\n", ar 549 drivers/net/wireless/ath/ath10k/pci.c __ath10k_pci_wake(ar); ar 551 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wake_wait(ar); ar 566 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_sleep(struct ath10k *ar) ar 568 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 576 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI_PS, "pci ps sleep refcount %lu awake %d\n", ar 594 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ar_pci->ar; ar 599 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI_PS, "pci ps timer refcount %lu awake %d\n", ar 605 drivers/net/wireless/ath/ath10k/pci.c __ath10k_pci_sleep(ar); ar 611 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_sleep_sync(struct ath10k *ar) ar 613 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 617 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_force_sleep(ar); ar 625 drivers/net/wireless/ath/ath10k/pci.c __ath10k_pci_sleep(ar); ar 629 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_bus_pci_write32(struct ath10k *ar, u32 offset, u32 value) ar 631 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 635 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "refusing to write mmio out of bounds at 0x%08x - 0x%08zx (max 0x%08zx)\n", ar 640 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wake(ar); ar 642 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wake target for write32 of 0x%08x at 0x%08x: %d\n", ar 648 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_sleep(ar); ar 651 drivers/net/wireless/ath/ath10k/pci.c static u32 ath10k_bus_pci_read32(struct ath10k *ar, u32 offset) ar 653 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 658 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "refusing to read mmio out of bounds at 0x%08x - 0x%08zx (max 0x%08zx)\n", ar 663 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wake(ar); ar 665 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wake target for read32 at 0x%08x: %d\n", ar 671 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_sleep(ar); ar 676 drivers/net/wireless/ath/ath10k/pci.c inline void ath10k_pci_write32(struct ath10k *ar, u32 offset, u32 value) ar 678 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 680 drivers/net/wireless/ath/ath10k/pci.c ce->bus_ops->write32(ar, offset, value); ar 683 drivers/net/wireless/ath/ath10k/pci.c inline u32 ath10k_pci_read32(struct ath10k *ar, u32 offset) ar 685 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 687 drivers/net/wireless/ath/ath10k/pci.c return ce->bus_ops->read32(ar, offset); ar 690 drivers/net/wireless/ath/ath10k/pci.c u32 ath10k_pci_soc_read32(struct ath10k *ar, u32 addr) ar 692 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_read32(ar, RTC_SOC_BASE_ADDRESS + addr); ar 695 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_soc_write32(struct ath10k *ar, u32 addr, u32 val) ar 697 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, RTC_SOC_BASE_ADDRESS + addr, val); ar 700 drivers/net/wireless/ath/ath10k/pci.c u32 ath10k_pci_reg_read32(struct ath10k *ar, u32 addr) ar 702 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_read32(ar, PCIE_LOCAL_BASE_ADDRESS + addr); ar 705 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_reg_write32(struct ath10k *ar, u32 addr, u32 val) ar 707 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, PCIE_LOCAL_BASE_ADDRESS + addr, val); ar 710 drivers/net/wireless/ath/ath10k/pci.c bool ath10k_pci_irq_pending(struct ath10k *ar) ar 715 drivers/net/wireless/ath/ath10k/pci.c cause = ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + ar 723 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_disable_and_clear_legacy_irq(struct ath10k *ar) ar 729 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + PCIE_INTR_ENABLE_ADDRESS, ar 731 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + PCIE_INTR_CLR_ADDRESS, ar 737 drivers/net/wireless/ath/ath10k/pci.c (void)ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + ar 741 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_enable_legacy_irq(struct ath10k *ar) ar 743 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + ar 750 drivers/net/wireless/ath/ath10k/pci.c (void)ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + ar 754 drivers/net/wireless/ath/ath10k/pci.c static inline const char *ath10k_pci_get_irq_method(struct ath10k *ar) ar 756 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 766 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = pipe->hif_ce_state; ar 767 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 779 drivers/net/wireless/ath/ath10k/pci.c paddr = dma_map_single(ar->dev, skb->data, ar 782 drivers/net/wireless/ath/ath10k/pci.c if (unlikely(dma_mapping_error(ar->dev, paddr))) { ar 783 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to dma map pci rx buf\n"); ar 794 drivers/net/wireless/ath/ath10k/pci.c dma_unmap_single(ar->dev, paddr, skb->len + skb_tailroom(skb), ar 805 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = pipe->hif_ce_state; ar 806 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 807 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 826 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to post pci rx buf: %d\n", ret); ar 835 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_rx_post(struct ath10k *ar) ar 837 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 847 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ar_pci->ar; ar 849 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_rx_post(ar); ar 852 drivers/net/wireless/ath/ath10k/pci.c static u32 ath10k_pci_qca988x_targ_cpu_to_ce_addr(struct ath10k *ar, u32 addr) ar 856 drivers/net/wireless/ath/ath10k/pci.c val = (ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + CORE_CTRL_ADDRESS) ar 867 drivers/net/wireless/ath/ath10k/pci.c static u32 ath10k_pci_qca6174_targ_cpu_to_ce_addr(struct ath10k *ar, u32 addr) ar 871 drivers/net/wireless/ath/ath10k/pci.c val = (ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + CORE_CTRL_ADDRESS) ar 877 drivers/net/wireless/ath/ath10k/pci.c static u32 ath10k_pci_qca99x0_targ_cpu_to_ce_addr(struct ath10k *ar, u32 addr) ar 881 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, PCIE_BAR_REG_ADDRESS); ar 886 drivers/net/wireless/ath/ath10k/pci.c static u32 ath10k_pci_targ_cpu_to_ce_addr(struct ath10k *ar, u32 addr) ar 888 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 893 drivers/net/wireless/ath/ath10k/pci.c return ar_pci->targ_cpu_to_ce_addr(ar, addr); ar 901 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_diag_read_mem(struct ath10k *ar, u32 address, void *data, ar 904 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 926 drivers/net/wireless/ath/ath10k/pci.c data_buf = dma_alloc_coherent(ar->dev, alloc_nbytes, &ce_data_base, ar 940 drivers/net/wireless/ath/ath10k/pci.c address = ath10k_pci_targ_cpu_to_ce_addr(ar, address); ar 1000 drivers/net/wireless/ath/ath10k/pci.c dma_free_coherent(ar->dev, alloc_nbytes, data_buf, ar 1008 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_diag_read32(struct ath10k *ar, u32 address, u32 *value) ar 1013 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read_mem(ar, address, &val, sizeof(val)); ar 1019 drivers/net/wireless/ath/ath10k/pci.c static int __ath10k_pci_diag_read_hi(struct ath10k *ar, void *dest, ar 1027 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, host_addr, &addr); ar 1029 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to get memcpy hi address for firmware address %d: %d\n", ar 1034 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read_mem(ar, addr, dest, len); ar 1036 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to memcpy firmware memory from %d (%d B): %d\n", ar 1044 drivers/net/wireless/ath/ath10k/pci.c #define ath10k_pci_diag_read_hi(ar, dest, src, len) \ ar 1045 drivers/net/wireless/ath/ath10k/pci.c __ath10k_pci_diag_read_hi(ar, dest, HI_ITEM(src), len) ar 1047 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_diag_write_mem(struct ath10k *ar, u32 address, ar 1050 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1070 drivers/net/wireless/ath/ath10k/pci.c data_buf = dma_alloc_coherent(ar->dev, alloc_nbytes, &ce_data_base, ar 1087 drivers/net/wireless/ath/ath10k/pci.c address = ath10k_pci_targ_cpu_to_ce_addr(ar, address); ar 1150 drivers/net/wireless/ath/ath10k/pci.c dma_free_coherent(ar->dev, alloc_nbytes, data_buf, ar 1155 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to write diag value at 0x%x: %d\n", ar 1163 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_diag_write32(struct ath10k *ar, u32 address, u32 value) ar 1167 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_diag_write_mem(ar, address, &val, sizeof(val)); ar 1173 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ce_state->ar; ar 1187 drivers/net/wireless/ath/ath10k/pci.c ath10k_htc_tx_completion_handler(ar, skb); ar 1191 drivers/net/wireless/ath/ath10k/pci.c void (*callback)(struct ath10k *ar, ar 1194 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ce_state->ar; ar 1195 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1207 drivers/net/wireless/ath/ath10k/pci.c dma_unmap_single(ar->dev, ATH10K_SKB_RXCB(skb)->paddr, ar 1211 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "rxed more than expected (nbytes %d, max %d)", ar 1222 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, "pci rx ce pipe %d len %d\n", ar 1224 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg_dump(ar, ATH10K_DBG_PCI_DUMP, NULL, "pci rx: ", ar 1227 drivers/net/wireless/ath/ath10k/pci.c callback(ar, skb); ar 1234 drivers/net/wireless/ath/ath10k/pci.c void (*callback)(struct ath10k *ar, ar 1237 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ce_state->ar; ar 1238 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1258 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "rxed more than expected (nbytes %d, max %d)", ar 1263 drivers/net/wireless/ath/ath10k/pci.c dma_sync_single_for_cpu(ar->dev, ATH10K_SKB_RXCB(skb)->paddr, ar 1271 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, "pci rx ce pipe %d len %d\n", ar 1273 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg_dump(ar, ATH10K_DBG_PCI_DUMP, NULL, "pci rx: ", ar 1277 drivers/net/wireless/ath/ath10k/pci.c callback(ar, skb); ar 1283 drivers/net/wireless/ath/ath10k/pci.c dma_sync_single_for_device(ar->dev, ATH10K_SKB_RXCB(skb)->paddr, ar 1301 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_per_engine_service(ce_state->ar, 4); ar 1318 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ce_state->ar; ar 1326 drivers/net/wireless/ath/ath10k/pci.c dma_unmap_single(ar->dev, ATH10K_SKB_CB(skb)->paddr, ar 1328 drivers/net/wireless/ath/ath10k/pci.c ath10k_htt_hif_tx_complete(ar, skb); ar 1332 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_htt_rx_deliver(struct ath10k *ar, struct sk_buff *skb) ar 1335 drivers/net/wireless/ath/ath10k/pci.c ath10k_htt_t2h_msg_handler(ar, skb); ar 1344 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_per_engine_service(ce_state->ar, 4); ar 1349 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_hif_tx_sg(struct ath10k *ar, u8 pipe_id, ar 1352 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1353 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1375 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, ar 1378 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg_dump(ar, ATH10K_DBG_PCI_DUMP, NULL, "pci tx data: ", ar 1393 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, ar 1396 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg_dump(ar, ATH10K_DBG_PCI_DUMP, NULL, "pci tx data: ", ar 1419 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_hif_diag_read(struct ath10k *ar, u32 address, void *buf, ar 1422 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_diag_read_mem(ar, address, buf, buf_len); ar 1425 drivers/net/wireless/ath/ath10k/pci.c u16 ath10k_pci_hif_get_free_queue_number(struct ath10k *ar, u8 pipe) ar 1427 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1429 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, "pci hif get free queue number\n"); ar 1434 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_dump_registers(struct ath10k *ar, ar 1440 drivers/net/wireless/ath/ath10k/pci.c lockdep_assert_held(&ar->dump_mutex); ar 1442 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read_hi(ar, ®_dump_values[0], ar 1446 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to read firmware dump area: %d\n", ret); ar 1452 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "firmware register dump:\n"); ar 1454 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "[%02d]: 0x%08X 0x%08X 0x%08X 0x%08X\n", ar 1468 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_dump_memory_section(struct ath10k *ar, ar 1482 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "incorrect memdump region 0x%x with section start address 0x%x.\n", ar 1503 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "incorrect ramdump format with start address 0x%x and stop address 0x%x\n", ar 1517 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "next ramdump section 0x%x is smaller than current end address 0x%x\n", ar 1527 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "ramdump buffer is too small: %zu\n", buf_len); ar 1534 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read_mem(ar, cur_section->start, ar 1537 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to read ramdump from section 0x%x: %d\n", ar 1563 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_set_ram_config(struct ath10k *ar, u32 config) ar 1567 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + ar 1570 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + ar 1573 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to set RAM config from 0x%x to 0x%x\n", ar 1582 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_dump_memory_sram(struct ath10k *ar, ar 1586 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1601 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_dump_memory_reg(struct ath10k *ar, ar 1605 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1609 drivers/net/wireless/ath/ath10k/pci.c mutex_lock(&ar->conf_mutex); ar 1610 drivers/net/wireless/ath/ath10k/pci.c if (ar->state != ATH10K_STATE_ON) { ar 1611 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "Skipping pci_dump_memory_reg invalid state\n"); ar 1621 drivers/net/wireless/ath/ath10k/pci.c mutex_unlock(&ar->conf_mutex); ar 1626 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_dump_memory_generic(struct ath10k *ar, ar 1634 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_dump_memory_section(ar, ar 1642 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read_mem(ar, ar 1647 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to copy ramdump region %s: %d\n", ar 1655 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_dump_memory(struct ath10k *ar, ar 1666 drivers/net/wireless/ath/ath10k/pci.c lockdep_assert_held(&ar->dump_mutex); ar 1671 drivers/net/wireless/ath/ath10k/pci.c mem_layout = ath10k_coredump_get_mem_layout(ar); ar 1686 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "memory region %s size %d is larger that remaining ramdump buffer size %zu\n", ar 1700 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_set_ram_config(ar, shift); ar 1702 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to switch ram config to IRAM for section %s: %d\n", ar 1715 drivers/net/wireless/ath/ath10k/pci.c count = ath10k_pci_dump_memory_sram(ar, current_region, buf); ar 1718 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_dump_memory_reg(ar, current_region, buf); ar 1725 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_dump_memory_generic(ar, current_region, buf); ar 1753 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ar_pci->ar; ar 1756 drivers/net/wireless/ath/ath10k/pci.c mutex_lock(&ar->dump_mutex); ar 1758 drivers/net/wireless/ath/ath10k/pci.c spin_lock_bh(&ar->data_lock); ar 1759 drivers/net/wireless/ath/ath10k/pci.c ar->stats.fw_crash_counter++; ar 1760 drivers/net/wireless/ath/ath10k/pci.c spin_unlock_bh(&ar->data_lock); ar 1762 drivers/net/wireless/ath/ath10k/pci.c crash_data = ath10k_coredump_new(ar); ar 1769 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "firmware crashed! (guid %s)\n", guid); ar 1770 drivers/net/wireless/ath/ath10k/pci.c ath10k_print_driver_info(ar); ar 1771 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_dump_registers(ar, crash_data); ar 1772 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_dump_registers(ar, crash_data); ar 1773 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_dump_memory(ar, crash_data); ar 1775 drivers/net/wireless/ath/ath10k/pci.c mutex_unlock(&ar->dump_mutex); ar 1777 drivers/net/wireless/ath/ath10k/pci.c queue_work(ar->workqueue, &ar->restart_work); ar 1780 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_fw_crashed_dump(struct ath10k *ar) ar 1782 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1784 drivers/net/wireless/ath/ath10k/pci.c queue_work(ar->workqueue, &ar_pci->dump_work); ar 1787 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_hif_send_complete_check(struct ath10k *ar, u8 pipe, ar 1790 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, "pci hif send complete check\n"); ar 1801 drivers/net/wireless/ath/ath10k/pci.c resources = ath10k_pci_hif_get_free_queue_number(ar, pipe); ar 1810 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_per_engine_service(ar, pipe); ar 1813 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_rx_retry_sync(struct ath10k *ar) ar 1815 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1820 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_hif_map_service_to_pipe(struct ath10k *ar, u16 service_id, ar 1827 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, "pci hif map service\n"); ar 1865 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_hif_get_default_pipe(struct ath10k *ar, ar 1868 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, "pci hif get default pipe\n"); ar 1870 drivers/net/wireless/ath/ath10k/pci.c (void)ath10k_pci_hif_map_service_to_pipe(ar, ar 1875 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_irq_msi_fw_mask(struct ath10k *ar) ar 1879 drivers/net/wireless/ath/ath10k/pci.c switch (ar->hw_rev) { ar 1884 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + ar 1887 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + ar 1903 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_irq_msi_fw_unmask(struct ath10k *ar) ar 1907 drivers/net/wireless/ath/ath10k/pci.c switch (ar->hw_rev) { ar 1912 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, SOC_CORE_BASE_ADDRESS + ar 1915 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + ar 1931 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_irq_disable(struct ath10k *ar) ar 1933 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_disable_interrupts(ar); ar 1934 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_disable_and_clear_legacy_irq(ar); ar 1935 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_msi_fw_mask(ar); ar 1938 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_irq_sync(struct ath10k *ar) ar 1940 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1945 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_irq_enable(struct ath10k *ar) ar 1947 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_enable_interrupts(ar); ar 1948 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_enable_legacy_irq(ar); ar 1949 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_msi_fw_unmask(ar); ar 1952 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_hif_start(struct ath10k *ar) ar 1954 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 1956 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif start\n"); ar 1958 drivers/net/wireless/ath/ath10k/pci.c napi_enable(&ar->napi); ar 1960 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_enable(ar); ar 1961 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_rx_post(ar); ar 1971 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar; ar 1977 drivers/net/wireless/ath/ath10k/pci.c ar = pci_pipe->hif_ce_state; ar 1994 drivers/net/wireless/ath/ath10k/pci.c dma_unmap_single(ar->dev, ATH10K_SKB_RXCB(skb)->paddr, ar 2003 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar; ar 2009 drivers/net/wireless/ath/ath10k/pci.c ar = pci_pipe->hif_ce_state; ar 2026 drivers/net/wireless/ath/ath10k/pci.c ath10k_htc_tx_completion_handler(ar, skb); ar 2038 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_buffer_cleanup(struct ath10k *ar) ar 2040 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2052 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_ce_deinit(struct ath10k *ar) ar 2057 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_deinit_pipe(ar, i); ar 2060 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_flush(struct ath10k *ar) ar 2062 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_rx_retry_sync(ar); ar 2063 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_buffer_cleanup(ar); ar 2066 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_hif_stop(struct ath10k *ar) ar 2068 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2071 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif stop\n"); ar 2073 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_disable(ar); ar 2074 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_sync(ar); ar 2075 drivers/net/wireless/ath/ath10k/pci.c napi_synchronize(&ar->napi); ar 2076 drivers/net/wireless/ath/ath10k/pci.c napi_disable(&ar->napi); ar 2089 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_safe_chip_reset(ar); ar 2091 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_flush(ar); ar 2098 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_hif_exchange_bmi_msg(struct ath10k *ar, ar 2102 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2125 drivers/net/wireless/ath/ath10k/pci.c req_paddr = dma_map_single(ar->dev, treq, req_len, DMA_TO_DEVICE); ar 2126 drivers/net/wireless/ath/ath10k/pci.c ret = dma_mapping_error(ar->dev, req_paddr); ar 2139 drivers/net/wireless/ath/ath10k/pci.c resp_paddr = dma_map_single(ar->dev, tresp, *resp_len, ar 2141 drivers/net/wireless/ath/ath10k/pci.c ret = dma_mapping_error(ar->dev, resp_paddr); ar 2157 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_bmi_wait(ar, ce_tx, ce_rx, &xfer); ar 2175 drivers/net/wireless/ath/ath10k/pci.c dma_unmap_single(ar->dev, resp_paddr, ar 2179 drivers/net/wireless/ath/ath10k/pci.c dma_unmap_single(ar->dev, req_paddr, req_len, DMA_TO_DEVICE); ar 2204 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = ce_state->ar; ar 2216 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "unexpected: BMI data received; ignoring\n"); ar 2224 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_bmi_wait(struct ath10k *ar, ar 2251 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BMI, ar 2261 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_wake_target_cpu(struct ath10k *ar) ar 2266 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, addr); ar 2268 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, addr, val); ar 2273 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_get_num_banks(struct ath10k *ar) ar 2275 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2287 drivers/net/wireless/ath/ath10k/pci.c switch (MS(ar->bus_param.chip_id, SOC_CHIP_ID_REV)) { ar 2305 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "unknown number of banks, assuming 1\n"); ar 2309 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_bus_get_num_banks(struct ath10k *ar) ar 2311 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 2313 drivers/net/wireless/ath/ath10k/pci.c return ce->bus_ops->get_num_banks(ar); ar 2316 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_init_config(struct ath10k *ar) ar 2334 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, interconnect_targ_addr, ar 2337 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to get pcie state addr: %d\n", ret); ar 2343 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Invalid pcie state addr\n"); ar 2347 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, (pcie_state_targ_addr + ar 2352 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to get pipe cfg addr: %d\n", ret); ar 2358 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Invalid pipe cfg addr\n"); ar 2362 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_write_mem(ar, pipe_cfg_targ_addr, ar 2368 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to write pipe cfg: %d\n", ret); ar 2372 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, (pcie_state_targ_addr + ar 2377 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to get svc/pipe map: %d\n", ret); ar 2383 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Invalid svc_to_pipe map\n"); ar 2387 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_write_mem(ar, svc_to_pipe_map, ar 2391 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to write svc/pipe map: %d\n", ret); ar 2395 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, (pcie_state_targ_addr + ar 2400 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to get pcie config_flags: %d\n", ret); ar 2406 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_write32(ar, (pcie_state_targ_addr + ar 2411 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to write pcie config_flags: %d\n", ret); ar 2418 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, ealloc_targ_addr, &ealloc_value); ar 2420 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to get early alloc val: %d\n", ret); ar 2427 drivers/net/wireless/ath/ath10k/pci.c ealloc_value |= ((ath10k_bus_get_num_banks(ar) << ar 2431 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_write32(ar, ealloc_targ_addr, ealloc_value); ar 2433 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to set early alloc val: %d\n", ret); ar 2440 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, flag2_targ_addr, &flag2_value); ar 2442 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to get option val: %d\n", ret); ar 2448 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_write32(ar, flag2_targ_addr, flag2_value); ar 2450 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "Failed to set option val: %d\n", ret); ar 2457 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_override_ce_config(struct ath10k *ar) ar 2480 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_alloc_pipes(struct ath10k *ar) ar 2482 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2484 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 2491 drivers/net/wireless/ath/ath10k/pci.c pipe->hif_ce_state = ar; ar 2493 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_ce_alloc_pipe(ar, i, &host_ce_config_wlan[i]); ar 2495 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to allocate copy engine pipe %d: %d\n", ar 2512 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_free_pipes(struct ath10k *ar) ar 2517 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_free_pipe(ar, i); ar 2520 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_init_pipes(struct ath10k *ar) ar 2525 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_ce_init_pipe(ar, i, &host_ce_config_wlan[i]); ar 2527 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to initialize copy engine pipe %d: %d\n", ar 2536 drivers/net/wireless/ath/ath10k/pci.c static bool ath10k_pci_has_fw_crashed(struct ath10k *ar) ar 2538 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_read32(ar, FW_INDICATOR_ADDRESS) & ar 2542 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_fw_crashed_clear(struct ath10k *ar) ar 2546 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, FW_INDICATOR_ADDRESS); ar 2548 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, FW_INDICATOR_ADDRESS, val); ar 2551 drivers/net/wireless/ath/ath10k/pci.c static bool ath10k_pci_has_device_gone(struct ath10k *ar) ar 2555 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, FW_INDICATOR_ADDRESS); ar 2560 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_warm_reset_si0(struct ath10k *ar) ar 2564 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_soc_read32(ar, SOC_RESET_CONTROL_ADDRESS); ar 2565 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_soc_write32(ar, SOC_RESET_CONTROL_ADDRESS, ar 2567 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_soc_read32(ar, SOC_RESET_CONTROL_ADDRESS); ar 2571 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_soc_read32(ar, SOC_RESET_CONTROL_ADDRESS); ar 2572 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_soc_write32(ar, SOC_RESET_CONTROL_ADDRESS, ar 2574 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_soc_read32(ar, SOC_RESET_CONTROL_ADDRESS); ar 2579 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_warm_reset_cpu(struct ath10k *ar) ar 2583 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, FW_INDICATOR_ADDRESS, 0); ar 2585 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, RTC_SOC_BASE_ADDRESS + ar 2587 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, RTC_SOC_BASE_ADDRESS + SOC_RESET_CONTROL_ADDRESS, ar 2591 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_warm_reset_ce(struct ath10k *ar) ar 2595 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, RTC_SOC_BASE_ADDRESS + ar 2598 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, RTC_SOC_BASE_ADDRESS + SOC_RESET_CONTROL_ADDRESS, ar 2601 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, RTC_SOC_BASE_ADDRESS + SOC_RESET_CONTROL_ADDRESS, ar 2605 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_warm_reset_clear_lf(struct ath10k *ar) ar 2609 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, RTC_SOC_BASE_ADDRESS + ar 2611 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, RTC_SOC_BASE_ADDRESS + ar 2616 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_warm_reset(struct ath10k *ar) ar 2620 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot warm reset\n"); ar 2622 drivers/net/wireless/ath/ath10k/pci.c spin_lock_bh(&ar->data_lock); ar 2623 drivers/net/wireless/ath/ath10k/pci.c ar->stats.fw_warm_reset_counter++; ar 2624 drivers/net/wireless/ath/ath10k/pci.c spin_unlock_bh(&ar->data_lock); ar 2626 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_disable(ar); ar 2633 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_warm_reset_si0(ar); ar 2634 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_warm_reset_cpu(ar); ar 2635 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_init_pipes(ar); ar 2636 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_wait_for_target_init(ar); ar 2638 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_warm_reset_clear_lf(ar); ar 2639 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_warm_reset_ce(ar); ar 2640 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_warm_reset_cpu(ar); ar 2641 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_init_pipes(ar); ar 2643 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wait_for_target_init(ar); ar 2645 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wait for target init: %d\n", ret); ar 2649 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot warm reset complete\n"); ar 2654 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_qca99x0_soft_chip_reset(struct ath10k *ar) ar 2656 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_disable(ar); ar 2657 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_qca99x0_chip_reset(ar); ar 2660 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_safe_chip_reset(struct ath10k *ar) ar 2662 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2667 drivers/net/wireless/ath/ath10k/pci.c return ar_pci->pci_soft_reset(ar); ar 2670 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_qca988x_chip_reset(struct ath10k *ar) ar 2675 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot 988x chip reset\n"); ar 2685 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_warm_reset(ar); ar 2687 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to warm reset attempt %d of %d: %d\n", ar 2702 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_init_pipes(ar); ar 2704 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to init copy engine: %d\n", ar 2709 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_diag_read32(ar, QCA988X_HOST_INTEREST_ADDRESS, ar 2712 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to poke copy engine: %d\n", ar 2717 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot chip reset complete (warm)\n"); ar 2722 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "refusing cold reset as requested\n"); ar 2726 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_cold_reset(ar); ar 2728 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to cold reset: %d\n", ret); ar 2732 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wait_for_target_init(ar); ar 2734 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wait for target after cold reset: %d\n", ar 2739 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot qca988x chip reset complete (cold)\n"); ar 2744 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_qca6174_chip_reset(struct ath10k *ar) ar 2748 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot qca6174 chip reset\n"); ar 2752 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_cold_reset(ar); ar 2754 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to cold reset: %d\n", ret); ar 2758 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wait_for_target_init(ar); ar 2760 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wait for target after cold reset: %d\n", ar 2765 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_warm_reset(ar); ar 2767 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to warm reset: %d\n", ret); ar 2771 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot qca6174 chip reset complete (cold)\n"); ar 2776 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_qca99x0_chip_reset(struct ath10k *ar) ar 2780 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot qca99x0 chip reset\n"); ar 2782 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_cold_reset(ar); ar 2784 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to cold reset: %d\n", ret); ar 2788 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wait_for_target_init(ar); ar 2790 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wait for target after cold reset: %d\n", ar 2795 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot qca99x0 chip reset complete (cold)\n"); ar 2800 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_chip_reset(struct ath10k *ar) ar 2802 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2807 drivers/net/wireless/ath/ath10k/pci.c return ar_pci->pci_hard_reset(ar); ar 2810 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_hif_power_up(struct ath10k *ar, ar 2813 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2816 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif power up\n"); ar 2833 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_chip_reset(ar); ar 2835 drivers/net/wireless/ath/ath10k/pci.c if (ath10k_pci_has_fw_crashed(ar)) { ar 2836 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "firmware crashed during chip reset\n"); ar 2837 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_fw_crashed_clear(ar); ar 2838 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_fw_crashed_dump(ar); ar 2841 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to reset chip: %d\n", ret); ar 2845 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_init_pipes(ar); ar 2847 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to initialize CE: %d\n", ret); ar 2851 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_init_config(ar); ar 2853 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to setup init config: %d\n", ret); ar 2857 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_wake_target_cpu(ar); ar 2859 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "could not wake up target CPU: %d\n", ret); ar 2866 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_ce_deinit(ar); ar 2872 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_hif_power_down(struct ath10k *ar) ar 2874 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif power down\n"); ar 2881 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_hif_suspend(struct ath10k *ar) ar 2887 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_suspend(struct ath10k *ar) ar 2894 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_sleep_sync(ar); ar 2899 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_hif_resume(struct ath10k *ar) ar 2905 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_resume(struct ath10k *ar) ar 2907 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 2912 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_force_wake(ar); ar 2914 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to wake up target: %d\n", ret); ar 2945 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_enable_eeprom(struct ath10k *ar) ar 2948 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_soc_write32(ar, CLOCK_CONTROL_OFFSET, 0x0); ar 2951 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, ar 2958 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, ar 2964 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, ar 2970 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, ar 2981 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_read_eeprom(struct ath10k *ar, u16 addr, u8 *out) ar 2990 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SI_BASE_ADDRESS + SI_TX_DATA0_OFFSET, reg); ar 2993 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SI_BASE_ADDRESS + SI_CS_OFFSET, ar 3002 drivers/net/wireless/ath/ath10k/pci.c reg = ath10k_pci_read32(ar, SI_BASE_ADDRESS + SI_CS_OFFSET); ar 3011 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "timeout while reading device EEPROM at %04x\n", ar 3017 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SI_BASE_ADDRESS + SI_CS_OFFSET, reg); ar 3020 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to read device EEPROM at %04x\n", addr); ar 3025 drivers/net/wireless/ath/ath10k/pci.c reg = ath10k_pci_read32(ar, SI_BASE_ADDRESS + SI_RX_DATA0_OFFSET); ar 3031 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_hif_fetch_cal_eeprom(struct ath10k *ar, void **data, ar 3038 drivers/net/wireless/ath/ath10k/pci.c if (!QCA_REV_9887(ar)) ar 3041 drivers/net/wireless/ath/ath10k/pci.c calsize = ar->hw_params.cal_data_len; ar 3046 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_enable_eeprom(ar); ar 3049 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_read_eeprom(ar, i, &caldata[i]); ar 3095 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = arg; ar 3096 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3099 drivers/net/wireless/ath/ath10k/pci.c if (ath10k_pci_has_device_gone(ar)) ar 3102 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_force_wake(ar); ar 3104 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wake device up on irq: %d\n", ret); ar 3109 drivers/net/wireless/ath/ath10k/pci.c !ath10k_pci_irq_pending(ar)) ar 3112 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_disable_and_clear_legacy_irq(ar); ar 3113 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_msi_fw_mask(ar); ar 3114 drivers/net/wireless/ath/ath10k/pci.c napi_schedule(&ar->napi); ar 3121 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = container_of(ctx, struct ath10k, napi); ar 3124 drivers/net/wireless/ath/ath10k/pci.c if (ath10k_pci_has_fw_crashed(ar)) { ar 3125 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_fw_crashed_clear(ar); ar 3126 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_fw_crashed_dump(ar); ar 3131 drivers/net/wireless/ath/ath10k/pci.c ath10k_ce_per_engine_service_any(ar); ar 3133 drivers/net/wireless/ath/ath10k/pci.c done = ath10k_htt_txrx_compl_task(ar, budget); ar 3145 drivers/net/wireless/ath/ath10k/pci.c if (ath10k_ce_interrupt_summary(ar)) { ar 3149 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_enable_legacy_irq(ar); ar 3150 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_msi_fw_unmask(ar); ar 3157 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_request_irq_msi(struct ath10k *ar) ar 3159 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3164 drivers/net/wireless/ath/ath10k/pci.c IRQF_SHARED, "ath10k_pci", ar); ar 3166 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to request MSI irq %d: %d\n", ar 3174 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_request_irq_legacy(struct ath10k *ar) ar 3176 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3181 drivers/net/wireless/ath/ath10k/pci.c IRQF_SHARED, "ath10k_pci", ar); ar 3183 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to request legacy irq %d: %d\n", ar 3191 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_request_irq(struct ath10k *ar) ar 3193 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3197 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_request_irq_legacy(ar); ar 3199 drivers/net/wireless/ath/ath10k/pci.c return ath10k_pci_request_irq_msi(ar); ar 3205 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_free_irq(struct ath10k *ar) ar 3207 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3209 drivers/net/wireless/ath/ath10k/pci.c free_irq(ar_pci->pdev->irq, ar); ar 3212 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_init_napi(struct ath10k *ar) ar 3214 drivers/net/wireless/ath/ath10k/pci.c netif_napi_add(&ar->napi_dev, &ar->napi, ath10k_pci_napi_poll, ar 3218 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_init_irq(struct ath10k *ar) ar 3220 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3223 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_init_napi(ar); ar 3226 drivers/net/wireless/ath/ath10k/pci.c ath10k_info(ar, "limiting irq mode to: %d\n", ar 3250 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + PCIE_INTR_ENABLE_ADDRESS, ar 3256 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_deinit_irq_legacy(struct ath10k *ar) ar 3258 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_write32(ar, SOC_CORE_BASE_ADDRESS + PCIE_INTR_ENABLE_ADDRESS, ar 3262 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_deinit_irq(struct ath10k *ar) ar 3264 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3268 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_deinit_irq_legacy(ar); ar 3278 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_wait_for_target_init(struct ath10k *ar) ar 3280 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3284 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot waiting target to initialise\n"); ar 3289 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_read32(ar, FW_INDICATOR_ADDRESS); ar 3291 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot target indicator %x\n", ar 3307 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_enable_legacy_irq(ar); ar 3312 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_disable_and_clear_legacy_irq(ar); ar 3313 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_msi_fw_mask(ar); ar 3316 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to read device register, device is gone\n"); ar 3321 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "device has crashed during init\n"); ar 3326 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to receive initialized event from target: %08x\n", ar 3331 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot target initialised\n"); ar 3335 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_cold_reset(struct ath10k *ar) ar 3339 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot cold reset\n"); ar 3341 drivers/net/wireless/ath/ath10k/pci.c spin_lock_bh(&ar->data_lock); ar 3343 drivers/net/wireless/ath/ath10k/pci.c ar->stats.fw_cold_reset_counter++; ar 3345 drivers/net/wireless/ath/ath10k/pci.c spin_unlock_bh(&ar->data_lock); ar 3348 drivers/net/wireless/ath/ath10k/pci.c val = ath10k_pci_reg_read32(ar, SOC_GLOBAL_RESET_ADDRESS); ar 3350 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_reg_write32(ar, SOC_GLOBAL_RESET_ADDRESS, val); ar 3361 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_reg_write32(ar, SOC_GLOBAL_RESET_ADDRESS, val); ar 3365 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot cold reset complete\n"); ar 3370 drivers/net/wireless/ath/ath10k/pci.c static int ath10k_pci_claim(struct ath10k *ar) ar 3372 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3376 drivers/net/wireless/ath/ath10k/pci.c pci_set_drvdata(pdev, ar); ar 3380 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to enable pci device: %d\n", ret); ar 3386 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to request region BAR%d: %d\n", BAR_NUM, ar 3394 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to set dma mask to 32-bit: %d\n", ret); ar 3400 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to set consistent dma mask to 32-bit: %d\n", ar 3411 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to iomap BAR%d\n", BAR_NUM); ar 3416 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot pci_mem 0x%pK\n", ar_pci->mem); ar 3431 drivers/net/wireless/ath/ath10k/pci.c static void ath10k_pci_release(struct ath10k *ar) ar 3433 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3459 drivers/net/wireless/ath/ath10k/pci.c int ath10k_pci_setup_resource(struct ath10k *ar) ar 3461 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_pci *ar_pci = ath10k_pci_priv(ar); ar 3462 drivers/net/wireless/ath/ath10k/pci.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 3473 drivers/net/wireless/ath/ath10k/pci.c if (QCA_REV_6174(ar) || QCA_REV_9377(ar)) ar 3474 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_override_ce_config(ar); ar 3476 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_alloc_pipes(ar); ar 3478 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to allocate copy engine pipes: %d\n", ar 3486 drivers/net/wireless/ath/ath10k/pci.c void ath10k_pci_release_resource(struct ath10k *ar) ar 3488 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_rx_retry_sync(ar); ar 3489 drivers/net/wireless/ath/ath10k/pci.c netif_napi_del(&ar->napi); ar 3490 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_ce_deinit(ar); ar 3491 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_free_pipes(ar); ar 3504 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar; ar 3509 drivers/net/wireless/ath/ath10k/pci.c int (*pci_soft_reset)(struct ath10k *ar); ar 3510 drivers/net/wireless/ath/ath10k/pci.c int (*pci_hard_reset)(struct ath10k *ar); ar 3511 drivers/net/wireless/ath/ath10k/pci.c u32 (*targ_cpu_to_ce_addr)(struct ath10k *ar, u32 addr); ar 3571 drivers/net/wireless/ath/ath10k/pci.c ar = ath10k_core_create(sizeof(*ar_pci), &pdev->dev, ATH10K_BUS_PCI, ar 3573 drivers/net/wireless/ath/ath10k/pci.c if (!ar) { ar 3578 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "pci probe %04x:%04x %04x:%04x\n", ar 3582 drivers/net/wireless/ath/ath10k/pci.c ar_pci = ath10k_pci_priv(ar); ar 3585 drivers/net/wireless/ath/ath10k/pci.c ar_pci->ar = ar; ar 3586 drivers/net/wireless/ath/ath10k/pci.c ar->dev_id = pci_dev->device; ar 3592 drivers/net/wireless/ath/ath10k/pci.c ar->ce_priv = &ar_pci->ce; ar 3594 drivers/net/wireless/ath/ath10k/pci.c ar->id.vendor = pdev->vendor; ar 3595 drivers/net/wireless/ath/ath10k/pci.c ar->id.device = pdev->device; ar 3596 drivers/net/wireless/ath/ath10k/pci.c ar->id.subsystem_vendor = pdev->subsystem_vendor; ar 3597 drivers/net/wireless/ath/ath10k/pci.c ar->id.subsystem_device = pdev->subsystem_device; ar 3601 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_setup_resource(ar); ar 3603 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to setup resource: %d\n", ret); ar 3607 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_claim(ar); ar 3609 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to claim device: %d\n", ret); ar 3613 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_force_wake(ar); ar 3615 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to wake up device : %d\n", ret); ar 3619 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_ce_deinit(ar); ar 3620 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_irq_disable(ar); ar 3622 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_init_irq(ar); ar 3624 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to init irqs: %d\n", ret); ar 3628 drivers/net/wireless/ath/ath10k/pci.c ath10k_info(ar, "pci irq %s oper_irq_mode %d irq_mode %d reset_mode %d\n", ar 3629 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_get_irq_method(ar), ar_pci->oper_irq_mode, ar 3632 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_request_irq(ar); ar 3634 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to request irqs: %d\n", ret); ar 3646 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_soc_read32(ar, SOC_CHIP_ID_ADDRESS); ar 3654 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_chip_reset(ar); ar 3656 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to reset chip: %d\n", ret); ar 3660 drivers/net/wireless/ath/ath10k/pci.c bus_params.chip_id = ath10k_pci_soc_read32(ar, SOC_CHIP_ID_ADDRESS); ar 3667 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_core_register(ar, &bus_params); ar 3669 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "failed to register driver core: %d\n", ret); ar 3676 drivers/net/wireless/ath/ath10k/pci.c ath10k_err(ar, "device %04x with chip_id %08x isn't supported\n", ar 3680 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_free_irq(ar); ar 3681 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_rx_retry_sync(ar); ar 3684 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_deinit_irq(ar); ar 3687 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_sleep_sync(ar); ar 3688 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_release(ar); ar 3691 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_free_pipes(ar); ar 3694 drivers/net/wireless/ath/ath10k/pci.c ath10k_core_destroy(ar); ar 3701 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = pci_get_drvdata(pdev); ar 3704 drivers/net/wireless/ath/ath10k/pci.c ath10k_dbg(ar, ATH10K_DBG_PCI, "pci remove\n"); ar 3706 drivers/net/wireless/ath/ath10k/pci.c if (!ar) ar 3709 drivers/net/wireless/ath/ath10k/pci.c ar_pci = ath10k_pci_priv(ar); ar 3714 drivers/net/wireless/ath/ath10k/pci.c ath10k_core_unregister(ar); ar 3715 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_free_irq(ar); ar 3716 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_deinit_irq(ar); ar 3717 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_release_resource(ar); ar 3718 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_sleep_sync(ar); ar 3719 drivers/net/wireless/ath/ath10k/pci.c ath10k_pci_release(ar); ar 3720 drivers/net/wireless/ath/ath10k/pci.c ath10k_core_destroy(ar); ar 3727 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = dev_get_drvdata(dev); ar 3730 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_suspend(ar); ar 3732 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to suspend hif: %d\n", ret); ar 3739 drivers/net/wireless/ath/ath10k/pci.c struct ath10k *ar = dev_get_drvdata(dev); ar 3742 drivers/net/wireless/ath/ath10k/pci.c ret = ath10k_pci_resume(ar); ar 3744 drivers/net/wireless/ath/ath10k/pci.c ath10k_warn(ar, "failed to resume hif: %d\n", ret); ar 110 drivers/net/wireless/ath/ath10k/pci.h struct ath10k *ar; ar 171 drivers/net/wireless/ath/ath10k/pci.h int (*pci_soft_reset)(struct ath10k *ar); ar 174 drivers/net/wireless/ath/ath10k/pci.h int (*pci_hard_reset)(struct ath10k *ar); ar 179 drivers/net/wireless/ath/ath10k/pci.h u32 (*targ_cpu_to_ce_addr)(struct ath10k *ar, u32 addr); ar 188 drivers/net/wireless/ath/ath10k/pci.h static inline struct ath10k_pci *ath10k_pci_priv(struct ath10k *ar) ar 190 drivers/net/wireless/ath/ath10k/pci.h return (struct ath10k_pci *)ar->drv_priv; ar 207 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_write32(struct ath10k *ar, u32 offset, u32 value); ar 208 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_soc_write32(struct ath10k *ar, u32 addr, u32 val); ar 209 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_reg_write32(struct ath10k *ar, u32 addr, u32 val); ar 211 drivers/net/wireless/ath/ath10k/pci.h u32 ath10k_pci_read32(struct ath10k *ar, u32 offset); ar 212 drivers/net/wireless/ath/ath10k/pci.h u32 ath10k_pci_soc_read32(struct ath10k *ar, u32 addr); ar 213 drivers/net/wireless/ath/ath10k/pci.h u32 ath10k_pci_reg_read32(struct ath10k *ar, u32 addr); ar 215 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_hif_tx_sg(struct ath10k *ar, u8 pipe_id, ar 217 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_hif_diag_read(struct ath10k *ar, u32 address, void *buf, ar 219 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_diag_write_mem(struct ath10k *ar, u32 address, ar 221 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_hif_exchange_bmi_msg(struct ath10k *ar, void *req, u32 req_len, ar 223 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_hif_map_service_to_pipe(struct ath10k *ar, u16 service_id, ar 225 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_hif_get_default_pipe(struct ath10k *ar, u8 *ul_pipe, ar 227 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_hif_send_complete_check(struct ath10k *ar, u8 pipe, ar 229 drivers/net/wireless/ath/ath10k/pci.h u16 ath10k_pci_hif_get_free_queue_number(struct ath10k *ar, u8 pipe); ar 230 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_hif_power_down(struct ath10k *ar); ar 231 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_alloc_pipes(struct ath10k *ar); ar 232 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_free_pipes(struct ath10k *ar); ar 233 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_free_pipes(struct ath10k *ar); ar 235 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_ce_deinit(struct ath10k *ar); ar 236 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_init_napi(struct ath10k *ar); ar 237 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_init_pipes(struct ath10k *ar); ar 238 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_init_config(struct ath10k *ar); ar 239 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_rx_post(struct ath10k *ar); ar 240 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_flush(struct ath10k *ar); ar 241 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_enable_legacy_irq(struct ath10k *ar); ar 242 drivers/net/wireless/ath/ath10k/pci.h bool ath10k_pci_irq_pending(struct ath10k *ar); ar 243 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_disable_and_clear_legacy_irq(struct ath10k *ar); ar 244 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_irq_msi_fw_mask(struct ath10k *ar); ar 245 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_wait_for_target_init(struct ath10k *ar); ar 246 drivers/net/wireless/ath/ath10k/pci.h int ath10k_pci_setup_resource(struct ath10k *ar); ar 247 drivers/net/wireless/ath/ath10k/pci.h void ath10k_pci_release_resource(struct ath10k *ar); ar 30 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 53 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to assign msa map permissions: %d\n", ret); ar 62 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 77 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to unmap msa permissions: %d\n", ret); ar 113 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 132 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send msa mem info req: %d\n", ret); ar 141 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "msa info req rejected: %d\n", resp.resp.error); ar 147 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "invalid memory region length received: %d\n", ar 158 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, ar 165 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi msa mem info request completed\n"); ar 176 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 191 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send msa mem ready request: %d\n", ret); ar 200 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "msa ready request rejected: %d\n", resp.resp.error); ar 204 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi msa mem ready request completed\n"); ar 215 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 225 drivers/net/wireless/ath/ath10k/qmi.c temp = ar->normal_mode_fw.board_data; ar 226 drivers/net/wireless/ath/ath10k/qmi.c remaining = ar->normal_mode_fw.board_len; ar 233 drivers/net/wireless/ath/ath10k/qmi.c req->total_size = ar->normal_mode_fw.board_len; ar 268 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to download board data file: %d\n", ar 279 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi bdf download request completed\n"); ar 293 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 318 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send calibration request: %d\n", ret); ar 327 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "calibration request rejected: %d\n", resp.resp.error); ar 332 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi cal report request completed\n"); ar 340 drivers/net/wireless/ath/ath10k/qmi.c ath10k_qmi_mode_send_sync_msg(struct ath10k *ar, enum wlfw_driver_mode_enum_v01 mode) ar 342 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 365 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send wlan mode %d request: %d\n", mode, ret); ar 374 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "more request rejected: %d\n", resp.resp.error); ar 379 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi wlan mode req completed: %d\n", mode); ar 387 drivers/net/wireless/ath/ath10k/qmi.c ath10k_qmi_cfg_send_sync_msg(struct ath10k *ar, ar 391 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 451 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send config request: %d\n", ret); ar 460 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "config request rejected: %d\n", resp.resp.error); ar 465 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi config request completed\n"); ar 474 drivers/net/wireless/ath/ath10k/qmi.c int ath10k_qmi_wlan_enable(struct ath10k *ar, ar 481 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi mode %d config %p\n", ar 484 drivers/net/wireless/ath/ath10k/qmi.c ret = ath10k_qmi_cfg_send_sync_msg(ar, config, version); ar 486 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send qmi config: %d\n", ret); ar 490 drivers/net/wireless/ath/ath10k/qmi.c ret = ath10k_qmi_mode_send_sync_msg(ar, mode); ar 492 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send qmi mode: %d\n", ret); ar 499 drivers/net/wireless/ath/ath10k/qmi.c int ath10k_qmi_wlan_disable(struct ath10k *ar) ar 501 drivers/net/wireless/ath/ath10k/qmi.c return ath10k_qmi_mode_send_sync_msg(ar, QMI_WLFW_OFF_V01); ar 508 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 509 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 527 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send capability request: %d\n", ret); ar 536 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "capability req rejected: %d\n", resp->resp.error); ar 565 drivers/net/wireless/ath/ath10k/qmi.c ath10k_info(ar, "qmi chip_id 0x%x chip_family 0x%x board_id 0x%x soc_id 0x%x", ar 568 drivers/net/wireless/ath/ath10k/qmi.c ath10k_info(ar, "qmi fw_version 0x%x fw_build_timestamp %s fw_build_id %s", ar 585 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 586 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 609 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send host capability request: %d\n", ret); ar 618 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "host capability request rejected: %d\n", resp.resp.error); ar 623 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi host capability request completed\n"); ar 630 drivers/net/wireless/ath/ath10k/qmi.c int ath10k_qmi_set_fw_log_mode(struct ath10k *ar, u8 fw_log_mode) ar 632 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 653 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "fail to send fw log reqest: %d\n", ret); ar 662 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "fw log request rejectedr: %d\n", ar 667 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi fw log request completed, mode: %d\n", ar 680 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 702 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to send indication registered request: %d\n", ret); ar 711 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "indication request rejected: %d\n", resp.resp.error); ar 720 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi indication register request completed\n"); ar 729 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 737 drivers/net/wireless/ath/ath10k/qmi.c ath10k_snoc_fw_indication(ar, ATH10K_QMI_EVENT_FW_READY_IND); ar 769 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 771 drivers/net/wireless/ath/ath10k/qmi.c ar->hif.bus = ATH10K_BUS_SNOC; ar 772 drivers/net/wireless/ath/ath10k/qmi.c ar->id.qmi_ids_valid = true; ar 773 drivers/net/wireless/ath/ath10k/qmi.c ar->id.qmi_board_id = qmi->board_info.board_id; ar 774 drivers/net/wireless/ath/ath10k/qmi.c ar->hw_params.fw.dir = WCN3990_HW_1_0_FW_DIR; ar 776 drivers/net/wireless/ath/ath10k/qmi.c return ath10k_core_fetch_board_file(qmi->ar, ATH10K_BD_IE_BOARD); ar 804 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 807 drivers/net/wireless/ath/ath10k/qmi.c ath10k_core_free_board_files(ar); ar 808 drivers/net/wireless/ath/ath10k/qmi.c ath10k_snoc_fw_indication(ar, ATH10K_QMI_EVENT_FW_DOWN_IND); ar 809 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "wifi fw qmi service disconnected\n"); ar 832 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 834 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "wifi fw ready event received\n"); ar 835 drivers/net/wireless/ath/ath10k/qmi.c ath10k_snoc_fw_indication(ar, ATH10K_QMI_EVENT_FW_READY_IND); ar 881 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 888 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "wifi fw qmi service found\n"); ar 893 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to connect to a remote QMI service port\n"); ar 897 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "qmi wifi fw qmi service connected\n"); ar 923 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 946 drivers/net/wireless/ath/ath10k/qmi.c ath10k_warn(ar, "invalid event type: %d", event->type); ar 957 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k *ar = qmi->ar; ar 958 drivers/net/wireless/ath/ath10k/qmi.c struct device *dev = ar->dev; ar 984 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to allocate dma memory for msa region\n"); ar 990 drivers/net/wireless/ath/ath10k/qmi.c ath10k_dbg(ar, ATH10K_DBG_QMI, "msa pa: %pad , msa va: 0x%p\n", ar 997 drivers/net/wireless/ath/ath10k/qmi.c int ath10k_qmi_init(struct ath10k *ar, u32 msa_size) ar 999 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1007 drivers/net/wireless/ath/ath10k/qmi.c qmi->ar = ar; ar 1023 drivers/net/wireless/ath/ath10k/qmi.c ath10k_err(ar, "failed to allocate workqueue\n"); ar 1050 drivers/net/wireless/ath/ath10k/qmi.c int ath10k_qmi_deinit(struct ath10k *ar) ar 1052 drivers/net/wireless/ath/ath10k/qmi.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 87 drivers/net/wireless/ath/ath10k/qmi.h struct ath10k *ar; ar 109 drivers/net/wireless/ath/ath10k/qmi.h int ath10k_qmi_wlan_enable(struct ath10k *ar, ar 113 drivers/net/wireless/ath/ath10k/qmi.h int ath10k_qmi_wlan_disable(struct ath10k *ar); ar 115 drivers/net/wireless/ath/ath10k/qmi.h int ath10k_qmi_init(struct ath10k *ar, u32 msa_size); ar 116 drivers/net/wireless/ath/ath10k/qmi.h int ath10k_qmi_deinit(struct ath10k *ar); ar 117 drivers/net/wireless/ath/ath10k/qmi.h int ath10k_qmi_set_fw_log_mode(struct ath10k *ar, u8 fw_log_mode); ar 127 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_config(struct ath10k *ar) ar 129 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 134 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "sdio configuration\n"); ar 165 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to enable driver strength: %d\n", ret); ar 180 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to enable 4-bit async irq mode: %d\n", ar 202 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to set sdio block size to %d: %d\n", ar 212 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_write32(struct ath10k *ar, u32 addr, u32 val) ar 214 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 222 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to write 0x%x to address 0x%x: %d\n", ar 227 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio write32 addr 0x%x val 0x%x\n", ar 236 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_writesb32(struct ath10k *ar, u32 addr, u32 val) ar 238 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 253 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to write value 0x%x to fixed sb address 0x%x: %d\n", ar 258 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio writesb32 addr 0x%x val 0x%x\n", ar 269 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_read32(struct ath10k *ar, u32 addr, u32 *val) ar 271 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 278 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to read from address 0x%x: %d\n", ar 283 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio read32 addr 0x%x val 0x%x\n", ar 292 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_read(struct ath10k *ar, u32 addr, void *buf, size_t len) ar 294 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 302 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to read from address 0x%x: %d\n", ar 307 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio read addr 0x%x buf 0x%p len %zu\n", ar 309 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg_dump(ar, ATH10K_DBG_SDIO_DUMP, NULL, "sdio read ", buf, len); ar 317 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_write(struct ath10k *ar, u32 addr, const void *buf, size_t len) ar 319 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 330 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to write to address 0x%x: %d\n", ar 335 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio write addr 0x%x buf 0x%p len %zu\n", ar 337 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg_dump(ar, ATH10K_DBG_SDIO_DUMP, NULL, "sdio write ", buf, len); ar 345 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_readsb(struct ath10k *ar, u32 addr, void *buf, size_t len) ar 347 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 357 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to read from fixed (sb) address 0x%x: %d\n", ar 362 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio readsb addr 0x%x buf 0x%p len %zu\n", ar 364 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg_dump(ar, ATH10K_DBG_SDIO_DUMP, NULL, "sdio readsb ", buf, len); ar 374 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_rx_process_packet(struct ath10k *ar, ar 379 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_htc *htc = &ar->htc; ar 412 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_rx_process_packets(struct ath10k *ar, ar 416 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 417 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_htc *htc = &ar->htc; ar 433 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "invalid endpoint in look-ahead: %d\n", ar 442 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "ep %d is not connected\n", id); ar 458 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_rx_process_packet(ar, ar 466 drivers/net/wireless/ath/ath10k/sdio.c ep->ep_ops.ep_rx_complete(ar_sdio->ar, pkt->skb); ar 487 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_alloc_pkt_bundle(struct ath10k *ar, ar 498 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 524 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_rx_alloc(struct ath10k *ar, ar 527 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 534 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 548 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 560 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 575 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_alloc_pkt_bundle(ar, ar 583 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "alloc_bundle error %d\n", ret); ar 606 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "alloc_rx_pkt error %d\n", ret); ar 625 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_rx_packet(struct ath10k *ar, ar 628 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 633 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_readsb(ar, ar_sdio->mbox_info.htc_addr, ar 645 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "rx packet too large (%zu > %zu)\n", ar 659 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_rx_fetch(struct ath10k *ar) ar 661 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 665 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_rx_packet(ar, ar 688 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_rxmsg_pending_handler(struct ath10k *ar, ar 691 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 709 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_rx_alloc(ar, lookaheads, ar 720 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_rx_fetch(ar); ar 727 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_rx_process_packets(ar, ar 744 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to get pending recv messages: %d\n", ar 750 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_proc_dbg_intr(struct ath10k *ar) ar 756 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "firmware crashed\n"); ar 761 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_read32(ar, MBOX_COUNT_DEC_ADDRESS, &val); ar 763 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to clear debug interrupt: %d\n", ret); ar 768 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_proc_counter_intr(struct ath10k *ar) ar 770 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 784 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_proc_dbg_intr(ar); ar 793 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_proc_err_intr(struct ath10k *ar) ar 795 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 800 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio error interrupt\n"); ar 804 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "invalid error interrupt status: 0x%x\n", ar 809 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 814 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio interrupt error wakeup\n"); ar 818 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "rx underflow interrupt error\n"); ar 822 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "tx overflow interrupt error\n"); ar 828 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_writesb32(ar, MBOX_ERROR_INT_STATUS_ADDRESS, ar 831 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to write to error int status address: %d\n", ar 839 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_proc_cpu_intr(struct ath10k *ar) ar 841 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 850 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "CPU interrupt status is zero\n"); ar 865 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_writesb32(ar, MBOX_CPU_INT_STATUS_ADDRESS, ar 868 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to write to cpu interrupt status address: %d\n", ar 876 drivers/net/wireless/ath/ath10k/sdio.c ath10k_err(ar, "firmware crashed!\n"); ar 877 drivers/net/wireless/ath/ath10k/sdio.c queue_work(ar->workqueue, &ar->restart_work); ar 882 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_read_int_status(struct ath10k *ar, ar 886 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 914 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_read(ar, MBOX_HOST_INT_STATUS_ADDRESS, ar 938 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "sdio mbox lookahead is zero\n"); ar 946 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_mbox_proc_pending_irqs(struct ath10k *ar, ar 959 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_read_int_status(ar, ar 974 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 978 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_rxmsg_pending_handler(ar, ar 986 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 991 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_proc_cpu_intr(ar); ar 998 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_proc_err_intr(ar); ar 1005 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_proc_counter_intr(ar); ar 1022 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 1029 drivers/net/wireless/ath/ath10k/sdio.c static void ath10k_sdio_set_mbox_info(struct ath10k *ar) ar 1031 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1075 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_bmi_credits(struct ath10k *ar) ar 1092 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_read32(ar, addr, &cmd_credits); ar 1094 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 1107 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "bmi communication timeout\n"); ar 1114 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_bmi_get_rx_lookahead(struct ath10k *ar) ar 1124 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_read32(ar, ar 1128 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to read RX_LOOKAHEAD_VALID: %d\n", ret); ar 1137 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "bmi_recv_buf FIFO empty\n"); ar 1144 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_bmi_exchange_msg(struct ath10k *ar, ar 1148 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1153 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_bmi_credits(ar); ar 1160 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write(ar, addr, ar_sdio->bmi_buf, req_len); ar 1162 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 1218 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_bmi_get_rx_lookahead(ar); ar 1224 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_read(ar, addr, ar_sdio->bmi_buf, *resp_len); ar 1226 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 1240 drivers/net/wireless/ath/ath10k/sdio.c *ath10k_sdio_alloc_busreq(struct ath10k *ar) ar 1242 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1261 drivers/net/wireless/ath/ath10k/sdio.c static void ath10k_sdio_free_bus_req(struct ath10k *ar, ar 1264 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1273 drivers/net/wireless/ath/ath10k/sdio.c static void __ath10k_sdio_write_async(struct ath10k *ar, ar 1281 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write(ar, req->address, skb->data, skb->len); ar 1283 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to write skb to 0x%x asynchronously: %d", ar 1287 drivers/net/wireless/ath/ath10k/sdio.c ep = &ar->htc.endpoint[req->eid]; ar 1293 drivers/net/wireless/ath/ath10k/sdio.c ath10k_sdio_free_bus_req(ar, req); ar 1300 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k *ar = ar_sdio->ar; ar 1308 drivers/net/wireless/ath/ath10k/sdio.c __ath10k_sdio_write_async(ar, req); ar 1315 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_prep_async_req(struct ath10k *ar, u32 addr, ar 1320 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1326 drivers/net/wireless/ath/ath10k/sdio.c bus_req = ath10k_sdio_alloc_busreq(ar); ar 1328 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 1351 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k *ar = ar_sdio->ar; ar 1363 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_mbox_proc_pending_irqs(ar, &done); ar 1368 drivers/net/wireless/ath/ath10k/sdio.c ath10k_mac_tx_push_pending(ar); ar 1373 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to process pending SDIO interrupts: %d\n", ar 1379 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_disable_intrs(struct ath10k *ar) ar 1381 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1389 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write(ar, MBOX_INT_STATUS_ENABLE_ADDRESS, ar 1392 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to disable sdio interrupts: %d\n", ret); ar 1399 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_power_up(struct ath10k *ar, ar 1402 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1409 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "sdio power on\n"); ar 1411 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_config(ar); ar 1413 drivers/net/wireless/ath/ath10k/sdio.c ath10k_err(ar, "failed to config sdio: %d\n", ret); ar 1421 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to enable sdio function: %d)\n", ret); ar 1435 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_hif_disable_intrs(ar); ar 1442 drivers/net/wireless/ath/ath10k/sdio.c static void ath10k_sdio_hif_power_down(struct ath10k *ar) ar 1444 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1450 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "sdio power off\n"); ar 1457 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to disable sdio function: %d\n", ret); ar 1464 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to reset sdio: %d\n", ret); ar 1471 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_tx_sg(struct ath10k *ar, u8 pipe_id, ar 1474 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1493 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_prep_async_req(ar, address, skb, ar 1504 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_enable_intrs(struct ath10k *ar) ar 1506 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1541 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write(ar, MBOX_INT_STATUS_ENABLE_ADDRESS, ar 1544 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 1552 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_set_mbox_sleep(struct ath10k *ar, bool enable_sleep) ar 1557 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_read32(ar, ATH10K_FIFO_TIMEOUT_AND_CHIP_CONTROL, &val); ar 1559 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to read fifo/chip control register: %d\n", ar 1569 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write32(ar, ATH10K_FIFO_TIMEOUT_AND_CHIP_CONTROL, val); ar 1571 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to write to FIFO_TIMEOUT_AND_CHIP_CONTROL: %d", ar 1581 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_diag_read(struct ath10k *ar, u32 address, void *buf, ar 1587 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write32(ar, MBOX_WINDOW_READ_ADDR_ADDRESS, address); ar 1589 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to set mbox window read address: %d", ret); ar 1594 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_read(ar, MBOX_WINDOW_DATA_ADDRESS, buf, buf_len); ar 1596 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to read from mbox window data address: %d\n", ar 1604 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_diag_read32(struct ath10k *ar, u32 address, ar 1614 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_hif_diag_read(ar, address, val, sizeof(*val)); ar 1626 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_diag_write_mem(struct ath10k *ar, u32 address, ar 1632 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write(ar, MBOX_WINDOW_DATA_ADDRESS, data, nbytes); ar 1634 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, ar 1641 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_write32(ar, MBOX_WINDOW_WRITE_ADDR_ADDRESS, address); ar 1643 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to set mbox window write address: %d", ret); ar 1650 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_swap_mailbox(struct ath10k *ar) ar 1652 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1658 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_hif_diag_read32(ar, addr, &val); ar 1660 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unable to read hi_acs_flags : %d\n", ret); ar 1665 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 1669 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 1679 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_start(struct ath10k *ar) ar 1681 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1689 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_hif_disable_intrs(ar); ar 1704 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to claim sdio interrupt: %d\n", ret); ar 1711 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_hif_enable_intrs(ar); ar 1713 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to enable sdio interrupts: %d\n", ret); ar 1716 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_hif_set_mbox_sleep(ar, true); ar 1723 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_hif_set_mbox_sleep(ar, false); ar 1732 drivers/net/wireless/ath/ath10k/sdio.c static void ath10k_sdio_irq_disable(struct ath10k *ar) ar 1734 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1754 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_sdio_prep_async_req(ar, MBOX_INT_STATUS_ENABLE_ADDRESS, ar 1767 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "sdio irq disable request timed out\n"); ar 1773 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "failed to release sdio interrupt: %d\n", ret); ar 1781 drivers/net/wireless/ath/ath10k/sdio.c static void ath10k_sdio_hif_stop(struct ath10k *ar) ar 1784 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1786 drivers/net/wireless/ath/ath10k/sdio.c ath10k_sdio_irq_disable(ar); ar 1799 drivers/net/wireless/ath/ath10k/sdio.c ep = &ar->htc.endpoint[req->eid]; ar 1804 drivers/net/wireless/ath/ath10k/sdio.c ath10k_sdio_free_bus_req(ar, req); ar 1812 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_suspend(struct ath10k *ar) ar 1817 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_resume(struct ath10k *ar) ar 1819 drivers/net/wireless/ath/ath10k/sdio.c switch (ar->state) { ar 1821 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 1825 drivers/net/wireless/ath/ath10k/sdio.c ath10k_sdio_config(ar); ar 1837 drivers/net/wireless/ath/ath10k/sdio.c static int ath10k_sdio_hif_map_service_to_pipe(struct ath10k *ar, ar 1841 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_sdio *ar_sdio = ath10k_sdio_priv(ar); ar 1842 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k_htc *htc = &ar->htc; ar 1895 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 1902 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, ar 1907 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "unsupported HTC service id: %d\n", ar 1915 drivers/net/wireless/ath/ath10k/sdio.c static void ath10k_sdio_hif_get_default_pipe(struct ath10k *ar, ar 1918 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_SDIO, "sdio hif get default pipe\n"); ar 1933 drivers/net/wireless/ath/ath10k/sdio.c static void ath10k_sdio_hif_send_complete_check(struct ath10k *ar, ar 1987 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k *ar; ar 2001 drivers/net/wireless/ath/ath10k/sdio.c ar = ath10k_core_create(sizeof(*ar_sdio), &func->dev, ATH10K_BUS_SDIO, ar 2003 drivers/net/wireless/ath/ath10k/sdio.c if (!ar) { ar 2008 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2013 drivers/net/wireless/ath/ath10k/sdio.c ar_sdio = ath10k_sdio_priv(ar); ar 2016 drivers/net/wireless/ath/ath10k/sdio.c devm_kzalloc(ar->dev, sizeof(struct ath10k_sdio_irq_proc_regs), ar 2024 drivers/net/wireless/ath/ath10k/sdio.c devm_kzalloc(ar->dev, sizeof(struct ath10k_sdio_irq_enable_regs), ar 2031 drivers/net/wireless/ath/ath10k/sdio.c ar_sdio->bmi_buf = devm_kzalloc(ar->dev, BMI_MAX_CMDBUF_SIZE, GFP_KERNEL); ar 2041 drivers/net/wireless/ath/ath10k/sdio.c ar_sdio->ar = ar; ar 2058 drivers/net/wireless/ath/ath10k/sdio.c ath10k_sdio_free_bus_req(ar, &ar_sdio->bus_req[i]); ar 2064 drivers/net/wireless/ath/ath10k/sdio.c ar->dev_id = QCA9377_1_0_DEVICE_ID; ar 2068 drivers/net/wireless/ath/ath10k/sdio.c ath10k_err(ar, "unsupported device id %u (0x%x)\n", ar 2073 drivers/net/wireless/ath/ath10k/sdio.c ar->id.vendor = id->vendor; ar 2074 drivers/net/wireless/ath/ath10k/sdio.c ar->id.device = id->device; ar 2076 drivers/net/wireless/ath/ath10k/sdio.c ath10k_sdio_set_mbox_info(ar); ar 2083 drivers/net/wireless/ath/ath10k/sdio.c ret = ath10k_core_register(ar, &bus_params); ar 2085 drivers/net/wireless/ath/ath10k/sdio.c ath10k_err(ar, "failed to register driver core: %d\n", ret); ar 2090 drivers/net/wireless/ath/ath10k/sdio.c ath10k_warn(ar, "WARNING: ath10k SDIO support is work-in-progress, problems may arise!\n"); ar 2097 drivers/net/wireless/ath/ath10k/sdio.c ath10k_core_destroy(ar); ar 2105 drivers/net/wireless/ath/ath10k/sdio.c struct ath10k *ar = ar_sdio->ar; ar 2107 drivers/net/wireless/ath/ath10k/sdio.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 2111 drivers/net/wireless/ath/ath10k/sdio.c ath10k_core_unregister(ar); ar 2112 drivers/net/wireless/ath/ath10k/sdio.c ath10k_core_destroy(ar); ar 196 drivers/net/wireless/ath/ath10k/sdio.h struct ath10k *ar; ar 211 drivers/net/wireless/ath/ath10k/sdio.h static inline struct ath10k_sdio *ath10k_sdio_priv(struct ath10k *ar) ar 213 drivers/net/wireless/ath/ath10k/sdio.h return (struct ath10k_sdio *)ar->drv_priv; ar 467 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_write32(struct ath10k *ar, u32 offset, u32 value) ar 469 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 474 drivers/net/wireless/ath/ath10k/snoc.c static u32 ath10k_snoc_read32(struct ath10k *ar, u32 offset) ar 476 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 487 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = pipe->hif_ce_state; ar 488 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 499 drivers/net/wireless/ath/ath10k/snoc.c paddr = dma_map_single(ar->dev, skb->data, ar 502 drivers/net/wireless/ath/ath10k/snoc.c if (unlikely(dma_mapping_error(ar->dev, paddr))) { ar 503 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "failed to dma map snoc rx buf\n"); ar 514 drivers/net/wireless/ath/ath10k/snoc.c dma_unmap_single(ar->dev, paddr, skb->len + skb_tailroom(skb), ar 525 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = pipe->hif_ce_state; ar 526 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 527 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 545 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "failed to post rx buf: %d\n", ret); ar 553 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_rx_post(struct ath10k *ar) ar 555 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 563 drivers/net/wireless/ath/ath10k/snoc.c void (*callback)(struct ath10k *ar, ar 566 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = ce_state->ar; ar 567 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 579 drivers/net/wireless/ath/ath10k/snoc.c dma_unmap_single(ar->dev, ATH10K_SKB_RXCB(skb)->paddr, ar 583 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "rxed more than expected (nbytes %d, max %d)", ar 594 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc rx ce pipe %d len %d\n", ar 597 drivers/net/wireless/ath/ath10k/snoc.c callback(ar, skb); ar 613 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_per_engine_service(ce_state->ar, CE_POLL_PIPE); ar 626 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_htt_rx_deliver(struct ath10k *ar, struct sk_buff *skb) ar 629 drivers/net/wireless/ath/ath10k/snoc.c ath10k_htt_t2h_msg_handler(ar, skb); ar 634 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_per_engine_service(ce_state->ar, CE_POLL_PIPE); ar 641 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = ar_snoc->ar; ar 643 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_rx_post(ar); ar 648 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = ce_state->ar; ar 661 drivers/net/wireless/ath/ath10k/snoc.c ath10k_htc_tx_completion_handler(ar, skb); ar 666 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = ce_state->ar; ar 673 drivers/net/wireless/ath/ath10k/snoc.c dma_unmap_single(ar->dev, ATH10K_SKB_CB(skb)->paddr, ar 675 drivers/net/wireless/ath/ath10k/snoc.c ath10k_htt_hif_tx_complete(ar, skb); ar 679 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_tx_sg(struct ath10k *ar, u8 pipe_id, ar 682 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 683 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 693 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, ar 707 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, ar 732 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_get_target_info(struct ath10k *ar, ar 741 drivers/net/wireless/ath/ath10k/snoc.c static u16 ath10k_snoc_hif_get_free_queue_number(struct ath10k *ar, u8 pipe) ar 743 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 745 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "hif get free queue number\n"); ar 750 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_hif_send_complete_check(struct ath10k *ar, u8 pipe, ar 755 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc hif send complete check\n"); ar 758 drivers/net/wireless/ath/ath10k/snoc.c resources = ath10k_snoc_hif_get_free_queue_number(ar, pipe); ar 763 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_per_engine_service(ar, pipe); ar 766 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_map_service_to_pipe(struct ath10k *ar, ar 774 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc hif map service\n"); ar 812 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_hif_get_default_pipe(struct ath10k *ar, ar 815 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc hif get default pipe\n"); ar 817 drivers/net/wireless/ath/ath10k/snoc.c (void)ath10k_snoc_hif_map_service_to_pipe(ar, ar 822 drivers/net/wireless/ath/ath10k/snoc.c static inline void ath10k_snoc_irq_disable(struct ath10k *ar) ar 824 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_disable_interrupts(ar); ar 827 drivers/net/wireless/ath/ath10k/snoc.c static inline void ath10k_snoc_irq_enable(struct ath10k *ar) ar 829 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_enable_interrupts(ar); ar 837 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar; ar 840 drivers/net/wireless/ath/ath10k/snoc.c ar = snoc_pipe->hif_ce_state; ar 857 drivers/net/wireless/ath/ath10k/snoc.c dma_unmap_single(ar->dev, ATH10K_SKB_RXCB(skb)->paddr, ar 869 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar; ar 872 drivers/net/wireless/ath/ath10k/snoc.c ar = snoc_pipe->hif_ce_state; ar 889 drivers/net/wireless/ath/ath10k/snoc.c ath10k_htc_tx_completion_handler(ar, skb); ar 893 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_buffer_cleanup(struct ath10k *ar) ar 895 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 907 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_hif_stop(struct ath10k *ar) ar 909 drivers/net/wireless/ath/ath10k/snoc.c if (!test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)) ar 910 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_irq_disable(ar); ar 912 drivers/net/wireless/ath/ath10k/snoc.c napi_synchronize(&ar->napi); ar 913 drivers/net/wireless/ath/ath10k/snoc.c napi_disable(&ar->napi); ar 914 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_buffer_cleanup(ar); ar 915 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif stop\n"); ar 918 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_start(struct ath10k *ar) ar 920 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 922 drivers/net/wireless/ath/ath10k/snoc.c napi_enable(&ar->napi); ar 923 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_irq_enable(ar); ar 924 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_rx_post(ar); ar 928 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif start\n"); ar 933 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_init_pipes(struct ath10k *ar) ar 938 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_ce_init_pipe(ar, i, &host_ce_config_wlan[i]); ar 940 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to initialize copy engine pipe %d: %d\n", ar 949 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_wlan_enable(struct ath10k *ar, ar 992 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "invalid firmware mode %d\n", fw_mode); ar 996 drivers/net/wireless/ath/ath10k/snoc.c return ath10k_qmi_wlan_enable(ar, &cfg, mode, ar 1000 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_wlan_disable(struct ath10k *ar) ar 1002 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1010 drivers/net/wireless/ath/ath10k/snoc.c if (!test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags) || ar 1012 drivers/net/wireless/ath/ath10k/snoc.c ath10k_qmi_wlan_disable(ar); ar 1015 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_hif_power_down(struct ath10k *ar) ar 1017 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot hif power down\n"); ar 1019 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_wlan_disable(ar); ar 1020 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_free_rri(ar); ar 1023 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_power_up(struct ath10k *ar, ar 1028 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "%s:WCN3990 driver state = %d\n", ar 1029 drivers/net/wireless/ath/ath10k/snoc.c __func__, ar->state); ar 1031 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_wlan_enable(ar, fw_mode); ar 1033 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to enable wcn3990: %d\n", ret); ar 1037 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_alloc_rri(ar); ar 1039 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_init_pipes(ar); ar 1041 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to initialize CE: %d\n", ret); ar 1048 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_wlan_disable(ar); ar 1053 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_set_target_log_mode(struct ath10k *ar, ar 1063 drivers/net/wireless/ath/ath10k/snoc.c return ath10k_qmi_set_fw_log_mode(ar, fw_dbg_mode); ar 1067 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_suspend(struct ath10k *ar) ar 1069 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1072 drivers/net/wireless/ath/ath10k/snoc.c if (!device_may_wakeup(ar->dev)) ar 1077 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to enable wakeup irq :%d\n", ret); ar 1081 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc device suspended\n"); ar 1086 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_hif_resume(struct ath10k *ar) ar 1088 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1091 drivers/net/wireless/ath/ath10k/snoc.c if (!device_may_wakeup(ar->dev)) ar 1096 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to disable wakeup irq: %d\n", ret); ar 1100 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc device resumed\n"); ar 1132 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_get_ce_id_from_irq(struct ath10k *ar, int irq) ar 1134 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1141 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "No matching CE id for irq %d\n", irq); ar 1148 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = arg; ar 1149 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1150 drivers/net/wireless/ath/ath10k/snoc.c int ce_id = ath10k_snoc_get_ce_id_from_irq(ar, irq); ar 1153 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "unexpected/invalid irq %d ce_id %d\n", irq, ar 1158 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_irq_disable(ar); ar 1159 drivers/net/wireless/ath/ath10k/snoc.c napi_schedule(&ar->napi); ar 1166 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = container_of(ctx, struct ath10k, napi); ar 1169 drivers/net/wireless/ath/ath10k/snoc.c if (test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)) { ar 1174 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_per_engine_service_any(ar); ar 1175 drivers/net/wireless/ath/ath10k/snoc.c done = ath10k_htt_txrx_compl_task(ar, budget); ar 1179 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_irq_enable(ar); ar 1185 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_init_napi(struct ath10k *ar) ar 1187 drivers/net/wireless/ath/ath10k/snoc.c netif_napi_add(&ar->napi_dev, &ar->napi, ath10k_snoc_napi_poll, ar 1191 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_request_irq(struct ath10k *ar) ar 1193 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1200 drivers/net/wireless/ath/ath10k/snoc.c irqflags, ce_name[id], ar); ar 1202 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, ar 1213 drivers/net/wireless/ath/ath10k/snoc.c free_irq(ar_snoc->ce_irqs[id].irq_line, ar); ar 1218 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_free_irq(struct ath10k *ar) ar 1220 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1224 drivers/net/wireless/ath/ath10k/snoc.c free_irq(ar_snoc->ce_irqs[id].irq_line, ar); ar 1227 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_resource_init(struct ath10k *ar) ar 1229 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1237 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "Memory base not found in DT\n"); ar 1245 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "Memory base ioremap failed with physical address %pa\n", ar 1253 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to get IRQ%d\n", i); ar 1264 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_quirks_init(struct ath10k *ar) ar 1266 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1273 drivers/net/wireless/ath/ath10k/snoc.c int ath10k_snoc_fw_indication(struct ath10k *ar, u64 type) ar 1275 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1285 drivers/net/wireless/ath/ath10k/snoc.c queue_work(ar->workqueue, &ar->restart_work); ar 1291 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_core_register(ar, &bus_params); ar 1293 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "Failed to register driver core: %d\n", ar 1301 drivers/net/wireless/ath/ath10k/snoc.c set_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags); ar 1304 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "invalid fw indication: %llx\n", type); ar 1311 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_setup_resource(struct ath10k *ar) ar 1313 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1314 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_ce *ce = ath10k_ce_priv(ar); ar 1324 drivers/net/wireless/ath/ath10k/snoc.c pipe->hif_ce_state = ar; ar 1326 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_ce_alloc_pipe(ar, i, &host_ce_config_wlan[i]); ar 1328 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to allocate copy engine pipe %d: %d\n", ar 1335 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_init_napi(ar); ar 1340 drivers/net/wireless/ath/ath10k/snoc.c static void ath10k_snoc_release_resource(struct ath10k *ar) ar 1344 drivers/net/wireless/ath/ath10k/snoc.c netif_napi_del(&ar->napi); ar 1346 drivers/net/wireless/ath/ath10k/snoc.c ath10k_ce_free_pipe(ar, i); ar 1349 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_get_vreg_info(struct ath10k *ar, struct device *dev, ar 1361 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "EPROBE_DEFER for regulator: %s\n", ar 1366 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "Regulator %s doesn't exist: %d\n", ar 1370 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, ar 1379 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, ar 1387 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_get_clk_info(struct ath10k *ar, struct device *dev, ar 1397 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "snoc clock %s isn't available: %d\n", ar 1401 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc ignoring clock %s: %d\n", ar 1407 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc clock %s freq %u\n", ar 1415 drivers/net/wireless/ath/ath10k/snoc.c static int __ath10k_snoc_vreg_on(struct ath10k *ar, ar 1420 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc regulator %s being enabled\n", ar 1426 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, ar 1435 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to set regulator %s load: %d\n", ar 1443 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to enable regulator %s\n", ar 1461 drivers/net/wireless/ath/ath10k/snoc.c static int __ath10k_snoc_vreg_off(struct ath10k *ar, ar 1466 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc regulator %s being disabled\n", ar 1471 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to disable regulator %s\n", ar 1476 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to set load %s\n", vreg_info->name); ar 1480 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to set voltage %s\n", vreg_info->name); ar 1485 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_vreg_on(struct ath10k *ar) ar 1487 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1498 drivers/net/wireless/ath/ath10k/snoc.c ret = __ath10k_snoc_vreg_on(ar, vreg_info); ar 1512 drivers/net/wireless/ath/ath10k/snoc.c __ath10k_snoc_vreg_off(ar, vreg_info); ar 1518 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_vreg_off(struct ath10k *ar) ar 1520 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1531 drivers/net/wireless/ath/ath10k/snoc.c ret = __ath10k_snoc_vreg_off(ar, vreg_info); ar 1537 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_clk_init(struct ath10k *ar) ar 1539 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1550 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc clock %s being enabled\n", ar 1557 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to set clock %s freq %u\n", ar 1565 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to enable clock %s\n", ar 1586 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_snoc_clk_deinit(struct ath10k *ar) ar 1588 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1598 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc clock %s being disabled\n", ar 1607 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_hw_power_on(struct ath10k *ar) ar 1611 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "soc power on\n"); ar 1613 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_vreg_on(ar); ar 1617 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_clk_init(ar); ar 1624 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_vreg_off(ar); ar 1628 drivers/net/wireless/ath/ath10k/snoc.c static int ath10k_hw_power_off(struct ath10k *ar) ar 1632 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "soc power off\n"); ar 1634 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_clk_deinit(ar); ar 1636 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_vreg_off(ar); ar 1655 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar; ar 1675 drivers/net/wireless/ath/ath10k/snoc.c ar = ath10k_core_create(sizeof(*ar_snoc), dev, ATH10K_BUS_SNOC, ar 1677 drivers/net/wireless/ath/ath10k/snoc.c if (!ar) { ar 1682 drivers/net/wireless/ath/ath10k/snoc.c ar_snoc = ath10k_snoc_priv(ar); ar 1684 drivers/net/wireless/ath/ath10k/snoc.c platform_set_drvdata(pdev, ar); ar 1685 drivers/net/wireless/ath/ath10k/snoc.c ar_snoc->ar = ar; ar 1687 drivers/net/wireless/ath/ath10k/snoc.c ar->ce_priv = &ar_snoc->ce; ar 1690 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_quirks_init(ar); ar 1692 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_resource_init(ar); ar 1694 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "failed to initialize resource: %d\n", ret); ar 1698 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_setup_resource(ar); ar 1700 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "failed to setup resource: %d\n", ret); ar 1703 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_snoc_request_irq(ar); ar 1705 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "failed to request irqs: %d\n", ret); ar 1711 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_get_vreg_info(ar, dev, &ar_snoc->vreg[i]); ar 1718 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_get_clk_info(ar, dev, &ar_snoc->clk[i]); ar 1723 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_hw_power_on(ar); ar 1725 drivers/net/wireless/ath/ath10k/snoc.c ath10k_err(ar, "failed to power on device: %d\n", ret); ar 1729 drivers/net/wireless/ath/ath10k/snoc.c ret = ath10k_qmi_init(ar, msa_size); ar 1731 drivers/net/wireless/ath/ath10k/snoc.c ath10k_warn(ar, "failed to register wlfw qmi client: %d\n", ret); ar 1735 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc probe\n"); ar 1740 drivers/net/wireless/ath/ath10k/snoc.c ath10k_hw_power_off(ar); ar 1743 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_free_irq(ar); ar 1746 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_release_resource(ar); ar 1749 drivers/net/wireless/ath/ath10k/snoc.c ath10k_core_destroy(ar); ar 1756 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k *ar = platform_get_drvdata(pdev); ar 1757 drivers/net/wireless/ath/ath10k/snoc.c struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); ar 1759 drivers/net/wireless/ath/ath10k/snoc.c ath10k_dbg(ar, ATH10K_DBG_SNOC, "snoc remove\n"); ar 1761 drivers/net/wireless/ath/ath10k/snoc.c reinit_completion(&ar->driver_recovery); ar 1764 drivers/net/wireless/ath/ath10k/snoc.c wait_for_completion_timeout(&ar->driver_recovery, 3 * HZ); ar 1768 drivers/net/wireless/ath/ath10k/snoc.c ath10k_core_unregister(ar); ar 1769 drivers/net/wireless/ath/ath10k/snoc.c ath10k_hw_power_off(ar); ar 1770 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_free_irq(ar); ar 1771 drivers/net/wireless/ath/ath10k/snoc.c ath10k_snoc_release_resource(ar); ar 1772 drivers/net/wireless/ath/ath10k/snoc.c ath10k_qmi_deinit(ar); ar 1773 drivers/net/wireless/ath/ath10k/snoc.c ath10k_core_destroy(ar); ar 71 drivers/net/wireless/ath/ath10k/snoc.h struct ath10k *ar; ar 86 drivers/net/wireless/ath/ath10k/snoc.h static inline struct ath10k_snoc *ath10k_snoc_priv(struct ath10k *ar) ar 88 drivers/net/wireless/ath/ath10k/snoc.h return (struct ath10k_snoc *)ar->drv_priv; ar 91 drivers/net/wireless/ath/ath10k/snoc.h int ath10k_snoc_fw_indication(struct ath10k *ar, u64 type); ar 11 drivers/net/wireless/ath/ath10k/spectral.c static void send_fft_sample(struct ath10k *ar, ar 16 drivers/net/wireless/ath/ath10k/spectral.c if (!ar->spectral.rfs_chan_spec_scan) ar 21 drivers/net/wireless/ath/ath10k/spectral.c relay_write(ar->spectral.rfs_chan_spec_scan, fft_sample_tlv, length); ar 48 drivers/net/wireless/ath/ath10k/spectral.c static inline size_t ath10k_spectral_fix_bin_size(struct ath10k *ar, ar 58 drivers/net/wireless/ath/ath10k/spectral.c bin_len -= ar->hw_params.spectral_bin_discard; ar 63 drivers/net/wireless/ath/ath10k/spectral.c int ath10k_spectral_process_fft(struct ath10k *ar, ar 77 drivers/net/wireless/ath/ath10k/spectral.c bin_len = ath10k_spectral_fix_bin_size(ar, bin_len); ar 137 drivers/net/wireless/ath/ath10k/spectral.c bins += sizeof(*fftr) + ar->hw_params.spectral_bin_offset; ar 156 drivers/net/wireless/ath/ath10k/spectral.c send_fft_sample(ar, &fft_sample->tlv); ar 161 drivers/net/wireless/ath/ath10k/spectral.c static struct ath10k_vif *ath10k_get_spectral_vdev(struct ath10k *ar) ar 165 drivers/net/wireless/ath/ath10k/spectral.c lockdep_assert_held(&ar->conf_mutex); ar 167 drivers/net/wireless/ath/ath10k/spectral.c if (list_empty(&ar->arvifs)) ar 171 drivers/net/wireless/ath/ath10k/spectral.c list_for_each_entry(arvif, &ar->arvifs, list) ar 176 drivers/net/wireless/ath/ath10k/spectral.c return list_first_entry(&ar->arvifs, typeof(*arvif), list); ar 179 drivers/net/wireless/ath/ath10k/spectral.c static int ath10k_spectral_scan_trigger(struct ath10k *ar) ar 185 drivers/net/wireless/ath/ath10k/spectral.c lockdep_assert_held(&ar->conf_mutex); ar 187 drivers/net/wireless/ath/ath10k/spectral.c arvif = ath10k_get_spectral_vdev(ar); ar 192 drivers/net/wireless/ath/ath10k/spectral.c if (ar->spectral.mode == SPECTRAL_DISABLED) ar 195 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_wmi_vdev_spectral_enable(ar, vdev_id, ar 201 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_wmi_vdev_spectral_enable(ar, vdev_id, ar 210 drivers/net/wireless/ath/ath10k/spectral.c static int ath10k_spectral_scan_config(struct ath10k *ar, ar 217 drivers/net/wireless/ath/ath10k/spectral.c lockdep_assert_held(&ar->conf_mutex); ar 219 drivers/net/wireless/ath/ath10k/spectral.c arvif = ath10k_get_spectral_vdev(ar); ar 226 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.mode = mode; ar 228 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_wmi_vdev_spectral_enable(ar, vdev_id, ar 232 drivers/net/wireless/ath/ath10k/spectral.c ath10k_warn(ar, "failed to enable spectral scan: %d\n", res); ar 242 drivers/net/wireless/ath/ath10k/spectral.c count = max_t(u8, 1, ar->spectral.config.count); ar 248 drivers/net/wireless/ath/ath10k/spectral.c arg.scan_fft_size = ar->spectral.config.fft_size; ar 264 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_wmi_vdev_spectral_conf(ar, &arg); ar 266 drivers/net/wireless/ath/ath10k/spectral.c ath10k_warn(ar, "failed to configure spectral scan: %d\n", res); ar 276 drivers/net/wireless/ath/ath10k/spectral.c struct ath10k *ar = file->private_data; ar 281 drivers/net/wireless/ath/ath10k/spectral.c mutex_lock(&ar->conf_mutex); ar 282 drivers/net/wireless/ath/ath10k/spectral.c spectral_mode = ar->spectral.mode; ar 283 drivers/net/wireless/ath/ath10k/spectral.c mutex_unlock(&ar->conf_mutex); ar 305 drivers/net/wireless/ath/ath10k/spectral.c struct ath10k *ar = file->private_data; ar 316 drivers/net/wireless/ath/ath10k/spectral.c mutex_lock(&ar->conf_mutex); ar 319 drivers/net/wireless/ath/ath10k/spectral.c if (ar->spectral.mode == SPECTRAL_MANUAL || ar 320 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.mode == SPECTRAL_BACKGROUND) { ar 324 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_spectral_scan_config(ar, ar 325 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.mode); ar 327 drivers/net/wireless/ath/ath10k/spectral.c ath10k_warn(ar, "failed to reconfigure spectral scan: %d\n", ar 330 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_spectral_scan_trigger(ar); ar 332 drivers/net/wireless/ath/ath10k/spectral.c ath10k_warn(ar, "failed to trigger spectral scan: %d\n", ar 339 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_spectral_scan_config(ar, SPECTRAL_BACKGROUND); ar 341 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_spectral_scan_config(ar, SPECTRAL_MANUAL); ar 343 drivers/net/wireless/ath/ath10k/spectral.c res = ath10k_spectral_scan_config(ar, SPECTRAL_DISABLED); ar 348 drivers/net/wireless/ath/ath10k/spectral.c mutex_unlock(&ar->conf_mutex); ar 368 drivers/net/wireless/ath/ath10k/spectral.c struct ath10k *ar = file->private_data; ar 373 drivers/net/wireless/ath/ath10k/spectral.c mutex_lock(&ar->conf_mutex); ar 374 drivers/net/wireless/ath/ath10k/spectral.c spectral_count = ar->spectral.config.count; ar 375 drivers/net/wireless/ath/ath10k/spectral.c mutex_unlock(&ar->conf_mutex); ar 385 drivers/net/wireless/ath/ath10k/spectral.c struct ath10k *ar = file->private_data; ar 401 drivers/net/wireless/ath/ath10k/spectral.c mutex_lock(&ar->conf_mutex); ar 402 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.config.count = val; ar 403 drivers/net/wireless/ath/ath10k/spectral.c mutex_unlock(&ar->conf_mutex); ar 420 drivers/net/wireless/ath/ath10k/spectral.c struct ath10k *ar = file->private_data; ar 425 drivers/net/wireless/ath/ath10k/spectral.c mutex_lock(&ar->conf_mutex); ar 427 drivers/net/wireless/ath/ath10k/spectral.c fft_size = ar->spectral.config.fft_size; ar 431 drivers/net/wireless/ath/ath10k/spectral.c mutex_unlock(&ar->conf_mutex); ar 441 drivers/net/wireless/ath/ath10k/spectral.c struct ath10k *ar = file->private_data; ar 460 drivers/net/wireless/ath/ath10k/spectral.c mutex_lock(&ar->conf_mutex); ar 461 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.config.fft_size = ilog2(val); ar 462 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.config.fft_size += WMI_SPECTRAL_BIN_SCALE_DEFAULT; ar 463 drivers/net/wireless/ath/ath10k/spectral.c mutex_unlock(&ar->conf_mutex); ar 505 drivers/net/wireless/ath/ath10k/spectral.c int ath10k_spectral_start(struct ath10k *ar) ar 509 drivers/net/wireless/ath/ath10k/spectral.c lockdep_assert_held(&ar->conf_mutex); ar 511 drivers/net/wireless/ath/ath10k/spectral.c list_for_each_entry(arvif, &ar->arvifs, list) ar 514 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.mode = SPECTRAL_DISABLED; ar 515 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.config.count = WMI_SPECTRAL_COUNT_DEFAULT; ar 516 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.config.fft_size = WMI_SPECTRAL_FFT_SIZE_DEFAULT; ar 526 drivers/net/wireless/ath/ath10k/spectral.c return ath10k_spectral_scan_config(arvif->ar, SPECTRAL_DISABLED); ar 529 drivers/net/wireless/ath/ath10k/spectral.c int ath10k_spectral_create(struct ath10k *ar) ar 534 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.rfs_chan_spec_scan = relay_open("spectral_scan", ar 535 drivers/net/wireless/ath/ath10k/spectral.c ar->debug.debugfs_phy, ar 540 drivers/net/wireless/ath/ath10k/spectral.c ar->debug.debugfs_phy, ar, ar 544 drivers/net/wireless/ath/ath10k/spectral.c ar->debug.debugfs_phy, ar, ar 548 drivers/net/wireless/ath/ath10k/spectral.c ar->debug.debugfs_phy, ar, ar 554 drivers/net/wireless/ath/ath10k/spectral.c void ath10k_spectral_destroy(struct ath10k *ar) ar 556 drivers/net/wireless/ath/ath10k/spectral.c if (ar->spectral.rfs_chan_spec_scan) { ar 557 drivers/net/wireless/ath/ath10k/spectral.c relay_close(ar->spectral.rfs_chan_spec_scan); ar 558 drivers/net/wireless/ath/ath10k/spectral.c ar->spectral.rfs_chan_spec_scan = NULL; ar 38 drivers/net/wireless/ath/ath10k/spectral.h int ath10k_spectral_process_fft(struct ath10k *ar, ar 42 drivers/net/wireless/ath/ath10k/spectral.h int ath10k_spectral_start(struct ath10k *ar); ar 44 drivers/net/wireless/ath/ath10k/spectral.h int ath10k_spectral_create(struct ath10k *ar); ar 45 drivers/net/wireless/ath/ath10k/spectral.h void ath10k_spectral_destroy(struct ath10k *ar); ar 50 drivers/net/wireless/ath/ath10k/spectral.h ath10k_spectral_process_fft(struct ath10k *ar, ar 58 drivers/net/wireless/ath/ath10k/spectral.h static inline int ath10k_spectral_start(struct ath10k *ar) ar 68 drivers/net/wireless/ath/ath10k/spectral.h static inline int ath10k_spectral_create(struct ath10k *ar) ar 73 drivers/net/wireless/ath/ath10k/spectral.h static inline void ath10k_spectral_destroy(struct ath10k *ar) ar 15 drivers/net/wireless/ath/ath10k/swap.c static int ath10k_swap_code_seg_fill(struct ath10k *ar, ar 39 drivers/net/wireless/ath/ath10k/swap.c ath10k_err(ar, "refusing to parse invalid tlv length %d\n", ar 47 drivers/net/wireless/ath/ath10k/swap.c ath10k_err(ar, "refusing an invalid swap file\n"); ar 64 drivers/net/wireless/ath/ath10k/swap.c ath10k_err(ar, "failed to parse invalid swap file\n"); ar 73 drivers/net/wireless/ath/ath10k/swap.c ath10k_swap_code_seg_free(struct ath10k *ar, ar 85 drivers/net/wireless/ath/ath10k/swap.c dma_free_coherent(ar->dev, seg_size, seg_info->virt_address[0], ar 90 drivers/net/wireless/ath/ath10k/swap.c ath10k_swap_code_seg_alloc(struct ath10k *ar, size_t swap_bin_len) ar 98 drivers/net/wireless/ath/ath10k/swap.c ath10k_err(ar, "refusing code swap bin because it is too big %zu > %d\n", ar 103 drivers/net/wireless/ath/ath10k/swap.c seg_info = devm_kzalloc(ar->dev, sizeof(*seg_info), GFP_KERNEL); ar 107 drivers/net/wireless/ath/ath10k/swap.c virt_addr = dma_alloc_coherent(ar->dev, swap_bin_len, &paddr, ar 124 drivers/net/wireless/ath/ath10k/swap.c int ath10k_swap_code_seg_configure(struct ath10k *ar, ar 133 drivers/net/wireless/ath/ath10k/swap.c ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot found firmware code swap binary\n"); ar 137 drivers/net/wireless/ath/ath10k/swap.c ret = ath10k_bmi_write_memory(ar, seg_info->target_addr, ar 141 drivers/net/wireless/ath/ath10k/swap.c ath10k_err(ar, "failed to write Code swap segment information (%d)\n", ar 149 drivers/net/wireless/ath/ath10k/swap.c void ath10k_swap_code_seg_release(struct ath10k *ar, ar 152 drivers/net/wireless/ath/ath10k/swap.c ath10k_swap_code_seg_free(ar, fw_file->firmware_swap_code_seg_info); ar 163 drivers/net/wireless/ath/ath10k/swap.c int ath10k_swap_code_seg_init(struct ath10k *ar, struct ath10k_fw_file *fw_file) ar 176 drivers/net/wireless/ath/ath10k/swap.c seg_info = ath10k_swap_code_seg_alloc(ar, codeswap_len); ar 178 drivers/net/wireless/ath/ath10k/swap.c ath10k_err(ar, "failed to allocate fw code swap segment\n"); ar 182 drivers/net/wireless/ath/ath10k/swap.c ret = ath10k_swap_code_seg_fill(ar, seg_info, ar 186 drivers/net/wireless/ath/ath10k/swap.c ath10k_warn(ar, "failed to initialize fw code swap segment: %d\n", ar 188 drivers/net/wireless/ath/ath10k/swap.c ath10k_swap_code_seg_free(ar, seg_info); ar 52 drivers/net/wireless/ath/ath10k/swap.h int ath10k_swap_code_seg_configure(struct ath10k *ar, ar 54 drivers/net/wireless/ath/ath10k/swap.h void ath10k_swap_code_seg_release(struct ath10k *ar, ar 56 drivers/net/wireless/ath/ath10k/swap.h int ath10k_swap_code_seg_init(struct ath10k *ar, ar 31 drivers/net/wireless/ath/ath10k/testmode.c bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb) ar 37 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, ar 41 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg_dump(ar, ATH10K_DBG_TESTMODE, NULL, "", skb->data, skb->len); ar 43 drivers/net/wireless/ath/ath10k/testmode.c spin_lock_bh(&ar->data_lock); ar 45 drivers/net/wireless/ath/ath10k/testmode.c if (!ar->testmode.utf_monitor) { ar 56 drivers/net/wireless/ath/ath10k/testmode.c nl_skb = cfg80211_testmode_alloc_event_skb(ar->hw->wiphy, ar 60 drivers/net/wireless/ath/ath10k/testmode.c ath10k_warn(ar, ar 67 drivers/net/wireless/ath/ath10k/testmode.c ath10k_warn(ar, ar 76 drivers/net/wireless/ath/ath10k/testmode.c ath10k_warn(ar, ar 85 drivers/net/wireless/ath/ath10k/testmode.c ath10k_warn(ar, ar 95 drivers/net/wireless/ath/ath10k/testmode.c spin_unlock_bh(&ar->data_lock); ar 100 drivers/net/wireless/ath/ath10k/testmode.c static int ath10k_tm_cmd_get_version(struct ath10k *ar, struct nlattr *tb[]) ar 105 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, ar 110 drivers/net/wireless/ath/ath10k/testmode.c skb = cfg80211_testmode_alloc_reply_skb(ar->hw->wiphy, ar 130 drivers/net/wireless/ath/ath10k/testmode.c ar->normal_mode_fw.fw_file.wmi_op_version); ar 139 drivers/net/wireless/ath/ath10k/testmode.c static int ath10k_tm_fetch_utf_firmware_api_1(struct ath10k *ar, ar 146 drivers/net/wireless/ath/ath10k/testmode.c ar->hw_params.fw.dir, ATH10K_FW_UTF_FILE); ar 149 drivers/net/wireless/ath/ath10k/testmode.c ret = firmware_request_nowarn(&fw_file->firmware, filename, ar->dev); ar 150 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode fw request '%s': %d\n", ar 154 drivers/net/wireless/ath/ath10k/testmode.c ath10k_warn(ar, "failed to retrieve utf firmware '%s': %d\n", ar 173 drivers/net/wireless/ath/ath10k/testmode.c static int ath10k_tm_fetch_firmware(struct ath10k *ar) ar 180 drivers/net/wireless/ath/ath10k/testmode.c switch (ar->hif.bus) { ar 184 drivers/net/wireless/ath/ath10k/testmode.c ATH10K_FW_UTF_FILE_BASE, ath10k_bus_str(ar->hif.bus), ar 193 drivers/net/wireless/ath/ath10k/testmode.c ret = ath10k_core_fetch_firmware_api_n(ar, fw_name, ar 194 drivers/net/wireless/ath/ath10k/testmode.c &ar->testmode.utf_mode_fw.fw_file); ar 196 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode using fw utf api 2"); ar 200 drivers/net/wireless/ath/ath10k/testmode.c ret = ath10k_tm_fetch_utf_firmware_api_1(ar, &ar->testmode.utf_mode_fw.fw_file); ar 202 drivers/net/wireless/ath/ath10k/testmode.c ath10k_err(ar, "failed to fetch utf firmware binary: %d", ret); ar 206 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode using utf api 1"); ar 209 drivers/net/wireless/ath/ath10k/testmode.c utf_mode_fw = &ar->testmode.utf_mode_fw; ar 214 drivers/net/wireless/ath/ath10k/testmode.c utf_mode_fw->board_data = ar->normal_mode_fw.board_data; ar 215 drivers/net/wireless/ath/ath10k/testmode.c utf_mode_fw->board_len = ar->normal_mode_fw.board_len; ar 218 drivers/net/wireless/ath/ath10k/testmode.c ath10k_info(ar, "utf.bin didn't contain otp binary, taking it from the normal mode firmware"); ar 219 drivers/net/wireless/ath/ath10k/testmode.c utf_mode_fw->fw_file.otp_data = ar->normal_mode_fw.fw_file.otp_data; ar 220 drivers/net/wireless/ath/ath10k/testmode.c utf_mode_fw->fw_file.otp_len = ar->normal_mode_fw.fw_file.otp_len; ar 226 drivers/net/wireless/ath/ath10k/testmode.c static int ath10k_tm_cmd_utf_start(struct ath10k *ar, struct nlattr *tb[]) ar 231 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode cmd utf start\n"); ar 233 drivers/net/wireless/ath/ath10k/testmode.c mutex_lock(&ar->conf_mutex); ar 235 drivers/net/wireless/ath/ath10k/testmode.c if (ar->state == ATH10K_STATE_UTF) { ar 241 drivers/net/wireless/ath/ath10k/testmode.c if (ar->state != ATH10K_STATE_OFF) { ar 246 drivers/net/wireless/ath/ath10k/testmode.c if (WARN_ON(ar->testmode.utf_mode_fw.fw_file.firmware != NULL)) { ar 252 drivers/net/wireless/ath/ath10k/testmode.c ret = ath10k_tm_fetch_firmware(ar); ar 254 drivers/net/wireless/ath/ath10k/testmode.c ath10k_err(ar, "failed to fetch UTF firmware: %d", ret); ar 258 drivers/net/wireless/ath/ath10k/testmode.c if (ar->testmode.utf_mode_fw.fw_file.codeswap_data && ar 259 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_mode_fw.fw_file.codeswap_len) { ar 260 drivers/net/wireless/ath/ath10k/testmode.c ret = ath10k_swap_code_seg_init(ar, ar 261 drivers/net/wireless/ath/ath10k/testmode.c &ar->testmode.utf_mode_fw.fw_file); ar 263 drivers/net/wireless/ath/ath10k/testmode.c ath10k_warn(ar, ar 270 drivers/net/wireless/ath/ath10k/testmode.c spin_lock_bh(&ar->data_lock); ar 271 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_monitor = true; ar 272 drivers/net/wireless/ath/ath10k/testmode.c spin_unlock_bh(&ar->data_lock); ar 274 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode wmi version %d\n", ar 275 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_mode_fw.fw_file.wmi_op_version); ar 277 drivers/net/wireless/ath/ath10k/testmode.c ret = ath10k_hif_power_up(ar, ATH10K_FIRMWARE_MODE_UTF); ar 279 drivers/net/wireless/ath/ath10k/testmode.c ath10k_err(ar, "failed to power up hif (testmode): %d\n", ret); ar 280 drivers/net/wireless/ath/ath10k/testmode.c ar->state = ATH10K_STATE_OFF; ar 284 drivers/net/wireless/ath/ath10k/testmode.c ret = ath10k_core_start(ar, ATH10K_FIRMWARE_MODE_UTF, ar 285 drivers/net/wireless/ath/ath10k/testmode.c &ar->testmode.utf_mode_fw); ar 287 drivers/net/wireless/ath/ath10k/testmode.c ath10k_err(ar, "failed to start core (testmode): %d\n", ret); ar 288 drivers/net/wireless/ath/ath10k/testmode.c ar->state = ATH10K_STATE_OFF; ar 292 drivers/net/wireless/ath/ath10k/testmode.c ar->state = ATH10K_STATE_UTF; ar 294 drivers/net/wireless/ath/ath10k/testmode.c if (strlen(ar->testmode.utf_mode_fw.fw_file.fw_version) > 0) ar 295 drivers/net/wireless/ath/ath10k/testmode.c ver = ar->testmode.utf_mode_fw.fw_file.fw_version; ar 299 drivers/net/wireless/ath/ath10k/testmode.c ath10k_info(ar, "UTF firmware %s started\n", ver); ar 301 drivers/net/wireless/ath/ath10k/testmode.c mutex_unlock(&ar->conf_mutex); ar 306 drivers/net/wireless/ath/ath10k/testmode.c ath10k_hif_power_down(ar); ar 309 drivers/net/wireless/ath/ath10k/testmode.c if (ar->testmode.utf_mode_fw.fw_file.codeswap_data && ar 310 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_mode_fw.fw_file.codeswap_len) ar 311 drivers/net/wireless/ath/ath10k/testmode.c ath10k_swap_code_seg_release(ar, ar 312 drivers/net/wireless/ath/ath10k/testmode.c &ar->testmode.utf_mode_fw.fw_file); ar 314 drivers/net/wireless/ath/ath10k/testmode.c release_firmware(ar->testmode.utf_mode_fw.fw_file.firmware); ar 315 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_mode_fw.fw_file.firmware = NULL; ar 318 drivers/net/wireless/ath/ath10k/testmode.c mutex_unlock(&ar->conf_mutex); ar 323 drivers/net/wireless/ath/ath10k/testmode.c static void __ath10k_tm_cmd_utf_stop(struct ath10k *ar) ar 325 drivers/net/wireless/ath/ath10k/testmode.c lockdep_assert_held(&ar->conf_mutex); ar 327 drivers/net/wireless/ath/ath10k/testmode.c ath10k_core_stop(ar); ar 328 drivers/net/wireless/ath/ath10k/testmode.c ath10k_hif_power_down(ar); ar 330 drivers/net/wireless/ath/ath10k/testmode.c spin_lock_bh(&ar->data_lock); ar 332 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_monitor = false; ar 334 drivers/net/wireless/ath/ath10k/testmode.c spin_unlock_bh(&ar->data_lock); ar 336 drivers/net/wireless/ath/ath10k/testmode.c if (ar->testmode.utf_mode_fw.fw_file.codeswap_data && ar 337 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_mode_fw.fw_file.codeswap_len) ar 338 drivers/net/wireless/ath/ath10k/testmode.c ath10k_swap_code_seg_release(ar, ar 339 drivers/net/wireless/ath/ath10k/testmode.c &ar->testmode.utf_mode_fw.fw_file); ar 341 drivers/net/wireless/ath/ath10k/testmode.c release_firmware(ar->testmode.utf_mode_fw.fw_file.firmware); ar 342 drivers/net/wireless/ath/ath10k/testmode.c ar->testmode.utf_mode_fw.fw_file.firmware = NULL; ar 344 drivers/net/wireless/ath/ath10k/testmode.c ar->state = ATH10K_STATE_OFF; ar 347 drivers/net/wireless/ath/ath10k/testmode.c static int ath10k_tm_cmd_utf_stop(struct ath10k *ar, struct nlattr *tb[]) ar 351 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, "testmode cmd utf stop\n"); ar 353 drivers/net/wireless/ath/ath10k/testmode.c mutex_lock(&ar->conf_mutex); ar 355 drivers/net/wireless/ath/ath10k/testmode.c if (ar->state != ATH10K_STATE_UTF) { ar 360 drivers/net/wireless/ath/ath10k/testmode.c __ath10k_tm_cmd_utf_stop(ar); ar 364 drivers/net/wireless/ath/ath10k/testmode.c ath10k_info(ar, "UTF firmware stopped\n"); ar 367 drivers/net/wireless/ath/ath10k/testmode.c mutex_unlock(&ar->conf_mutex); ar 371 drivers/net/wireless/ath/ath10k/testmode.c static int ath10k_tm_cmd_wmi(struct ath10k *ar, struct nlattr *tb[]) ar 378 drivers/net/wireless/ath/ath10k/testmode.c mutex_lock(&ar->conf_mutex); ar 380 drivers/net/wireless/ath/ath10k/testmode.c if (ar->state != ATH10K_STATE_UTF) { ar 399 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg(ar, ATH10K_DBG_TESTMODE, ar 403 drivers/net/wireless/ath/ath10k/testmode.c ath10k_dbg_dump(ar, ATH10K_DBG_TESTMODE, NULL, "", buf, buf_len); ar 405 drivers/net/wireless/ath/ath10k/testmode.c skb = ath10k_wmi_alloc_skb(ar, buf_len); ar 413 drivers/net/wireless/ath/ath10k/testmode.c ret = ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 415 drivers/net/wireless/ath/ath10k/testmode.c ath10k_warn(ar, "failed to transmit wmi command (testmode): %d\n", ar 423 drivers/net/wireless/ath/ath10k/testmode.c mutex_unlock(&ar->conf_mutex); ar 430 drivers/net/wireless/ath/ath10k/testmode.c struct ath10k *ar = hw->priv; ar 444 drivers/net/wireless/ath/ath10k/testmode.c return ath10k_tm_cmd_get_version(ar, tb); ar 446 drivers/net/wireless/ath/ath10k/testmode.c return ath10k_tm_cmd_utf_start(ar, tb); ar 448 drivers/net/wireless/ath/ath10k/testmode.c return ath10k_tm_cmd_utf_stop(ar, tb); ar 450 drivers/net/wireless/ath/ath10k/testmode.c return ath10k_tm_cmd_wmi(ar, tb); ar 456 drivers/net/wireless/ath/ath10k/testmode.c void ath10k_testmode_destroy(struct ath10k *ar) ar 458 drivers/net/wireless/ath/ath10k/testmode.c mutex_lock(&ar->conf_mutex); ar 460 drivers/net/wireless/ath/ath10k/testmode.c if (ar->state != ATH10K_STATE_UTF) { ar 465 drivers/net/wireless/ath/ath10k/testmode.c __ath10k_tm_cmd_utf_stop(ar); ar 468 drivers/net/wireless/ath/ath10k/testmode.c mutex_unlock(&ar->conf_mutex); ar 10 drivers/net/wireless/ath/ath10k/testmode.h void ath10k_testmode_destroy(struct ath10k *ar); ar 12 drivers/net/wireless/ath/ath10k/testmode.h bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, struct sk_buff *skb); ar 18 drivers/net/wireless/ath/ath10k/testmode.h static inline void ath10k_testmode_destroy(struct ath10k *ar) ar 22 drivers/net/wireless/ath/ath10k/testmode.h static inline bool ath10k_tm_event_wmi(struct ath10k *ar, u32 cmd_id, ar 28 drivers/net/wireless/ath/ath10k/thermal.c struct ath10k *ar = cdev->devdata; ar 30 drivers/net/wireless/ath/ath10k/thermal.c mutex_lock(&ar->conf_mutex); ar 31 drivers/net/wireless/ath/ath10k/thermal.c *state = ar->thermal.throttle_state; ar 32 drivers/net/wireless/ath/ath10k/thermal.c mutex_unlock(&ar->conf_mutex); ar 41 drivers/net/wireless/ath/ath10k/thermal.c struct ath10k *ar = cdev->devdata; ar 44 drivers/net/wireless/ath/ath10k/thermal.c ath10k_warn(ar, "throttle state %ld is exceeding the limit %d\n", ar 48 drivers/net/wireless/ath/ath10k/thermal.c mutex_lock(&ar->conf_mutex); ar 49 drivers/net/wireless/ath/ath10k/thermal.c ar->thermal.throttle_state = throttle_state; ar 50 drivers/net/wireless/ath/ath10k/thermal.c ath10k_thermal_set_throttling(ar); ar 51 drivers/net/wireless/ath/ath10k/thermal.c mutex_unlock(&ar->conf_mutex); ar 65 drivers/net/wireless/ath/ath10k/thermal.c struct ath10k *ar = dev_get_drvdata(dev); ar 69 drivers/net/wireless/ath/ath10k/thermal.c mutex_lock(&ar->conf_mutex); ar 72 drivers/net/wireless/ath/ath10k/thermal.c if (ar->state != ATH10K_STATE_ON) { ar 77 drivers/net/wireless/ath/ath10k/thermal.c reinit_completion(&ar->thermal.wmi_sync); ar 78 drivers/net/wireless/ath/ath10k/thermal.c ret = ath10k_wmi_pdev_get_temperature(ar); ar 80 drivers/net/wireless/ath/ath10k/thermal.c ath10k_warn(ar, "failed to read temperature %d\n", ret); ar 84 drivers/net/wireless/ath/ath10k/thermal.c if (test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)) { ar 89 drivers/net/wireless/ath/ath10k/thermal.c time_left = wait_for_completion_timeout(&ar->thermal.wmi_sync, ar 92 drivers/net/wireless/ath/ath10k/thermal.c ath10k_warn(ar, "failed to synchronize thermal read\n"); ar 97 drivers/net/wireless/ath/ath10k/thermal.c spin_lock_bh(&ar->data_lock); ar 98 drivers/net/wireless/ath/ath10k/thermal.c temperature = ar->thermal.temperature; ar 99 drivers/net/wireless/ath/ath10k/thermal.c spin_unlock_bh(&ar->data_lock); ar 104 drivers/net/wireless/ath/ath10k/thermal.c mutex_unlock(&ar->conf_mutex); ar 108 drivers/net/wireless/ath/ath10k/thermal.c void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature) ar 110 drivers/net/wireless/ath/ath10k/thermal.c spin_lock_bh(&ar->data_lock); ar 111 drivers/net/wireless/ath/ath10k/thermal.c ar->thermal.temperature = temperature; ar 112 drivers/net/wireless/ath/ath10k/thermal.c spin_unlock_bh(&ar->data_lock); ar 113 drivers/net/wireless/ath/ath10k/thermal.c complete(&ar->thermal.wmi_sync); ar 125 drivers/net/wireless/ath/ath10k/thermal.c void ath10k_thermal_set_throttling(struct ath10k *ar) ar 130 drivers/net/wireless/ath/ath10k/thermal.c lockdep_assert_held(&ar->conf_mutex); ar 132 drivers/net/wireless/ath/ath10k/thermal.c if (!test_bit(WMI_SERVICE_THERM_THROT, ar->wmi.svc_map)) ar 135 drivers/net/wireless/ath/ath10k/thermal.c if (!ar->wmi.ops->gen_pdev_set_quiet_mode) ar 138 drivers/net/wireless/ath/ath10k/thermal.c if (ar->state != ATH10K_STATE_ON) ar 141 drivers/net/wireless/ath/ath10k/thermal.c period = ar->thermal.quiet_period; ar 142 drivers/net/wireless/ath/ath10k/thermal.c duration = (period * ar->thermal.throttle_state) / 100; ar 145 drivers/net/wireless/ath/ath10k/thermal.c ret = ath10k_wmi_pdev_set_quiet_mode(ar, period, duration, ar 149 drivers/net/wireless/ath/ath10k/thermal.c ath10k_warn(ar, "failed to set quiet mode period %u duarion %u enabled %u ret %d\n", ar 154 drivers/net/wireless/ath/ath10k/thermal.c int ath10k_thermal_register(struct ath10k *ar) ar 160 drivers/net/wireless/ath/ath10k/thermal.c if (!test_bit(WMI_SERVICE_THERM_THROT, ar->wmi.svc_map)) ar 163 drivers/net/wireless/ath/ath10k/thermal.c cdev = thermal_cooling_device_register("ath10k_thermal", ar, ar 167 drivers/net/wireless/ath/ath10k/thermal.c ath10k_err(ar, "failed to setup thermal device result: %ld\n", ar 172 drivers/net/wireless/ath/ath10k/thermal.c ret = sysfs_create_link(&ar->dev->kobj, &cdev->device.kobj, ar 175 drivers/net/wireless/ath/ath10k/thermal.c ath10k_err(ar, "failed to create cooling device symlink\n"); ar 179 drivers/net/wireless/ath/ath10k/thermal.c ar->thermal.cdev = cdev; ar 180 drivers/net/wireless/ath/ath10k/thermal.c ar->thermal.quiet_period = ATH10K_QUIET_PERIOD_DEFAULT; ar 185 drivers/net/wireless/ath/ath10k/thermal.c if (!(ar->wmi.ops->gen_pdev_get_temperature)) ar 194 drivers/net/wireless/ath/ath10k/thermal.c hwmon_dev = devm_hwmon_device_register_with_groups(ar->dev, ar 195 drivers/net/wireless/ath/ath10k/thermal.c "ath10k_hwmon", ar, ar 198 drivers/net/wireless/ath/ath10k/thermal.c ath10k_err(ar, "failed to register hwmon device: %ld\n", ar 206 drivers/net/wireless/ath/ath10k/thermal.c sysfs_remove_link(&ar->dev->kobj, "cooling_device"); ar 212 drivers/net/wireless/ath/ath10k/thermal.c void ath10k_thermal_unregister(struct ath10k *ar) ar 214 drivers/net/wireless/ath/ath10k/thermal.c if (!test_bit(WMI_SERVICE_THERM_THROT, ar->wmi.svc_map)) ar 217 drivers/net/wireless/ath/ath10k/thermal.c sysfs_remove_link(&ar->dev->kobj, "cooling_device"); ar 218 drivers/net/wireless/ath/ath10k/thermal.c thermal_cooling_device_unregister(ar->thermal.cdev); ar 29 drivers/net/wireless/ath/ath10k/thermal.h int ath10k_thermal_register(struct ath10k *ar); ar 30 drivers/net/wireless/ath/ath10k/thermal.h void ath10k_thermal_unregister(struct ath10k *ar); ar 31 drivers/net/wireless/ath/ath10k/thermal.h void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature); ar 32 drivers/net/wireless/ath/ath10k/thermal.h void ath10k_thermal_set_throttling(struct ath10k *ar); ar 34 drivers/net/wireless/ath/ath10k/thermal.h static inline int ath10k_thermal_register(struct ath10k *ar) ar 39 drivers/net/wireless/ath/ath10k/thermal.h static inline void ath10k_thermal_unregister(struct ath10k *ar) ar 43 drivers/net/wireless/ath/ath10k/thermal.h static inline void ath10k_thermal_event_temperature(struct ath10k *ar, ar 48 drivers/net/wireless/ath/ath10k/thermal.h static inline void ath10k_thermal_set_throttling(struct ath10k *ar) ar 50 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, struct va_format *vaf), ar 51 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, vaf), ar 53 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 54 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 58 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 59 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 74 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, struct va_format *vaf), ar 75 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, vaf) ar 79 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, struct va_format *vaf), ar 80 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, vaf) ar 84 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, struct va_format *vaf), ar 85 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, vaf) ar 89 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, unsigned int level, struct va_format *vaf), ar 90 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, level, vaf), ar 92 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 93 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 98 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 99 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 115 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const char *msg, const char *prefix, ar 118 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, msg, prefix, buf, buf_len), ar 121 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 122 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 130 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 131 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 148 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, int id, const void *buf, size_t buf_len), ar 150 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, id, buf, buf_len), ar 153 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 154 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 161 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 162 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 178 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, int id, const void *buf, size_t buf_len), ar 180 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, id, buf, buf_len), ar 183 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 184 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 191 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 192 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 208 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *buf, size_t buf_len), ar 210 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, buf, buf_len), ar 213 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 214 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 220 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 221 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 235 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *buf, size_t buf_len), ar 237 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, buf, buf_len), ar 240 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 241 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 248 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 249 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 250 drivers/net/wireless/ath/ath10k/trace.h __entry->hw_type = ar->hw_rev; ar 265 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *buf, u16 buf_len), ar 267 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, buf, buf_len), ar 270 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 271 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 278 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 279 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 280 drivers/net/wireless/ath/ath10k/trace.h __entry->hw_type = ar->hw_rev; ar 295 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, u16 msdu_id, u16 msdu_len, ar 298 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, msdu_id, msdu_len, vdev_id, tid), ar 301 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 302 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 310 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 311 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 330 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, u16 msdu_id), ar 332 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, msdu_id), ar 335 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 336 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 341 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 342 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 355 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 357 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len), ar 360 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 361 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 367 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 368 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 382 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 384 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len), ar 387 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 388 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 395 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 396 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 411 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 412 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len) ar 416 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 417 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len) ar 421 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 422 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len) ar 426 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 427 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len) ar 431 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 433 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len), ar 436 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 437 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 444 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 445 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 446 drivers/net/wireless/ath/ath10k/trace.h __entry->hw_type = ar->hw_rev; ar 461 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, ar 468 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, type, timestamp, code, len, data), ar 471 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 472 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 481 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 482 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 502 drivers/net/wireless/ath/ath10k/trace.h TP_PROTO(struct ath10k *ar, const void *data, size_t len), ar 504 drivers/net/wireless/ath/ath10k/trace.h TP_ARGS(ar, data, len), ar 507 drivers/net/wireless/ath/ath10k/trace.h __string(device, dev_name(ar->dev)) ar 508 drivers/net/wireless/ath/ath10k/trace.h __string(driver, dev_driver_string(ar->dev)) ar 514 drivers/net/wireless/ath/ath10k/trace.h __assign_str(device, dev_name(ar->dev)); ar 515 drivers/net/wireless/ath/ath10k/trace.h __assign_str(driver, dev_driver_string(ar->dev)); ar 14 drivers/net/wireless/ath/ath10k/txrx.c static void ath10k_report_offchan_tx(struct ath10k *ar, struct sk_buff *skb) ar 21 drivers/net/wireless/ath/ath10k/txrx.c if (ath10k_mac_tx_frm_has_freq(ar)) ar 29 drivers/net/wireless/ath/ath10k/txrx.c spin_lock_bh(&ar->data_lock); ar 30 drivers/net/wireless/ath/ath10k/txrx.c if (ar->offchan_tx_skb != skb) { ar 31 drivers/net/wireless/ath/ath10k/txrx.c ath10k_warn(ar, "completed old offchannel frame\n"); ar 35 drivers/net/wireless/ath/ath10k/txrx.c complete(&ar->offchan_tx_completed); ar 36 drivers/net/wireless/ath/ath10k/txrx.c ar->offchan_tx_skb = NULL; /* just for sanity */ ar 38 drivers/net/wireless/ath/ath10k/txrx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "completed offchannel skb %pK\n", skb); ar 40 drivers/net/wireless/ath/ath10k/txrx.c spin_unlock_bh(&ar->data_lock); ar 46 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k *ar = htt->ar; ar 47 drivers/net/wireless/ath/ath10k/txrx.c struct device *dev = ar->dev; ar 54 drivers/net/wireless/ath/ath10k/txrx.c ath10k_dbg(ar, ATH10K_DBG_HTT, ar 59 drivers/net/wireless/ath/ath10k/txrx.c ath10k_warn(ar, "warning: msdu_id %d too big, ignoring\n", ar 67 drivers/net/wireless/ath/ath10k/txrx.c ath10k_warn(ar, "received tx completion for invalid msdu_id: %d\n", ar 91 drivers/net/wireless/ath/ath10k/txrx.c if (ar->bus_param.dev_type != ATH10K_DEV_TYPE_HL) ar 94 drivers/net/wireless/ath/ath10k/txrx.c ath10k_report_offchan_tx(htt->ar, msdu); ar 100 drivers/net/wireless/ath/ath10k/txrx.c trace_ath10k_txrx_tx_unref(ar, tx_done->msdu_id); ar 126 drivers/net/wireless/ath/ath10k/txrx.c ieee80211_tx_status(htt->ar->hw, msdu); ar 132 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k_peer *ath10k_peer_find(struct ath10k *ar, int vdev_id, ar 137 drivers/net/wireless/ath/ath10k/txrx.c lockdep_assert_held(&ar->data_lock); ar 139 drivers/net/wireless/ath/ath10k/txrx.c list_for_each_entry(peer, &ar->peers, list) { ar 151 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k_peer *ath10k_peer_find_by_id(struct ath10k *ar, int peer_id) ar 158 drivers/net/wireless/ath/ath10k/txrx.c lockdep_assert_held(&ar->data_lock); ar 160 drivers/net/wireless/ath/ath10k/txrx.c list_for_each_entry(peer, &ar->peers, list) ar 167 drivers/net/wireless/ath/ath10k/txrx.c static int ath10k_wait_for_peer_common(struct ath10k *ar, int vdev_id, ar 172 drivers/net/wireless/ath/ath10k/txrx.c time_left = wait_event_timeout(ar->peer_mapping_wq, ({ ar 175 drivers/net/wireless/ath/ath10k/txrx.c spin_lock_bh(&ar->data_lock); ar 176 drivers/net/wireless/ath/ath10k/txrx.c mapped = !!ath10k_peer_find(ar, vdev_id, addr); ar 177 drivers/net/wireless/ath/ath10k/txrx.c spin_unlock_bh(&ar->data_lock); ar 180 drivers/net/wireless/ath/ath10k/txrx.c test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)); ar 189 drivers/net/wireless/ath/ath10k/txrx.c int ath10k_wait_for_peer_created(struct ath10k *ar, int vdev_id, const u8 *addr) ar 191 drivers/net/wireless/ath/ath10k/txrx.c return ath10k_wait_for_peer_common(ar, vdev_id, addr, true); ar 194 drivers/net/wireless/ath/ath10k/txrx.c int ath10k_wait_for_peer_deleted(struct ath10k *ar, int vdev_id, const u8 *addr) ar 196 drivers/net/wireless/ath/ath10k/txrx.c return ath10k_wait_for_peer_common(ar, vdev_id, addr, false); ar 202 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k *ar = htt->ar; ar 206 drivers/net/wireless/ath/ath10k/txrx.c ath10k_warn(ar, ar 212 drivers/net/wireless/ath/ath10k/txrx.c spin_lock_bh(&ar->data_lock); ar 213 drivers/net/wireless/ath/ath10k/txrx.c peer = ath10k_peer_find(ar, ev->vdev_id, ev->addr); ar 221 drivers/net/wireless/ath/ath10k/txrx.c list_add(&peer->list, &ar->peers); ar 222 drivers/net/wireless/ath/ath10k/txrx.c wake_up(&ar->peer_mapping_wq); ar 225 drivers/net/wireless/ath/ath10k/txrx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt peer map vdev %d peer %pM id %d\n", ar 228 drivers/net/wireless/ath/ath10k/txrx.c WARN_ON(ar->peer_map[ev->peer_id] && (ar->peer_map[ev->peer_id] != peer)); ar 229 drivers/net/wireless/ath/ath10k/txrx.c ar->peer_map[ev->peer_id] = peer; ar 232 drivers/net/wireless/ath/ath10k/txrx.c spin_unlock_bh(&ar->data_lock); ar 238 drivers/net/wireless/ath/ath10k/txrx.c struct ath10k *ar = htt->ar; ar 242 drivers/net/wireless/ath/ath10k/txrx.c ath10k_warn(ar, ar 248 drivers/net/wireless/ath/ath10k/txrx.c spin_lock_bh(&ar->data_lock); ar 249 drivers/net/wireless/ath/ath10k/txrx.c peer = ath10k_peer_find_by_id(ar, ev->peer_id); ar 251 drivers/net/wireless/ath/ath10k/txrx.c ath10k_warn(ar, "peer-unmap-event: unknown peer id %d\n", ar 256 drivers/net/wireless/ath/ath10k/txrx.c ath10k_dbg(ar, ATH10K_DBG_HTT, "htt peer unmap vdev %d peer %pM id %d\n", ar 259 drivers/net/wireless/ath/ath10k/txrx.c ar->peer_map[ev->peer_id] = NULL; ar 265 drivers/net/wireless/ath/ath10k/txrx.c wake_up(&ar->peer_mapping_wq); ar 269 drivers/net/wireless/ath/ath10k/txrx.c spin_unlock_bh(&ar->data_lock); ar 14 drivers/net/wireless/ath/ath10k/txrx.h struct ath10k_peer *ath10k_peer_find(struct ath10k *ar, int vdev_id, ar 16 drivers/net/wireless/ath/ath10k/txrx.h struct ath10k_peer *ath10k_peer_find_by_id(struct ath10k *ar, int peer_id); ar 17 drivers/net/wireless/ath/ath10k/txrx.h int ath10k_wait_for_peer_created(struct ath10k *ar, int vdev_id, ar 19 drivers/net/wireless/ath/ath10k/txrx.h int ath10k_wait_for_peer_deleted(struct ath10k *ar, int vdev_id, ar 18 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_post_recv_transfers(struct ath10k *ar, ar 82 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_free_pipe_resources(struct ath10k *ar, ar 92 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB, ar 98 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB, ar 114 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_cleanup_pipe_resources(struct ath10k *ar) ar 116 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 120 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_free_pipe_resources(ar, &ar_usb->pipes[i]); ar 129 drivers/net/wireless/ath/ath10k/usb.c struct ath10k *ar = pipe->ar_usb->ar; ar 133 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB_BULK, ar 150 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB_BULK, ar 178 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_post_recv_transfers(ar, pipe); ar 186 drivers/net/wireless/ath/ath10k/usb.c struct ath10k *ar = pipe->ar_usb->ar; ar 190 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB_BULK, ar 205 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_post_recv_transfers(struct ath10k *ar, ar 232 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB_BULK, ar 242 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB_BULK, ar 258 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_flush_all(struct ath10k *ar) ar 260 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 271 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_start_recv_pipes(struct ath10k *ar) ar 273 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 277 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_post_recv_transfers(ar, ar 281 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_tx_complete(struct ath10k *ar, struct sk_buff *skb) ar 287 drivers/net/wireless/ath/ath10k/usb.c ep = &ar->htc.endpoint[htc_hdr->eid]; ar 292 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_rx_complete(struct ath10k *ar, struct sk_buff *skb) ar 294 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_htc *htc = &ar->htc; ar 304 drivers/net/wireless/ath/ath10k/usb.c ep = &ar->htc.endpoint[eid]; ar 307 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, "ep %d is not connected\n", eid); ar 313 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, "zero length frame received, firmware crashed?\n"); ar 318 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, "malformed frame received, firmware crashed?\n"); ar 345 drivers/net/wireless/ath/ath10k/usb.c ep->ep_ops.ep_rx_complete(ar, skb); ar 359 drivers/net/wireless/ath/ath10k/usb.c struct ath10k *ar = pipe->ar_usb->ar; ar 364 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_tx_complete(ar, skb); ar 366 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_rx_complete(ar, skb); ar 373 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_destroy(struct ath10k *ar) ar 375 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 377 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_flush_all(ar); ar 378 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_cleanup_pipe_resources(ar); ar 385 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_start(struct ath10k *ar) ar 388 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 390 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_start_recv_pipes(ar); ar 402 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_tx_sg(struct ath10k *ar, u8 pipe_id, ar 405 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 443 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB_BULK, ar 462 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_hif_stop(struct ath10k *ar) ar 464 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_flush_all(ar); ar 467 drivers/net/wireless/ath/ath10k/usb.c static u16 ath10k_usb_hif_get_free_queue_number(struct ath10k *ar, u8 pipe_id) ar 469 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 474 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_submit_ctrl_out(struct ath10k *ar, ar 478 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 497 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, "Failed to submit usb control message: %d\n", ar 508 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_submit_ctrl_in(struct ath10k *ar, ar 512 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 531 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, "Failed to read usb control message: %d\n", ar 544 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_ctrl_msg_exchange(struct ath10k *ar, ar 552 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_submit_ctrl_out(ar, req_val, 0, 0, ar 559 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_submit_ctrl_in(ar, resp_val, 0, 0, ar 570 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_diag_read(struct ath10k *ar, u32 address, void *buf, ar 573 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 587 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_ctrl_msg_exchange(ar, ar 605 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_diag_write(struct ath10k *ar, u32 address, ar 608 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 621 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_ctrl_msg_exchange(ar, ar 632 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_bmi_exchange_msg(struct ath10k *ar, ar 639 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_submit_ctrl_out(ar, ar 643 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, ar 651 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_submit_ctrl_in(ar, ar 655 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, ar 665 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_hif_get_default_pipe(struct ath10k *ar, ar 672 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_map_service_to_pipe(struct ath10k *ar, u16 svc_id, ar 702 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_hif_send_complete_check(struct ath10k *ar, ar 707 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_power_up(struct ath10k *ar, ar 713 drivers/net/wireless/ath/ath10k/usb.c static void ath10k_usb_hif_power_down(struct ath10k *ar) ar 715 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_flush_all(ar); ar 720 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_suspend(struct ath10k *ar) ar 725 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_hif_resume(struct ath10k *ar) ar 795 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_alloc_pipe_resources(struct ath10k *ar, ar 819 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB, ar 827 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_setup_pipe_resources(struct ath10k *ar, ar 830 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 837 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB, "usb setting up pipes using interface\n"); ar 844 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB, ar 851 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB, ar 860 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_USB, ar 924 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_alloc_pipe_resources(ar, pipe, urbcount); ar 932 drivers/net/wireless/ath/ath10k/usb.c static int ath10k_usb_create(struct ath10k *ar, ar 935 drivers/net/wireless/ath/ath10k/usb.c struct ath10k_usb *ar_usb = ath10k_usb_priv(ar); ar 965 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_setup_pipe_resources(ar, interface); ar 972 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_destroy(ar); ar 980 drivers/net/wireless/ath/ath10k/usb.c struct ath10k *ar; ar 995 drivers/net/wireless/ath/ath10k/usb.c ar = ath10k_core_create(sizeof(*ar_usb), &dev->dev, ATH10K_BUS_USB, ar 997 drivers/net/wireless/ath/ath10k/usb.c if (!ar) { ar 1006 drivers/net/wireless/ath/ath10k/usb.c ath10k_dbg(ar, ATH10K_DBG_BOOT, ar 1010 drivers/net/wireless/ath/ath10k/usb.c ar_usb = ath10k_usb_priv(ar); ar 1011 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_usb_create(ar, interface); ar 1012 drivers/net/wireless/ath/ath10k/usb.c ar_usb->ar = ar; ar 1014 drivers/net/wireless/ath/ath10k/usb.c ar->dev_id = product_id; ar 1015 drivers/net/wireless/ath/ath10k/usb.c ar->id.vendor = vendor_id; ar 1016 drivers/net/wireless/ath/ath10k/usb.c ar->id.device = product_id; ar 1021 drivers/net/wireless/ath/ath10k/usb.c ret = ath10k_core_register(ar, &bus_params); ar 1023 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, "failed to register driver core: %d\n", ret); ar 1028 drivers/net/wireless/ath/ath10k/usb.c ath10k_warn(ar, "Warning: ath10k USB support is incomplete, don't expect anything to work!\n"); ar 1033 drivers/net/wireless/ath/ath10k/usb.c ath10k_core_destroy(ar); ar 1048 drivers/net/wireless/ath/ath10k/usb.c ath10k_core_unregister(ar_usb->ar); ar 1049 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_destroy(ar_usb->ar); ar 1051 drivers/net/wireless/ath/ath10k/usb.c ath10k_core_destroy(ar_usb->ar); ar 1061 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_flush_all(ar_usb->ar); ar 1068 drivers/net/wireless/ath/ath10k/usb.c struct ath10k *ar = ar_usb->ar; ar 1070 drivers/net/wireless/ath/ath10k/usb.c ath10k_usb_post_recv_transfers(ar, ar 101 drivers/net/wireless/ath/ath10k/usb.h struct ath10k *ar; ar 109 drivers/net/wireless/ath/ath10k/usb.h struct ath10k *ar; ar 112 drivers/net/wireless/ath/ath10k/usb.h static inline struct ath10k_usb *ath10k_usb_priv(struct ath10k *ar) ar 114 drivers/net/wireless/ath/ath10k/usb.h return (struct ath10k_usb *)ar->drv_priv; ar 15 drivers/net/wireless/ath/ath10k/wmi-ops.h void (*rx)(struct ath10k *ar, struct sk_buff *skb); ar 19 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_scan)(struct ath10k *ar, struct sk_buff *skb, ar 21 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_mgmt_rx)(struct ath10k *ar, struct sk_buff *skb, ar 23 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_mgmt_tx_compl)(struct ath10k *ar, struct sk_buff *skb, ar 26 drivers/net/wireless/ath/ath10k/wmi-ops.h struct ath10k *ar, struct sk_buff *skb, ar 28 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_ch_info)(struct ath10k *ar, struct sk_buff *skb, ar 30 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_vdev_start)(struct ath10k *ar, struct sk_buff *skb, ar 32 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_peer_kick)(struct ath10k *ar, struct sk_buff *skb, ar 34 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_swba)(struct ath10k *ar, struct sk_buff *skb, ar 36 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_phyerr_hdr)(struct ath10k *ar, struct sk_buff *skb, ar 38 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_phyerr)(struct ath10k *ar, const void *phyerr_buf, ar 40 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_svc_rdy)(struct ath10k *ar, struct sk_buff *skb, ar 42 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_rdy)(struct ath10k *ar, struct sk_buff *skb, ar 44 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_fw_stats)(struct ath10k *ar, struct sk_buff *skb, ar 46 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_roam_ev)(struct ath10k *ar, struct sk_buff *skb, ar 48 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_wow_event)(struct ath10k *ar, struct sk_buff *skb, ar 50 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_echo_ev)(struct ath10k *ar, struct sk_buff *skb, ar 52 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_dfs_status_ev)(struct ath10k *ar, struct sk_buff *skb, ar 54 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*pull_svc_avail)(struct ath10k *ar, struct sk_buff *skb, ar 57 drivers/net/wireless/ath/ath10k/wmi-ops.h enum wmi_txbf_conf (*get_txbf_conf_scheme)(struct ath10k *ar); ar 59 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_suspend)(struct ath10k *ar, u32 suspend_opt); ar 60 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_resume)(struct ath10k *ar); ar 61 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_set_base_macaddr)(struct ath10k *ar, ar 63 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_set_rd)(struct ath10k *ar, u16 rd, u16 rd2g, ar 66 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_set_param)(struct ath10k *ar, u32 id, ar 68 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_init)(struct ath10k *ar); ar 69 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_start_scan)(struct ath10k *ar, ar 71 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_stop_scan)(struct ath10k *ar, ar 73 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_create)(struct ath10k *ar, u32 vdev_id, ar 77 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_delete)(struct ath10k *ar, u32 vdev_id); ar 78 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_start)(struct ath10k *ar, ar 81 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_stop)(struct ath10k *ar, u32 vdev_id); ar 82 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_up)(struct ath10k *ar, u32 vdev_id, u32 aid, ar 84 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_down)(struct ath10k *ar, u32 vdev_id); ar 85 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_set_param)(struct ath10k *ar, u32 vdev_id, ar 87 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_install_key)(struct ath10k *ar, ar 89 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_spectral_conf)(struct ath10k *ar, ar 91 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_spectral_enable)(struct ath10k *ar, u32 vdev_id, ar 93 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_wmm_conf)(struct ath10k *ar, u32 vdev_id, ar 95 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_peer_create)(struct ath10k *ar, u32 vdev_id, ar 98 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_peer_delete)(struct ath10k *ar, u32 vdev_id, ar 100 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_peer_flush)(struct ath10k *ar, u32 vdev_id, ar 103 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_peer_set_param)(struct ath10k *ar, u32 vdev_id, ar 107 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_peer_assoc)(struct ath10k *ar, ar 109 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_set_psmode)(struct ath10k *ar, u32 vdev_id, ar 111 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_set_sta_ps)(struct ath10k *ar, u32 vdev_id, ar 114 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_set_ap_ps)(struct ath10k *ar, u32 vdev_id, ar 118 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_scan_chan_list)(struct ath10k *ar, ar 120 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_scan_prob_req_oui)(struct ath10k *ar, ar 122 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_beacon_dma)(struct ath10k *ar, u32 vdev_id, ar 126 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_set_wmm)(struct ath10k *ar, ar 128 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_request_stats)(struct ath10k *ar, u32 stats_mask); ar 129 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_force_fw_hang)(struct ath10k *ar, ar 132 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_mgmt_tx)(struct ath10k *ar, struct sk_buff *skb); ar 133 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_mgmt_tx_send)(struct ath10k *ar, ar 136 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_dbglog_cfg)(struct ath10k *ar, u64 module_enable, ar 138 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pktlog_enable)(struct ath10k *ar, u32 filter); ar 139 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pktlog_disable)(struct ath10k *ar); ar 140 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_set_quiet_mode)(struct ath10k *ar, ar 144 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_get_temperature)(struct ath10k *ar); ar 145 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_addba_clear_resp)(struct ath10k *ar, u32 vdev_id, ar 147 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_addba_send)(struct ath10k *ar, u32 vdev_id, ar 149 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_addba_set_resp)(struct ath10k *ar, u32 vdev_id, ar 152 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_delba_send)(struct ath10k *ar, u32 vdev_id, ar 155 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_bcn_tmpl)(struct ath10k *ar, u32 vdev_id, ar 159 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_prb_tmpl)(struct ath10k *ar, u32 vdev_id, ar 161 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_p2p_go_bcn_ie)(struct ath10k *ar, u32 vdev_id, ar 163 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_vdev_sta_uapsd)(struct ath10k *ar, u32 vdev_id, ar 167 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_sta_keepalive)(struct ath10k *ar, ar 169 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_wow_enable)(struct ath10k *ar); ar 170 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_wow_add_wakeup_event)(struct ath10k *ar, u32 vdev_id, ar 173 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_wow_host_wakeup_ind)(struct ath10k *ar); ar 174 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_wow_add_pattern)(struct ath10k *ar, u32 vdev_id, ar 180 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_wow_del_pattern)(struct ath10k *ar, u32 vdev_id, ar 182 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_update_fw_tdls_state)(struct ath10k *ar, ar 185 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_tdls_peer_update)(struct ath10k *ar, ar 190 drivers/net/wireless/ath/ath10k/wmi-ops.h (struct ath10k *ar, ar 192 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_adaptive_qcs)(struct ath10k *ar, bool enable); ar 193 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_get_tpc_config)(struct ath10k *ar, ar 195 drivers/net/wireless/ath/ath10k/wmi-ops.h void (*fw_stats_fill)(struct ath10k *ar, ar 198 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_enable_adaptive_cca)(struct ath10k *ar, ar 202 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*ext_resource_config)(struct ath10k *ar, ar 205 drivers/net/wireless/ath/ath10k/wmi-ops.h int (*get_vdev_subtype)(struct ath10k *ar, ar 207 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_wow_config_pno)(struct ath10k *ar, ar 211 drivers/net/wireless/ath/ath10k/wmi-ops.h (struct ath10k *ar, ar 213 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_echo)(struct ath10k *ar, u32 value); ar 214 drivers/net/wireless/ath/ath10k/wmi-ops.h struct sk_buff *(*gen_pdev_get_tpc_table_cmdid)(struct ath10k *ar, ar 217 drivers/net/wireless/ath/ath10k/wmi-ops.h (struct ath10k *ar, ar 222 drivers/net/wireless/ath/ath10k/wmi-ops.h int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); ar 225 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_rx(struct ath10k *ar, struct sk_buff *skb) ar 227 drivers/net/wireless/ath/ath10k/wmi-ops.h if (WARN_ON_ONCE(!ar->wmi.ops->rx)) ar 230 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.ops->rx(ar, skb); ar 235 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_map_svc(struct ath10k *ar, const __le32 *in, unsigned long *out, ar 238 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->map_svc) ar 241 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.ops->map_svc(in, out, len); ar 246 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_map_svc_ext(struct ath10k *ar, const __le32 *in, unsigned long *out, ar 249 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->map_svc_ext) ar 252 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.ops->map_svc_ext(in, out, len); ar 257 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_scan(struct ath10k *ar, struct sk_buff *skb, ar 260 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_scan) ar 263 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_scan(ar, skb, arg); ar 267 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_mgmt_tx_compl(struct ath10k *ar, struct sk_buff *skb, ar 270 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_mgmt_tx_compl) ar 273 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_mgmt_tx_compl(ar, skb, arg); ar 277 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_mgmt_tx_bundle_compl(struct ath10k *ar, struct sk_buff *skb, ar 280 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_mgmt_tx_bundle_compl) ar 283 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_mgmt_tx_bundle_compl(ar, skb, arg); ar 287 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_mgmt_rx(struct ath10k *ar, struct sk_buff *skb, ar 290 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_mgmt_rx) ar 293 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_mgmt_rx(ar, skb, arg); ar 297 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_ch_info(struct ath10k *ar, struct sk_buff *skb, ar 300 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_ch_info) ar 303 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_ch_info(ar, skb, arg); ar 307 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_vdev_start(struct ath10k *ar, struct sk_buff *skb, ar 310 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_vdev_start) ar 313 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_vdev_start(ar, skb, arg); ar 317 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_peer_kick(struct ath10k *ar, struct sk_buff *skb, ar 320 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_peer_kick) ar 323 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_peer_kick(ar, skb, arg); ar 327 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_swba(struct ath10k *ar, struct sk_buff *skb, ar 330 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_swba) ar 333 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_swba(ar, skb, arg); ar 337 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_phyerr_hdr(struct ath10k *ar, struct sk_buff *skb, ar 340 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_phyerr_hdr) ar 343 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_phyerr_hdr(ar, skb, arg); ar 347 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_phyerr(struct ath10k *ar, const void *phyerr_buf, ar 350 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_phyerr) ar 353 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_phyerr(ar, phyerr_buf, left_len, arg); ar 357 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_svc_rdy(struct ath10k *ar, struct sk_buff *skb, ar 360 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_svc_rdy) ar 363 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_svc_rdy(ar, skb, arg); ar 367 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_rdy(struct ath10k *ar, struct sk_buff *skb, ar 370 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_rdy) ar 373 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_rdy(ar, skb, arg); ar 377 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_svc_avail(struct ath10k *ar, struct sk_buff *skb, ar 380 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_svc_avail) ar 382 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_svc_avail(ar, skb, arg); ar 386 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_fw_stats(struct ath10k *ar, struct sk_buff *skb, ar 389 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_fw_stats) ar 392 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_fw_stats(ar, skb, stats); ar 396 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_roam_ev(struct ath10k *ar, struct sk_buff *skb, ar 399 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_roam_ev) ar 402 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_roam_ev(ar, skb, arg); ar 406 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_wow_event(struct ath10k *ar, struct sk_buff *skb, ar 409 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_wow_event) ar 412 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_wow_event(ar, skb, arg); ar 416 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_echo_ev(struct ath10k *ar, struct sk_buff *skb, ar 419 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_echo_ev) ar 422 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_echo_ev(ar, skb, arg); ar 426 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pull_dfs_status(struct ath10k *ar, struct sk_buff *skb, ar 429 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->pull_dfs_status_ev) ar 432 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->pull_dfs_status_ev(ar, skb, arg); ar 436 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_get_txbf_conf_scheme(struct ath10k *ar) ar 438 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->get_txbf_conf_scheme) ar 441 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->get_txbf_conf_scheme(ar); ar 445 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_mgmt_tx_send(struct ath10k *ar, struct sk_buff *msdu, ar 451 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_mgmt_tx_send) ar 454 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_mgmt_tx_send(ar, msdu, paddr); ar 458 drivers/net/wireless/ath/ath10k/wmi-ops.h ret = ath10k_wmi_cmd_send(ar, skb, ar 459 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->mgmt_tx_send_cmdid); ar 467 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_mgmt_tx(struct ath10k *ar, struct sk_buff *msdu) ar 473 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_mgmt_tx) ar 476 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_mgmt_tx(ar, msdu); ar 480 drivers/net/wireless/ath/ath10k/wmi-ops.h ret = ath10k_wmi_cmd_send(ar, skb, ar 481 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->mgmt_tx_cmdid); ar 489 drivers/net/wireless/ath/ath10k/wmi-ops.h ieee80211_tx_status_irqsafe(ar->hw, msdu); ar 495 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_set_regdomain(struct ath10k *ar, u16 rd, u16 rd2g, u16 rd5g, ar 501 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_set_rd) ar 504 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_set_rd(ar, rd, rd2g, rd5g, ctl2g, ctl5g, ar 509 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 510 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_set_regdomain_cmdid); ar 514 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_set_base_macaddr(struct ath10k *ar, const u8 macaddr[ETH_ALEN]) ar 518 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_set_base_macaddr) ar 521 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_set_base_macaddr(ar, macaddr); ar 525 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 526 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_set_base_macaddr_cmdid); ar 530 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_suspend_target(struct ath10k *ar, u32 suspend_opt) ar 534 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_suspend) ar 537 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_suspend(ar, suspend_opt); ar 541 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->pdev_suspend_cmdid); ar 545 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_resume_target(struct ath10k *ar) ar 549 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_resume) ar 552 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_resume(ar); ar 556 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->pdev_resume_cmdid); ar 560 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_set_param(struct ath10k *ar, u32 id, u32 value) ar 564 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_set_param) ar 567 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_set_param(ar, id, value); ar 571 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->pdev_set_param_cmdid); ar 575 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_cmd_init(struct ath10k *ar) ar 579 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_init) ar 582 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_init(ar); ar 586 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->init_cmdid); ar 590 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_start_scan(struct ath10k *ar, ar 595 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_start_scan) ar 598 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_start_scan(ar, arg); ar 602 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->start_scan_cmdid); ar 606 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_stop_scan(struct ath10k *ar, const struct wmi_stop_scan_arg *arg) ar 610 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_stop_scan) ar 613 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_stop_scan(ar, arg); ar 617 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->stop_scan_cmdid); ar 621 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_create(struct ath10k *ar, u32 vdev_id, ar 628 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_create) ar 631 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_create(ar, vdev_id, type, subtype, macaddr); ar 635 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->vdev_create_cmdid); ar 639 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_delete(struct ath10k *ar, u32 vdev_id) ar 643 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_delete) ar 646 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_delete(ar, vdev_id); ar 650 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->vdev_delete_cmdid); ar 654 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_start(struct ath10k *ar, ar 659 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_start) ar 662 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_start(ar, arg, false); ar 666 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 667 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->vdev_start_request_cmdid); ar 671 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_restart(struct ath10k *ar, ar 676 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_start) ar 679 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_start(ar, arg, true); ar 683 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 684 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->vdev_restart_request_cmdid); ar 688 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_stop(struct ath10k *ar, u32 vdev_id) ar 692 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_stop) ar 695 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_stop(ar, vdev_id); ar 699 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->vdev_stop_cmdid); ar 703 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_up(struct ath10k *ar, u32 vdev_id, u32 aid, const u8 *bssid) ar 707 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_up) ar 710 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_up(ar, vdev_id, aid, bssid); ar 714 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->vdev_up_cmdid); ar 718 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_down(struct ath10k *ar, u32 vdev_id) ar 722 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_down) ar 725 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_down(ar, vdev_id); ar 729 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->vdev_down_cmdid); ar 733 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_set_param(struct ath10k *ar, u32 vdev_id, u32 param_id, ar 738 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_set_param) ar 741 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_set_param(ar, vdev_id, param_id, ar 746 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->vdev_set_param_cmdid); ar 750 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_install_key(struct ath10k *ar, ar 755 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_install_key) ar 758 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_install_key(ar, arg); ar 762 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 763 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->vdev_install_key_cmdid); ar 767 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_spectral_conf(struct ath10k *ar, ar 773 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_spectral_conf) ar 776 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_spectral_conf(ar, arg); ar 780 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->vdev_spectral_scan_configure_cmdid; ar 781 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 785 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_spectral_enable(struct ath10k *ar, u32 vdev_id, u32 trigger, ar 791 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_spectral_enable) ar 794 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_spectral_enable(ar, vdev_id, trigger, ar 799 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->vdev_spectral_scan_enable_cmdid; ar 800 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 804 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_sta_uapsd(struct ath10k *ar, u32 vdev_id, ar 812 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_vdev_sta_uapsd) ar 815 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_sta_uapsd(ar, vdev_id, peer_addr, args, ar 820 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->sta_uapsd_auto_trig_cmdid; ar 821 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 825 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_vdev_wmm_conf(struct ath10k *ar, u32 vdev_id, ar 831 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_vdev_wmm_conf(ar, vdev_id, arg); ar 835 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->vdev_set_wmm_params_cmdid; ar 836 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 840 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_peer_create(struct ath10k *ar, u32 vdev_id, ar 846 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_peer_create) ar 849 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_peer_create(ar, vdev_id, peer_addr, peer_type); ar 853 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->peer_create_cmdid); ar 857 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_peer_delete(struct ath10k *ar, u32 vdev_id, ar 862 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_peer_delete) ar 865 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_peer_delete(ar, vdev_id, peer_addr); ar 869 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->peer_delete_cmdid); ar 873 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_peer_flush(struct ath10k *ar, u32 vdev_id, ar 878 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_peer_flush) ar 881 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_peer_flush(ar, vdev_id, peer_addr, tid_bitmap); ar 885 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->peer_flush_tids_cmdid); ar 889 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_peer_set_param(struct ath10k *ar, u32 vdev_id, const u8 *peer_addr, ar 894 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_peer_set_param) ar 897 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_peer_set_param(ar, vdev_id, peer_addr, param_id, ar 902 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->peer_set_param_cmdid); ar 906 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_set_psmode(struct ath10k *ar, u32 vdev_id, ar 911 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_set_psmode) ar 914 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_set_psmode(ar, vdev_id, psmode); ar 918 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 919 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->sta_powersave_mode_cmdid); ar 923 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_set_sta_ps_param(struct ath10k *ar, u32 vdev_id, ar 928 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_set_sta_ps) ar 931 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_set_sta_ps(ar, vdev_id, param_id, value); ar 935 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 936 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->sta_powersave_param_cmdid); ar 940 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_set_ap_ps_param(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 945 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_set_ap_ps) ar 948 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_set_ap_ps(ar, vdev_id, mac, param_id, value); ar 952 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 953 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->ap_ps_peer_param_cmdid); ar 957 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_scan_chan_list(struct ath10k *ar, ar 962 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_scan_chan_list) ar 965 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_scan_chan_list(ar, arg); ar 969 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->scan_chan_list_cmdid); ar 973 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_scan_prob_req_oui(struct ath10k *ar, const u8 mac_addr[ETH_ALEN]) ar 981 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_scan_prob_req_oui) ar 984 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_scan_prob_req_oui(ar, prob_req_oui); ar 988 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 989 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->scan_prob_req_oui_cmdid); ar 993 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_peer_assoc(struct ath10k *ar, ar 998 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_peer_assoc) ar 1001 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_peer_assoc(ar, arg); ar 1005 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->peer_assoc_cmdid); ar 1009 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_beacon_send_ref_nowait(struct ath10k *ar, u32 vdev_id, ar 1017 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_beacon_dma) ar 1020 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_beacon_dma(ar, vdev_id, bcn, bcn_len, bcn_paddr, ar 1025 drivers/net/wireless/ath/ath10k/wmi-ops.h ret = ath10k_wmi_cmd_send_nowait(ar, skb, ar 1026 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_send_bcn_cmdid); ar 1036 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_set_wmm_params(struct ath10k *ar, ar 1041 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_set_wmm) ar 1044 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_set_wmm(ar, arg); ar 1048 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1049 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_set_wmm_params_cmdid); ar 1053 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_request_stats(struct ath10k *ar, u32 stats_mask) ar 1057 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_request_stats) ar 1060 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_request_stats(ar, stats_mask); ar 1064 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->request_stats_cmdid); ar 1068 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_force_fw_hang(struct ath10k *ar, ar 1073 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_force_fw_hang) ar 1076 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_force_fw_hang(ar, type, delay_ms); ar 1080 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid); ar 1084 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_dbglog_cfg(struct ath10k *ar, u64 module_enable, u32 log_level) ar 1088 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_dbglog_cfg) ar 1091 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_dbglog_cfg(ar, module_enable, log_level); ar 1095 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->dbglog_cfg_cmdid); ar 1099 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_pktlog_enable(struct ath10k *ar, u32 filter) ar 1103 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pktlog_enable) ar 1106 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pktlog_enable(ar, filter); ar 1110 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->pdev_pktlog_enable_cmdid); ar 1114 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_pktlog_disable(struct ath10k *ar) ar 1118 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pktlog_disable) ar 1121 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pktlog_disable(ar); ar 1125 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1126 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_pktlog_disable_cmdid); ar 1130 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_set_quiet_mode(struct ath10k *ar, u32 period, u32 duration, ar 1135 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_set_quiet_mode) ar 1138 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_set_quiet_mode(ar, period, duration, ar 1143 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1144 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_set_quiet_mode_cmdid); ar 1148 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_get_temperature(struct ath10k *ar) ar 1152 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_get_temperature) ar 1155 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_get_temperature(ar); ar 1159 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1160 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_get_temperature_cmdid); ar 1164 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_addba_clear_resp(struct ath10k *ar, u32 vdev_id, const u8 *mac) ar 1168 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_addba_clear_resp) ar 1171 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_addba_clear_resp(ar, vdev_id, mac); ar 1175 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1176 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->addba_clear_resp_cmdid); ar 1180 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_addba_send(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 1185 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_addba_send) ar 1188 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_addba_send(ar, vdev_id, mac, tid, buf_size); ar 1192 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1193 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->addba_send_cmdid); ar 1197 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_addba_set_resp(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 1202 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_addba_set_resp) ar 1205 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_addba_set_resp(ar, vdev_id, mac, tid, status); ar 1209 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1210 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->addba_set_resp_cmdid); ar 1214 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_delba_send(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 1219 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_delba_send) ar 1222 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_delba_send(ar, vdev_id, mac, tid, initiator, ar 1227 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1228 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->delba_send_cmdid); ar 1232 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_bcn_tmpl(struct ath10k *ar, u32 vdev_id, u32 tim_ie_offset, ar 1238 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_bcn_tmpl) ar 1241 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_bcn_tmpl(ar, vdev_id, tim_ie_offset, bcn, ar 1247 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->bcn_tmpl_cmdid); ar 1251 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_prb_tmpl(struct ath10k *ar, u32 vdev_id, struct sk_buff *prb) ar 1255 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_prb_tmpl) ar 1258 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_prb_tmpl(ar, vdev_id, prb); ar 1262 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->prb_tmpl_cmdid); ar 1266 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_p2p_go_bcn_ie(struct ath10k *ar, u32 vdev_id, const u8 *p2p_ie) ar 1270 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_p2p_go_bcn_ie) ar 1273 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_p2p_go_bcn_ie(ar, vdev_id, p2p_ie); ar 1277 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->p2p_go_set_beacon_ie); ar 1281 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_sta_keepalive(struct ath10k *ar, ar 1287 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_sta_keepalive) ar 1290 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_sta_keepalive(ar, arg); ar 1294 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->sta_keepalive_cmd; ar 1295 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 1299 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_wow_enable(struct ath10k *ar) ar 1304 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_wow_enable) ar 1307 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_wow_enable(ar); ar 1311 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->wow_enable_cmdid; ar 1312 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 1316 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_wow_add_wakeup_event(struct ath10k *ar, u32 vdev_id, ar 1323 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_wow_add_wakeup_event) ar 1326 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_wow_add_wakeup_event(ar, vdev_id, event, enable); ar 1330 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->wow_enable_disable_wake_event_cmdid; ar 1331 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 1335 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_wow_host_wakeup_ind(struct ath10k *ar) ar 1340 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_wow_host_wakeup_ind) ar 1343 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_wow_host_wakeup_ind(ar); ar 1347 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->wow_hostwakeup_from_sleep_cmdid; ar 1348 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 1352 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_wow_add_pattern(struct ath10k *ar, u32 vdev_id, u32 pattern_id, ar 1359 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_wow_add_pattern) ar 1362 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_wow_add_pattern(ar, vdev_id, pattern_id, ar 1368 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->wow_add_wake_pattern_cmdid; ar 1369 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 1373 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_wow_del_pattern(struct ath10k *ar, u32 vdev_id, u32 pattern_id) ar 1378 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_wow_del_pattern) ar 1381 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_wow_del_pattern(ar, vdev_id, pattern_id); ar 1385 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->wow_del_wake_pattern_cmdid; ar 1386 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 1390 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_wow_config_pno(struct ath10k *ar, u32 vdev_id, ar 1396 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_wow_config_pno) ar 1399 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_wow_config_pno(ar, vdev_id, pno_scan); ar 1403 drivers/net/wireless/ath/ath10k/wmi-ops.h cmd_id = ar->wmi.cmd->network_list_offload_config_cmdid; ar 1404 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, cmd_id); ar 1408 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_update_fw_tdls_state(struct ath10k *ar, u32 vdev_id, ar 1413 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_update_fw_tdls_state) ar 1416 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_update_fw_tdls_state(ar, vdev_id, state); ar 1420 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->tdls_set_state_cmdid); ar 1424 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_tdls_peer_update(struct ath10k *ar, ar 1431 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_tdls_peer_update) ar 1434 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_tdls_peer_update(ar, arg, cap, chan); ar 1438 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1439 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->tdls_peer_update_cmdid); ar 1443 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_adaptive_qcs(struct ath10k *ar, bool enable) ar 1447 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_adaptive_qcs) ar 1450 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_adaptive_qcs(ar, enable); ar 1454 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->adaptive_qcs_cmdid); ar 1458 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_get_tpc_config(struct ath10k *ar, u32 param) ar 1462 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_get_tpc_config) ar 1465 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_get_tpc_config(ar, param); ar 1470 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1471 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_get_tpc_config_cmdid); ar 1475 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_fw_stats_fill(struct ath10k *ar, struct ath10k_fw_stats *fw_stats, ar 1478 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->fw_stats_fill) ar 1481 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.ops->fw_stats_fill(ar, fw_stats, buf); ar 1486 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_enable_adaptive_cca(struct ath10k *ar, u8 enable, ar 1491 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_enable_adaptive_cca) ar 1494 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_enable_adaptive_cca(ar, enable, ar 1501 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1502 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_enable_adaptive_cca_cmdid); ar 1506 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_ext_resource_config(struct ath10k *ar, ar 1512 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->ext_resource_config) ar 1515 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->ext_resource_config(ar, type, ar 1521 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1522 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->ext_resource_cfg_cmdid); ar 1526 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_get_vdev_subtype(struct ath10k *ar, enum wmi_vdev_subtype subtype) ar 1528 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->get_vdev_subtype) ar 1531 drivers/net/wireless/ath/ath10k/wmi-ops.h return ar->wmi.ops->get_vdev_subtype(ar, subtype); ar 1535 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_bss_chan_info_request(struct ath10k *ar, ar 1538 drivers/net/wireless/ath/ath10k/wmi-ops.h struct ath10k_wmi *wmi = &ar->wmi; ar 1544 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = wmi->ops->gen_pdev_bss_chan_info_req(ar, type); ar 1548 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1553 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_echo(struct ath10k *ar, u32 value) ar 1555 drivers/net/wireless/ath/ath10k/wmi-ops.h struct ath10k_wmi *wmi = &ar->wmi; ar 1561 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = wmi->ops->gen_echo(ar, value); ar 1565 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, wmi->cmd->echo_cmdid); ar 1569 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_get_tpc_table_cmdid(struct ath10k *ar, u32 param) ar 1573 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_pdev_get_tpc_table_cmdid) ar 1576 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_pdev_get_tpc_table_cmdid(ar, param); ar 1581 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1582 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->pdev_get_tpc_table_cmdid); ar 1586 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_report_radar_found(struct ath10k *ar, ar 1591 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_radar_found) ar 1594 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_radar_found(ar, arg); ar 1598 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1599 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->radar_found_cmdid); ar 1603 drivers/net/wireless/ath/ath10k/wmi-ops.h ath10k_wmi_pdev_bb_timing(struct ath10k *ar, ar 1608 drivers/net/wireless/ath/ath10k/wmi-ops.h if (!ar->wmi.ops->gen_bb_timing) ar 1611 drivers/net/wireless/ath/ath10k/wmi-ops.h skb = ar->wmi.ops->gen_bb_timing(ar, arg); ar 1616 drivers/net/wireless/ath/ath10k/wmi-ops.h return ath10k_wmi_cmd_send(ar, skb, ar 1617 drivers/net/wireless/ath/ath10k/wmi-ops.h ar->wmi.cmd->set_bb_timing_cmdid); ar 70 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_iter(struct ath10k *ar, const void *ptr, size_t len, ar 71 drivers/net/wireless/ath/ath10k/wmi-tlv.c int (*iter)(struct ath10k *ar, u16 tag, u16 len, ar 82 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 95 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 104 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 111 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = iter(ar, tlv_tag, tlv_len, ptr, data); ar 122 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_iter_parse(struct ath10k *ar, u16 tag, u16 len, ar 133 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_parse(struct ath10k *ar, const void **tb, ar 136 drivers/net/wireless/ath/ath10k/wmi-tlv.c return ath10k_wmi_tlv_iter(ar, ptr, len, ath10k_wmi_tlv_iter_parse, ar 141 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_parse_alloc(struct ath10k *ar, const void *ptr, ar 151 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_parse(ar, tb, ptr, len); ar 168 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_event_bcn_tx_status(struct ath10k *ar, ar 177 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 180 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 202 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "received bcn tmpl tx status on vdev %i: %d", ar 207 drivers/net/wireless/ath/ath10k/wmi-tlv.c arvif = ath10k_get_arvif(ar, vdev_id); ar 209 drivers/net/wireless/ath/ath10k/wmi-tlv.c ieee80211_queue_work(ar->hw, &arvif->ap_csa_work); ar 215 drivers/net/wireless/ath/ath10k/wmi-tlv.c static void ath10k_wmi_tlv_event_vdev_delete_resp(struct ath10k *ar, ar 218 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_DELETE_RESP_EVENTID\n"); ar 219 drivers/net/wireless/ath/ath10k/wmi-tlv.c complete(&ar->vdev_delete_done); ar 222 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_event_diag_data(struct ath10k *ar, ar 231 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 234 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 252 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse diag data: can't fit item header\n"); ar 259 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse diag data: item is too long\n"); ar 263 drivers/net/wireless/ath/ath10k/wmi-tlv.c trace_ath10k_wmi_diag_container(ar, ar 278 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse diag data event: num_items %d len %d\n", ar 285 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_event_diag(struct ath10k *ar, ar 292 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 295 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 306 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv diag event len %d\n", len); ar 307 drivers/net/wireless/ath/ath10k/wmi-tlv.c trace_ath10k_wmi_diag(ar, data, len); ar 313 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_event_p2p_noa(struct ath10k *ar, ar 321 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 324 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 338 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 342 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_p2p_noa_update_by_vdev_id(ar, vdev_id, noa); ar 347 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_event_tx_pause(struct ath10k *ar, ar 355 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 358 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 374 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 389 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_mac_handle_tx_pause_vdev(ar, vdev_id, pause_id, ar 397 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 402 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 412 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_event_temperature(struct ath10k *ar, ar 421 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_thermal_event_temperature(ar, __le32_to_cpu(ev->temperature)); ar 425 drivers/net/wireless/ath/ath10k/wmi-tlv.c static void ath10k_wmi_event_tdls_peer(struct ath10k *ar, struct sk_buff *skb) ar 432 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 434 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "tdls peer failed to parse tlv"); ar 440 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "tdls peer NULL event"); ar 448 drivers/net/wireless/ath/ath10k/wmi-tlv.c station = ieee80211_find_sta_by_ifaddr(ar->hw, ar 452 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "did not find station from tdls peer event"); ar 456 drivers/net/wireless/ath/ath10k/wmi-tlv.c arvif = ath10k_get_arvif(ar, __le32_to_cpu(ev->vdev_id)); ar 468 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_event_peer_delete_resp(struct ath10k *ar, ar 477 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "vdev id %d", arg->vdev_id); ar 478 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "peer mac addr %pM", &arg->peer_addr); ar 479 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer delete response\n"); ar 481 drivers/net/wireless/ath/ath10k/wmi-tlv.c complete(&ar->peer_delete_done); ar 490 drivers/net/wireless/ath/ath10k/wmi-tlv.c static void ath10k_wmi_tlv_op_rx(struct ath10k *ar, struct sk_buff *skb) ar 502 drivers/net/wireless/ath/ath10k/wmi-tlv.c trace_ath10k_wmi_event(ar, id, skb->data, skb->len); ar 504 drivers/net/wireless/ath/ath10k/wmi-tlv.c consumed = ath10k_tm_event_wmi(ar, id, skb); ar 511 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 518 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_mgmt_rx(ar, skb); ar 522 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_scan(ar, skb); ar 525 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_chan_info(ar, skb); ar 528 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_echo(ar, skb); ar 531 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_debug_mesg(ar, skb); ar 534 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_update_stats(ar, skb); ar 537 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_vdev_start_resp(ar, skb); ar 540 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_vdev_stopped(ar, skb); ar 543 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_vdev_delete_resp(ar, skb); ar 546 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_peer_sta_kickout(ar, skb); ar 549 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_host_swba(ar, skb); ar 552 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_tbttoffset_update(ar, skb); ar 555 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_phyerr(ar, skb); ar 558 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_roam(ar, skb); ar 561 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_profile_match(ar, skb); ar 564 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_debug_print(ar, skb); ar 567 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_pdev_qvit(ar, skb); ar 570 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_wlan_profile_data(ar, skb); ar 573 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_rtt_measurement_report(ar, skb); ar 576 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_tsf_measurement_report(ar, skb); ar 579 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_rtt_error_report(ar, skb); ar 582 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_wow_wakeup_host(ar, skb); ar 585 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_dcs_interference(ar, skb); ar 588 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_pdev_tpc_config(ar, skb); ar 591 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_pdev_ftm_intg(ar, skb); ar 594 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_gtk_offload_status(ar, skb); ar 597 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_gtk_rekey_fail(ar, skb); ar 600 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_delba_complete(ar, skb); ar 603 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_addba_complete(ar, skb); ar 606 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_vdev_install_key_complete(ar, skb); ar 609 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_service_ready(ar, skb); ar 612 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_ready(ar, skb); ar 615 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_service_available(ar, skb); ar 618 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_bcn_tx_status(ar, skb); ar 621 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_diag_data(ar, skb); ar 624 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_diag(ar, skb); ar 627 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_p2p_noa(ar, skb); ar 630 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_tx_pause(ar, skb); ar 633 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_temperature(ar, skb); ar 636 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_tdls_peer(ar, skb); ar 639 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_event_peer_delete_resp(ar, skb); ar 642 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_mgmt_tx_compl(ar, skb); ar 645 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_event_mgmt_tx_bundle_compl(ar, skb); ar 648 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "Unknown eventid: %d\n", id); ar 656 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_scan_ev(struct ath10k *ar, ar 664 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 667 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 689 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev(struct ath10k *ar, struct sk_buff *skb, ar 696 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 699 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 710 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map)) ar 730 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_mgmt_tx_bundle_compl_parse(struct ath10k *ar, u16 tag, u16 len, ar 761 drivers/net/wireless/ath/ath10k/wmi-tlv.c struct ath10k *ar, struct sk_buff *skb, ar 767 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_iter(ar, skb->data, skb->len, ar 771 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 784 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map)) ar 790 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_mgmt_rx_ev(struct ath10k *ar, ar 800 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 803 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 839 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_ch_info_ev(struct ath10k *ar, ar 847 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 850 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 867 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->running_fw->fw_file.fw_features)) ar 875 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_pull_vdev_start_ev(struct ath10k *ar, struct sk_buff *skb, ar 882 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 885 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 905 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_peer_kick_ev(struct ath10k *ar, ar 913 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 916 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 941 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_swba_tim_parse(struct ath10k *ar, u16 tag, u16 len, ar 956 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "refusing to parse invalid swba structure\n"); ar 972 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_swba_noa_parse(struct ath10k *ar, u16 tag, u16 len, ar 987 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_swba_parse(struct ath10k *ar, u16 tag, u16 len, ar 1000 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_iter(ar, ptr, len, ar 1007 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_iter(ar, ptr, len, ar 1020 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_swba_ev(struct ath10k *ar, ar 1029 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_iter(ar, skb->data, skb->len, ar 1032 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1052 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_phyerr_ev_hdr(struct ath10k *ar, ar 1061 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 1064 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1098 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_parse_mem_reqs(struct ath10k *ar, u16 tag, u16 len, ar 1126 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_svc_rdy_parse(struct ath10k *ar, u16 tag, u16 len, ar 1155 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_svc_rdy_ev(struct ath10k *ar, ar 1166 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_iter(ar, skb->data, skb->len, ar 1169 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1184 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 1216 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_iter(ar, mem_reqs, ath10k_wmi_tlv_len(mem_reqs), ar 1219 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse mem_reqs tlv: %d\n", ret); ar 1226 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_rdy_ev(struct ath10k *ar, ar 1234 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 1237 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1256 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_svc_avail_parse(struct ath10k *ar, u16 tag, u16 len, ar 1272 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_svc_avail(struct ath10k *ar, ar 1278 drivers/net/wireless/ath/ath10k/wmi-tlv.c ret = ath10k_wmi_tlv_iter(ar, skb->data, skb->len, ar 1282 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse svc_avail tlv: %d\n", ret); ar 1325 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_fw_stats(struct ath10k *ar, ar 1343 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 1346 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1367 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 1464 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_roam_ev(struct ath10k *ar, ar 1472 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 1475 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1494 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_pull_wow_ev(struct ath10k *ar, struct sk_buff *skb, ar 1501 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 1504 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1523 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_pull_echo_ev(struct ath10k *ar, ar 1531 drivers/net/wireless/ath/ath10k/wmi-tlv.c tb = ath10k_wmi_tlv_parse_alloc(ar, skb->data, skb->len, GFP_ATOMIC); ar 1534 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_warn(ar, "failed to parse tlv: %d\n", ret); ar 1551 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pdev_suspend(struct ath10k *ar, u32 opt) ar 1557 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 1567 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev suspend\n"); ar 1572 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pdev_resume(struct ath10k *ar) ar 1578 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 1588 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev resume\n"); ar 1593 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pdev_set_rd(struct ath10k *ar, ar 1602 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 1616 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set rd\n"); ar 1620 drivers/net/wireless/ath/ath10k/wmi-tlv.c static enum wmi_txbf_conf ath10k_wmi_tlv_txbf_conf_scheme(struct ath10k *ar) ar 1626 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pdev_set_param(struct ath10k *ar, u32 param_id, ar 1633 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 1644 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set param %d value 0x%x\n", ar 1650 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_put_host_mem_chunks(struct ath10k *ar, void *host_mem_chunks) ar 1659 drivers/net/wireless/ath/ath10k/wmi-tlv.c for (i = 0; i < ar->wmi.num_mem_chunks; i++) { ar 1665 drivers/net/wireless/ath/ath10k/wmi-tlv.c chunk->ptr = __cpu_to_le32(ar->wmi.mem_chunks[i].paddr); ar 1666 drivers/net/wireless/ath/ath10k/wmi-tlv.c chunk->size = __cpu_to_le32(ar->wmi.mem_chunks[i].len); ar 1667 drivers/net/wireless/ath/ath10k/wmi-tlv.c chunk->req_id = __cpu_to_le32(ar->wmi.mem_chunks[i].req_id); ar 1669 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 1672 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->wmi.mem_chunks[i].len, ar 1673 drivers/net/wireless/ath/ath10k/wmi-tlv.c (unsigned long long)ar->wmi.mem_chunks[i].paddr, ar 1674 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->wmi.mem_chunks[i].req_id); ar 1681 drivers/net/wireless/ath/ath10k/wmi-tlv.c static struct sk_buff *ath10k_wmi_tlv_op_gen_init(struct ath10k *ar) ar 1691 drivers/net/wireless/ath/ath10k/wmi-tlv.c chunks_len = ar->wmi.num_mem_chunks * ar 1697 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 1731 drivers/net/wireless/ath/ath10k/wmi-tlv.c cmd->num_host_mem_chunks = __cpu_to_le32(ar->wmi.num_mem_chunks); ar 1735 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (ar->hw_params.num_peers) ar 1736 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->num_peers = __cpu_to_le32(ar->hw_params.num_peers); ar 1739 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->ast_skid_limit = __cpu_to_le32(ar->hw_params.ast_skid_limit); ar 1740 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->num_wds_entries = __cpu_to_le32(ar->hw_params.num_wds_entries); ar 1742 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (test_bit(WMI_SERVICE_RX_FULL_REORDER, ar->wmi.svc_map)) { ar 1751 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (ar->hw_params.num_peers) ar 1752 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->num_tids = __cpu_to_le32(ar->hw_params.num_peers * 2); ar 1761 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->rx_decap_mode = __cpu_to_le32(ar->wmi.rx_decap_mode); ar 1775 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->num_msdu_desc = __cpu_to_le32(ar->htt.max_num_pending_tx); ar 1781 drivers/net/wireless/ath/ath10k/wmi-tlv.c cfg->num_wow_filters = __cpu_to_le32(ar->wow.max_num_patterns); ar 1792 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map)) ar 1795 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_put_host_mem_chunks(ar, chunks); ar 1797 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv init\n"); ar 1802 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_start_scan(struct ath10k *ar, ar 1829 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 1897 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv start scan\n"); ar 1902 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_stop_scan(struct ath10k *ar, ar 1916 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 1935 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv stop scan\n"); ar 1939 drivers/net/wireless/ath/ath10k/wmi-tlv.c static int ath10k_wmi_tlv_op_get_vdev_subtype(struct ath10k *ar, ar 1962 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_create(struct ath10k *ar, ar 1972 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 1985 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev create\n"); ar 1990 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_delete(struct ath10k *ar, u32 vdev_id) ar 1996 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2006 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev delete\n"); ar 2011 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_start(struct ath10k *ar, ar 2031 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2082 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev start\n"); ar 2087 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_stop(struct ath10k *ar, u32 vdev_id) ar 2093 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2103 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev stop\n"); ar 2108 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_up(struct ath10k *ar, u32 vdev_id, u32 aid, ar 2116 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2128 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev up\n"); ar 2133 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_down(struct ath10k *ar, u32 vdev_id) ar 2139 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2149 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev down\n"); ar 2154 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_set_param(struct ath10k *ar, u32 vdev_id, ar 2161 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2173 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev %d set param %d value 0x%x\n", ar 2179 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_install_key(struct ath10k *ar, ar 2188 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (arg->key_cipher == ar->wmi_key_cipher[WMI_CIPHER_NONE] && ar 2191 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (arg->key_cipher != ar->wmi_key_cipher[WMI_CIPHER_NONE] && ar 2197 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2229 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev install key\n"); ar 2233 drivers/net/wireless/ath/ath10k/wmi-tlv.c static void *ath10k_wmi_tlv_put_uapsd_ac(struct ath10k *ar, void *ptr, ar 2250 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 2259 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_sta_uapsd(struct ath10k *ar, u32 vdev_id, ar 2276 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2299 drivers/net/wireless/ath/ath10k/wmi-tlv.c ptr = ath10k_wmi_tlv_put_uapsd_ac(ar, ptr, &args[i]); ar 2301 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev sta uapsd auto trigger\n"); ar 2321 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_wmm_conf(struct ath10k *ar, u32 vdev_id, ar 2331 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2347 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv vdev wmm conf\n"); ar 2352 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_sta_keepalive(struct ath10k *ar, ar 2364 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2390 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv sta keepalive vdev %d enabled %d method %d interval %d\n", ar 2396 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_peer_create(struct ath10k *ar, u32 vdev_id, ar 2404 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2416 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer create\n"); ar 2421 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_peer_delete(struct ath10k *ar, u32 vdev_id, ar 2428 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2439 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer delete\n"); ar 2444 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_peer_flush(struct ath10k *ar, u32 vdev_id, ar 2451 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2463 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer flush\n"); ar 2468 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_peer_set_param(struct ath10k *ar, u32 vdev_id, ar 2477 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2490 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 2497 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_peer_assoc(struct ath10k *ar, ar 2521 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2582 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv peer assoc\n"); ar 2587 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, ar 2594 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2605 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv set psmode\n"); ar 2610 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_set_sta_ps(struct ath10k *ar, u32 vdev_id, ar 2618 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2630 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv set sta ps\n"); ar 2635 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_set_ap_ps(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 2645 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2658 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv ap ps param\n"); ar 2663 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_scan_chan_list(struct ath10k *ar, ar 2679 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2715 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv scan chan list\n"); ar 2720 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_scan_prob_req_oui(struct ath10k *ar, u32 prob_req_oui) ar 2726 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2736 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv scan prob req oui\n"); ar 2741 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_beacon_dma(struct ath10k *ar, u32 vdev_id, ar 2753 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2777 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv beacon dma\n"); ar 2782 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pdev_set_wmm(struct ath10k *ar, ar 2794 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2815 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pdev set wmm\n"); ar 2820 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_request_stats(struct ath10k *ar, u32 stats_mask) ar 2826 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2836 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv request stats\n"); ar 2841 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_mgmt_tx_alloc_msdu_id(struct ath10k *ar, struct sk_buff *skb, ar 2844 drivers/net/wireless/ath/ath10k/wmi-tlv.c struct ath10k_wmi *wmi = &ar->wmi; ar 2855 drivers/net/wireless/ath/ath10k/wmi-tlv.c spin_lock_bh(&ar->data_lock); ar 2858 drivers/net/wireless/ath/ath10k/wmi-tlv.c spin_unlock_bh(&ar->data_lock); ar 2860 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi mgmt tx alloc msdu_id ret %d\n", ret); ar 2865 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_mgmt_tx_send(struct ath10k *ar, struct sk_buff *msdu, ar 2906 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 2910 drivers/net/wireless/ath/ath10k/wmi-tlv.c desc_id = ath10k_wmi_mgmt_tx_alloc_msdu_id(ar, msdu, paddr); ar 2944 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_force_fw_hang(struct ath10k *ar, ar 2952 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 2963 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv force fw hang\n"); ar 2968 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_dbglog_cfg(struct ath10k *ar, u64 module_enable, ar 2990 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3015 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv dbglog value 0x%08x\n", value); ar 3020 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pktlog_enable(struct ath10k *ar, u32 filter) ar 3029 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3043 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pktlog enable filter 0x%08x\n", ar 3049 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pdev_get_temperature(struct ath10k *ar) ar 3055 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 3063 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi pdev get temperature tlv\n"); ar 3068 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pktlog_disable(struct ath10k *ar) ar 3077 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3090 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv pktlog disable\n"); ar 3095 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_bcn_tmpl(struct ath10k *ar, u32 vdev_id, ar 3113 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3153 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv bcn tmpl vdev_id %i\n", ar 3159 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_prb_tmpl(struct ath10k *ar, u32 vdev_id, ar 3172 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3202 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv prb tmpl vdev_id %i\n", ar 3208 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie(struct ath10k *ar, u32 vdev_id, ar 3219 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3242 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv p2p go bcn ie for vdev %i\n", ar 3248 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_update_fw_tdls_state(struct ath10k *ar, u32 vdev_id, ar 3261 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map)) ar 3271 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3298 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv update fw tdls state %d for vdev %i\n", ar 3322 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_tdls_peer_update(struct ath10k *ar, ar 3341 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3399 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 3406 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_pdev_set_quiet_mode(struct ath10k *ar, u32 period, ar 3414 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ar 3430 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 3437 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_wow_enable(struct ath10k *ar) ar 3445 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3455 drivers/net/wireless/ath/ath10k/wmi-tlv.c if (!ar->bus_param.link_can_suspend) ar 3458 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow enable\n"); ar 3463 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_wow_add_wakeup_event(struct ath10k *ar, ar 3474 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3487 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow add wakeup event %s enable %d vdev_id %d\n", ar 3493 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_gen_wow_host_wakeup_ind(struct ath10k *ar) ar 3501 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3510 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow host wakeup ind\n"); ar 3515 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_wow_add_pattern(struct ath10k *ar, u32 vdev_id, ar 3536 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3609 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow add pattern vdev_id %d pattern_id %d, pattern_offset %d\n", ar 3615 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_wow_del_pattern(struct ath10k *ar, u32 vdev_id, ar 3624 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3637 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv wow del pattern vdev_id %d pattern_id %d\n", ar 3644 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_config_pno_start(struct ath10k *ar, ar 3671 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3763 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv start pno config vdev_id %d\n", ar 3770 drivers/net/wireless/ath/ath10k/wmi-tlv.c static struct sk_buff *ath10k_wmi_tlv_op_gen_config_pno_stop(struct ath10k *ar, ar 3786 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3814 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv stop pno config vdev_id %d\n", vdev_id); ar 3819 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_config_pno(struct ath10k *ar, u32 vdev_id, ar 3823 drivers/net/wireless/ath/ath10k/wmi-tlv.c return ath10k_wmi_tlv_op_gen_config_pno_start(ar, vdev_id, pno_scan); ar 3825 drivers/net/wireless/ath/ath10k/wmi-tlv.c return ath10k_wmi_tlv_op_gen_config_pno_stop(ar, vdev_id); ar 3829 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_adaptive_qcs(struct ath10k *ar, bool enable) ar 3838 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3852 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv adaptive qcs %d\n", enable); ar 3857 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_echo(struct ath10k *ar, u32 value) ar 3866 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3880 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv echo value 0x%08x\n", value); ar 3885 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_spectral_conf(struct ath10k *ar, ar 3895 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 3928 drivers/net/wireless/ath/ath10k/wmi-tlv.c ath10k_wmi_tlv_op_gen_vdev_spectral_enable(struct ath10k *ar, u32 vdev_id, ar 3938 drivers/net/wireless/ath/ath10k/wmi-tlv.c skb = ath10k_wmi_alloc_skb(ar, len); ar 4395 drivers/net/wireless/ath/ath10k/wmi-tlv.c void ath10k_wmi_tlv_attach(struct ath10k *ar) ar 4397 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->wmi.cmd = &wmi_tlv_cmd_map; ar 4398 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->wmi.vdev_param = &wmi_tlv_vdev_param_map; ar 4399 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->wmi.pdev_param = &wmi_tlv_pdev_param_map; ar 4400 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->wmi.ops = &wmi_tlv_ops; ar 4401 drivers/net/wireless/ath/ath10k/wmi-tlv.c ar->wmi.peer_flags = &wmi_tlv_peer_flags_map; ar 2238 drivers/net/wireless/ath/ath10k/wmi-tlv.h void ath10k_wmi_tlv_attach(struct ath10k *ar); ar 1721 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_wait_for_service_ready(struct ath10k *ar) ar 1725 drivers/net/wireless/ath/ath10k/wmi.c time_left = wait_for_completion_timeout(&ar->wmi.service_ready, ar 1732 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar) ar 1736 drivers/net/wireless/ath/ath10k/wmi.c time_left = wait_for_completion_timeout(&ar->wmi.unified_ready, ar 1743 drivers/net/wireless/ath/ath10k/wmi.c struct sk_buff *ath10k_wmi_alloc_skb(struct ath10k *ar, u32 len) ar 1748 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_htc_alloc_skb(ar, WMI_SKB_HEADROOM + round_len); ar 1754 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "Unaligned WMI skb\n"); ar 1762 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_htc_tx_complete(struct ath10k *ar, struct sk_buff *skb) ar 1767 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_cmd_send_nowait(struct ath10k *ar, struct sk_buff *skb, ar 1784 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_wmi_cmd(ar, cmd_id, skb->data, skb->len); ar 1785 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_htc_send(&ar->htc, ar->wmi.eid, skb); ar 1799 drivers/net/wireless/ath/ath10k/wmi.c struct ath10k *ar = arvif->ar; ar 1806 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 1821 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 1825 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_beacon_send_ref_nowait(arvif->ar, ar 1832 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 1841 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 1852 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_tx_beacons_nowait(struct ath10k *ar) ar 1854 drivers/net/wireless/ath/ath10k/wmi.c ieee80211_iterate_active_interfaces_atomic(ar->hw, ar 1860 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_op_ep_tx_credits(struct ath10k *ar) ar 1863 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tx_beacons_nowait(ar); ar 1865 drivers/net/wireless/ath/ath10k/wmi.c wake_up(&ar->wmi.tx_credits_wq); ar 1868 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id) ar 1875 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "wmi command %d is not supported by firmware\n", ar 1880 drivers/net/wireless/ath/ath10k/wmi.c wait_event_timeout(ar->wmi.tx_credits_wq, ({ ar 1882 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tx_beacons_nowait(ar); ar 1884 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_cmd_send_nowait(ar, skb, cmd_id); ar 1886 drivers/net/wireless/ath/ath10k/wmi.c if (ret && test_bit(ATH10K_FLAG_CRASH_FLUSH, &ar->dev_flags)) ar 1896 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "wmi command %d timeout, restarting hardware\n", ar 1898 drivers/net/wireless/ath/ath10k/wmi.c queue_work(ar->workqueue, &ar->restart_work); ar 1905 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_mgmt_tx(struct ath10k *ar, struct sk_buff *msdu) ar 1942 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 1956 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi mgmt tx skb %pK len %d ftype %02x stype %02x\n", ar 1959 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_tx_hdr(ar, skb->data, skb->len); ar 1960 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_tx_payload(ar, skb->data, skb->len); ar 1965 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_event_scan_started(struct ath10k *ar) ar 1967 drivers/net/wireless/ath/ath10k/wmi.c lockdep_assert_held(&ar->data_lock); ar 1969 drivers/net/wireless/ath/ath10k/wmi.c switch (ar->scan.state) { ar 1973 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received scan started event in an invalid scan state: %s (%d)\n", ar 1974 drivers/net/wireless/ath/ath10k/wmi.c ath10k_scan_state_str(ar->scan.state), ar 1975 drivers/net/wireless/ath/ath10k/wmi.c ar->scan.state); ar 1978 drivers/net/wireless/ath/ath10k/wmi.c ar->scan.state = ATH10K_SCAN_RUNNING; ar 1980 drivers/net/wireless/ath/ath10k/wmi.c if (ar->scan.is_roc) ar 1981 drivers/net/wireless/ath/ath10k/wmi.c ieee80211_ready_on_channel(ar->hw); ar 1983 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->scan.started); ar 1988 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_event_scan_start_failed(struct ath10k *ar) ar 1990 drivers/net/wireless/ath/ath10k/wmi.c lockdep_assert_held(&ar->data_lock); ar 1992 drivers/net/wireless/ath/ath10k/wmi.c switch (ar->scan.state) { ar 1996 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received scan start failed event in an invalid scan state: %s (%d)\n", ar 1997 drivers/net/wireless/ath/ath10k/wmi.c ath10k_scan_state_str(ar->scan.state), ar 1998 drivers/net/wireless/ath/ath10k/wmi.c ar->scan.state); ar 2001 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->scan.started); ar 2002 drivers/net/wireless/ath/ath10k/wmi.c __ath10k_scan_finish(ar); ar 2007 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_event_scan_completed(struct ath10k *ar) ar 2009 drivers/net/wireless/ath/ath10k/wmi.c lockdep_assert_held(&ar->data_lock); ar 2011 drivers/net/wireless/ath/ath10k/wmi.c switch (ar->scan.state) { ar 2022 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received scan completed event in an invalid scan state: %s (%d)\n", ar 2023 drivers/net/wireless/ath/ath10k/wmi.c ath10k_scan_state_str(ar->scan.state), ar 2024 drivers/net/wireless/ath/ath10k/wmi.c ar->scan.state); ar 2028 drivers/net/wireless/ath/ath10k/wmi.c __ath10k_scan_finish(ar); ar 2033 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_event_scan_bss_chan(struct ath10k *ar) ar 2035 drivers/net/wireless/ath/ath10k/wmi.c lockdep_assert_held(&ar->data_lock); ar 2037 drivers/net/wireless/ath/ath10k/wmi.c switch (ar->scan.state) { ar 2040 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received scan bss chan event in an invalid scan state: %s (%d)\n", ar 2041 drivers/net/wireless/ath/ath10k/wmi.c ath10k_scan_state_str(ar->scan.state), ar 2042 drivers/net/wireless/ath/ath10k/wmi.c ar->scan.state); ar 2046 drivers/net/wireless/ath/ath10k/wmi.c ar->scan_channel = NULL; ar 2051 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_event_scan_foreign_chan(struct ath10k *ar, u32 freq) ar 2053 drivers/net/wireless/ath/ath10k/wmi.c lockdep_assert_held(&ar->data_lock); ar 2055 drivers/net/wireless/ath/ath10k/wmi.c switch (ar->scan.state) { ar 2058 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received scan foreign chan event in an invalid scan state: %s (%d)\n", ar 2059 drivers/net/wireless/ath/ath10k/wmi.c ath10k_scan_state_str(ar->scan.state), ar 2060 drivers/net/wireless/ath/ath10k/wmi.c ar->scan.state); ar 2064 drivers/net/wireless/ath/ath10k/wmi.c ar->scan_channel = ieee80211_get_channel(ar->hw->wiphy, freq); ar 2066 drivers/net/wireless/ath/ath10k/wmi.c if (ar->scan.is_roc && ar->scan.roc_freq == freq) ar 2067 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->scan.on_channel); ar 2114 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_scan_ev(struct ath10k *ar, struct sk_buff *skb, ar 2133 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_event_scan(struct ath10k *ar, struct sk_buff *skb) ar 2144 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_scan(ar, skb, &arg); ar 2146 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse scan event: %d\n", ret); ar 2157 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 2159 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 2163 drivers/net/wireless/ath/ath10k/wmi.c ath10k_scan_state_str(ar->scan.state), ar->scan.state); ar 2167 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan_started(ar); ar 2170 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan_completed(ar); ar 2173 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan_bss_chan(ar); ar 2176 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan_foreign_chan(ar, freq); ar 2179 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received scan start failure event\n"); ar 2180 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan_start_failed(ar); ar 2190 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 2197 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_handle_wep_reauth(struct ath10k *ar, ar 2217 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 2218 drivers/net/wireless/ath/ath10k/wmi.c peer_key = ath10k_mac_is_peer_wep_key_set(ar, addr, keyidx); ar 2219 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 2222 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MAC, ar 2228 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_mgmt_rx_ev(struct ath10k *ar, struct sk_buff *skb, ar 2240 drivers/net/wireless/ath/ath10k/wmi.c ar->running_fw->fw_file.fw_features)) { ar 2279 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_4_op_pull_mgmt_rx_ev(struct ath10k *ar, ar 2322 drivers/net/wireless/ath/ath10k/wmi.c static bool ath10k_wmi_rx_is_decrypted(struct ath10k *ar, ar 2339 drivers/net/wireless/ath/ath10k/wmi.c ar->hw_params.sw_decrypt_mcast_mgmt) ar 2346 drivers/net/wireless/ath/ath10k/wmi.c wmi_process_mgmt_tx_comp(struct ath10k *ar, struct mgmt_tx_compl_params *param) ar 2349 drivers/net/wireless/ath/ath10k/wmi.c struct ath10k_wmi *wmi = &ar->wmi; ar 2354 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 2358 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received mgmt tx completion for invalid msdu_id: %d\n", ar 2365 drivers/net/wireless/ath/ath10k/wmi.c dma_unmap_single(ar->dev, pkt_addr->paddr, ar 2378 drivers/net/wireless/ath/ath10k/wmi.c ieee80211_tx_status_irqsafe(ar->hw, msdu); ar 2384 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 2388 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_event_mgmt_tx_compl(struct ath10k *ar, struct sk_buff *skb) ar 2394 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_mgmt_tx_compl(ar, skb, &arg); ar 2396 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse mgmt comp event: %d\n", ret); ar 2404 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map)) ar 2407 drivers/net/wireless/ath/ath10k/wmi.c wmi_process_mgmt_tx_comp(ar, ¶m); ar 2409 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv evnt mgmt tx completion\n"); ar 2414 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_event_mgmt_tx_bundle_compl(struct ath10k *ar, struct sk_buff *skb) ar 2421 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_mgmt_tx_bundle_compl(ar, skb, &arg); ar 2423 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse bundle mgmt compl event: %d\n", ret); ar 2434 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map)) ar 2436 drivers/net/wireless/ath/ath10k/wmi.c wmi_process_mgmt_tx_comp(ar, ¶m); ar 2439 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi tlv event bundle mgmt tx completion\n"); ar 2444 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb) ar 2458 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_mgmt_rx(ar, skb, &arg); ar 2460 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse mgmt rx event: %d\n", ret); ar 2473 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, ar 2476 drivers/net/wireless/ath/ath10k/wmi.c if ((test_bit(ATH10K_CAC_RUNNING, &ar->dev_flags)) || ar 2509 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, "wmi mgmt rx 11b (CCK) on 5GHz\n"); ar 2511 drivers/net/wireless/ath/ath10k/wmi.c sband = &ar->mac.sbands[status->band]; ar 2526 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_handle_wep_reauth(ar, skb, status); ar 2528 drivers/net/wireless/ath/ath10k/wmi.c if (ath10k_wmi_rx_is_decrypted(ar, hdr)) { ar 2542 drivers/net/wireless/ath/ath10k/wmi.c ath10k_mac_handle_beacon(ar, skb); ar 2544 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, ar 2549 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, ar 2554 drivers/net/wireless/ath/ath10k/wmi.c ieee80211_rx_ni(ar->hw, skb); ar 2559 drivers/net/wireless/ath/ath10k/wmi.c static int freq_to_idx(struct ath10k *ar, int freq) ar 2565 drivers/net/wireless/ath/ath10k/wmi.c sband = ar->hw->wiphy->bands[band]; ar 2578 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_ch_info_ev(struct ath10k *ar, struct sk_buff *skb, ar 2597 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_4_op_pull_ch_info_ev(struct ath10k *ar, ar 2624 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_event_chan_info_unpaired(struct ath10k *ar, ar 2631 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "chan info report completed\n"); ar 2635 drivers/net/wireless/ath/ath10k/wmi.c idx = freq_to_idx(ar, params->freq); ar 2636 drivers/net/wireless/ath/ath10k/wmi.c if (idx >= ARRAY_SIZE(ar->survey)) { ar 2637 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "chan info: invalid frequency %d (idx %d out of bounds)\n", ar 2642 drivers/net/wireless/ath/ath10k/wmi.c survey = &ar->survey[idx]; ar 2660 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_event_chan_info_paired(struct ath10k *ar, ar 2666 drivers/net/wireless/ath/ath10k/wmi.c idx = freq_to_idx(ar, params->freq); ar 2667 drivers/net/wireless/ath/ath10k/wmi.c if (idx >= ARRAY_SIZE(ar->survey)) { ar 2668 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "chan info: invalid frequency %d (idx %d out of bounds)\n", ar 2674 drivers/net/wireless/ath/ath10k/wmi.c if (ar->ch_info_can_report_survey) { ar 2675 drivers/net/wireless/ath/ath10k/wmi.c survey = &ar->survey[idx]; ar 2679 drivers/net/wireless/ath/ath10k/wmi.c ath10k_hw_fill_survey_time(ar, ar 2683 drivers/net/wireless/ath/ath10k/wmi.c ar->survey_last_cycle_count, ar 2684 drivers/net/wireless/ath/ath10k/wmi.c ar->survey_last_rx_clear_count); ar 2687 drivers/net/wireless/ath/ath10k/wmi.c ar->ch_info_can_report_survey = false; ar 2689 drivers/net/wireless/ath/ath10k/wmi.c ar->ch_info_can_report_survey = true; ar 2693 drivers/net/wireless/ath/ath10k/wmi.c ar->survey_last_rx_clear_count = params->rx_clear_count; ar 2694 drivers/net/wireless/ath/ath10k/wmi.c ar->survey_last_cycle_count = params->cycle_count; ar 2698 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_chan_info(struct ath10k *ar, struct sk_buff *skb) ar 2704 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_ch_info(ar, skb, &arg); ar 2706 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse chan info event: %d\n", ret); ar 2718 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 2724 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 2726 drivers/net/wireless/ath/ath10k/wmi.c switch (ar->scan.state) { ar 2729 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received chan info event without a scan request, ignoring\n"); ar 2737 drivers/net/wireless/ath/ath10k/wmi.c ar->running_fw->fw_file.fw_features)) ar 2738 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_chan_info_unpaired(ar, &ch_info_param); ar 2740 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_chan_info_paired(ar, &ch_info_param); ar 2743 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 2746 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_echo(struct ath10k *ar, struct sk_buff *skb) ar 2751 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_echo_ev(ar, skb, &arg); ar 2753 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse echo: %d\n", ret); ar 2757 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 2762 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->wmi.barrier); ar 2765 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_event_debug_mesg(struct ath10k *ar, struct sk_buff *skb) ar 2767 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi event debug mesg len %d\n", ar 2770 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_wmi_dbglog(ar, skb->data, skb->len); ar 2925 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_main_op_pull_fw_stats(struct ath10k *ar, ar 2979 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10x_op_pull_fw_stats(struct ath10k *ar, ar 3037 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_2_op_pull_fw_stats(struct ath10k *ar, ar 3114 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_2_4_op_pull_fw_stats(struct ath10k *ar, ar 3173 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_PEER_STATS, ar->wmi.svc_map)) ar 3190 drivers/net/wireless/ath/ath10k/wmi.c if (ath10k_peer_stats_enabled(ar)) ar 3200 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_4_op_pull_fw_stats(struct ath10k *ar, ar 3341 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_update_stats(struct ath10k *ar, struct sk_buff *skb) ar 3343 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_UPDATE_STATS_EVENTID\n"); ar 3344 drivers/net/wireless/ath/ath10k/wmi.c ath10k_debug_fw_stats_process(ar, skb); ar 3348 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_pull_vdev_start_ev(struct ath10k *ar, struct sk_buff *skb, ar 3365 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_vdev_start_resp(struct ath10k *ar, struct sk_buff *skb) ar 3371 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_START_RESP_EVENTID\n"); ar 3373 drivers/net/wireless/ath/ath10k/wmi.c ar->last_wmi_vdev_start_status = 0; ar 3375 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_vdev_start(ar, skb, &arg); ar 3377 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse vdev start event: %d\n", ret); ar 3378 drivers/net/wireless/ath/ath10k/wmi.c ar->last_wmi_vdev_start_status = ret; ar 3384 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "vdev-start-response reports status error: %d (%s)\n", ar 3390 drivers/net/wireless/ath/ath10k/wmi.c ar->last_wmi_vdev_start_status = -EINVAL; ar 3394 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->vdev_setup_done); ar 3397 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_vdev_stopped(struct ath10k *ar, struct sk_buff *skb) ar 3399 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_STOPPED_EVENTID\n"); ar 3400 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->vdev_setup_done); ar 3404 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_pull_peer_kick_ev(struct ath10k *ar, struct sk_buff *skb, ar 3418 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_peer_sta_kickout(struct ath10k *ar, struct sk_buff *skb) ar 3424 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_peer_kick(ar, skb, &arg); ar 3426 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse peer kickout event: %d\n", ar 3431 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi event peer sta kickout %pM\n", ar 3436 drivers/net/wireless/ath/ath10k/wmi.c sta = ieee80211_find_sta_by_ifaddr(ar->hw, arg.mac_addr, NULL); ar 3438 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "Spurious quick kickout for STA %pM\n", ar 3473 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_update_tim(struct ath10k *ar, ar 3497 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "SWBA TIM field is too big (%u), truncated it to %zu", ar 3527 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "no tim ie found;\n"); ar 3547 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "tim expansion failed\n"); ar 3552 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "tim pvm length is too great (%d)\n", pvm_len); ar 3566 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, "dtim %d/%d mcast %d pvmlen %d\n", ar 3571 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_update_noa(struct ath10k *ar, struct ath10k_vif *arvif, ar 3578 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, "noa changed: %d\n", noa->changed); ar 3589 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_swba_ev(struct ath10k *ar, struct sk_buff *skb, ar 3614 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "refusing to parse invalid swba structure\n"); ar 3634 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_2_4_op_pull_swba_ev(struct ath10k *ar, ar 3660 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "refusing to parse invalid swba structure\n"); ar 3678 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_4_op_pull_swba_ev(struct ath10k *ar, ar 3704 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "refusing to parse invalid swba structure\n"); ar 3735 drivers/net/wireless/ath/ath10k/wmi.c static enum wmi_txbf_conf ath10k_wmi_10_4_txbf_conf_scheme(struct ath10k *ar) ar 3740 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_host_swba(struct ath10k *ar, struct sk_buff *skb) ar 3752 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_swba(ar, skb, &arg); ar 3754 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse swba event: %d\n", ret); ar 3760 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, "mgmt swba vdev_map 0x%x\n", ar 3770 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "swba has corrupted vdev map\n"); ar 3777 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_MGMT, ar 3793 drivers/net/wireless/ath/ath10k/wmi.c arvif = ath10k_get_arvif(ar, vdev_id); ar 3795 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "no vif for vdev_id %d found\n", ar 3818 drivers/net/wireless/ath/ath10k/wmi.c bcn = ieee80211_beacon_get(ar->hw, arvif->vif); ar 3820 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "could not get mac80211 beacon\n"); ar 3825 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_update_tim(ar, arvif, bcn, tim_info); ar 3826 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_update_noa(ar, arvif, bcn, noa_info); ar 3828 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 3835 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "SWBA overrun on vdev %d, skipped old beacon\n", ar 3839 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "SWBA overrun on vdev %d, skipped new beacon\n", ar 3849 drivers/net/wireless/ath/ath10k/wmi.c paddr = dma_map_single(arvif->ar->dev, bcn->data, ar 3851 drivers/net/wireless/ath/ath10k/wmi.c ret = dma_mapping_error(arvif->ar->dev, paddr); ar 3853 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to map beacon: %d\n", ar 3862 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "trimming beacon %d -> %d bytes!\n", ar 3873 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_tx_hdr(ar, bcn->data, bcn->len); ar 3874 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_tx_payload(ar, bcn->data, bcn->len); ar 3877 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 3880 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tx_beacons_nowait(ar); ar 3883 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_tbttoffset_update(struct ath10k *ar, struct sk_buff *skb) ar 3885 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_TBTTOFFSET_UPDATE_EVENTID\n"); ar 3888 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_radar_detected(struct ath10k *ar) ar 3890 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, "dfs radar detected\n"); ar 3891 drivers/net/wireless/ath/ath10k/wmi.c ATH10K_DFS_STAT_INC(ar, radar_detected); ar 3896 drivers/net/wireless/ath/ath10k/wmi.c if (ar->dfs_block_radar_events) ar 3897 drivers/net/wireless/ath/ath10k/wmi.c ath10k_info(ar, "DFS Radar detected, but ignored as requested\n"); ar 3899 drivers/net/wireless/ath/ath10k/wmi.c ieee80211_radar_detected(ar->hw); ar 3904 drivers/net/wireless/ath/ath10k/wmi.c struct ath10k *ar = container_of(work, struct ath10k, ar 3909 drivers/net/wireless/ath/ath10k/wmi.c reinit_completion(&ar->wmi.radar_confirm); ar 3911 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 3912 drivers/net/wireless/ath/ath10k/wmi.c memcpy(&radar_info, &ar->last_radar_info, sizeof(radar_info)); ar 3913 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 3915 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_report_radar_found(ar, &radar_info); ar 3917 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to send radar found %d\n", ret); ar 3921 drivers/net/wireless/ath/ath10k/wmi.c time_left = wait_for_completion_timeout(&ar->wmi.radar_confirm, ar 3932 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 3938 drivers/net/wireless/ath/ath10k/wmi.c ath10k_radar_detected(ar); ar 3944 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 3945 drivers/net/wireless/ath/ath10k/wmi.c if (ar->radar_conf_state != ATH10K_RADAR_CONFIRMATION_STOPPED) ar 3946 drivers/net/wireless/ath/ath10k/wmi.c ar->radar_conf_state = ATH10K_RADAR_CONFIRMATION_IDLE; ar 3947 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 3950 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_dfs_radar_report(struct ath10k *ar, ar 3966 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 3972 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 3979 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 3984 drivers/net/wireless/ath/ath10k/wmi.c if (!ar->dfs_detector) ar 3987 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 3988 drivers/net/wireless/ath/ath10k/wmi.c ch = ar->rx_channel; ar 3992 drivers/net/wireless/ath/ath10k/wmi.c ch = ar->tgt_oper_chan; ar 3994 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 3997 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to derive channel for radar pulse, treating as radar\n"); ar 4020 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4024 drivers/net/wireless/ath/ath10k/wmi.c ATH10K_DFS_STAT_INC(ar, pulses_detected); ar 4026 drivers/net/wireless/ath/ath10k/wmi.c if (!ar->dfs_detector->add_pulse(ar->dfs_detector, &pe, &rs)) { ar 4027 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4032 drivers/net/wireless/ath/ath10k/wmi.c if ((test_bit(WMI_SERVICE_HOST_DFS_CHECK_SUPPORT, ar->wmi.svc_map)) && ar 4033 drivers/net/wireless/ath/ath10k/wmi.c ar->dfs_detector->region == NL80211_DFS_FCC) { ar 4038 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 4039 drivers/net/wireless/ath/ath10k/wmi.c if (ar->radar_conf_state != ATH10K_RADAR_CONFIRMATION_IDLE) { ar 4040 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 4043 drivers/net/wireless/ath/ath10k/wmi.c ar->radar_conf_state = ATH10K_RADAR_CONFIRMATION_INPROGRESS; ar 4044 drivers/net/wireless/ath/ath10k/wmi.c radar_info = &ar->last_radar_info; ar 4054 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4059 drivers/net/wireless/ath/ath10k/wmi.c ieee80211_queue_work(ar->hw, &ar->radar_confirmation_work); ar 4060 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 4065 drivers/net/wireless/ath/ath10k/wmi.c ath10k_radar_detected(ar); ar 4068 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_dfs_fft_report(struct ath10k *ar, ar 4080 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4086 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4098 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, "dfs false pulse detected\n"); ar 4099 drivers/net/wireless/ath/ath10k/wmi.c ATH10K_DFS_STAT_INC(ar, pulses_discarded); ar 4106 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_dfs(struct ath10k *ar, ar 4117 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4126 drivers/net/wireless/ath/ath10k/wmi.c ATH10K_DFS_STAT_INC(ar, pulses_total); ar 4130 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "too short buf for tlv header (%d)\n", ar 4138 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4145 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "too short radar pulse summary (%d)\n", ar 4151 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dfs_radar_report(ar, phyerr, rr, tsf); ar 4155 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "too short fft report (%d)\n", ar 4161 drivers/net/wireless/ath/ath10k/wmi.c res = ath10k_dfs_fft_report(ar, phyerr, fftr, tsf); ar 4171 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_spectral_scan(struct ath10k *ar, ar 4185 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse phyerr tlv header at byte %d\n", ar 4195 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse phyerr tlv payload at byte %d\n", ar 4203 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse fft report at byte %d\n", ar 4210 drivers/net/wireless/ath/ath10k/wmi.c res = ath10k_spectral_process_fft(ar, phyerr, ar 4214 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "failed to process fft report: %d\n", ar 4225 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_phyerr_ev_hdr(struct ath10k *ar, ar 4243 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_4_op_pull_phyerr_ev_hdr(struct ath10k *ar, ar 4263 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_op_pull_phyerr_ev(struct ath10k *ar, ar 4272 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "wrong phyerr event head len %d (need: >=%zd)\n", ar 4307 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_4_op_pull_phyerr_ev(struct ath10k *ar, ar 4317 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "wrong phyerr event head len %d (need: >=%zd)\n", ar 4346 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_phyerr(struct ath10k *ar, struct sk_buff *skb) ar 4355 drivers/net/wireless/ath/ath10k/wmi.c ATH10K_DFS_STAT_INC(ar, phy_errors); ar 4357 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_phyerr_hdr(ar, skb, &hdr_arg); ar 4359 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse phyerr event hdr: %d\n", ret); ar 4372 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 4378 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_phyerr(ar, phyerr, left_len, &phyerr_arg); ar 4380 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse phyerr event (%d)\n", ar 4390 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "single event (%d) wrong buf len\n", i); ar 4398 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_dfs(ar, &phyerr_arg, tsf); ar 4401 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_spectral_scan(ar, &phyerr_arg, tsf); ar 4404 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_dfs(ar, &phyerr_arg, tsf); ar 4405 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_spectral_scan(ar, &phyerr_arg, tsf); ar 4416 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_op_pull_dfs_status_ev(struct ath10k *ar, struct sk_buff *skb, ar 4430 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_dfs_status_check(struct ath10k *ar, struct sk_buff *skb) ar 4435 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_dfs_status(ar, skb, &status_arg); ar 4438 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse dfs status event: %d\n", ret); ar 4442 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_REGULATORY, ar 4452 drivers/net/wireless/ath/ath10k/wmi.c ath10k_radar_detected(ar); ar 4453 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->wmi.radar_confirm); ar 4456 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_roam(struct ath10k *ar, struct sk_buff *skb) ar 4464 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_roam_ev(ar, skb, &arg); ar 4466 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse roam event: %d\n", ret); ar 4475 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 4480 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "ignoring unknown roam event reason %d on vdev %i\n", ar 4485 drivers/net/wireless/ath/ath10k/wmi.c ath10k_mac_handle_beacon_miss(ar, vdev_id); ar 4491 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "ignoring not implemented roam event reason %d on vdev %i\n", ar 4497 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_profile_match(struct ath10k *ar, struct sk_buff *skb) ar 4499 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_PROFILE_MATCH\n"); ar 4502 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_debug_print(struct ath10k *ar, struct sk_buff *skb) ar 4523 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "wmi debug print truncated: %d\n", skb->len); ar 4532 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI_PRINT, "wmi print '%s'\n", buf); ar 4535 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_pdev_qvit(struct ath10k *ar, struct sk_buff *skb) ar 4537 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_PDEV_QVIT_EVENTID\n"); ar 4540 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_wlan_profile_data(struct ath10k *ar, struct sk_buff *skb) ar 4542 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_WLAN_PROFILE_DATA_EVENTID\n"); ar 4545 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_rtt_measurement_report(struct ath10k *ar, ar 4548 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_RTT_MEASUREMENT_REPORT_EVENTID\n"); ar 4551 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_tsf_measurement_report(struct ath10k *ar, ar 4554 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_TSF_MEASUREMENT_REPORT_EVENTID\n"); ar 4557 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_rtt_error_report(struct ath10k *ar, struct sk_buff *skb) ar 4559 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_RTT_ERROR_REPORT_EVENTID\n"); ar 4562 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_wow_wakeup_host(struct ath10k *ar, struct sk_buff *skb) ar 4567 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->wow.wakeup_completed); ar 4569 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_wow_event(ar, skb, &ev); ar 4571 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse wow wakeup event: %d\n", ret); ar 4575 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wow wakeup host reason %s\n", ar 4579 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_dcs_interference(struct ath10k *ar, struct sk_buff *skb) ar 4581 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_DCS_INTERFERENCE_EVENTID\n"); ar 4584 drivers/net/wireless/ath/ath10k/wmi.c static u8 ath10k_tpc_config_get_rate(struct ath10k *ar, ar 4621 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "unknown wmi tpc table type: %d\n", type); ar 4630 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_tpc_config_disp_tables(struct ath10k *ar, ar 4645 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "CDD not supported\n"); ar 4652 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "STBC not supported\n"); ar 4659 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "TXBF not supported\n"); ar 4665 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 4681 drivers/net/wireless/ath/ath10k/wmi.c tpc[j] = ath10k_tpc_config_get_rate(ar, ev, i, j + 1, ar 4791 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_pdev_tpc_config(struct ath10k *ar, struct sk_buff *skb) ar 4804 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "number of tx chain is %d greater than TPC configured tx chain %d\n", ar 4828 drivers/net/wireless/ath/ath10k/wmi.c ath10k_tpc_config_disp_tables(ar, ev, tpc_stats, ar 4831 drivers/net/wireless/ath/ath10k/wmi.c ath10k_tpc_config_disp_tables(ar, ev, tpc_stats, ar 4834 drivers/net/wireless/ath/ath10k/wmi.c ath10k_tpc_config_disp_tables(ar, ev, tpc_stats, ar 4838 drivers/net/wireless/ath/ath10k/wmi.c ath10k_debug_tpc_stats_process(ar, tpc_stats); ar 4840 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 4855 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tpc_final_get_rate(struct ath10k *ar, ar 4921 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "unknown wmi tpc final index and frequency: %u, %u\n", ar 4970 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "unknown wmi tpc final table type: %d\n", type); ar 4980 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tpc_stats_final_disp_tables(struct ath10k *ar, ar 4995 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "CDD not supported\n"); ar 5002 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "STBC not supported\n"); ar 5009 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "TXBF not supported\n"); ar 5015 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5031 drivers/net/wireless/ath/ath10k/wmi.c tpc[j] = ath10k_wmi_tpc_final_get_rate(ar, ev, i, j + 1, ar 5044 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_tpc_final_table(struct ath10k *ar, struct sk_buff *skb) ar 5075 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tpc_stats_final_disp_tables(ar, ev, tpc_stats, ar 5078 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tpc_stats_final_disp_tables(ar, ev, tpc_stats, ar 5081 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tpc_stats_final_disp_tables(ar, ev, tpc_stats, ar 5085 drivers/net/wireless/ath/ath10k/wmi.c ath10k_debug_tpc_stats_final_process(ar, tpc_stats); ar 5087 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5102 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_handle_tdls_peer_event(struct ath10k *ar, struct sk_buff *skb) ar 5113 drivers/net/wireless/ath/ath10k/wmi.c ath10k_err(ar, "received tdls peer event with invalid size (%d bytes)\n", ar 5123 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 5124 drivers/net/wireless/ath/ath10k/wmi.c peer = ath10k_peer_find(ar, vdev_id, ev->peer_macaddr.addr); ar 5125 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 5128 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to find peer entry for %pM\n", ar 5146 drivers/net/wireless/ath/ath10k/wmi.c arvif = ath10k_get_arvif(ar, vdev_id); ar 5148 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "received tdls peer event for invalid vdev id %u\n", ar 5157 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5162 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5170 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_peer_sta_ps_state_chg(struct ath10k *ar, struct sk_buff *skb) ar 5177 drivers/net/wireless/ath/ath10k/wmi.c lockdep_assert_held(&ar->data_lock); ar 5184 drivers/net/wireless/ath/ath10k/wmi.c sta = ieee80211_find_sta_by_ifaddr(ar->hw, peer_addr, NULL); ar 5187 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to find station entry %pM\n", ar 5199 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_pdev_ftm_intg(struct ath10k *ar, struct sk_buff *skb) ar 5201 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_PDEV_FTM_INTG_EVENTID\n"); ar 5204 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_gtk_offload_status(struct ath10k *ar, struct sk_buff *skb) ar 5206 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_GTK_OFFLOAD_STATUS_EVENTID\n"); ar 5209 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_gtk_rekey_fail(struct ath10k *ar, struct sk_buff *skb) ar 5211 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_GTK_REKEY_FAIL_EVENTID\n"); ar 5214 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_delba_complete(struct ath10k *ar, struct sk_buff *skb) ar 5216 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_TX_DELBA_COMPLETE_EVENTID\n"); ar 5219 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_addba_complete(struct ath10k *ar, struct sk_buff *skb) ar 5221 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_TX_ADDBA_COMPLETE_EVENTID\n"); ar 5224 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_vdev_install_key_complete(struct ath10k *ar, ar 5227 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID\n"); ar 5230 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_inst_rssi_stats(struct ath10k *ar, struct sk_buff *skb) ar 5232 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_INST_RSSI_STATS_EVENTID\n"); ar 5235 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_vdev_standby_req(struct ath10k *ar, struct sk_buff *skb) ar 5237 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_STANDBY_REQ_EVENTID\n"); ar 5240 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_vdev_resume_req(struct ath10k *ar, struct sk_buff *skb) ar 5242 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "WMI_VDEV_RESUME_REQ_EVENTID\n"); ar 5245 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_alloc_chunk(struct ath10k *ar, u32 req_id, ar 5250 drivers/net/wireless/ath/ath10k/wmi.c int idx = ar->wmi.num_mem_chunks; ar 5254 drivers/net/wireless/ath/ath10k/wmi.c vaddr = dma_alloc_coherent(ar->dev, pool_size, &paddr, GFP_KERNEL); ar 5259 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[idx].vaddr = vaddr; ar 5260 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[idx].paddr = paddr; ar 5261 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[idx].len = pool_size; ar 5262 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[idx].req_id = req_id; ar 5263 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.num_mem_chunks++; ar 5268 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_alloc_host_mem(struct ath10k *ar, u32 req_id, ar 5274 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_alloc_chunk(ar, req_id, num_units, unit_len); ar 5285 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_is_host_mem_allocated(struct ath10k *ar, ar 5294 drivers/net/wireless/ath/ath10k/wmi.c if (ar->wmi.num_mem_chunks != num_mem_reqs) ar 5304 drivers/net/wireless/ath/ath10k/wmi.c if (ar->num_active_peers) ar 5305 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->num_active_peers + 1; ar 5307 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->max_num_peers + 1; ar 5309 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->max_num_peers + 1; ar 5311 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->max_num_vdevs + 1; ar 5315 drivers/net/wireless/ath/ath10k/wmi.c for (j = 0; j < ar->wmi.num_mem_chunks; j++) { ar 5316 drivers/net/wireless/ath/ath10k/wmi.c if (ar->wmi.mem_chunks[j].req_id == req_id) { ar 5318 drivers/net/wireless/ath/ath10k/wmi.c if (ar->wmi.mem_chunks[j].len == pool_size) { ar 5332 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_main_op_pull_svc_rdy_ev(struct ath10k *ar, struct sk_buff *skb, ar 5371 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10x_op_pull_svc_rdy_ev(struct ath10k *ar, struct sk_buff *skb, ar 5410 drivers/net/wireless/ath/ath10k/wmi.c struct ath10k *ar = container_of(work, struct ath10k, svc_rdy_work); ar 5411 drivers/net/wireless/ath/ath10k/wmi.c struct sk_buff *skb = ar->svc_rdy_skb; ar 5418 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "invalid service ready event skb\n"); ar 5422 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_svc_rdy(ar, skb, &arg); ar 5424 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse service ready: %d\n", ret); ar 5428 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_map_svc(ar, arg.service_map, ar->wmi.svc_map, ar 5431 drivers/net/wireless/ath/ath10k/wmi.c ar->hw_min_tx_power = __le32_to_cpu(arg.min_tx_power); ar 5432 drivers/net/wireless/ath/ath10k/wmi.c ar->hw_max_tx_power = __le32_to_cpu(arg.max_tx_power); ar 5433 drivers/net/wireless/ath/ath10k/wmi.c ar->ht_cap_info = __le32_to_cpu(arg.ht_cap); ar 5434 drivers/net/wireless/ath/ath10k/wmi.c ar->vht_cap_info = __le32_to_cpu(arg.vht_cap); ar 5435 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_major = ar 5437 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_minor = (__le32_to_cpu(arg.sw_ver0) & 0x00ffffff); ar 5438 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_release = ar 5440 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_build = (__le32_to_cpu(arg.sw_ver1) & 0x0000ffff); ar 5441 drivers/net/wireless/ath/ath10k/wmi.c ar->phy_capability = __le32_to_cpu(arg.phy_capab); ar 5442 drivers/net/wireless/ath/ath10k/wmi.c ar->num_rf_chains = __le32_to_cpu(arg.num_rf_chains); ar 5443 drivers/net/wireless/ath/ath10k/wmi.c ar->hw_eeprom_rd = __le32_to_cpu(arg.eeprom_rd); ar 5444 drivers/net/wireless/ath/ath10k/wmi.c ar->low_5ghz_chan = __le32_to_cpu(arg.low_5ghz_chan); ar 5445 drivers/net/wireless/ath/ath10k/wmi.c ar->high_5ghz_chan = __le32_to_cpu(arg.high_5ghz_chan); ar 5447 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg_dump(ar, ATH10K_DBG_WMI, NULL, "wmi svc: ", ar 5450 drivers/net/wireless/ath/ath10k/wmi.c if (ar->num_rf_chains > ar->max_spatial_stream) { ar 5451 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "hardware advertises support for more spatial streams than it should (%d > %d)\n", ar 5452 drivers/net/wireless/ath/ath10k/wmi.c ar->num_rf_chains, ar->max_spatial_stream); ar 5453 drivers/net/wireless/ath/ath10k/wmi.c ar->num_rf_chains = ar->max_spatial_stream; ar 5456 drivers/net/wireless/ath/ath10k/wmi.c if (!ar->cfg_tx_chainmask) { ar 5457 drivers/net/wireless/ath/ath10k/wmi.c ar->cfg_tx_chainmask = (1 << ar->num_rf_chains) - 1; ar 5458 drivers/net/wireless/ath/ath10k/wmi.c ar->cfg_rx_chainmask = (1 << ar->num_rf_chains) - 1; ar 5461 drivers/net/wireless/ath/ath10k/wmi.c if (strlen(ar->hw->wiphy->fw_version) == 0) { ar 5462 drivers/net/wireless/ath/ath10k/wmi.c snprintf(ar->hw->wiphy->fw_version, ar 5463 drivers/net/wireless/ath/ath10k/wmi.c sizeof(ar->hw->wiphy->fw_version), ar 5465 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_major, ar 5466 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_minor, ar 5467 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_release, ar 5468 drivers/net/wireless/ath/ath10k/wmi.c ar->fw_version_build); ar 5473 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "requested memory chunks number (%d) exceeds the limit\n", ar 5478 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_PEER_CACHING, ar->wmi.svc_map)) { ar 5480 drivers/net/wireless/ath/ath10k/wmi.c ar->running_fw->fw_file.fw_features)) ar 5481 drivers/net/wireless/ath/ath10k/wmi.c ar->num_active_peers = TARGET_10_4_QCACHE_ACTIVE_PEERS_PFC + ar 5482 drivers/net/wireless/ath/ath10k/wmi.c ar->max_num_vdevs; ar 5484 drivers/net/wireless/ath/ath10k/wmi.c ar->num_active_peers = TARGET_10_4_QCACHE_ACTIVE_PEERS + ar 5485 drivers/net/wireless/ath/ath10k/wmi.c ar->max_num_vdevs; ar 5487 drivers/net/wireless/ath/ath10k/wmi.c ar->max_num_peers = TARGET_10_4_NUM_QCACHE_PEERS_MAX + ar 5488 drivers/net/wireless/ath/ath10k/wmi.c ar->max_num_vdevs; ar 5489 drivers/net/wireless/ath/ath10k/wmi.c ar->num_tids = ar->num_active_peers * 2; ar 5490 drivers/net/wireless/ath/ath10k/wmi.c ar->max_num_stations = TARGET_10_4_NUM_QCACHE_PEERS_MAX; ar 5497 drivers/net/wireless/ath/ath10k/wmi.c allocated = ath10k_wmi_is_host_mem_allocated(ar, arg.mem_reqs, ar 5507 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_free_host_mem(ar); ar 5516 drivers/net/wireless/ath/ath10k/wmi.c if (ar->num_active_peers) ar 5517 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->num_active_peers + 1; ar 5519 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->max_num_peers + 1; ar 5526 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->max_num_peers + 1; ar 5528 drivers/net/wireless/ath/ath10k/wmi.c num_units = ar->max_num_vdevs + 1; ar 5531 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5539 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_alloc_host_mem(ar, req_id, num_units, ar 5546 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5561 drivers/net/wireless/ath/ath10k/wmi.c ar->svc_rdy_skb = NULL; ar 5562 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->wmi.service_ready); ar 5565 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_service_ready(struct ath10k *ar, struct sk_buff *skb) ar 5567 drivers/net/wireless/ath/ath10k/wmi.c ar->svc_rdy_skb = skb; ar 5568 drivers/net/wireless/ath/ath10k/wmi.c queue_work(ar->workqueue_aux, &ar->svc_rdy_work); ar 5571 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_rdy_ev(struct ath10k *ar, struct sk_buff *skb, ar 5588 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_roam_ev(struct ath10k *ar, struct sk_buff *skb, ar 5603 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_op_pull_echo_ev(struct ath10k *ar, ar 5614 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_event_ready(struct ath10k *ar, struct sk_buff *skb) ar 5619 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_rdy(ar, skb, &arg); ar 5621 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse ready event: %d\n", ret); ar 5625 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5632 drivers/net/wireless/ath/ath10k/wmi.c if (is_zero_ether_addr(ar->mac_addr)) ar 5633 drivers/net/wireless/ath/ath10k/wmi.c ether_addr_copy(ar->mac_addr, arg.mac_addr); ar 5634 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->wmi.unified_ready); ar 5638 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_event_service_available(struct ath10k *ar, struct sk_buff *skb) ar 5643 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_pull_svc_avail(ar, skb, &arg); ar 5645 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to parse service available event: %d\n", ar 5649 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_map_svc_ext(ar, arg.service_map_ext, ar->wmi.svc_map, ar 5653 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_event_temperature(struct ath10k *ar, struct sk_buff *skb) ar 5661 drivers/net/wireless/ath/ath10k/wmi.c ath10k_thermal_event_temperature(ar, __le32_to_cpu(ev->temperature)); ar 5665 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_event_pdev_bss_chan_info(struct ath10k *ar, ar 5672 drivers/net/wireless/ath/ath10k/wmi.c u32 cc_freq_hz = ar->hw_params.channel_counters_freq_hz; ar 5687 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5691 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 5692 drivers/net/wireless/ath/ath10k/wmi.c idx = freq_to_idx(ar, freq); ar 5693 drivers/net/wireless/ath/ath10k/wmi.c if (idx >= ARRAY_SIZE(ar->survey)) { ar 5694 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "bss chan info: invalid frequency %d (idx %d out of bounds)\n", ar 5699 drivers/net/wireless/ath/ath10k/wmi.c survey = &ar->survey[idx]; ar 5712 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 5713 drivers/net/wireless/ath/ath10k/wmi.c complete(&ar->bss_survey_done); ar 5717 drivers/net/wireless/ath/ath10k/wmi.c static inline void ath10k_wmi_queue_set_coverage_class_work(struct ath10k *ar) ar 5719 drivers/net/wireless/ath/ath10k/wmi.c if (ar->hw_params.hw_ops->set_coverage_class) { ar 5720 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 5727 drivers/net/wireless/ath/ath10k/wmi.c if (ar->fw_coverage.coverage_class) ar 5728 drivers/net/wireless/ath/ath10k/wmi.c queue_work(ar->workqueue, &ar->set_coverage_class_work); ar 5730 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 5734 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_op_rx(struct ath10k *ar, struct sk_buff *skb) ar 5745 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_wmi_event(ar, id, skb->data, skb->len); ar 5749 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_mgmt_rx(ar, skb); ar 5753 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan(ar, skb); ar 5754 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5757 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_chan_info(ar, skb); ar 5760 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_echo(ar, skb); ar 5763 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_mesg(ar, skb); ar 5764 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5767 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_update_stats(ar, skb); ar 5770 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_start_resp(ar, skb); ar 5771 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5774 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_stopped(ar, skb); ar 5775 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5778 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_peer_sta_kickout(ar, skb); ar 5781 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_host_swba(ar, skb); ar 5784 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tbttoffset_update(ar, skb); ar 5787 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_phyerr(ar, skb); ar 5790 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_roam(ar, skb); ar 5791 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5794 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_profile_match(ar, skb); ar 5797 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_print(ar, skb); ar 5798 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5801 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_qvit(ar, skb); ar 5804 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_wlan_profile_data(ar, skb); ar 5807 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_rtt_measurement_report(ar, skb); ar 5810 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tsf_measurement_report(ar, skb); ar 5813 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_rtt_error_report(ar, skb); ar 5816 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_wow_wakeup_host(ar, skb); ar 5819 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_dcs_interference(ar, skb); ar 5822 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_tpc_config(ar, skb); ar 5825 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_ftm_intg(ar, skb); ar 5828 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_gtk_offload_status(ar, skb); ar 5831 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_gtk_rekey_fail(ar, skb); ar 5834 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_delba_complete(ar, skb); ar 5837 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_addba_complete(ar, skb); ar 5840 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_install_key_complete(ar, skb); ar 5843 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_service_ready(ar, skb); ar 5846 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_ready(ar, skb); ar 5847 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5850 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_service_available(ar, skb); ar 5853 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "Unknown eventid: %d\n", id); ar 5861 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_10_1_op_rx(struct ath10k *ar, struct sk_buff *skb) ar 5873 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_wmi_event(ar, id, skb->data, skb->len); ar 5875 drivers/net/wireless/ath/ath10k/wmi.c consumed = ath10k_tm_event_wmi(ar, id, skb); ar 5882 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 5889 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_mgmt_rx(ar, skb); ar 5893 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan(ar, skb); ar 5894 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5897 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_chan_info(ar, skb); ar 5900 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_echo(ar, skb); ar 5903 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_mesg(ar, skb); ar 5904 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5907 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_update_stats(ar, skb); ar 5910 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_start_resp(ar, skb); ar 5911 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5914 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_stopped(ar, skb); ar 5915 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5918 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_peer_sta_kickout(ar, skb); ar 5921 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_host_swba(ar, skb); ar 5924 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tbttoffset_update(ar, skb); ar 5927 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_phyerr(ar, skb); ar 5930 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_roam(ar, skb); ar 5931 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5934 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_profile_match(ar, skb); ar 5937 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_print(ar, skb); ar 5938 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5941 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_qvit(ar, skb); ar 5944 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_wlan_profile_data(ar, skb); ar 5947 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_rtt_measurement_report(ar, skb); ar 5950 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tsf_measurement_report(ar, skb); ar 5953 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_rtt_error_report(ar, skb); ar 5956 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_wow_wakeup_host(ar, skb); ar 5959 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_dcs_interference(ar, skb); ar 5962 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_tpc_config(ar, skb); ar 5965 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_inst_rssi_stats(ar, skb); ar 5968 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_standby_req(ar, skb); ar 5971 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_resume_req(ar, skb); ar 5974 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_service_ready(ar, skb); ar 5977 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_ready(ar, skb); ar 5978 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 5984 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "Unknown eventid: %d\n", id); ar 5992 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_10_2_op_rx(struct ath10k *ar, struct sk_buff *skb) ar 6004 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_wmi_event(ar, id, skb->data, skb->len); ar 6006 drivers/net/wireless/ath/ath10k/wmi.c consumed = ath10k_tm_event_wmi(ar, id, skb); ar 6013 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6020 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_mgmt_rx(ar, skb); ar 6024 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan(ar, skb); ar 6025 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6028 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_chan_info(ar, skb); ar 6031 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_echo(ar, skb); ar 6034 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_mesg(ar, skb); ar 6035 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6038 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_update_stats(ar, skb); ar 6041 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_start_resp(ar, skb); ar 6042 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6045 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_stopped(ar, skb); ar 6046 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6049 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_peer_sta_kickout(ar, skb); ar 6052 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_host_swba(ar, skb); ar 6055 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tbttoffset_update(ar, skb); ar 6058 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_phyerr(ar, skb); ar 6061 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_roam(ar, skb); ar 6062 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6065 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_profile_match(ar, skb); ar 6068 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_print(ar, skb); ar 6069 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6072 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_qvit(ar, skb); ar 6075 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_wlan_profile_data(ar, skb); ar 6078 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_rtt_measurement_report(ar, skb); ar 6081 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tsf_measurement_report(ar, skb); ar 6084 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_rtt_error_report(ar, skb); ar 6087 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_wow_wakeup_host(ar, skb); ar 6090 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_dcs_interference(ar, skb); ar 6093 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_tpc_config(ar, skb); ar 6096 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_inst_rssi_stats(ar, skb); ar 6099 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_standby_req(ar, skb); ar 6100 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6103 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_resume_req(ar, skb); ar 6104 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6107 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_service_ready(ar, skb); ar 6110 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_ready(ar, skb); ar 6111 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6114 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_temperature(ar, skb); ar 6117 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_bss_chan_info(ar, skb); ar 6126 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6130 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_peer_sta_ps_state_chg(ar, skb); ar 6133 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "Unknown eventid: %d\n", id); ar 6141 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_10_4_op_rx(struct ath10k *ar, struct sk_buff *skb) ar 6153 drivers/net/wireless/ath/ath10k/wmi.c trace_ath10k_wmi_event(ar, id, skb->data, skb->len); ar 6155 drivers/net/wireless/ath/ath10k/wmi.c consumed = ath10k_tm_event_wmi(ar, id, skb); ar 6162 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6169 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_mgmt_rx(ar, skb); ar 6173 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_echo(ar, skb); ar 6176 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_mesg(ar, skb); ar 6177 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6180 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_service_ready(ar, skb); ar 6183 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_scan(ar, skb); ar 6184 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6187 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_chan_info(ar, skb); ar 6190 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_phyerr(ar, skb); ar 6193 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_ready(ar, skb); ar 6194 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6197 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_peer_sta_kickout(ar, skb); ar 6200 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_roam(ar, skb); ar 6201 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6204 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_host_swba(ar, skb); ar 6207 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tbttoffset_update(ar, skb); ar 6210 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_debug_print(ar, skb); ar 6211 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6214 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_start_resp(ar, skb); ar 6215 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6218 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_vdev_stopped(ar, skb); ar 6219 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_queue_set_coverage_class_work(ar); ar 6225 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6229 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_update_stats(ar, skb); ar 6232 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_temperature(ar, skb); ar 6235 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_bss_chan_info(ar, skb); ar 6238 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_pdev_tpc_config(ar, skb); ar 6241 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_handle_tdls_peer_event(ar, skb); ar 6244 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_tpc_final_table(ar, skb); ar 6247 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_dfs_status_check(ar, skb); ar 6250 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_event_peer_sta_ps_state_chg(ar, skb); ar 6253 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "Unknown eventid: %d\n", id); ar 6261 drivers/net/wireless/ath/ath10k/wmi.c static void ath10k_wmi_process_rx(struct ath10k *ar, struct sk_buff *skb) ar 6265 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_rx(ar, skb); ar 6267 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to process wmi rx: %d\n", ret); ar 6270 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_connect(struct ath10k *ar) ar 6276 drivers/net/wireless/ath/ath10k/wmi.c memset(&ar->wmi.svc_map, 0, sizeof(ar->wmi.svc_map)); ar 6289 drivers/net/wireless/ath/ath10k/wmi.c status = ath10k_htc_connect_service(&ar->htc, &conn_req, &conn_resp); ar 6291 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to connect to WMI CONTROL service status: %d\n", ar 6296 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.eid = conn_resp.eid; ar 6301 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_set_base_macaddr(struct ath10k *ar, ar 6307 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 6314 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6320 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_set_rd(struct ath10k *ar, u16 rd, u16 rd2g, u16 rd5g, ar 6327 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 6338 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6345 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10x_op_gen_pdev_set_rd(struct ath10k *ar, u16 rd, u16 rd2g, u16 ar 6352 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 6364 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6371 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_suspend(struct ath10k *ar, u32 suspend_opt) ar 6376 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 6387 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_resume(struct ath10k *ar) ar 6391 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, 0); ar 6399 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_set_param(struct ath10k *ar, u32 id, u32 value) ar 6405 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "pdev param %d not supported by firmware\n", ar 6410 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 6418 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi pdev set param %d value %d\n", ar 6423 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_put_host_mem_chunks(struct ath10k *ar, ar 6429 drivers/net/wireless/ath/ath10k/wmi.c chunks->count = __cpu_to_le32(ar->wmi.num_mem_chunks); ar 6431 drivers/net/wireless/ath/ath10k/wmi.c for (i = 0; i < ar->wmi.num_mem_chunks; i++) { ar 6433 drivers/net/wireless/ath/ath10k/wmi.c chunk->ptr = __cpu_to_le32(ar->wmi.mem_chunks[i].paddr); ar 6434 drivers/net/wireless/ath/ath10k/wmi.c chunk->size = __cpu_to_le32(ar->wmi.mem_chunks[i].len); ar 6435 drivers/net/wireless/ath/ath10k/wmi.c chunk->req_id = __cpu_to_le32(ar->wmi.mem_chunks[i].req_id); ar 6437 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 6440 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[i].len, ar 6441 drivers/net/wireless/ath/ath10k/wmi.c (unsigned long long)ar->wmi.mem_chunks[i].paddr); ar 6445 drivers/net/wireless/ath/ath10k/wmi.c static struct sk_buff *ath10k_wmi_op_gen_init(struct ath10k *ar) ar 6468 drivers/net/wireless/ath/ath10k/wmi.c config.rx_decap_mode = __cpu_to_le32(ar->wmi.rx_decap_mode); ar 6503 drivers/net/wireless/ath/ath10k/wmi.c (sizeof(struct host_memory_chunk) * ar->wmi.num_mem_chunks); ar 6505 drivers/net/wireless/ath/ath10k/wmi.c buf = ath10k_wmi_alloc_skb(ar, len); ar 6512 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_put_host_mem_chunks(ar, &cmd->mem_chunks); ar 6514 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi init\n"); ar 6518 drivers/net/wireless/ath/ath10k/wmi.c static struct sk_buff *ath10k_wmi_10_1_op_gen_init(struct ath10k *ar) ar 6536 drivers/net/wireless/ath/ath10k/wmi.c config.rx_decap_mode = __cpu_to_le32(ar->wmi.rx_decap_mode); ar 6568 drivers/net/wireless/ath/ath10k/wmi.c (sizeof(struct host_memory_chunk) * ar->wmi.num_mem_chunks); ar 6570 drivers/net/wireless/ath/ath10k/wmi.c buf = ath10k_wmi_alloc_skb(ar, len); ar 6577 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_put_host_mem_chunks(ar, &cmd->mem_chunks); ar 6579 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi init 10x\n"); ar 6583 drivers/net/wireless/ath/ath10k/wmi.c static struct sk_buff *ath10k_wmi_10_2_op_gen_init(struct ath10k *ar) ar 6593 drivers/net/wireless/ath/ath10k/wmi.c if (ath10k_peer_stats_enabled(ar)) { ar 6608 drivers/net/wireless/ath/ath10k/wmi.c config.rx_decap_mode = __cpu_to_le32(ar->wmi.rx_decap_mode); ar 6641 drivers/net/wireless/ath/ath10k/wmi.c (sizeof(struct host_memory_chunk) * ar->wmi.num_mem_chunks); ar 6643 drivers/net/wireless/ath/ath10k/wmi.c buf = ath10k_wmi_alloc_skb(ar, len); ar 6651 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(ATH10K_FLAG_BTCOEX, &ar->dev_flags) && ar 6652 drivers/net/wireless/ath/ath10k/wmi.c test_bit(WMI_SERVICE_COEX_GPIO, ar->wmi.svc_map)) ar 6655 drivers/net/wireless/ath/ath10k/wmi.c if (ath10k_peer_stats_enabled(ar)) ar 6658 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_BSS_CHANNEL_INFO_64, ar->wmi.svc_map)) ar 6664 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_put_host_mem_chunks(ar, &cmd->mem_chunks); ar 6666 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi init 10.2\n"); ar 6670 drivers/net/wireless/ath/ath10k/wmi.c static struct sk_buff *ath10k_wmi_10_4_op_gen_init(struct ath10k *ar) ar 6677 drivers/net/wireless/ath/ath10k/wmi.c config.num_vdevs = __cpu_to_le32(ar->max_num_vdevs); ar 6678 drivers/net/wireless/ath/ath10k/wmi.c config.num_peers = __cpu_to_le32(ar->max_num_peers); ar 6679 drivers/net/wireless/ath/ath10k/wmi.c config.num_active_peers = __cpu_to_le32(ar->num_active_peers); ar 6680 drivers/net/wireless/ath/ath10k/wmi.c config.num_tids = __cpu_to_le32(ar->num_tids); ar 6687 drivers/net/wireless/ath/ath10k/wmi.c config.tx_chain_mask = __cpu_to_le32(ar->hw_params.tx_chain_mask); ar 6688 drivers/net/wireless/ath/ath10k/wmi.c config.rx_chain_mask = __cpu_to_le32(ar->hw_params.rx_chain_mask); ar 6695 drivers/net/wireless/ath/ath10k/wmi.c config.rx_decap_mode = __cpu_to_le32(ar->wmi.rx_decap_mode); ar 6719 drivers/net/wireless/ath/ath10k/wmi.c config.num_msdu_desc = __cpu_to_le32(ar->htt.max_num_pending_tx); ar 6738 drivers/net/wireless/ath/ath10k/wmi.c (sizeof(struct host_memory_chunk) * ar->wmi.num_mem_chunks); ar 6740 drivers/net/wireless/ath/ath10k/wmi.c buf = ath10k_wmi_alloc_skb(ar, len); ar 6746 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_put_host_mem_chunks(ar, &cmd->mem_chunks); ar 6748 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi init 10.4\n"); ar 6889 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_start_scan(struct ath10k *ar, ar 6902 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 6913 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi start scan\n"); ar 6918 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10x_op_gen_start_scan(struct ath10k *ar, ar 6931 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 6940 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi 10x start scan\n"); ar 6944 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_start_scan_init(struct ath10k *ar, ar 6971 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_stop_scan(struct ath10k *ar, ar 6984 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7000 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7007 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_create(struct ath10k *ar, u32 vdev_id, ar 7015 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7025 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7032 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_delete(struct ath10k *ar, u32 vdev_id) ar 7037 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7044 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7050 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_start(struct ath10k *ar, ar 7069 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7094 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7104 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_stop(struct ath10k *ar, u32 vdev_id) ar 7109 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7116 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi vdev stop id 0x%x\n", vdev_id); ar 7121 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_up(struct ath10k *ar, u32 vdev_id, u32 aid, ar 7127 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7136 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7143 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_down(struct ath10k *ar, u32 vdev_id) ar 7148 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7155 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7161 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_set_param(struct ath10k *ar, u32 vdev_id, ar 7168 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7174 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7183 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7190 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_install_key(struct ath10k *ar, ar 7201 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd) + arg->key_len); ar 7219 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7226 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_spectral_conf(struct ath10k *ar, ar 7232 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7261 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_vdev_spectral_enable(struct ath10k *ar, u32 vdev_id, ar 7267 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7280 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_peer_create(struct ath10k *ar, u32 vdev_id, ar 7287 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7296 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7303 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_peer_delete(struct ath10k *ar, u32 vdev_id, ar 7309 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7317 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7324 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_peer_flush(struct ath10k *ar, u32 vdev_id, ar 7330 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7339 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7346 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_peer_set_param(struct ath10k *ar, u32 vdev_id, ar 7354 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7364 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7371 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, ar 7377 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7385 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7392 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_set_sta_ps(struct ath10k *ar, u32 vdev_id, ar 7399 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7408 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7415 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_set_ap_ps(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 7424 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7434 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7441 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_scan_chan_list(struct ath10k *ar, ar 7453 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 7471 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill(struct ath10k *ar, void *buf, ar 7513 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_main(struct ath10k *ar, void *buf, ar 7518 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill(ar, buf, arg); ar 7523 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_10_1(struct ath10k *ar, void *buf, ar 7526 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill(ar, buf, arg); ar 7530 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_10_2(struct ath10k *ar, void *buf, ar 7544 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill(ar, buf, arg); ar 7549 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_10_4(struct ath10k *ar, void *buf, ar 7554 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_10_2(ar, buf, arg); ar 7577 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_peer_assoc(struct ath10k *ar, ar 7588 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 7592 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_main(ar, skb->data, arg); ar 7594 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7602 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_1_op_gen_peer_assoc(struct ath10k *ar, ar 7613 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 7617 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_10_1(ar, skb->data, arg); ar 7619 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7627 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_2_op_gen_peer_assoc(struct ath10k *ar, ar 7638 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 7642 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_10_2(ar, skb->data, arg); ar 7644 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7652 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_op_gen_peer_assoc(struct ath10k *ar, ar 7663 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 7667 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_peer_assoc_fill_10_4(ar, skb->data, arg); ar 7669 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7677 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_2_op_gen_pdev_get_temperature(struct ath10k *ar) ar 7681 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, 0); ar 7685 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi pdev get temperature\n"); ar 7690 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_2_op_gen_pdev_bss_chan_info(struct ath10k *ar, ar 7696 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7703 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7711 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_beacon_dma(struct ath10k *ar, u32 vdev_id, const void *bcn, ar 7720 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7757 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_set_wmm(struct ath10k *ar, ar 7763 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7773 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi pdev set wmm params\n"); ar 7778 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_request_stats(struct ath10k *ar, u32 stats_mask) ar 7783 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7790 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi request stats 0x%08x\n", ar 7796 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_force_fw_hang(struct ath10k *ar, ar 7802 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7810 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi force fw hang %d delay %d\n", ar 7816 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_dbglog_cfg(struct ath10k *ar, u64 module_enable, ar 7823 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7844 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7854 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_op_gen_dbglog_cfg(struct ath10k *ar, u64 module_enable, ar 7861 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7882 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7892 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pktlog_enable(struct ath10k *ar, u32 ev_bitmap) ar 7897 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7906 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi enable pktlog filter 0x%08x\n", ar 7912 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pktlog_disable(struct ath10k *ar) ar 7916 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, 0); ar 7920 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi disable pktlog\n"); ar 7925 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_set_quiet_mode(struct ath10k *ar, u32 period, ar 7932 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7942 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7949 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_addba_clear_resp(struct ath10k *ar, u32 vdev_id, ar 7958 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7966 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7973 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_addba_send(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 7982 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 7992 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 7999 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_addba_set_resp(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 8008 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8018 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8025 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_delba_send(struct ath10k *ar, u32 vdev_id, const u8 *mac, ar 8034 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8045 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8052 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config(struct ath10k *ar, u32 param) ar 8057 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8064 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8346 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_main_op_fw_stats_fill(struct ath10k *ar, ar 8358 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 8363 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to get pdev stats\n"); ar 8396 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 8404 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_10x_op_fw_stats_fill(struct ath10k *ar, ar 8416 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 8421 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to get pdev stats\n"); ar 8455 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 8464 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_pdev_enable_adaptive_cca(struct ath10k *ar, u8 enable, ar 8470 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8479 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8551 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_10_4_op_fw_stats_fill(struct ath10k *ar, ar 8564 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 8569 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to get pdev stats\n"); ar 8635 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 8643 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_op_get_vdev_subtype(struct ath10k *ar, ar 8664 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_2_4_op_get_vdev_subtype(struct ath10k *ar, ar 8686 drivers/net/wireless/ath/ath10k/wmi.c static int ath10k_wmi_10_4_op_get_vdev_subtype(struct ath10k *ar, ar 8709 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_ext_resource_config(struct ath10k *ar, ar 8717 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8721 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_TDLS_UAPSD_SLEEP_STA, ar->wmi.svc_map)) ar 8738 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8745 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_gen_update_fw_tdls_state(struct ath10k *ar, u32 vdev_id, ar 8752 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8756 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_TDLS_EXPLICIT_MODE_ONLY, ar->wmi.svc_map) && ar 8760 drivers/net/wireless/ath/ath10k/wmi.c if (test_bit(WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, ar->wmi.svc_map)) ar 8780 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, "wmi update fw tdls state %d for vdev %i\n", ar 8804 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_op_gen_pdev_get_tpc_table_cmdid(struct ath10k *ar, u32 param) ar 8809 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8816 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8822 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_gen_tdls_peer_update(struct ath10k *ar, ar 8840 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, len); ar 8875 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8882 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_4_gen_radar_found(struct ath10k *ar, ar 8888 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8900 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8908 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_op_gen_echo(struct ath10k *ar, u32 value) ar 8913 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8920 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 8926 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_barrier(struct ath10k *ar) ar 8931 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 8932 drivers/net/wireless/ath/ath10k/wmi.c reinit_completion(&ar->wmi.barrier); ar 8933 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 8935 drivers/net/wireless/ath/ath10k/wmi.c ret = ath10k_wmi_echo(ar, ATH10K_WMI_BARRIER_ECHO_ID); ar 8937 drivers/net/wireless/ath/ath10k/wmi.c ath10k_warn(ar, "failed to submit wmi echo: %d\n", ret); ar 8941 drivers/net/wireless/ath/ath10k/wmi.c time_left = wait_for_completion_timeout(&ar->wmi.barrier, ar 8950 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_10_2_4_op_gen_bb_timing(struct ath10k *ar, ar 8956 drivers/net/wireless/ath/ath10k/wmi.c skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ar 8964 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 9327 drivers/net/wireless/ath/ath10k/wmi.c int ath10k_wmi_attach(struct ath10k *ar) ar 9329 drivers/net/wireless/ath/ath10k/wmi.c switch (ar->running_fw->fw_file.wmi_op_version) { ar 9331 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.ops = &wmi_10_4_ops; ar 9332 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.cmd = &wmi_10_4_cmd_map; ar 9333 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.vdev_param = &wmi_10_4_vdev_param_map; ar 9334 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.pdev_param = &wmi_10_4_pdev_param_map; ar 9335 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.peer_flags = &wmi_10_2_peer_flags_map; ar 9336 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi_key_cipher = wmi_key_cipher_suites; ar 9339 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.cmd = &wmi_10_2_4_cmd_map; ar 9340 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.ops = &wmi_10_2_4_ops; ar 9341 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.vdev_param = &wmi_10_2_4_vdev_param_map; ar 9342 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.pdev_param = &wmi_10_2_4_pdev_param_map; ar 9343 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.peer_flags = &wmi_10_2_peer_flags_map; ar 9344 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi_key_cipher = wmi_key_cipher_suites; ar 9347 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.cmd = &wmi_10_2_cmd_map; ar 9348 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.ops = &wmi_10_2_ops; ar 9349 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.vdev_param = &wmi_10x_vdev_param_map; ar 9350 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.pdev_param = &wmi_10x_pdev_param_map; ar 9351 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.peer_flags = &wmi_10_2_peer_flags_map; ar 9352 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi_key_cipher = wmi_key_cipher_suites; ar 9355 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.cmd = &wmi_10x_cmd_map; ar 9356 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.ops = &wmi_10_1_ops; ar 9357 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.vdev_param = &wmi_10x_vdev_param_map; ar 9358 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.pdev_param = &wmi_10x_pdev_param_map; ar 9359 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.peer_flags = &wmi_10x_peer_flags_map; ar 9360 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi_key_cipher = wmi_key_cipher_suites; ar 9363 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.cmd = &wmi_cmd_map; ar 9364 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.ops = &wmi_ops; ar 9365 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.vdev_param = &wmi_vdev_param_map; ar 9366 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.pdev_param = &wmi_pdev_param_map; ar 9367 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.peer_flags = &wmi_peer_flags_map; ar 9368 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi_key_cipher = wmi_key_cipher_suites; ar 9371 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_tlv_attach(ar); ar 9372 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi_key_cipher = wmi_tlv_key_cipher_suites; ar 9376 drivers/net/wireless/ath/ath10k/wmi.c ath10k_err(ar, "unsupported WMI op version: %d\n", ar 9377 drivers/net/wireless/ath/ath10k/wmi.c ar->running_fw->fw_file.wmi_op_version); ar 9381 drivers/net/wireless/ath/ath10k/wmi.c init_completion(&ar->wmi.service_ready); ar 9382 drivers/net/wireless/ath/ath10k/wmi.c init_completion(&ar->wmi.unified_ready); ar 9383 drivers/net/wireless/ath/ath10k/wmi.c init_completion(&ar->wmi.barrier); ar 9384 drivers/net/wireless/ath/ath10k/wmi.c init_completion(&ar->wmi.radar_confirm); ar 9386 drivers/net/wireless/ath/ath10k/wmi.c INIT_WORK(&ar->svc_rdy_work, ath10k_wmi_event_service_ready_work); ar 9387 drivers/net/wireless/ath/ath10k/wmi.c INIT_WORK(&ar->radar_confirmation_work, ar 9391 drivers/net/wireless/ath/ath10k/wmi.c ar->running_fw->fw_file.fw_features)) { ar 9392 drivers/net/wireless/ath/ath10k/wmi.c idr_init(&ar->wmi.mgmt_pending_tx); ar 9398 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_free_host_mem(struct ath10k *ar) ar 9403 drivers/net/wireless/ath/ath10k/wmi.c for (i = 0; i < ar->wmi.num_mem_chunks; i++) { ar 9404 drivers/net/wireless/ath/ath10k/wmi.c dma_free_coherent(ar->dev, ar 9405 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[i].len, ar 9406 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[i].vaddr, ar 9407 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.mem_chunks[i].paddr); ar 9410 drivers/net/wireless/ath/ath10k/wmi.c ar->wmi.num_mem_chunks = 0; ar 9417 drivers/net/wireless/ath/ath10k/wmi.c struct ath10k *ar = ctx; ar 9420 drivers/net/wireless/ath/ath10k/wmi.c ath10k_dbg(ar, ATH10K_DBG_WMI, ar 9424 drivers/net/wireless/ath/ath10k/wmi.c dma_unmap_single(ar->dev, pkt_addr->paddr, ar 9426 drivers/net/wireless/ath/ath10k/wmi.c ieee80211_free_txskb(ar->hw, msdu); ar 9431 drivers/net/wireless/ath/ath10k/wmi.c void ath10k_wmi_detach(struct ath10k *ar) ar 9434 drivers/net/wireless/ath/ath10k/wmi.c ar->running_fw->fw_file.fw_features)) { ar 9435 drivers/net/wireless/ath/ath10k/wmi.c spin_lock_bh(&ar->data_lock); ar 9436 drivers/net/wireless/ath/ath10k/wmi.c idr_for_each(&ar->wmi.mgmt_pending_tx, ar 9437 drivers/net/wireless/ath/ath10k/wmi.c ath10k_wmi_mgmt_tx_clean_up_pending, ar); ar 9438 drivers/net/wireless/ath/ath10k/wmi.c idr_destroy(&ar->wmi.mgmt_pending_tx); ar 9439 drivers/net/wireless/ath/ath10k/wmi.c spin_unlock_bh(&ar->data_lock); ar 9442 drivers/net/wireless/ath/ath10k/wmi.c cancel_work_sync(&ar->svc_rdy_work); ar 9444 drivers/net/wireless/ath/ath10k/wmi.c if (ar->svc_rdy_skb) ar 9445 drivers/net/wireless/ath/ath10k/wmi.c dev_kfree_skb(ar->svc_rdy_skb); ar 7284 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_attach(struct ath10k *ar); ar 7285 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_detach(struct ath10k *ar); ar 7286 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_free_host_mem(struct ath10k *ar); ar 7287 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_wait_for_service_ready(struct ath10k *ar); ar 7288 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_wait_for_unified_ready(struct ath10k *ar); ar 7290 drivers/net/wireless/ath/ath10k/wmi.h struct sk_buff *ath10k_wmi_alloc_skb(struct ath10k *ar, u32 len); ar 7291 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_connect(struct ath10k *ar); ar 7293 drivers/net/wireless/ath/ath10k/wmi.h struct sk_buff *ath10k_wmi_alloc_skb(struct ath10k *ar, u32 len); ar 7294 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id); ar 7295 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_cmd_send_nowait(struct ath10k *ar, struct sk_buff *skb, ar 7297 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_start_scan_init(struct ath10k *ar, struct wmi_start_scan_arg *arg); ar 7309 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_put_host_mem_chunks(struct ath10k *ar, ar 7319 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_event_scan(struct ath10k *ar, struct sk_buff *skb); ar 7320 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_event_mgmt_rx(struct ath10k *ar, struct sk_buff *skb); ar 7321 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_event_mgmt_tx_compl(struct ath10k *ar, struct sk_buff *skb); ar 7322 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_event_mgmt_tx_bundle_compl(struct ath10k *ar, struct sk_buff *skb); ar 7323 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_chan_info(struct ath10k *ar, struct sk_buff *skb); ar 7324 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_echo(struct ath10k *ar, struct sk_buff *skb); ar 7325 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_event_debug_mesg(struct ath10k *ar, struct sk_buff *skb); ar 7326 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_update_stats(struct ath10k *ar, struct sk_buff *skb); ar 7327 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_vdev_start_resp(struct ath10k *ar, struct sk_buff *skb); ar 7328 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_vdev_stopped(struct ath10k *ar, struct sk_buff *skb); ar 7329 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_peer_sta_kickout(struct ath10k *ar, struct sk_buff *skb); ar 7330 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_host_swba(struct ath10k *ar, struct sk_buff *skb); ar 7331 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_tbttoffset_update(struct ath10k *ar, struct sk_buff *skb); ar 7332 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_dfs(struct ath10k *ar, ar 7334 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_spectral_scan(struct ath10k *ar, ar 7337 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_phyerr(struct ath10k *ar, struct sk_buff *skb); ar 7338 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_roam(struct ath10k *ar, struct sk_buff *skb); ar 7339 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_profile_match(struct ath10k *ar, struct sk_buff *skb); ar 7340 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_debug_print(struct ath10k *ar, struct sk_buff *skb); ar 7341 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_pdev_qvit(struct ath10k *ar, struct sk_buff *skb); ar 7342 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_wlan_profile_data(struct ath10k *ar, struct sk_buff *skb); ar 7343 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_rtt_measurement_report(struct ath10k *ar, ar 7345 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_tsf_measurement_report(struct ath10k *ar, ar 7347 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_rtt_error_report(struct ath10k *ar, struct sk_buff *skb); ar 7348 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_wow_wakeup_host(struct ath10k *ar, struct sk_buff *skb); ar 7349 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_dcs_interference(struct ath10k *ar, struct sk_buff *skb); ar 7350 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_pdev_tpc_config(struct ath10k *ar, struct sk_buff *skb); ar 7351 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_pdev_ftm_intg(struct ath10k *ar, struct sk_buff *skb); ar 7352 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_gtk_offload_status(struct ath10k *ar, ar 7354 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_gtk_rekey_fail(struct ath10k *ar, struct sk_buff *skb); ar 7355 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_delba_complete(struct ath10k *ar, struct sk_buff *skb); ar 7356 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_addba_complete(struct ath10k *ar, struct sk_buff *skb); ar 7357 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_vdev_install_key_complete(struct ath10k *ar, ar 7359 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_inst_rssi_stats(struct ath10k *ar, struct sk_buff *skb); ar 7360 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_vdev_standby_req(struct ath10k *ar, struct sk_buff *skb); ar 7361 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_vdev_resume_req(struct ath10k *ar, struct sk_buff *skb); ar 7362 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_service_ready(struct ath10k *ar, struct sk_buff *skb); ar 7363 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_event_ready(struct ath10k *ar, struct sk_buff *skb); ar 7364 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_service_available(struct ath10k *ar, struct sk_buff *skb); ar 7365 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_op_pull_phyerr_ev(struct ath10k *ar, const void *phyerr_buf, ar 7367 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_main_op_fw_stats_fill(struct ath10k *ar, ar 7370 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_10x_op_fw_stats_fill(struct ath10k *ar, ar 7375 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_10_4_op_fw_stats_fill(struct ath10k *ar, ar 7378 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_op_get_vdev_subtype(struct ath10k *ar, ar 7380 drivers/net/wireless/ath/ath10k/wmi.h int ath10k_wmi_barrier(struct ath10k *ar); ar 7383 drivers/net/wireless/ath/ath10k/wmi.h void ath10k_wmi_event_tpc_final_table(struct ath10k *ar, struct sk_buff *skb); ar 26 drivers/net/wireless/ath/ath10k/wow.c struct ath10k *ar = arvif->ar; ar 30 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_wow_add_wakeup_event(ar, arvif->vdev_id, i, 0); ar 32 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to issue wow wakeup for event %s on vdev %i: %d\n", ar 38 drivers/net/wireless/ath/ath10k/wow.c for (i = 0; i < ar->wow.max_num_patterns; i++) { ar 39 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_wow_del_pattern(ar, arvif->vdev_id, i); ar 41 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to delete wow pattern %d for vdev %i: %d\n", ar 50 drivers/net/wireless/ath/ath10k/wow.c static int ath10k_wow_cleanup(struct ath10k *ar) ar 55 drivers/net/wireless/ath/ath10k/wow.c lockdep_assert_held(&ar->conf_mutex); ar 57 drivers/net/wireless/ath/ath10k/wow.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 60 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to clean wow wakeups on vdev %i: %d\n", ar 171 drivers/net/wireless/ath/ath10k/wow.c static int ath10k_wmi_pno_check(struct ath10k *ar, u32 vdev_id, ar 246 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "Invalid number of scan plans %d !!", ar 270 drivers/net/wireless/ath/ath10k/wow.c struct ath10k *ar = arvif->ar; ar 307 drivers/net/wireless/ath/ath10k/wow.c ar->nlo_enabled = true; ar 309 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_pno_check(ar, arvif->vdev_id, ar 312 drivers/net/wireless/ath/ath10k/wow.c ath10k_wmi_wow_config_pno(ar, arvif->vdev_id, pno); ar 342 drivers/net/wireless/ath/ath10k/wow.c if (ar->wmi.rx_decap_mode == ATH10K_HW_TXRX_NATIVE_WIFI) { ar 353 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_wow_add_pattern(ar, arvif->vdev_id, ar 360 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to add pattern %i to vdev %i: %d\n", ar 373 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_wow_add_wakeup_event(ar, arvif->vdev_id, i, 1); ar 375 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to enable wakeup event %s on vdev %i: %d\n", ar 384 drivers/net/wireless/ath/ath10k/wow.c static int ath10k_wow_set_wakeups(struct ath10k *ar, ar 390 drivers/net/wireless/ath/ath10k/wow.c lockdep_assert_held(&ar->conf_mutex); ar 392 drivers/net/wireless/ath/ath10k/wow.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 395 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to set wow wakeups on vdev %i: %d\n", ar 407 drivers/net/wireless/ath/ath10k/wow.c struct ath10k *ar = arvif->ar; ar 411 drivers/net/wireless/ath/ath10k/wow.c if (ar->nlo_enabled) { ar 419 drivers/net/wireless/ath/ath10k/wow.c ar->nlo_enabled = false; ar 420 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_wow_config_pno(ar, arvif->vdev_id, pno); ar 430 drivers/net/wireless/ath/ath10k/wow.c static int ath10k_wow_nlo_cleanup(struct ath10k *ar) ar 435 drivers/net/wireless/ath/ath10k/wow.c lockdep_assert_held(&ar->conf_mutex); ar 437 drivers/net/wireless/ath/ath10k/wow.c list_for_each_entry(arvif, &ar->arvifs, list) { ar 440 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to clean nlo settings on vdev %i: %d\n", ar 449 drivers/net/wireless/ath/ath10k/wow.c static int ath10k_wow_enable(struct ath10k *ar) ar 453 drivers/net/wireless/ath/ath10k/wow.c lockdep_assert_held(&ar->conf_mutex); ar 455 drivers/net/wireless/ath/ath10k/wow.c reinit_completion(&ar->target_suspend); ar 457 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_wow_enable(ar); ar 459 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to issue wow enable: %d\n", ret); ar 463 drivers/net/wireless/ath/ath10k/wow.c ret = wait_for_completion_timeout(&ar->target_suspend, 3 * HZ); ar 465 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "timed out while waiting for suspend completion\n"); ar 472 drivers/net/wireless/ath/ath10k/wow.c static int ath10k_wow_wakeup(struct ath10k *ar) ar 476 drivers/net/wireless/ath/ath10k/wow.c lockdep_assert_held(&ar->conf_mutex); ar 478 drivers/net/wireless/ath/ath10k/wow.c reinit_completion(&ar->wow.wakeup_completed); ar 480 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wmi_wow_host_wakeup_ind(ar); ar 482 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to send wow wakeup indication: %d\n", ar 487 drivers/net/wireless/ath/ath10k/wow.c ret = wait_for_completion_timeout(&ar->wow.wakeup_completed, 3 * HZ); ar 489 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "timed out while waiting for wow wakeup completion\n"); ar 499 drivers/net/wireless/ath/ath10k/wow.c struct ath10k *ar = hw->priv; ar 502 drivers/net/wireless/ath/ath10k/wow.c mutex_lock(&ar->conf_mutex); ar 505 drivers/net/wireless/ath/ath10k/wow.c ar->running_fw->fw_file.fw_features))) { ar 510 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wow_cleanup(ar); ar 512 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to clear wow wakeup events: %d\n", ar 517 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wow_set_wakeups(ar, wowlan); ar 519 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to set wow wakeup events: %d\n", ar 524 drivers/net/wireless/ath/ath10k/wow.c ath10k_mac_wait_tx_complete(ar); ar 526 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wow_enable(ar); ar 528 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to start wow: %d\n", ret); ar 532 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_hif_suspend(ar); ar 534 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to suspend hif: %d\n", ret); ar 541 drivers/net/wireless/ath/ath10k/wow.c ath10k_wow_wakeup(ar); ar 544 drivers/net/wireless/ath/ath10k/wow.c ath10k_wow_cleanup(ar); ar 547 drivers/net/wireless/ath/ath10k/wow.c mutex_unlock(&ar->conf_mutex); ar 553 drivers/net/wireless/ath/ath10k/wow.c struct ath10k *ar = hw->priv; ar 555 drivers/net/wireless/ath/ath10k/wow.c mutex_lock(&ar->conf_mutex); ar 557 drivers/net/wireless/ath/ath10k/wow.c ar->running_fw->fw_file.fw_features)) { ar 558 drivers/net/wireless/ath/ath10k/wow.c device_set_wakeup_enable(ar->dev, enabled); ar 560 drivers/net/wireless/ath/ath10k/wow.c mutex_unlock(&ar->conf_mutex); ar 565 drivers/net/wireless/ath/ath10k/wow.c struct ath10k *ar = hw->priv; ar 568 drivers/net/wireless/ath/ath10k/wow.c mutex_lock(&ar->conf_mutex); ar 571 drivers/net/wireless/ath/ath10k/wow.c ar->running_fw->fw_file.fw_features))) { ar 576 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_hif_resume(ar); ar 578 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to resume hif: %d\n", ret); ar 582 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wow_wakeup(ar); ar 584 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to wakeup from wow: %d\n", ret); ar 586 drivers/net/wireless/ath/ath10k/wow.c ret = ath10k_wow_nlo_cleanup(ar); ar 588 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "failed to cleanup nlo: %d\n", ret); ar 592 drivers/net/wireless/ath/ath10k/wow.c switch (ar->state) { ar 594 drivers/net/wireless/ath/ath10k/wow.c ar->state = ATH10K_STATE_RESTARTING; ar 602 drivers/net/wireless/ath/ath10k/wow.c ath10k_warn(ar, "encountered unexpected device state %d on resume, cannot recover\n", ar 603 drivers/net/wireless/ath/ath10k/wow.c ar->state); ar 609 drivers/net/wireless/ath/ath10k/wow.c mutex_unlock(&ar->conf_mutex); ar 613 drivers/net/wireless/ath/ath10k/wow.c int ath10k_wow_init(struct ath10k *ar) ar 616 drivers/net/wireless/ath/ath10k/wow.c ar->running_fw->fw_file.fw_features)) ar 619 drivers/net/wireless/ath/ath10k/wow.c if (WARN_ON(!test_bit(WMI_SERVICE_WOW, ar->wmi.svc_map))) ar 622 drivers/net/wireless/ath/ath10k/wow.c ar->wow.wowlan_support = ath10k_wowlan_support; ar 624 drivers/net/wireless/ath/ath10k/wow.c if (ar->wmi.rx_decap_mode == ATH10K_HW_TXRX_NATIVE_WIFI) { ar 625 drivers/net/wireless/ath/ath10k/wow.c ar->wow.wowlan_support.pattern_max_len -= WOW_MAX_REDUCE; ar 626 drivers/net/wireless/ath/ath10k/wow.c ar->wow.wowlan_support.max_pkt_offset -= WOW_MAX_REDUCE; ar 629 drivers/net/wireless/ath/ath10k/wow.c if (test_bit(WMI_SERVICE_NLO, ar->wmi.svc_map)) { ar 630 drivers/net/wireless/ath/ath10k/wow.c ar->wow.wowlan_support.flags |= WIPHY_WOWLAN_NET_DETECT; ar 631 drivers/net/wireless/ath/ath10k/wow.c ar->wow.wowlan_support.max_nd_match_sets = WMI_PNO_MAX_SUPP_NETWORKS; ar 634 drivers/net/wireless/ath/ath10k/wow.c ar->wow.wowlan_support.n_patterns = ar->wow.max_num_patterns; ar 635 drivers/net/wireless/ath/ath10k/wow.c ar->hw->wiphy->wowlan = &ar->wow.wowlan_support; ar 637 drivers/net/wireless/ath/ath10k/wow.c device_set_wakeup_capable(ar->dev, true); ar 16 drivers/net/wireless/ath/ath10k/wow.h int ath10k_wow_init(struct ath10k *ar); ar 24 drivers/net/wireless/ath/ath10k/wow.h static inline int ath10k_wow_init(struct ath10k *ar) ar 23 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_done(struct ath6kl *ar) ar 28 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 33 drivers/net/wireless/ath/ath6kl/bmi.c ar->bmi.done_sent = true; ar 35 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, (u8 *)&cid, sizeof(cid)); ar 44 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_get_target_info(struct ath6kl *ar, ar 50 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 55 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, (u8 *)&cid, sizeof(cid)); ar 61 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->hif_type == ATH6KL_HIF_TYPE_USB) { ar 62 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_read(ar, (u8 *)targ_info, ar 65 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_read(ar, (u8 *)&targ_info->version, ar 76 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_read(ar, ar 95 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_read(ar, ar 114 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_read(struct ath6kl *ar, u32 addr, u8 *buf, u32 len) ar 122 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 127 drivers/net/wireless/ath/ath6kl/bmi.c size = ar->bmi.max_data_size + sizeof(cid) + sizeof(addr) + sizeof(len); ar 128 drivers/net/wireless/ath/ath6kl/bmi.c if (size > ar->bmi.max_cmd_size) { ar 132 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, size); ar 141 drivers/net/wireless/ath/ath6kl/bmi.c rx_len = (len_remain < ar->bmi.max_data_size) ? ar 142 drivers/net/wireless/ath/ath6kl/bmi.c len_remain : ar->bmi.max_data_size; ar 144 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 146 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr)); ar 148 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &rx_len, sizeof(rx_len)); ar 151 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 157 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, rx_len); ar 163 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&buf[len - len_remain], ar->bmi.cmd_buf, rx_len); ar 170 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_write(struct ath6kl *ar, u32 addr, u8 *buf, u32 len) ar 180 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 185 drivers/net/wireless/ath/ath6kl/bmi.c if ((ar->bmi.max_data_size + header) > ar->bmi.max_cmd_size) { ar 190 drivers/net/wireless/ath/ath6kl/bmi.c if (WARN_ON(ar->bmi.max_data_size > sizeof(aligned_buf))) ar 193 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, ar->bmi.max_data_size + header); ar 202 drivers/net/wireless/ath/ath6kl/bmi.c if (len_remain < (ar->bmi.max_data_size - header)) { ar 212 drivers/net/wireless/ath/ath6kl/bmi.c tx_len = (ar->bmi.max_data_size - header); ar 216 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 218 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr)); ar 220 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &tx_len, sizeof(tx_len)); ar 222 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), src, tx_len); ar 225 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 237 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_execute(struct ath6kl *ar, u32 addr, u32 *param) ar 244 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 250 drivers/net/wireless/ath/ath6kl/bmi.c if (size > ar->bmi.max_cmd_size) { ar 254 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, size); ar 260 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 262 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr)); ar 264 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), param, sizeof(*param)); ar 267 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 273 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, sizeof(*param)); ar 279 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(param, ar->bmi.cmd_buf, sizeof(*param)); ar 284 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_set_app_start(struct ath6kl *ar, u32 addr) ar 291 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 297 drivers/net/wireless/ath/ath6kl/bmi.c if (size > ar->bmi.max_cmd_size) { ar 301 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, size); ar 306 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 308 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr)); ar 311 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 320 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_reg_read(struct ath6kl *ar, u32 addr, u32 *param) ar 327 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 333 drivers/net/wireless/ath/ath6kl/bmi.c if (size > ar->bmi.max_cmd_size) { ar 337 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, size); ar 342 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 344 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr)); ar 347 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 353 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_read(ar, ar->bmi.cmd_buf, sizeof(*param)); ar 358 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(param, ar->bmi.cmd_buf, sizeof(*param)); ar 363 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_reg_write(struct ath6kl *ar, u32 addr, u32 param) ar 370 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 376 drivers/net/wireless/ath/ath6kl/bmi.c if (size > ar->bmi.max_cmd_size) { ar 380 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, size); ar 387 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 389 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr)); ar 391 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), ¶m, sizeof(param)); ar 394 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 403 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_lz_data(struct ath6kl *ar, u8 *buf, u32 len) ar 412 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 417 drivers/net/wireless/ath/ath6kl/bmi.c size = ar->bmi.max_data_size + header; ar 418 drivers/net/wireless/ath/ath6kl/bmi.c if (size > ar->bmi.max_cmd_size) { ar 422 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, size); ar 429 drivers/net/wireless/ath/ath6kl/bmi.c tx_len = (len_remain < (ar->bmi.max_data_size - header)) ? ar 430 drivers/net/wireless/ath/ath6kl/bmi.c len_remain : (ar->bmi.max_data_size - header); ar 433 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 435 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &tx_len, sizeof(tx_len)); ar 437 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &buf[len - len_remain], ar 441 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 454 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_lz_stream_start(struct ath6kl *ar, u32 addr) ar 461 drivers/net/wireless/ath/ath6kl/bmi.c if (ar->bmi.done_sent) { ar 467 drivers/net/wireless/ath/ath6kl/bmi.c if (size > ar->bmi.max_cmd_size) { ar 471 drivers/net/wireless/ath/ath6kl/bmi.c memset(ar->bmi.cmd_buf, 0, size); ar 478 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &cid, sizeof(cid)); ar 480 drivers/net/wireless/ath/ath6kl/bmi.c memcpy(&(ar->bmi.cmd_buf[offset]), &addr, sizeof(addr)); ar 483 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_hif_bmi_write(ar, ar->bmi.cmd_buf, offset); ar 493 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_fast_download(struct ath6kl *ar, u32 addr, u8 *buf, u32 len) ar 500 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_bmi_lz_stream_start(ar, addr); ar 509 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_bmi_lz_data(ar, buf, last_word_offset); ar 514 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_bmi_lz_data(ar, (u8 *)&last_word, 4); ar 519 drivers/net/wireless/ath/ath6kl/bmi.c ret = ath6kl_bmi_lz_stream_start(ar, 0x00); ar 524 drivers/net/wireless/ath/ath6kl/bmi.c void ath6kl_bmi_reset(struct ath6kl *ar) ar 526 drivers/net/wireless/ath/ath6kl/bmi.c ar->bmi.done_sent = false; ar 529 drivers/net/wireless/ath/ath6kl/bmi.c int ath6kl_bmi_init(struct ath6kl *ar) ar 531 drivers/net/wireless/ath/ath6kl/bmi.c if (WARN_ON(ar->bmi.max_data_size == 0)) ar 535 drivers/net/wireless/ath/ath6kl/bmi.c ar->bmi.max_cmd_size = ar->bmi.max_data_size + (sizeof(u32) * 3); ar 537 drivers/net/wireless/ath/ath6kl/bmi.c ar->bmi.cmd_buf = kzalloc(ar->bmi.max_cmd_size, GFP_KERNEL); ar 538 drivers/net/wireless/ath/ath6kl/bmi.c if (!ar->bmi.cmd_buf) ar 544 drivers/net/wireless/ath/ath6kl/bmi.c void ath6kl_bmi_cleanup(struct ath6kl *ar) ar 546 drivers/net/wireless/ath/ath6kl/bmi.c kfree(ar->bmi.cmd_buf); ar 547 drivers/net/wireless/ath/ath6kl/bmi.c ar->bmi.cmd_buf = NULL; ar 226 drivers/net/wireless/ath/ath6kl/bmi.h #define ath6kl_bmi_write_hi32(ar, item, val) \ ar 231 drivers/net/wireless/ath/ath6kl/bmi.h addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \ ar 233 drivers/net/wireless/ath/ath6kl/bmi.h ath6kl_bmi_write(ar, addr, (u8 *) &v, sizeof(v)); \ ar 236 drivers/net/wireless/ath/ath6kl/bmi.h #define ath6kl_bmi_read_hi32(ar, item, val) \ ar 243 drivers/net/wireless/ath/ath6kl/bmi.h addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \ ar 244 drivers/net/wireless/ath/ath6kl/bmi.h ret = ath6kl_bmi_read(ar, addr, (u8 *) &tmp, 4); \ ar 250 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_init(struct ath6kl *ar); ar 251 drivers/net/wireless/ath/ath6kl/bmi.h void ath6kl_bmi_cleanup(struct ath6kl *ar); ar 252 drivers/net/wireless/ath/ath6kl/bmi.h void ath6kl_bmi_reset(struct ath6kl *ar); ar 254 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_done(struct ath6kl *ar); ar 255 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_get_target_info(struct ath6kl *ar, ar 257 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_read(struct ath6kl *ar, u32 addr, u8 *buf, u32 len); ar 258 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_write(struct ath6kl *ar, u32 addr, u8 *buf, u32 len); ar 259 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_execute(struct ath6kl *ar, ar 261 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_set_app_start(struct ath6kl *ar, ar 263 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_reg_read(struct ath6kl *ar, u32 addr, u32 *param); ar 264 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_reg_write(struct ath6kl *ar, u32 addr, u32 param); ar 265 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_lz_data(struct ath6kl *ar, ar 267 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_lz_stream_start(struct ath6kl *ar, ar 269 drivers/net/wireless/ath/ath6kl/bmi.h int ath6kl_bmi_fast_download(struct ath6kl *ar, ar 147 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 154 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->state == ATH6KL_STATE_RECOVERY) ar 157 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_enable_sched_scan_cmd(ar->wmi, vif->fw_vif_idx, false); ar 164 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 172 drivers/net/wireless/ath/ath6kl/cfg80211.c cfg80211_sched_scan_stopped(ar->wiphy, 0); ar 286 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 288 drivers/net/wireless/ath/ath6kl/cfg80211.c if (!test_bit(WMI_READY, &ar->flag)) { ar 324 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 334 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->connect_ctrl_flags &= ~CONNECT_WPS_FLAG; ar 355 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->connect_ctrl_flags |= CONNECT_WPS_FLAG; ar 361 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ar 389 drivers/net/wireless/ath/ath6kl/cfg80211.c static bool ath6kl_is_valid_iftype(struct ath6kl *ar, enum nl80211_iftype type, ar 397 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->ibss_if_active || ((type == NL80211_IFTYPE_ADHOC) && ar 398 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->num_vif)) ar 403 drivers/net/wireless/ath/ath6kl/cfg80211.c for (i = 0; i < ar->vif_max; i++) { ar 404 drivers/net/wireless/ath/ath6kl/cfg80211.c if ((ar->avail_idx_map) & BIT(i)) { ar 413 drivers/net/wireless/ath/ath6kl/cfg80211.c for (i = ar->max_norm_iface; i < ar->vif_max; i++) { ar 414 drivers/net/wireless/ath/ath6kl/cfg80211.c if ((ar->avail_idx_map) & BIT(i)) { ar 424 drivers/net/wireless/ath/ath6kl/cfg80211.c static bool ath6kl_is_tx_pending(struct ath6kl *ar) ar 426 drivers/net/wireless/ath/ath6kl/cfg80211.c return ar->tx_pending[ath6kl_wmi_get_control_ep(ar->wmi)] == 0; ar 434 drivers/net/wireless/ath/ath6kl/cfg80211.c if (WARN_ON(!test_bit(WMI_READY, &vif->ar->flag))) ar 441 drivers/net/wireless/ath/ath6kl/cfg80211.c vif->ar->fw_capabilities)) ar 447 drivers/net/wireless/ath/ath6kl/cfg80211.c err = ath6kl_wmi_sta_bmiss_enhance_cmd(vif->ar->wmi, ar 457 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 460 drivers/net/wireless/ath/ath6kl/cfg80211.c u8 nw_subtype = (ar->p2p) ? SUBTYPE_P2PDEV : SUBTYPE_NONE; ar 470 drivers/net/wireless/ath/ath6kl/cfg80211.c if (test_bit(DESTROY_IN_PROGRESS, &ar->flag)) { ar 475 drivers/net/wireless/ath/ath6kl/cfg80211.c if (test_bit(SKIP_SCAN, &ar->flag) && ar 482 drivers/net/wireless/ath/ath6kl/cfg80211.c if (down_interruptible(&ar->sem)) { ar 487 drivers/net/wireless/ath/ath6kl/cfg80211.c if (test_bit(DESTROY_IN_PROGRESS, &ar->flag)) { ar 489 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 493 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->tx_pending[ath6kl_wmi_get_control_ep(ar->wmi)]) { ar 497 drivers/net/wireless/ath/ath6kl/cfg80211.c wait_event_interruptible_timeout(ar->event_wq, ar 498 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_is_tx_pending(ar), ar 502 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 509 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 514 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->connect_ctrl_flags &= ~CONNECT_WPS_FLAG; ar 520 drivers/net/wireless/ath/ath6kl/cfg80211.c status = ath6kl_wmi_reconnect_cmd(ar->wmi, vif->fw_vif_idx, ar 524 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 550 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 572 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 582 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, sme->key_idx, ar 591 drivers/net/wireless/ath/ath6kl/cfg80211.c if (!ar->usr_bss_filter) { ar 593 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 596 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 623 drivers/net/wireless/ath/ath6kl/cfg80211.c status = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ar 628 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 633 drivers/net/wireless/ath/ath6kl/cfg80211.c status = ath6kl_wmi_connect_cmd(ar->wmi, vif->fw_vif_idx, vif->nw_type, ar 640 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->connect_ctrl_flags, nw_subtype); ar 650 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, 0, 0, ar 653 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 665 drivers/net/wireless/ath/ath6kl/cfg80211.c if ((!(ar->connect_ctrl_flags & CONNECT_DO_WPA_OFFLOAD)) && ar 672 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->connect_ctrl_flags &= ~CONNECT_DO_WPA_OFFLOAD; ar 686 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 700 drivers/net/wireless/ath/ath6kl/cfg80211.c bss = cfg80211_get_bss(ar->wiphy, chan, bssid, ar 719 drivers/net/wireless/ath/ath6kl/cfg80211.c bss = cfg80211_inform_bss(ar->wiphy, chan, ar 743 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 783 drivers/net/wireless/ath/ath6kl/cfg80211.c chan = ieee80211_get_channel(ar->wiphy, (int) channel); ar 796 drivers/net/wireless/ath/ath6kl/cfg80211.c cfg80211_put_bss(ar->wiphy, bss); ar 807 drivers/net/wireless/ath/ath6kl/cfg80211.c cfg80211_put_bss(ar->wiphy, bss); ar 824 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 835 drivers/net/wireless/ath/ath6kl/cfg80211.c if (test_bit(DESTROY_IN_PROGRESS, &ar->flag)) { ar 840 drivers/net/wireless/ath/ath6kl/cfg80211.c if (down_interruptible(&ar->sem)) { ar 850 drivers/net/wireless/ath/ath6kl/cfg80211.c if (!test_bit(SKIP_SCAN, &ar->flag)) ar 853 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 862 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 913 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_disconnect_cmd(ar->wmi, vif->fw_vif_idx); ar 916 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_set_probed_ssids(struct ath6kl *ar, ar 942 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->wiphy->max_match_sets != 0 && n_match_ssid == 0) ar 979 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, i, ar 987 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, i, ar 998 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(vif->ndev); ar 1009 drivers/net/wireless/ath/ath6kl/cfg80211.c if (!ar->usr_bss_filter) { ar 1011 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 1019 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_set_probed_ssids(ar, vif, request->ssids, ar 1025 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ar 1059 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_beginscan_cmd(ar->wmi, vif->fw_vif_idx, ar 1078 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 1095 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_probedssid_cmd(ar->wmi, vif->fw_vif_idx, ar 1116 drivers/net/wireless/ath/ath6kl/cfg80211.c ieee80211_get_channel(vif->ar->wiphy, freq), ar 1131 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(ndev); ar 1144 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_add_krk_cmd(ar->wmi, vif->fw_vif_idx, ar 1213 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->ap_mode_bkey.valid = true; ar 1214 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->ap_mode_bkey.key_index = key_index; ar 1215 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->ap_mode_bkey.key_type = key_type; ar 1216 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->ap_mode_bkey.key_len = key->key_len; ar 1217 drivers/net/wireless/ath/ath6kl/cfg80211.c memcpy(ar->ap_mode_bkey.key, key->key, key->key_len); ar 1244 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, key_index, ar 1255 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(ndev); ar 1278 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_deletekey_cmd(ar->wmi, vif->fw_vif_idx, key_index); ar 1321 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(ndev); ar 1358 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_addkey_cmd(ar->wmi, vif->fw_vif_idx, ar 1381 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy); ar 1388 drivers/net/wireless/ath/ath6kl/cfg80211.c vif = ath6kl_vif_first(ar); ar 1396 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_rts_cmd(ar->wmi, wiphy->rts_threshold); ar 1411 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy); ar 1418 drivers/net/wireless/ath/ath6kl/cfg80211.c vif = ath6kl_vif_first(ar); ar 1429 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->tx_pwr = dbm; ar 1437 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_set_tx_pwr_cmd(ar->wmi, vif->fw_vif_idx, dbm); ar 1446 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = (struct ath6kl *)wiphy_priv(wiphy); ar 1449 drivers/net/wireless/ath/ath6kl/cfg80211.c vif = ath6kl_vif_first(ar); ar 1457 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->tx_pwr = 255; ar 1459 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ath6kl_wmi_get_tx_pwr_cmd(ar->wmi, vif->fw_vif_idx) != 0) { ar 1464 drivers/net/wireless/ath/ath6kl/cfg80211.c wait_event_interruptible_timeout(ar->event_wq, ar->tx_pwr != 255, ar 1473 drivers/net/wireless/ath/ath6kl/cfg80211.c *dbm = ar->tx_pwr; ar 1481 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 1499 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ath6kl_wmi_powermode_cmd(ar->wmi, vif->fw_vif_idx, ar 1514 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = wiphy_priv(wiphy); ar 1518 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->num_vif == ar->vif_max) { ar 1523 drivers/net/wireless/ath/ath6kl/cfg80211.c if (!ath6kl_is_valid_iftype(ar, type, &if_idx, &nw_type)) { ar 1528 drivers/net/wireless/ath/ath6kl/cfg80211.c wdev = ath6kl_interface_add(ar, name, name_assign_type, type, if_idx, nw_type); ar 1532 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->num_vif++; ar 1540 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = wiphy_priv(wiphy); ar 1543 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_lock_bh(&ar->list_lock); ar 1545 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_unlock_bh(&ar->list_lock); ar 1547 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_cfg80211_vif_stop(vif, test_bit(WMI_READY, &ar->flag)); ar 1572 drivers/net/wireless/ath/ath6kl/cfg80211.c vif->ar->fw_capabilities) && ar 1575 drivers/net/wireless/ath/ath6kl/cfg80211.c if (vif->ar->vif_max == 1) { ar 1582 drivers/net/wireless/ath/ath6kl/cfg80211.c for (i = vif->ar->max_norm_iface; i < vif->ar->vif_max; i++) { ar 1587 drivers/net/wireless/ath/ath6kl/cfg80211.c if (i == vif->ar->vif_max) { ar 1623 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 1676 drivers/net/wireless/ath/ath6kl/cfg80211.c status = ath6kl_wmi_connect_cmd(ar->wmi, vif->fw_vif_idx, vif->nw_type, ar 1683 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->connect_ctrl_flags, SUBTYPE_NONE); ar 1777 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 1788 drivers/net/wireless/ath/ath6kl/cfg80211.c if (down_interruptible(&ar->sem)) ar 1793 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_get_stats_cmd(ar->wmi, vif->fw_vif_idx); ar 1796 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 1800 drivers/net/wireless/ath/ath6kl/cfg80211.c left = wait_event_interruptible_timeout(ar->event_wq, ar 1805 drivers/net/wireless/ath/ath6kl/cfg80211.c up(&ar->sem); ar 1856 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_debug_war(ar, ATH6KL_WAR_INVALID_RATE); ar 1877 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(netdev); ar 1880 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, pmksa->bssid, ar 1887 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(netdev); ar 1890 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, pmksa->bssid, ar 1896 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(netdev); ar 1900 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_setpmkid_cmd(ar->wmi, vif->fw_vif_idx, ar 1905 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_wow_usr(struct ath6kl *ar, struct ath6kl_vif *vif, ar 1933 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi, ar 1960 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_wow_ap(struct ath6kl *ar, struct ath6kl_vif *vif) ar 1993 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi, ar 2003 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi, ar 2016 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi, ar 2026 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi, ar 2038 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_wow_sta(struct ath6kl *ar, struct ath6kl_vif *vif) ar 2049 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi, ar 2064 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_add_wow_pattern_cmd(ar->wmi, ar 2082 drivers/net/wireless/ath/ath6kl/cfg80211.c static bool is_ctrl_ep_empty(struct ath6kl *ar) ar 2084 drivers/net/wireless/ath/ath6kl/cfg80211.c return !ar->tx_pending[ar->ctrl_ep]; ar 2087 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_cfg80211_host_sleep(struct ath6kl *ar, struct ath6kl_vif *vif) ar 2093 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx, ar 2098 drivers/net/wireless/ath/ath6kl/cfg80211.c left = wait_event_interruptible_timeout(ar->event_wq, ar 2110 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->tx_pending[ar->ctrl_ep]) { ar 2111 drivers/net/wireless/ath/ath6kl/cfg80211.c left = wait_event_interruptible_timeout(ar->event_wq, ar 2112 drivers/net/wireless/ath/ath6kl/cfg80211.c is_ctrl_ep_empty(ar), ar 2129 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 2139 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) { ar 2140 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, ar 2148 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_del_wow_pattern_cmd(ar->wmi, vif->fw_vif_idx, ar 2157 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wow_usr(ar, vif, wow, filter); ar 2159 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wow_ap(ar, vif); ar 2161 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wow_sta(ar, vif); ar 2169 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ar 2180 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_bmisstime_cmd(ar->wmi, vif->fw_vif_idx, ar 2185 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ar 2212 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_ip_cmd(ar->wmi, vif->fw_vif_idx, ips[0], ips[1]); ar 2221 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_wow_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow) ar 2229 drivers/net/wireless/ath/ath6kl/cfg80211.c first_vif = ath6kl_vif_first(ar); ar 2238 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_lock_bh(&ar->list_lock); ar 2239 drivers/net/wireless/ath/ath6kl/cfg80211.c list_for_each_entry(vif, &ar->vif_list, list) { ar 2249 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_unlock_bh(&ar->list_lock); ar 2256 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_SUSPENDING; ar 2258 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_wow_mode_cmd(ar->wmi, first_vif->fw_vif_idx, ar 2265 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_cfg80211_host_sleep(ar, first_vif); ar 2270 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 2274 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ar 2279 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ar 2284 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_bmisstime_cmd(ar->wmi, vif->fw_vif_idx, ar 2292 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) { ar 2293 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, ar 2304 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_wow_resume(struct ath6kl *ar) ar 2309 drivers/net/wireless/ath/ath6kl/cfg80211.c vif = ath6kl_vif_first(ar); ar 2314 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_RESUMING; ar 2316 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx, ar 2324 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_lock_bh(&ar->list_lock); ar 2325 drivers/net/wireless/ath/ath6kl/cfg80211.c list_for_each_entry(vif, &ar->vif_list, list) { ar 2333 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_unlock_bh(&ar->list_lock); ar 2338 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_ON; ar 2342 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_WOW; ar 2346 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_cfg80211_deepsleep_suspend(struct ath6kl *ar) ar 2351 drivers/net/wireless/ath/ath6kl/cfg80211.c vif = ath6kl_vif_first(ar); ar 2355 drivers/net/wireless/ath/ath6kl/cfg80211.c if (!test_bit(WMI_READY, &ar->flag)) { ar 2360 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_cfg80211_stop_all(ar); ar 2363 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wmi->saved_pwr_mode = ar->wmi->pwr_mode; ar 2365 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_powermode_cmd(ar->wmi, 0, REC_POWER); ar 2370 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_wow_mode_cmd(ar->wmi, vif->fw_vif_idx, ar 2377 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_tx_data_cleanup(ar); ar 2379 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_cfg80211_host_sleep(ar, vif); ar 2386 drivers/net/wireless/ath/ath6kl/cfg80211.c static int ath6kl_cfg80211_deepsleep_resume(struct ath6kl *ar) ar 2391 drivers/net/wireless/ath/ath6kl/cfg80211.c vif = ath6kl_vif_first(ar); ar 2396 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->wmi->pwr_mode != ar->wmi->saved_pwr_mode) { ar 2397 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_powermode_cmd(ar->wmi, 0, ar 2398 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wmi->saved_pwr_mode); ar 2403 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_host_sleep_mode_cmd(ar->wmi, vif->fw_vif_idx, ar 2408 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_ON; ar 2411 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ar 2419 drivers/net/wireless/ath/ath6kl/cfg80211.c int ath6kl_cfg80211_suspend(struct ath6kl *ar, ar 2433 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_tx_data_cleanup(ar); ar 2435 drivers/net/wireless/ath/ath6kl/cfg80211.c prev_state = ar->state; ar 2437 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wow_suspend(ar, wow); ar 2439 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = prev_state; ar 2443 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_WOW; ar 2450 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_cfg80211_deepsleep_suspend(ar); ar 2456 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_DEEPSLEEP; ar 2462 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_cfg80211_stop_all(ar); ar 2464 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->state == ATH6KL_STATE_OFF) { ar 2472 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_init_hw_stop(ar); ar 2478 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->state = ATH6KL_STATE_CUTPOWER; ar 2486 drivers/net/wireless/ath/ath6kl/cfg80211.c list_for_each_entry(vif, &ar->vif_list, list) ar 2493 drivers/net/wireless/ath/ath6kl/cfg80211.c int ath6kl_cfg80211_resume(struct ath6kl *ar) ar 2497 drivers/net/wireless/ath/ath6kl/cfg80211.c switch (ar->state) { ar 2501 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wow_resume(ar); ar 2512 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_cfg80211_deepsleep_resume(ar); ar 2522 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_init_hw_start(ar); ar 2543 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = wiphy_priv(wiphy); ar 2545 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_recovery_suspend(ar); ar 2547 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_hif_suspend(ar, wow); ar 2552 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = wiphy_priv(wiphy); ar 2555 drivers/net/wireless/ath/ath6kl/cfg80211.c err = ath6kl_hif_resume(ar); ar 2559 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_recovery_resume(ar); ar 2580 drivers/net/wireless/ath/ath6kl/cfg80211.c void ath6kl_check_wow_status(struct ath6kl *ar) ar 2582 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->state == ATH6KL_STATE_SUSPENDING) ar 2585 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->state == ATH6KL_STATE_WOW) ar 2586 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_cfg80211_resume(ar); ar 2591 drivers/net/wireless/ath/ath6kl/cfg80211.c void ath6kl_check_wow_status(struct ath6kl *ar) ar 2613 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_set_htcap_cmd(vif->ar->wmi, vif->fw_vif_idx, ar 2619 drivers/net/wireless/ath/ath6kl/cfg80211.c struct wiphy *wiphy = vif->ar->wiphy; ar 2645 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 2672 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ar 2681 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 2685 drivers/net/wireless/ath/ath6kl/cfg80211.c res = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ar 2699 drivers/net/wireless/ath/ath6kl/cfg80211.c res = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ar 2764 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 2785 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->ap_mode_bkey.valid = false; ar 2787 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_ap_set_beacon_intvl_cmd(ar->wmi, vif->fw_vif_idx, ar 2793 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_ap_set_dtim_cmd(ar->wmi, vif->fw_vif_idx, ar 2814 drivers/net/wireless/ath/ath6kl/cfg80211.c res = ath6kl_wmi_ap_hidden_ssid(ar->wmi, vif->fw_vif_idx, hidden); ar 2897 drivers/net/wireless/ath/ath6kl/cfg80211.c res = ath6kl_wmi_ap_set_apsd(ar->wmi, vif->fw_vif_idx, true); ar 2915 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) ar 2919 drivers/net/wireless/ath/ath6kl/cfg80211.c res = ath6kl_wmi_set_inact_period(ar->wmi, vif->fw_vif_idx, ar 2938 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) { ar 2939 drivers/net/wireless/ath/ath6kl/cfg80211.c res = ath6kl_wmi_set_ie_cmd(ar->wmi, vif->fw_vif_idx, ar 2949 drivers/net/wireless/ath/ath6kl/cfg80211.c res = ath6kl_wmi_ap_profile_commit(ar->wmi, vif->fw_vif_idx, &p); ar 2972 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 2980 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_disconnect_cmd(ar->wmi, vif->fw_vif_idx); ar 2993 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 2997 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx, WMI_AP_DEAUTH, ar 3005 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 3018 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx, ar 3020 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_ap_set_mlme(ar->wmi, vif->fw_vif_idx, ar 3031 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(vif->ndev); ar 3043 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_remain_on_chnl_cmd(ar->wmi, vif->fw_vif_idx, ar 3052 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(vif->ndev); ar 3058 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_cancel_remain_on_chnl_cmd(ar->wmi, vif->fw_vif_idx); ar 3065 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 3092 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_send_probe_response_cmd(ar->wmi, vif->fw_vif_idx, freq, ar 3112 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 3150 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, ar 3187 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(vif->ndev); ar 3239 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_send_mgmt_cmd(ar->wmi, vif->fw_vif_idx, id, freq, ar 3246 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = wiphy_priv(wiphy); ar 3247 drivers/net/wireless/ath/ath6kl/cfg80211.c *tx_ant = ar->hw.tx_ant; ar 3248 drivers/net/wireless/ath/ath6kl/cfg80211.c *rx_ant = ar->hw.rx_ant; ar 3274 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 3288 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->state != ATH6KL_STATE_ON) ar 3296 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_set_probed_ssids(ar, vif, request->ssids, ar 3304 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 3309 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 3316 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) { ar 3324 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_rssi_filter_cmd(ar->wmi, vif->fw_vif_idx, ar 3335 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_scanparams_cmd(ar->wmi, vif->fw_vif_idx, ar 3340 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_appie_cmd(ar->wmi, vif->fw_vif_idx, ar 3349 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_enable_sched_scan_cmd(ar->wmi, vif->fw_vif_idx, true); ar 3377 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 3380 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_set_bitrate_mask(ar->wmi, vif->fw_vif_idx, ar 3388 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = ath6kl_priv(dev); ar 3392 drivers/net/wireless/ath/ath6kl/cfg80211.c !test_bit(ATH6KL_FW_CAPABILITY_TX_ERR_NOTIFY, ar->fw_capabilities)) ar 3401 drivers/net/wireless/ath/ath6kl/cfg80211.c return ath6kl_wmi_set_txe_notify(ar->wmi, vif->fw_vif_idx, ar 3493 drivers/net/wireless/ath/ath6kl/cfg80211.c if (vif->ar->state != ATH6KL_STATE_RECOVERY && ar 3496 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_disconnect_cmd(vif->ar->wmi, vif->fw_vif_idx); ar 3507 drivers/net/wireless/ath/ath6kl/cfg80211.c if (vif->ar->state != ATH6KL_STATE_RECOVERY && ar 3508 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_wmi_scanparams_cmd(vif->ar->wmi, vif->fw_vif_idx, 0xFFFF, ar 3515 drivers/net/wireless/ath/ath6kl/cfg80211.c void ath6kl_cfg80211_stop_all(struct ath6kl *ar) ar 3519 drivers/net/wireless/ath/ath6kl/cfg80211.c vif = ath6kl_vif_first(ar); ar 3520 drivers/net/wireless/ath/ath6kl/cfg80211.c if (!vif && ar->state != ATH6KL_STATE_RECOVERY) { ar 3522 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wmi->saved_pwr_mode = ar->wmi->pwr_mode; ar 3524 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ath6kl_wmi_powermode_cmd(ar->wmi, 0, REC_POWER) != 0) ar 3534 drivers/net/wireless/ath/ath6kl/cfg80211.c list_for_each_entry(vif, &ar->vif_list, list) ar 3541 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = wiphy_priv(wiphy); ar 3555 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_set_regdomain_cmd(ar->wmi, request->alpha2); ar 3572 drivers/net/wireless/ath/ath6kl/cfg80211.c ret = ath6kl_wmi_beginscan_cmd(ar->wmi, 0, WMI_LONG_SCAN, false, ar 3638 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 3643 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->avail_idx_map |= BIT(vif->fw_vif_idx); ar 3646 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->ibss_if_active = false; ar 3655 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->num_vif--; ar 3702 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar = vif->ar; ar 3708 drivers/net/wireless/ath/ath6kl/cfg80211.c ath6kl_read_tgt_stats(ar, vif); ar 3779 drivers/net/wireless/ath/ath6kl/cfg80211.c struct wireless_dev *ath6kl_interface_add(struct ath6kl *ar, const char *name, ar 3793 drivers/net/wireless/ath/ath6kl/cfg80211.c vif->wdev.wiphy = ar->wiphy; ar 3794 drivers/net/wireless/ath/ath6kl/cfg80211.c vif->ar = ar; ar 3808 drivers/net/wireless/ath/ath6kl/cfg80211.c memcpy(ndev->dev_addr, ar->mac_addr, ETH_ALEN); ar 3813 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) ar 3829 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->avail_idx_map &= ~BIT(fw_vif_idx); ar 3832 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wlan_pwr_state = WLAN_POWER_STATE_ON; ar 3835 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->ibss_if_active = true; ar 3837 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_lock_bh(&ar->list_lock); ar 3838 drivers/net/wireless/ath/ath6kl/cfg80211.c list_add_tail(&vif->list, &ar->vif_list); ar 3839 drivers/net/wireless/ath/ath6kl/cfg80211.c spin_unlock_bh(&ar->list_lock); ar 3863 drivers/net/wireless/ath/ath6kl/cfg80211.c int ath6kl_cfg80211_init(struct ath6kl *ar) ar 3865 drivers/net/wireless/ath/ath6kl/cfg80211.c struct wiphy *wiphy = ar->wiphy; ar 3874 drivers/net/wireless/ath/ath6kl/cfg80211.c set_wiphy_dev(wiphy, ar->dev); ar 3879 drivers/net/wireless/ath/ath6kl/cfg80211.c if (ar->p2p) { ar 3885 drivers/net/wireless/ath/ath6kl/cfg80211.c test_bit(ATH6KL_FW_CAPABILITY_REGDOMAIN, ar->fw_capabilities)) { ar 3887 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy->features |= NL80211_FEATURE_CELL_BASE_REG_HINTS; ar 3895 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) ar 3899 drivers/net/wireless/ath/ath6kl/cfg80211.c switch (ar->hw.cap) { ar 3931 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities))) { ar 3942 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) { ar 3947 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->hw.tx_ant = 0x3; /* mask, 2 antenna */ ar 3948 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->hw.rx_ant = 0x3; ar 3952 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->hw.tx_ant = 1; ar 3953 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->hw.rx_ant = 1; ar 3956 drivers/net/wireless/ath/ath6kl/cfg80211.c wiphy->available_antennas_tx = ar->hw.tx_ant; ar 3957 drivers/net/wireless/ath/ath6kl/cfg80211.c wiphy->available_antennas_rx = ar->hw.rx_ant; ar 3975 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy->flags |= WIPHY_FLAG_SUPPORTS_FW_ROAM | ar 3980 drivers/net/wireless/ath/ath6kl/cfg80211.c if (test_bit(ATH6KL_FW_CAPABILITY_SCHED_SCAN_V2, ar->fw_capabilities)) ar 3981 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy->max_sched_scan_reqs = 1; ar 3984 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->fw_capabilities)) ar 3985 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy->features |= NL80211_FEATURE_INACTIVITY_TIMER; ar 3987 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy->probe_resp_offload = ar 3998 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy_registered = true; ar 4003 drivers/net/wireless/ath/ath6kl/cfg80211.c void ath6kl_cfg80211_cleanup(struct ath6kl *ar) ar 4005 drivers/net/wireless/ath/ath6kl/cfg80211.c wiphy_unregister(ar->wiphy); ar 4007 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy_registered = false; ar 4012 drivers/net/wireless/ath/ath6kl/cfg80211.c struct ath6kl *ar; ar 4023 drivers/net/wireless/ath/ath6kl/cfg80211.c ar = wiphy_priv(wiphy); ar 4024 drivers/net/wireless/ath/ath6kl/cfg80211.c ar->wiphy = wiphy; ar 4026 drivers/net/wireless/ath/ath6kl/cfg80211.c return ar; ar 4030 drivers/net/wireless/ath/ath6kl/cfg80211.c void ath6kl_cfg80211_destroy(struct ath6kl *ar) ar 4035 drivers/net/wireless/ath/ath6kl/cfg80211.c kfree(ar->sta_list[i].aggr_conn); ar 4037 drivers/net/wireless/ath/ath6kl/cfg80211.c wiphy_free(ar->wiphy); ar 27 drivers/net/wireless/ath/ath6kl/cfg80211.h struct wireless_dev *ath6kl_interface_add(struct ath6kl *ar, const char *name, ar 49 drivers/net/wireless/ath/ath6kl/cfg80211.h int ath6kl_cfg80211_suspend(struct ath6kl *ar, ar 53 drivers/net/wireless/ath/ath6kl/cfg80211.h int ath6kl_cfg80211_resume(struct ath6kl *ar); ar 58 drivers/net/wireless/ath/ath6kl/cfg80211.h void ath6kl_cfg80211_stop_all(struct ath6kl *ar); ar 60 drivers/net/wireless/ath/ath6kl/cfg80211.h int ath6kl_cfg80211_init(struct ath6kl *ar); ar 61 drivers/net/wireless/ath/ath6kl/cfg80211.h void ath6kl_cfg80211_cleanup(struct ath6kl *ar); ar 64 drivers/net/wireless/ath/ath6kl/cfg80211.h void ath6kl_cfg80211_destroy(struct ath6kl *ar); ar 54 drivers/net/wireless/ath/ath6kl/core.c void ath6kl_core_tx_complete(struct ath6kl *ar, struct sk_buff *skb) ar 56 drivers/net/wireless/ath/ath6kl/core.c ath6kl_htc_tx_complete(ar, skb); ar 60 drivers/net/wireless/ath/ath6kl/core.c void ath6kl_core_rx_complete(struct ath6kl *ar, struct sk_buff *skb, u8 pipe) ar 62 drivers/net/wireless/ath/ath6kl/core.c ath6kl_htc_rx_complete(ar, skb, pipe); ar 66 drivers/net/wireless/ath/ath6kl/core.c int ath6kl_core_init(struct ath6kl *ar, enum ath6kl_htc_type htc_type) ar 74 drivers/net/wireless/ath/ath6kl/core.c ath6kl_htc_mbox_attach(ar); ar 77 drivers/net/wireless/ath/ath6kl/core.c ath6kl_htc_pipe_attach(ar); ar 84 drivers/net/wireless/ath/ath6kl/core.c ar->ath6kl_wq = create_singlethread_workqueue("ath6kl"); ar 85 drivers/net/wireless/ath/ath6kl/core.c if (!ar->ath6kl_wq) ar 88 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_bmi_init(ar); ar 97 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_hif_power_on(ar); ar 101 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_bmi_get_target_info(ar, &targ_info); ar 105 drivers/net/wireless/ath/ath6kl/core.c ar->version.target_ver = le32_to_cpu(targ_info.version); ar 106 drivers/net/wireless/ath/ath6kl/core.c ar->target_type = le32_to_cpu(targ_info.type); ar 107 drivers/net/wireless/ath/ath6kl/core.c ar->wiphy->hw_version = le32_to_cpu(targ_info.version); ar 109 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_init_hw_params(ar); ar 113 drivers/net/wireless/ath/ath6kl/core.c ar->htc_target = ath6kl_htc_create(ar); ar 115 drivers/net/wireless/ath/ath6kl/core.c if (!ar->htc_target) { ar 120 drivers/net/wireless/ath/ath6kl/core.c ar->testmode = testmode; ar 122 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_init_fetch_firmwares(ar); ar 132 drivers/net/wireless/ath/ath6kl/core.c if (ar->target_type == TARGET_TYPE_AR6004 && ar 133 drivers/net/wireless/ath/ath6kl/core.c ar->fw_api <= 4) { ar 135 drivers/net/wireless/ath/ath6kl/core.c ar->fw_capabilities); ar 137 drivers/net/wireless/ath/ath6kl/core.c ar->fw_capabilities); ar 139 drivers/net/wireless/ath/ath6kl/core.c if (ar->hw.id == AR6004_HW_1_3_VERSION) ar 141 drivers/net/wireless/ath/ath6kl/core.c ar->fw_capabilities); ar 145 drivers/net/wireless/ath/ath6kl/core.c set_bit(WMI_ENABLED, &ar->flag); ar 146 drivers/net/wireless/ath/ath6kl/core.c ar->wmi = ath6kl_wmi_init(ar); ar 147 drivers/net/wireless/ath/ath6kl/core.c if (!ar->wmi) { ar 153 drivers/net/wireless/ath/ath6kl/core.c ath6kl_dbg(ATH6KL_DBG_TRC, "%s: got wmi @ 0x%p.\n", __func__, ar->wmi); ar 156 drivers/net/wireless/ath/ath6kl/core.c ar->ac_stream_pri_map[WMM_AC_BK] = 0; /* lowest */ ar 157 drivers/net/wireless/ath/ath6kl/core.c ar->ac_stream_pri_map[WMM_AC_BE] = 1; ar 158 drivers/net/wireless/ath/ath6kl/core.c ar->ac_stream_pri_map[WMM_AC_VI] = 2; ar 159 drivers/net/wireless/ath/ath6kl/core.c ar->ac_stream_pri_map[WMM_AC_VO] = 3; /* highest */ ar 162 drivers/net/wireless/ath/ath6kl/core.c ath6kl_refill_amsdu_rxbufs(ar, ATH6KL_MAX_AMSDU_RX_BUFFERS); ar 164 drivers/net/wireless/ath/ath6kl/core.c ath6kl_cookie_init(ar); ar 166 drivers/net/wireless/ath/ath6kl/core.c ar->conf_flags = ATH6KL_CONF_IGNORE_ERP_BARKER | ar 172 drivers/net/wireless/ath/ath6kl/core.c ar->suspend_mode = suspend_mode; ar 174 drivers/net/wireless/ath/ath6kl/core.c ar->suspend_mode = 0; ar 179 drivers/net/wireless/ath/ath6kl/core.c ar->wow_suspend_mode = wow_mode; ar 181 drivers/net/wireless/ath/ath6kl/core.c ar->wow_suspend_mode = 0; ar 184 drivers/net/wireless/ath/ath6kl/core.c ar->conf_flags |= ATH6KL_CONF_UART_DEBUG; ar 185 drivers/net/wireless/ath/ath6kl/core.c ar->hw.uarttx_rate = uart_rate; ar 187 drivers/net/wireless/ath/ath6kl/core.c set_bit(FIRST_BOOT, &ar->flag); ar 189 drivers/net/wireless/ath/ath6kl/core.c ath6kl_debug_init(ar); ar 191 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_init_hw_start(ar); ar 198 drivers/net/wireless/ath/ath6kl/core.c ath6kl_rx_refill(ar->htc_target, ar->ctrl_ep); ar 199 drivers/net/wireless/ath/ath6kl/core.c ath6kl_rx_refill(ar->htc_target, ar->ac2ep_map[WMM_AC_BE]); ar 201 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_cfg80211_init(ar); ar 205 drivers/net/wireless/ath/ath6kl/core.c ret = ath6kl_debug_init_fs(ar); ar 207 drivers/net/wireless/ath/ath6kl/core.c wiphy_unregister(ar->wiphy); ar 211 drivers/net/wireless/ath/ath6kl/core.c for (i = 0; i < ar->vif_max; i++) ar 212 drivers/net/wireless/ath/ath6kl/core.c ar->avail_idx_map |= BIT(i); ar 217 drivers/net/wireless/ath/ath6kl/core.c wdev = ath6kl_interface_add(ar, "wlan%d", NET_NAME_ENUM, ar 225 drivers/net/wireless/ath/ath6kl/core.c wiphy_unregister(ar->wiphy); ar 230 drivers/net/wireless/ath/ath6kl/core.c __func__, wdev->netdev->name, wdev->netdev, ar); ar 232 drivers/net/wireless/ath/ath6kl/core.c ar->fw_recovery.enable = !!recovery_enable; ar 233 drivers/net/wireless/ath/ath6kl/core.c if (!ar->fw_recovery.enable) ar 238 drivers/net/wireless/ath/ath6kl/core.c ar->fw_capabilities)) ar 239 drivers/net/wireless/ath/ath6kl/core.c ar->fw_recovery.hb_poll = heart_beat_poll; ar 241 drivers/net/wireless/ath/ath6kl/core.c ath6kl_recovery_init(ar); ar 246 drivers/net/wireless/ath/ath6kl/core.c ath6kl_debug_cleanup(ar); ar 247 drivers/net/wireless/ath/ath6kl/core.c ath6kl_htc_flush_rx_buf(ar->htc_target); ar 248 drivers/net/wireless/ath/ath6kl/core.c ath6kl_cleanup_amsdu_rxbufs(ar); ar 249 drivers/net/wireless/ath/ath6kl/core.c ath6kl_wmi_shutdown(ar->wmi); ar 250 drivers/net/wireless/ath/ath6kl/core.c clear_bit(WMI_ENABLED, &ar->flag); ar 251 drivers/net/wireless/ath/ath6kl/core.c ar->wmi = NULL; ar 253 drivers/net/wireless/ath/ath6kl/core.c ath6kl_htc_cleanup(ar->htc_target); ar 255 drivers/net/wireless/ath/ath6kl/core.c ath6kl_hif_power_off(ar); ar 257 drivers/net/wireless/ath/ath6kl/core.c ath6kl_bmi_cleanup(ar); ar 259 drivers/net/wireless/ath/ath6kl/core.c destroy_workqueue(ar->ath6kl_wq); ar 267 drivers/net/wireless/ath/ath6kl/core.c struct ath6kl *ar; ar 270 drivers/net/wireless/ath/ath6kl/core.c ar = ath6kl_cfg80211_create(); ar 271 drivers/net/wireless/ath/ath6kl/core.c if (!ar) ar 274 drivers/net/wireless/ath/ath6kl/core.c ar->p2p = !!ath6kl_p2p; ar 275 drivers/net/wireless/ath/ath6kl/core.c ar->dev = dev; ar 277 drivers/net/wireless/ath/ath6kl/core.c ar->vif_max = 1; ar 279 drivers/net/wireless/ath/ath6kl/core.c ar->max_norm_iface = 1; ar 281 drivers/net/wireless/ath/ath6kl/core.c spin_lock_init(&ar->lock); ar 282 drivers/net/wireless/ath/ath6kl/core.c spin_lock_init(&ar->mcastpsq_lock); ar 283 drivers/net/wireless/ath/ath6kl/core.c spin_lock_init(&ar->list_lock); ar 285 drivers/net/wireless/ath/ath6kl/core.c init_waitqueue_head(&ar->event_wq); ar 286 drivers/net/wireless/ath/ath6kl/core.c sema_init(&ar->sem, 1); ar 288 drivers/net/wireless/ath/ath6kl/core.c INIT_LIST_HEAD(&ar->amsdu_rx_buffer_queue); ar 289 drivers/net/wireless/ath/ath6kl/core.c INIT_LIST_HEAD(&ar->vif_list); ar 291 drivers/net/wireless/ath/ath6kl/core.c clear_bit(WMI_ENABLED, &ar->flag); ar 292 drivers/net/wireless/ath/ath6kl/core.c clear_bit(SKIP_SCAN, &ar->flag); ar 293 drivers/net/wireless/ath/ath6kl/core.c clear_bit(DESTROY_IN_PROGRESS, &ar->flag); ar 295 drivers/net/wireless/ath/ath6kl/core.c ar->tx_pwr = 0; ar 296 drivers/net/wireless/ath/ath6kl/core.c ar->intra_bss = 1; ar 297 drivers/net/wireless/ath/ath6kl/core.c ar->lrssi_roam_threshold = DEF_LRSSI_ROAM_THRESHOLD; ar 299 drivers/net/wireless/ath/ath6kl/core.c ar->state = ATH6KL_STATE_OFF; ar 301 drivers/net/wireless/ath/ath6kl/core.c memset((u8 *)ar->sta_list, 0, ar 306 drivers/net/wireless/ath/ath6kl/core.c spin_lock_init(&ar->sta_list[ctr].psq_lock); ar 307 drivers/net/wireless/ath/ath6kl/core.c skb_queue_head_init(&ar->sta_list[ctr].psq); ar 308 drivers/net/wireless/ath/ath6kl/core.c skb_queue_head_init(&ar->sta_list[ctr].apsdq); ar 309 drivers/net/wireless/ath/ath6kl/core.c ar->sta_list[ctr].mgmt_psq_len = 0; ar 310 drivers/net/wireless/ath/ath6kl/core.c INIT_LIST_HEAD(&ar->sta_list[ctr].mgmt_psq); ar 311 drivers/net/wireless/ath/ath6kl/core.c ar->sta_list[ctr].aggr_conn = ar 313 drivers/net/wireless/ath/ath6kl/core.c if (!ar->sta_list[ctr].aggr_conn) { ar 315 drivers/net/wireless/ath/ath6kl/core.c ath6kl_core_destroy(ar); ar 320 drivers/net/wireless/ath/ath6kl/core.c skb_queue_head_init(&ar->mcastpsq); ar 322 drivers/net/wireless/ath/ath6kl/core.c memcpy(ar->ap_country_code, DEF_AP_COUNTRY_CODE, 3); ar 324 drivers/net/wireless/ath/ath6kl/core.c return ar; ar 328 drivers/net/wireless/ath/ath6kl/core.c void ath6kl_core_cleanup(struct ath6kl *ar) ar 330 drivers/net/wireless/ath/ath6kl/core.c ath6kl_hif_power_off(ar); ar 332 drivers/net/wireless/ath/ath6kl/core.c ath6kl_recovery_cleanup(ar); ar 334 drivers/net/wireless/ath/ath6kl/core.c destroy_workqueue(ar->ath6kl_wq); ar 336 drivers/net/wireless/ath/ath6kl/core.c if (ar->htc_target) ar 337 drivers/net/wireless/ath/ath6kl/core.c ath6kl_htc_cleanup(ar->htc_target); ar 339 drivers/net/wireless/ath/ath6kl/core.c ath6kl_cookie_cleanup(ar); ar 341 drivers/net/wireless/ath/ath6kl/core.c ath6kl_cleanup_amsdu_rxbufs(ar); ar 343 drivers/net/wireless/ath/ath6kl/core.c ath6kl_bmi_cleanup(ar); ar 345 drivers/net/wireless/ath/ath6kl/core.c ath6kl_debug_cleanup(ar); ar 347 drivers/net/wireless/ath/ath6kl/core.c kfree(ar->fw_board); ar 348 drivers/net/wireless/ath/ath6kl/core.c kfree(ar->fw_otp); ar 349 drivers/net/wireless/ath/ath6kl/core.c vfree(ar->fw); ar 350 drivers/net/wireless/ath/ath6kl/core.c kfree(ar->fw_patch); ar 351 drivers/net/wireless/ath/ath6kl/core.c kfree(ar->fw_testscript); ar 353 drivers/net/wireless/ath/ath6kl/core.c ath6kl_cfg80211_cleanup(ar); ar 357 drivers/net/wireless/ath/ath6kl/core.c void ath6kl_core_destroy(struct ath6kl *ar) ar 359 drivers/net/wireless/ath/ath6kl/core.c ath6kl_cfg80211_destroy(ar); ar 603 drivers/net/wireless/ath/ath6kl/core.h struct ath6kl *ar; ar 878 drivers/net/wireless/ath/ath6kl/core.h return ((struct ath6kl_vif *) netdev_priv(dev))->ar; ar 881 drivers/net/wireless/ath/ath6kl/core.h static inline u32 ath6kl_get_hi_item_addr(struct ath6kl *ar, ar 886 drivers/net/wireless/ath/ath6kl/core.h if (ar->target_type == TARGET_TYPE_AR6003) ar 888 drivers/net/wireless/ath/ath6kl/core.h else if (ar->target_type == TARGET_TYPE_AR6004) ar 894 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_configure_target(struct ath6kl *ar); ar 898 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_cookie_init(struct ath6kl *ar); ar 899 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_cookie_cleanup(struct ath6kl *ar); ar 905 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_stop_txrx(struct ath6kl *ar); ar 906 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_cleanup_amsdu_rxbufs(struct ath6kl *ar); ar 907 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_diag_write32(struct ath6kl *ar, u32 address, __le32 value); ar 908 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_diag_write(struct ath6kl *ar, u32 address, void *data, u32 length); ar 909 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_diag_read32(struct ath6kl *ar, u32 address, u32 *value); ar 910 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_diag_read(struct ath6kl *ar, u32 address, void *data, u32 length); ar 911 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_read_fwlogs(struct ath6kl *ar); ar 913 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_tx_data_cleanup(struct ath6kl *ar); ar 915 drivers/net/wireless/ath/ath6kl/core.h struct ath6kl_cookie *ath6kl_alloc_cookie(struct ath6kl *ar); ar 916 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_free_cookie(struct ath6kl *ar, struct ath6kl_cookie *cookie); ar 924 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_refill_amsdu_rxbufs(struct ath6kl *ar, int count); ar 932 drivers/net/wireless/ath/ath6kl/core.h struct ath6kl_sta *ath6kl_find_sta_by_aid(struct ath6kl *ar, u8 aid); ar 967 drivers/net/wireless/ath/ath6kl/core.h struct ath6kl_vif *ath6kl_vif_first(struct ath6kl *ar); ar 969 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_init_hw_start(struct ath6kl *ar); ar 970 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_init_hw_stop(struct ath6kl *ar); ar 971 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_init_fetch_firmwares(struct ath6kl *ar); ar 972 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_init_hw_params(struct ath6kl *ar); ar 974 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_check_wow_status(struct ath6kl *ar); ar 976 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_core_tx_complete(struct ath6kl *ar, struct sk_buff *skb); ar 977 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_core_rx_complete(struct ath6kl *ar, struct sk_buff *skb, u8 pipe); ar 980 drivers/net/wireless/ath/ath6kl/core.h int ath6kl_core_init(struct ath6kl *ar, enum ath6kl_htc_type htc_type); ar 981 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_core_cleanup(struct ath6kl *ar); ar 982 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_core_destroy(struct ath6kl *ar); ar 985 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_init_hw_restart(struct ath6kl *ar); ar 986 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_recovery_err_notify(struct ath6kl *ar, enum ath6kl_fw_err reason); ar 987 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_recovery_hb_event(struct ath6kl *ar, u32 cookie); ar 988 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_recovery_init(struct ath6kl *ar); ar 989 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_recovery_cleanup(struct ath6kl *ar); ar 990 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_recovery_suspend(struct ath6kl *ar); ar 991 drivers/net/wireless/ath/ath6kl/core.h void ath6kl_recovery_resume(struct ath6kl *ar); ar 101 drivers/net/wireless/ath/ath6kl/debug.c int ath6kl_read_tgt_stats(struct ath6kl *ar, struct ath6kl_vif *vif) ar 105 drivers/net/wireless/ath/ath6kl/debug.c if (down_interruptible(&ar->sem)) ar 110 drivers/net/wireless/ath/ath6kl/debug.c if (ath6kl_wmi_get_stats_cmd(ar->wmi, 0)) { ar 111 drivers/net/wireless/ath/ath6kl/debug.c up(&ar->sem); ar 115 drivers/net/wireless/ath/ath6kl/debug.c left = wait_event_interruptible_timeout(ar->event_wq, ar 119 drivers/net/wireless/ath/ath6kl/debug.c up(&ar->sem); ar 218 drivers/net/wireless/ath/ath6kl/debug.c if (dev->ar->mbox_info.gmbox_addr != 0) { ar 291 drivers/net/wireless/ath/ath6kl/debug.c void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war) ar 295 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.war_stats.invalid_rate++; ar 303 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 318 drivers/net/wireless/ath/ath6kl/debug.c "Invalid rates", ar->debug.war_stats.invalid_rate); ar 336 drivers/net/wireless/ath/ath6kl/debug.c void ath6kl_debug_fwlog_event(struct ath6kl *ar, const void *buf, size_t len) ar 359 drivers/net/wireless/ath/ath6kl/debug.c spin_lock(&ar->debug.fwlog_queue.lock); ar 361 drivers/net/wireless/ath/ath6kl/debug.c __skb_queue_tail(&ar->debug.fwlog_queue, skb); ar 362 drivers/net/wireless/ath/ath6kl/debug.c complete(&ar->debug.fwlog_completion); ar 365 drivers/net/wireless/ath/ath6kl/debug.c while (skb_queue_len(&ar->debug.fwlog_queue) > ar 367 drivers/net/wireless/ath/ath6kl/debug.c skb = __skb_dequeue(&ar->debug.fwlog_queue); ar 371 drivers/net/wireless/ath/ath6kl/debug.c spin_unlock(&ar->debug.fwlog_queue.lock); ar 378 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = inode->i_private; ar 380 drivers/net/wireless/ath/ath6kl/debug.c if (ar->debug.fwlog_open) ar 383 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.fwlog_open = true; ar 391 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = inode->i_private; ar 393 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.fwlog_open = false; ar 401 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 412 drivers/net/wireless/ath/ath6kl/debug.c ath6kl_read_fwlogs(ar); ar 414 drivers/net/wireless/ath/ath6kl/debug.c spin_lock(&ar->debug.fwlog_queue.lock); ar 416 drivers/net/wireless/ath/ath6kl/debug.c while ((skb = __skb_dequeue(&ar->debug.fwlog_queue))) { ar 419 drivers/net/wireless/ath/ath6kl/debug.c __skb_queue_head(&ar->debug.fwlog_queue, skb); ar 430 drivers/net/wireless/ath/ath6kl/debug.c spin_unlock(&ar->debug.fwlog_queue.lock); ar 454 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 465 drivers/net/wireless/ath/ath6kl/debug.c spin_lock(&ar->debug.fwlog_queue.lock); ar 467 drivers/net/wireless/ath/ath6kl/debug.c if (skb_queue_len(&ar->debug.fwlog_queue) == 0) { ar 469 drivers/net/wireless/ath/ath6kl/debug.c init_completion(&ar->debug.fwlog_completion); ar 471 drivers/net/wireless/ath/ath6kl/debug.c spin_unlock(&ar->debug.fwlog_queue.lock); ar 474 drivers/net/wireless/ath/ath6kl/debug.c &ar->debug.fwlog_completion); ar 480 drivers/net/wireless/ath/ath6kl/debug.c spin_lock(&ar->debug.fwlog_queue.lock); ar 483 drivers/net/wireless/ath/ath6kl/debug.c while ((skb = __skb_dequeue(&ar->debug.fwlog_queue))) { ar 486 drivers/net/wireless/ath/ath6kl/debug.c __skb_queue_head(&ar->debug.fwlog_queue, skb); ar 497 drivers/net/wireless/ath/ath6kl/debug.c spin_unlock(&ar->debug.fwlog_queue.lock); ar 528 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 532 drivers/net/wireless/ath/ath6kl/debug.c len = snprintf(buf, sizeof(buf), "0x%x\n", ar->debug.fwlog_mask); ar 541 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 544 drivers/net/wireless/ath/ath6kl/debug.c ret = kstrtou32_from_user(user_buf, count, 0, &ar->debug.fwlog_mask); ar 548 drivers/net/wireless/ath/ath6kl/debug.c ret = ath6kl_wmi_config_debug_module_cmd(ar->wmi, ar 550 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.fwlog_mask); ar 568 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 577 drivers/net/wireless/ath/ath6kl/debug.c vif = ath6kl_vif_first(ar); ar 585 drivers/net/wireless/ath/ath6kl/debug.c rv = ath6kl_read_tgt_stats(ar, vif); ar 707 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 708 drivers/net/wireless/ath/ath6kl/debug.c struct htc_target *target = ar->htc_target; ar 785 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 786 drivers/net/wireless/ath/ath6kl/debug.c struct htc_target *target = ar->htc_target; ar 840 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 841 drivers/net/wireless/ath/ath6kl/debug.c struct htc_target *target = ar->htc_target; ar 895 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 899 drivers/net/wireless/ath/ath6kl/debug.c if (ar->debug.dbgfs_diag_reg) ar 901 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.dbgfs_diag_reg); ar 913 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 925 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.dbgfs_diag_reg = reg_addr; ar 940 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = inode->i_private; ar 949 drivers/net/wireless/ath/ath6kl/debug.c if (!ar->debug.dbgfs_diag_reg) ar 963 drivers/net/wireless/ath/ath6kl/debug.c addr = ar->debug.dbgfs_diag_reg; ar 965 drivers/net/wireless/ath/ath6kl/debug.c status = ath6kl_diag_read32(ar, ar 966 drivers/net/wireless/ath/ath6kl/debug.c TARG_VTOP(ar->target_type, addr), ar 981 drivers/net/wireless/ath/ath6kl/debug.c status = ath6kl_diag_read32(ar, ar 982 drivers/net/wireless/ath/ath6kl/debug.c TARG_VTOP(ar->target_type, addr), ar 1028 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1034 drivers/net/wireless/ath/ath6kl/debug.c ar->lrssi_roam_threshold = lrssi_roam_threshold; ar 1036 drivers/net/wireless/ath/ath6kl/debug.c ath6kl_wmi_set_roam_lrssi_cmd(ar->wmi, ar->lrssi_roam_threshold); ar 1045 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1049 drivers/net/wireless/ath/ath6kl/debug.c len = snprintf(buf, sizeof(buf), "%u\n", ar->lrssi_roam_threshold); ar 1066 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1071 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.diag_reg_addr_wr, ar->debug.diag_reg_val_wr); ar 1080 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1106 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.diag_reg_addr_wr = reg_addr; ar 1107 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.diag_reg_val_wr = reg_val; ar 1109 drivers/net/wireless/ath/ath6kl/debug.c if (ath6kl_diag_write32(ar, ar->debug.diag_reg_addr_wr, ar 1110 drivers/net/wireless/ath/ath6kl/debug.c cpu_to_le32(ar->debug.diag_reg_val_wr))) ar 1124 drivers/net/wireless/ath/ath6kl/debug.c int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, const void *buf, ar 1138 drivers/net/wireless/ath/ath6kl/debug.c if (ar->debug.roam_tbl == NULL || ar 1139 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.roam_tbl_len < (unsigned int) len) { ar 1140 drivers/net/wireless/ath/ath6kl/debug.c kfree(ar->debug.roam_tbl); ar 1141 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.roam_tbl = kmalloc(len, GFP_ATOMIC); ar 1142 drivers/net/wireless/ath/ath6kl/debug.c if (ar->debug.roam_tbl == NULL) ar 1146 drivers/net/wireless/ath/ath6kl/debug.c memcpy(ar->debug.roam_tbl, buf, len); ar 1147 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.roam_tbl_len = len; ar 1149 drivers/net/wireless/ath/ath6kl/debug.c if (test_bit(ROAM_TBL_PEND, &ar->flag)) { ar 1150 drivers/net/wireless/ath/ath6kl/debug.c clear_bit(ROAM_TBL_PEND, &ar->flag); ar 1151 drivers/net/wireless/ath/ath6kl/debug.c wake_up(&ar->event_wq); ar 1160 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1169 drivers/net/wireless/ath/ath6kl/debug.c if (down_interruptible(&ar->sem)) ar 1172 drivers/net/wireless/ath/ath6kl/debug.c set_bit(ROAM_TBL_PEND, &ar->flag); ar 1174 drivers/net/wireless/ath/ath6kl/debug.c ret = ath6kl_wmi_get_roam_tbl_cmd(ar->wmi); ar 1176 drivers/net/wireless/ath/ath6kl/debug.c up(&ar->sem); ar 1181 drivers/net/wireless/ath/ath6kl/debug.c ar->event_wq, !test_bit(ROAM_TBL_PEND, &ar->flag), WMI_TIMEOUT); ar 1182 drivers/net/wireless/ath/ath6kl/debug.c up(&ar->sem); ar 1187 drivers/net/wireless/ath/ath6kl/debug.c if (ar->debug.roam_tbl == NULL) ar 1190 drivers/net/wireless/ath/ath6kl/debug.c tbl = (struct wmi_target_roam_tbl *) ar->debug.roam_tbl; ar 1232 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1246 drivers/net/wireless/ath/ath6kl/debug.c ret = ath6kl_wmi_force_roam_cmd(ar->wmi, bssid); ar 1264 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1286 drivers/net/wireless/ath/ath6kl/debug.c ret = ath6kl_wmi_set_roam_mode_cmd(ar->wmi, mode); ar 1300 drivers/net/wireless/ath/ath6kl/debug.c void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive) ar 1302 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.keepalive = keepalive; ar 1308 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1312 drivers/net/wireless/ath/ath6kl/debug.c len = snprintf(buf, sizeof(buf), "%u\n", ar->debug.keepalive); ar 1321 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1329 drivers/net/wireless/ath/ath6kl/debug.c ret = ath6kl_wmi_set_keepalive_cmd(ar->wmi, 0, val); ar 1344 drivers/net/wireless/ath/ath6kl/debug.c void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, u8 timeout) ar 1346 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.disc_timeout = timeout; ar 1353 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1357 drivers/net/wireless/ath/ath6kl/debug.c len = snprintf(buf, sizeof(buf), "%u\n", ar->debug.disc_timeout); ar 1366 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1374 drivers/net/wireless/ath/ath6kl/debug.c ret = ath6kl_wmi_disctimeout_cmd(ar->wmi, 0, val); ar 1393 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1402 drivers/net/wireless/ath/ath6kl/debug.c vif = ath6kl_vif_first(ar); ar 1555 drivers/net/wireless/ath/ath6kl/debug.c ath6kl_wmi_create_pstream_cmd(ar->wmi, vif->fw_vif_idx, &pstream); ar 1571 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1579 drivers/net/wireless/ath/ath6kl/debug.c vif = ath6kl_vif_first(ar); ar 1601 drivers/net/wireless/ath/ath6kl/debug.c ath6kl_wmi_delete_pstream_cmd(ar->wmi, vif->fw_vif_idx, ar 1618 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1624 drivers/net/wireless/ath/ath6kl/debug.c vif = ath6kl_vif_first(ar); ar 1641 drivers/net/wireless/ath/ath6kl/debug.c ath6kl_wmi_scanparams_cmd(ar->wmi, 0, 0, 0, bgscan_int, 0, 0, 0, 3, ar 1658 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1664 drivers/net/wireless/ath/ath6kl/debug.c vif = ath6kl_vif_first(ar); ar 1680 drivers/net/wireless/ath/ath6kl/debug.c ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ar 1690 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1695 drivers/net/wireless/ath/ath6kl/debug.c vif = ath6kl_vif_first(ar); ar 1716 drivers/net/wireless/ath/ath6kl/debug.c struct ath6kl *ar = file->private_data; ar 1759 drivers/net/wireless/ath/ath6kl/debug.c ath6kl_wmi_pmparams_cmd(ar->wmi, 0, idle_period, ps_poll_num, ar 1772 drivers/net/wireless/ath/ath6kl/debug.c void ath6kl_debug_init(struct ath6kl *ar) ar 1774 drivers/net/wireless/ath/ath6kl/debug.c skb_queue_head_init(&ar->debug.fwlog_queue); ar 1775 drivers/net/wireless/ath/ath6kl/debug.c init_completion(&ar->debug.fwlog_completion); ar 1781 drivers/net/wireless/ath/ath6kl/debug.c ar->debug.fwlog_mask = 0; ar 1789 drivers/net/wireless/ath/ath6kl/debug.c int ath6kl_debug_init_fs(struct ath6kl *ar) ar 1791 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy = debugfs_create_dir("ath6kl", ar 1792 drivers/net/wireless/ath/ath6kl/debug.c ar->wiphy->debugfsdir); ar 1793 drivers/net/wireless/ath/ath6kl/debug.c if (!ar->debugfs_phy) ar 1796 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("tgt_stats", 0400, ar->debugfs_phy, ar, ar 1799 drivers/net/wireless/ath/ath6kl/debug.c if (ar->hif_type == ATH6KL_HIF_TYPE_SDIO) ar 1801 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy, ar, ar 1805 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy, ar, &fops_endpoint_stats); ar 1807 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("fwlog", 0400, ar->debugfs_phy, ar, &fops_fwlog); ar 1809 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("fwlog_block", 0400, ar->debugfs_phy, ar, ar 1812 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("fwlog_mask", 0600, ar->debugfs_phy, ar 1813 drivers/net/wireless/ath/ath6kl/debug.c ar, &fops_fwlog_mask); ar 1815 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("reg_addr", 0600, ar->debugfs_phy, ar, ar 1818 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("reg_dump", 0400, ar->debugfs_phy, ar, ar 1822 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy, ar, &fops_lrssi_roam_threshold); ar 1825 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy, ar, &fops_diag_reg_write); ar 1827 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("war_stats", 0400, ar->debugfs_phy, ar, ar 1830 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("roam_table", 0400, ar->debugfs_phy, ar, ar 1833 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("force_roam", 0200, ar->debugfs_phy, ar, ar 1836 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("roam_mode", 0200, ar->debugfs_phy, ar, ar 1839 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("keepalive", 0600, ar->debugfs_phy, ar, ar 1843 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy, ar, &fops_disconnect_timeout); ar 1845 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("create_qos", 0200, ar->debugfs_phy, ar, ar 1848 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("delete_qos", 0200, ar->debugfs_phy, ar, ar 1852 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy, ar, &fops_bgscan_int); ar 1855 drivers/net/wireless/ath/ath6kl/debug.c ar->debugfs_phy, ar, &fops_listen_int); ar 1857 drivers/net/wireless/ath/ath6kl/debug.c debugfs_create_file("power_params", 0200, ar->debugfs_phy, ar, ar 1863 drivers/net/wireless/ath/ath6kl/debug.c void ath6kl_debug_cleanup(struct ath6kl *ar) ar 1865 drivers/net/wireless/ath/ath6kl/debug.c skb_queue_purge(&ar->debug.fwlog_queue); ar 1866 drivers/net/wireless/ath/ath6kl/debug.c complete(&ar->debug.fwlog_completion); ar 1867 drivers/net/wireless/ath/ath6kl/debug.c kfree(ar->debug.roam_tbl); ar 62 drivers/net/wireless/ath/ath6kl/debug.h int ath6kl_read_tgt_stats(struct ath6kl *ar, struct ath6kl_vif *vif); ar 76 drivers/net/wireless/ath/ath6kl/debug.h void ath6kl_debug_fwlog_event(struct ath6kl *ar, const void *buf, size_t len); ar 77 drivers/net/wireless/ath/ath6kl/debug.h void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war); ar 78 drivers/net/wireless/ath/ath6kl/debug.h int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, const void *buf, ar 80 drivers/net/wireless/ath/ath6kl/debug.h void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive); ar 81 drivers/net/wireless/ath/ath6kl/debug.h void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, u8 timeout); ar 82 drivers/net/wireless/ath/ath6kl/debug.h void ath6kl_debug_init(struct ath6kl *ar); ar 83 drivers/net/wireless/ath/ath6kl/debug.h int ath6kl_debug_init_fs(struct ath6kl *ar); ar 84 drivers/net/wireless/ath/ath6kl/debug.h void ath6kl_debug_cleanup(struct ath6kl *ar); ar 109 drivers/net/wireless/ath/ath6kl/debug.h static inline void ath6kl_debug_fwlog_event(struct ath6kl *ar, ar 114 drivers/net/wireless/ath/ath6kl/debug.h static inline void ath6kl_debug_war(struct ath6kl *ar, enum ath6kl_war war) ar 118 drivers/net/wireless/ath/ath6kl/debug.h static inline int ath6kl_debug_roam_tbl_event(struct ath6kl *ar, ar 124 drivers/net/wireless/ath/ath6kl/debug.h static inline void ath6kl_debug_set_keepalive(struct ath6kl *ar, u8 keepalive) ar 128 drivers/net/wireless/ath/ath6kl/debug.h static inline void ath6kl_debug_set_disconnect_timeout(struct ath6kl *ar, ar 133 drivers/net/wireless/ath/ath6kl/debug.h static inline void ath6kl_debug_init(struct ath6kl *ar) ar 137 drivers/net/wireless/ath/ath6kl/debug.h static inline int ath6kl_debug_init_fs(struct ath6kl *ar) ar 142 drivers/net/wireless/ath/ath6kl/debug.h static inline void ath6kl_debug_cleanup(struct ath6kl *ar) ar 24 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int hif_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf, ar 32 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->read_write_sync(ar, addr, buf, len, request); ar 35 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int hif_write_async(struct ath6kl *ar, u32 address, u8 *buffer, ar 43 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->write_async(ar, address, buffer, length, ar 46 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline void ath6kl_hif_irq_enable(struct ath6kl *ar) ar 50 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->irq_enable(ar); ar 53 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline void ath6kl_hif_irq_disable(struct ath6kl *ar) ar 57 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->irq_disable(ar); ar 60 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline struct hif_scatter_req *hif_scatter_req_get(struct ath6kl *ar) ar 62 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->scatter_req_get(ar); ar 65 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline void hif_scatter_req_add(struct ath6kl *ar, ar 68 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->scatter_req_add(ar, s_req); ar 71 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_enable_scatter(struct ath6kl *ar) ar 73 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->enable_scatter(ar); ar 76 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_scat_req_rw(struct ath6kl *ar, ar 79 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->scat_req_rw(ar, scat_req); ar 82 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline void ath6kl_hif_cleanup_scatter(struct ath6kl *ar) ar 84 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->cleanup_scatter(ar); ar 87 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_suspend(struct ath6kl *ar, ar 92 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->suspend(ar, wow); ar 99 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_diag_read32(struct ath6kl *ar, u32 address, ar 102 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->diag_read32(ar, address, value); ar 109 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_diag_write32(struct ath6kl *ar, u32 address, ar 112 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->diag_write32(ar, address, value); ar 115 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_bmi_read(struct ath6kl *ar, u8 *buf, u32 len) ar 117 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->bmi_read(ar, buf, len); ar 120 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_bmi_write(struct ath6kl *ar, u8 *buf, u32 len) ar 122 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->bmi_write(ar, buf, len); ar 125 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_resume(struct ath6kl *ar) ar 129 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->resume(ar); ar 132 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_power_on(struct ath6kl *ar) ar 136 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->power_on(ar); ar 139 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_power_off(struct ath6kl *ar) ar 143 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->power_off(ar); ar 146 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline void ath6kl_hif_stop(struct ath6kl *ar) ar 150 drivers/net/wireless/ath/ath6kl/hif-ops.h ar->hif_ops->stop(ar); ar 153 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_pipe_send(struct ath6kl *ar, ar 159 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->pipe_send(ar, pipe, hdr_buf, buf); ar 162 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline void ath6kl_hif_pipe_get_default(struct ath6kl *ar, ar 167 drivers/net/wireless/ath/ath6kl/hif-ops.h ar->hif_ops->pipe_get_default(ar, ul_pipe, dl_pipe); ar 170 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline int ath6kl_hif_pipe_map_service(struct ath6kl *ar, ar 176 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->pipe_map_service(ar, service_id, ul_pipe, dl_pipe); ar 179 drivers/net/wireless/ath/ath6kl/hif-ops.h static inline u16 ath6kl_hif_pipe_get_free_queue_number(struct ath6kl *ar, ar 184 drivers/net/wireless/ath/ath6kl/hif-ops.h return ar->hif_ops->pipe_get_free_queue_number(ar, pipe); ar 70 drivers/net/wireless/ath/ath6kl/hif.c static void ath6kl_hif_dump_fw_crash(struct ath6kl *ar) ar 77 drivers/net/wireless/ath/ath6kl/hif.c address = ath6kl_get_hi_item_addr(ar, HI_ITEM(hi_failure_state)); ar 78 drivers/net/wireless/ath/ath6kl/hif.c address = TARG_VTOP(ar->target_type, address); ar 81 drivers/net/wireless/ath/ath6kl/hif.c ret = ath6kl_diag_read32(ar, address, ®dump_addr); ar 91 drivers/net/wireless/ath/ath6kl/hif.c regdump_addr = TARG_VTOP(ar->target_type, regdump_addr); ar 94 drivers/net/wireless/ath/ath6kl/hif.c ret = ath6kl_diag_read(ar, regdump_addr, (u8 *)®dump_val[0], ar 102 drivers/net/wireless/ath/ath6kl/hif.c ath6kl_info("hw 0x%x fw %s\n", ar->wiphy->hw_version, ar 103 drivers/net/wireless/ath/ath6kl/hif.c ar->wiphy->fw_version); ar 128 drivers/net/wireless/ath/ath6kl/hif.c ret = hif_read_write_sync(dev->ar, COUNT_DEC_ADDRESS, ar 133 drivers/net/wireless/ath/ath6kl/hif.c ath6kl_hif_dump_fw_crash(dev->ar); ar 134 drivers/net/wireless/ath/ath6kl/hif.c ath6kl_read_fwlogs(dev->ar); ar 135 drivers/net/wireless/ath/ath6kl/hif.c ath6kl_recovery_err_notify(dev->ar, ATH6KL_FW_ASSERT); ar 150 drivers/net/wireless/ath/ath6kl/hif.c status = hif_read_write_sync(dev->ar, HOST_INT_STATUS_ADDRESS, ar 222 drivers/net/wireless/ath/ath6kl/hif.c status = hif_read_write_sync(dev->ar, INT_STATUS_ENABLE_ADDRESS, ar 237 drivers/net/wireless/ath/ath6kl/hif.c scat_req->addr = dev->ar->mbox_info.htc_addr; ar 243 drivers/net/wireless/ath/ath6kl/hif.c dev->ar->mbox_info.htc_ext_addr : ar 244 drivers/net/wireless/ath/ath6kl/hif.c dev->ar->mbox_info.htc_addr; ar 257 drivers/net/wireless/ath/ath6kl/hif.c scat_req->complete(dev->ar->htc_target, scat_req); ar 262 drivers/net/wireless/ath/ath6kl/hif.c status = ath6kl_hif_scat_req_rw(dev->ar, scat_req); ar 335 drivers/net/wireless/ath/ath6kl/hif.c status = hif_read_write_sync(dev->ar, ERROR_INT_STATUS_ADDRESS, ar 379 drivers/net/wireless/ath/ath6kl/hif.c status = hif_read_write_sync(dev->ar, CPU_INT_STATUS_ADDRESS, ar 426 drivers/net/wireless/ath/ath6kl/hif.c status = hif_read_write_sync(dev->ar, HOST_INT_STATUS_ADDRESS, ar 540 drivers/net/wireless/ath/ath6kl/hif.c int ath6kl_hif_intr_bh_handler(struct ath6kl *ar) ar 542 drivers/net/wireless/ath/ath6kl/hif.c struct ath6kl_device *dev = ar->htc_target->dev; ar 605 drivers/net/wireless/ath/ath6kl/hif.c status = hif_read_write_sync(dev->ar, INT_STATUS_ENABLE_ADDRESS, ar 629 drivers/net/wireless/ath/ath6kl/hif.c return hif_read_write_sync(dev->ar, INT_STATUS_ENABLE_ADDRESS, ar 650 drivers/net/wireless/ath/ath6kl/hif.c ath6kl_hif_irq_enable(dev->ar); ar 664 drivers/net/wireless/ath/ath6kl/hif.c ath6kl_hif_irq_disable(dev->ar); ar 680 drivers/net/wireless/ath/ath6kl/hif.c dev->htc_cnxt->block_sz = dev->ar->mbox_info.block_size; ar 693 drivers/net/wireless/ath/ath6kl/hif.c dev->htc_cnxt->block_sz, dev->ar->mbox_info.htc_addr); ar 231 drivers/net/wireless/ath/ath6kl/hif.h struct ath6kl *ar; ar 235 drivers/net/wireless/ath/ath6kl/hif.h int (*read_write_sync)(struct ath6kl *ar, u32 addr, u8 *buf, ar 237 drivers/net/wireless/ath/ath6kl/hif.h int (*write_async)(struct ath6kl *ar, u32 address, u8 *buffer, ar 240 drivers/net/wireless/ath/ath6kl/hif.h void (*irq_enable)(struct ath6kl *ar); ar 241 drivers/net/wireless/ath/ath6kl/hif.h void (*irq_disable)(struct ath6kl *ar); ar 243 drivers/net/wireless/ath/ath6kl/hif.h struct hif_scatter_req *(*scatter_req_get)(struct ath6kl *ar); ar 244 drivers/net/wireless/ath/ath6kl/hif.h void (*scatter_req_add)(struct ath6kl *ar, ar 246 drivers/net/wireless/ath/ath6kl/hif.h int (*enable_scatter)(struct ath6kl *ar); ar 247 drivers/net/wireless/ath/ath6kl/hif.h int (*scat_req_rw) (struct ath6kl *ar, ar 249 drivers/net/wireless/ath/ath6kl/hif.h void (*cleanup_scatter)(struct ath6kl *ar); ar 250 drivers/net/wireless/ath/ath6kl/hif.h int (*suspend)(struct ath6kl *ar, struct cfg80211_wowlan *wow); ar 251 drivers/net/wireless/ath/ath6kl/hif.h int (*resume)(struct ath6kl *ar); ar 252 drivers/net/wireless/ath/ath6kl/hif.h int (*diag_read32)(struct ath6kl *ar, u32 address, u32 *value); ar 253 drivers/net/wireless/ath/ath6kl/hif.h int (*diag_write32)(struct ath6kl *ar, u32 address, __le32 value); ar 254 drivers/net/wireless/ath/ath6kl/hif.h int (*bmi_read)(struct ath6kl *ar, u8 *buf, u32 len); ar 255 drivers/net/wireless/ath/ath6kl/hif.h int (*bmi_write)(struct ath6kl *ar, u8 *buf, u32 len); ar 256 drivers/net/wireless/ath/ath6kl/hif.h int (*power_on)(struct ath6kl *ar); ar 257 drivers/net/wireless/ath/ath6kl/hif.h int (*power_off)(struct ath6kl *ar); ar 258 drivers/net/wireless/ath/ath6kl/hif.h void (*stop)(struct ath6kl *ar); ar 259 drivers/net/wireless/ath/ath6kl/hif.h int (*pipe_send)(struct ath6kl *ar, u8 pipe, struct sk_buff *hdr_buf, ar 261 drivers/net/wireless/ath/ath6kl/hif.h void (*pipe_get_default)(struct ath6kl *ar, u8 *pipe_ul, u8 *pipe_dl); ar 262 drivers/net/wireless/ath/ath6kl/hif.h int (*pipe_map_service)(struct ath6kl *ar, u16 service_id, u8 *pipe_ul, ar 264 drivers/net/wireless/ath/ath6kl/hif.h u16 (*pipe_get_free_queue_number)(struct ath6kl *ar, u8 pipe); ar 276 drivers/net/wireless/ath/ath6kl/hif.h int ath6kl_hif_intr_bh_handler(struct ath6kl *ar); ar 23 drivers/net/wireless/ath/ath6kl/htc-ops.h static inline void *ath6kl_htc_create(struct ath6kl *ar) ar 25 drivers/net/wireless/ath/ath6kl/htc-ops.h return ar->htc_ops->create(ar); ar 30 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->wait_target(target); ar 35 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->start(target); ar 42 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->conn_service(target, req, resp); ar 48 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->tx(target, packet); ar 53 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->stop(target); ar 58 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->cleanup(target); ar 65 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->flush_txep(target, endpoint, tag); ar 70 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->flush_rx_buf(target); ar 77 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->activity_changed(target, endpoint, ar 84 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->get_rxbuf_num(target, endpoint); ar 90 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->add_rxbuf_multiple(target, pktq); ar 96 drivers/net/wireless/ath/ath6kl/htc-ops.h return target->dev->ar->htc_ops->credit_setup(target, info); ar 99 drivers/net/wireless/ath/ath6kl/htc-ops.h static inline void ath6kl_htc_tx_complete(struct ath6kl *ar, ar 102 drivers/net/wireless/ath/ath6kl/htc-ops.h ar->htc_ops->tx_complete(ar, skb); ar 106 drivers/net/wireless/ath/ath6kl/htc-ops.h static inline void ath6kl_htc_rx_complete(struct ath6kl *ar, ar 109 drivers/net/wireless/ath/ath6kl/htc-ops.h ar->htc_ops->rx_complete(ar, skb, pipe); ar 549 drivers/net/wireless/ath/ath6kl/htc.h void* (*create)(struct ath6kl *ar); ar 570 drivers/net/wireless/ath/ath6kl/htc.h int (*tx_complete)(struct ath6kl *ar, struct sk_buff *skb); ar 571 drivers/net/wireless/ath/ath6kl/htc.h int (*rx_complete)(struct ath6kl *ar, struct sk_buff *skb, u8 pipe); ar 674 drivers/net/wireless/ath/ath6kl/htc.h void ath6kl_htc_pipe_attach(struct ath6kl *ar); ar 675 drivers/net/wireless/ath/ath6kl/htc.h void ath6kl_htc_mbox_attach(struct ath6kl *ar); ar 501 drivers/net/wireless/ath/ath6kl/htc_mbox.c hif_scatter_req_add(target->dev->ar, scat_req); ar 524 drivers/net/wireless/ath/ath6kl/htc_mbox.c target->dev->ar->mbox_info.htc_addr, ar 528 drivers/net/wireless/ath/ath6kl/htc_mbox.c status = hif_read_write_sync(target->dev->ar, ar 529 drivers/net/wireless/ath/ath6kl/htc_mbox.c target->dev->ar->mbox_info.htc_addr, ar 536 drivers/net/wireless/ath/ath6kl/htc_mbox.c status = hif_write_async(target->dev->ar, ar 537 drivers/net/wireless/ath/ath6kl/htc_mbox.c target->dev->ar->mbox_info.htc_addr, ar 769 drivers/net/wireless/ath/ath6kl/htc_mbox.c ac = target->dev->ar->ep2ac_map[endpoint->eid]; ar 780 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req = hif_scatter_req_get(target->dev->ar); ar 825 drivers/net/wireless/ath/ath6kl/htc_mbox.c hif_scatter_req_add(target->dev->ar, scat_req); ar 886 drivers/net/wireless/ath/ath6kl/htc_mbox.c ac = target->dev->ar->ep2ac_map[endpoint->eid]; ar 1265 drivers/net/wireless/ath/ath6kl/htc_mbox.c return (eid == target->dev->ar->ctrl_ep) ? ar 1319 drivers/net/wireless/ath/ath6kl/htc_mbox.c padded_len, dev->ar->mbox_info.htc_addr); ar 1321 drivers/net/wireless/ath/ath6kl/htc_mbox.c status = hif_read_write_sync(dev->ar, ar 1322 drivers/net/wireless/ath/ath6kl/htc_mbox.c dev->ar->mbox_info.htc_addr, ar 1945 drivers/net/wireless/ath/ath6kl/htc_mbox.c scat_req = hif_scatter_req_get(target->dev->ar); ar 1996 drivers/net/wireless/ath/ath6kl/htc_mbox.c hif_scatter_req_add(target->dev->ar, scat_req); ar 2614 drivers/net/wireless/ath/ath6kl/htc_mbox.c if (ath6kl_hif_enable_scatter(target->dev->ar)) { ar 2727 drivers/net/wireless/ath/ath6kl/htc_mbox.c ath6kl_hif_cleanup_scatter(target->dev->ar); ar 2792 drivers/net/wireless/ath/ath6kl/htc_mbox.c block_size = target->dev->ar->mbox_info.block_size; ar 2844 drivers/net/wireless/ath/ath6kl/htc_mbox.c static void *ath6kl_htc_mbox_create(struct ath6kl *ar) ar 2870 drivers/net/wireless/ath/ath6kl/htc_mbox.c target->dev->ar = ar; ar 2895 drivers/net/wireless/ath/ath6kl/htc_mbox.c ath6kl_hif_cleanup_scatter(target->dev->ar); ar 2931 drivers/net/wireless/ath/ath6kl/htc_mbox.c void ath6kl_htc_mbox_attach(struct ath6kl *ar) ar 2933 drivers/net/wireless/ath/ath6kl/htc_mbox.c ar->htc_ops = &ath6kl_htc_mbox_ops; ar 254 drivers/net/wireless/ath/ath6kl/htc_pipe.c status = ath6kl_hif_pipe_send(target->dev->ar, ar 306 drivers/net/wireless/ath/ath6kl/htc_pipe.c struct ath6kl *ar = target->dev->ar; ar 412 drivers/net/wireless/ath/ath6kl/htc_pipe.c ath6kl_hif_pipe_get_free_queue_number(ar, ar 487 drivers/net/wireless/ath/ath6kl/htc_pipe.c ath6kl_hif_pipe_get_free_queue_number(ar, pipeid); ar 742 drivers/net/wireless/ath/ath6kl/htc_pipe.c static int ath6kl_htc_pipe_tx_complete(struct ath6kl *ar, struct sk_buff *skb) ar 744 drivers/net/wireless/ath/ath6kl/htc_pipe.c struct htc_target *target = ar->htc_target; ar 942 drivers/net/wireless/ath/ath6kl/htc_pipe.c static int ath6kl_htc_pipe_rx_complete(struct ath6kl *ar, struct sk_buff *skb, ar 945 drivers/net/wireless/ath/ath6kl/htc_pipe.c struct htc_target *target = ar->htc_target; ar 1222 drivers/net/wireless/ath/ath6kl/htc_pipe.c struct ath6kl *ar = target->dev->ar; ar 1380 drivers/net/wireless/ath/ath6kl/htc_pipe.c status = ath6kl_hif_pipe_map_service(ar, ep->svc_id, ar 1405 drivers/net/wireless/ath/ath6kl/htc_pipe.c static void *ath6kl_htc_pipe_create(struct ath6kl *ar) ar 1439 drivers/net/wireless/ath/ath6kl/htc_pipe.c target->dev->ar = ar; ar 1445 drivers/net/wireless/ath/ath6kl/htc_pipe.c ath6kl_hif_pipe_get_default(ar, &ep->pipe.pipeid_ul, ar 1722 drivers/net/wireless/ath/ath6kl/htc_pipe.c void ath6kl_htc_pipe_attach(struct ath6kl *ar) ar 1724 drivers/net/wireless/ath/ath6kl/htc_pipe.c ar->htc_ops = &ath6kl_htc_pipe_ops; ar 251 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_set_host_app_area(struct ath6kl *ar) ar 258 drivers/net/wireless/ath/ath6kl/init.c address = ath6kl_get_hi_item_addr(ar, HI_ITEM(hi_app_host_interest)); ar 259 drivers/net/wireless/ath/ath6kl/init.c address = TARG_VTOP(ar->target_type, address); ar 261 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_diag_read32(ar, address, &data)) ar 264 drivers/net/wireless/ath/ath6kl/init.c address = TARG_VTOP(ar->target_type, data); ar 266 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_diag_write(ar, address, (u8 *) &host_app_area, ar 273 drivers/net/wireless/ath/ath6kl/init.c static inline void set_ac2_ep_map(struct ath6kl *ar, ar 277 drivers/net/wireless/ath/ath6kl/init.c ar->ac2ep_map[ac] = ep; ar 278 drivers/net/wireless/ath/ath6kl/init.c ar->ep2ac_map[ep] = ac; ar 282 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_connectservice(struct ath6kl *ar, ar 291 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_htc_conn_service(ar->htc_target, con_req, &response); ar 300 drivers/net/wireless/ath/ath6kl/init.c if (test_bit(WMI_ENABLED, &ar->flag)) ar 301 drivers/net/wireless/ath/ath6kl/init.c ath6kl_wmi_set_control_ep(ar->wmi, response.endpoint); ar 302 drivers/net/wireless/ath/ath6kl/init.c ar->ctrl_ep = response.endpoint; ar 305 drivers/net/wireless/ath/ath6kl/init.c set_ac2_ep_map(ar, WMM_AC_BE, response.endpoint); ar 308 drivers/net/wireless/ath/ath6kl/init.c set_ac2_ep_map(ar, WMM_AC_BK, response.endpoint); ar 311 drivers/net/wireless/ath/ath6kl/init.c set_ac2_ep_map(ar, WMM_AC_VI, response.endpoint); ar 314 drivers/net/wireless/ath/ath6kl/init.c set_ac2_ep_map(ar, WMM_AC_VO, response.endpoint); ar 324 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_init_service_ep(struct ath6kl *ar) ar 347 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_connectservice(ar, &connect, "WMI CONTROL")) ar 377 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_connectservice(ar, &connect, "WMI DATA BE")) ar 382 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_connectservice(ar, &connect, "WMI DATA BK")) ar 387 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_connectservice(ar, &connect, "WMI DATA VI")) ar 398 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_connectservice(ar, &connect, "WMI DATA VO")) ar 416 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_set_htc_params(struct ath6kl *ar, u32 mbox_isr_yield_val, ar 422 drivers/net/wireless/ath/ath6kl/init.c blk_size = ar->mbox_info.block_size; ar 428 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_write_hi32(ar, hi_mbox_io_block_sz, blk_size); ar 436 drivers/net/wireless/ath/ath6kl/init.c ath6kl_get_hi_item_addr(ar, HI_ITEM(hi_mbox_io_block_sz))); ar 440 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_write_hi32(ar, hi_mbox_isr_yield_limit, ar 452 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_target_config_wlan_params(struct ath6kl *ar, int idx) ar 461 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi, idx, ar 462 drivers/net/wireless/ath/ath6kl/init.c ar->rx_meta_ver, 0, 0); ar 468 drivers/net/wireless/ath/ath6kl/init.c if (ar->conf_flags & ATH6KL_CONF_IGNORE_PS_FAIL_EVT_IN_SCAN) { ar 469 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_pmparams_cmd(ar->wmi, idx, 0, 1, 0, 0, 1, ar 478 drivers/net/wireless/ath/ath6kl/init.c if (!(ar->conf_flags & ATH6KL_CONF_IGNORE_ERP_BARKER)) { ar 479 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_set_lpreamble_cmd(ar->wmi, idx, 0, ar 488 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_set_keepalive_cmd(ar->wmi, idx, ar 495 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_disctimeout_cmd(ar->wmi, idx, ar 502 drivers/net/wireless/ath/ath6kl/init.c if (!(ar->conf_flags & ATH6KL_CONF_ENABLE_TX_BURST)) { ar 503 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_set_wmm_txop(ar->wmi, idx, WMI_TXOP_DISABLED); ar 510 drivers/net/wireless/ath/ath6kl/init.c if (ar->p2p && (ar->vif_max == 1 || idx)) { ar 511 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_info_req_cmd(ar->wmi, idx, ar 519 drivers/net/wireless/ath/ath6kl/init.c ar->p2p = false; ar 523 drivers/net/wireless/ath/ath6kl/init.c if (ar->p2p && (ar->vif_max == 1 || idx)) { ar 525 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_wmi_probe_report_req_cmd(ar->wmi, idx, true); ar 536 drivers/net/wireless/ath/ath6kl/init.c int ath6kl_configure_target(struct ath6kl *ar) ar 542 drivers/net/wireless/ath/ath6kl/init.c param = !!(ar->conf_flags & ATH6KL_CONF_UART_DEBUG); ar 543 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_bmi_write_hi32(ar, hi_serial_enable, param)) { ar 558 drivers/net/wireless/ath/ath6kl/init.c for (i = 0; i < ar->vif_max; i++) ar 571 drivers/net/wireless/ath/ath6kl/init.c ar->fw_capabilities)) { ar 572 drivers/net/wireless/ath/ath6kl/init.c for (i = 0; i < ar->vif_max; i++) ar 576 drivers/net/wireless/ath/ath6kl/init.c for (i = 0; i < ar->max_norm_iface; i++) ar 580 drivers/net/wireless/ath/ath6kl/init.c for (i = ar->max_norm_iface; i < ar->vif_max; i++) ar 584 drivers/net/wireless/ath/ath6kl/init.c if (ar->p2p && ar->vif_max == 1) ar 588 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_bmi_write_hi32(ar, hi_app_host_interest, ar 597 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_bmi_read_hi32(ar, hi_option_flag, ¶m) != 0) { ar 602 drivers/net/wireless/ath/ath6kl/init.c param |= (ar->vif_max << HI_OPTION_NUM_DEV_SHIFT); ar 609 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_bmi_write_hi32(ar, hi_option_flag, param) != 0) { ar 625 drivers/net/wireless/ath/ath6kl/init.c if ((ar->target_type == TARGET_TYPE_AR6003) || ar 626 drivers/net/wireless/ath/ath6kl/init.c (ar->version.target_ver == AR6004_HW_1_3_VERSION) || ar 627 drivers/net/wireless/ath/ath6kl/init.c (ar->version.target_ver == AR6004_HW_3_0_VERSION)) { ar 628 drivers/net/wireless/ath/ath6kl/init.c param = ar->hw.board_ext_data_addr; ar 629 drivers/net/wireless/ath/ath6kl/init.c ram_reserved_size = ar->hw.reserved_ram_size; ar 631 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_bmi_write_hi32(ar, hi_board_ext_data, param) != 0) { ar 636 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_bmi_write_hi32(ar, hi_end_ram_reserve_sz, ar 644 drivers/net/wireless/ath/ath6kl/init.c if (ath6kl_set_htc_params(ar, MBOX_YIELD_LIMIT, 0)) ar 649 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_write_hi32(ar, hi_dbg_uart_txpin, ar 650 drivers/net/wireless/ath/ath6kl/init.c ar->hw.uarttx_pin); ar 655 drivers/net/wireless/ath/ath6kl/init.c if (ar->conf_flags & ATH6KL_CONF_UART_DEBUG) { ar 656 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_write_hi32(ar, hi_desired_baud_rate, ar 657 drivers/net/wireless/ath/ath6kl/init.c ar->hw.uarttx_rate); ar 663 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.refclk_hz != 0) { ar 664 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_write_hi32(ar, hi_refclk_hz, ar 665 drivers/net/wireless/ath/ath6kl/init.c ar->hw.refclk_hz); ar 674 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_get_fw(struct ath6kl *ar, const char *filename, ar 680 drivers/net/wireless/ath/ath6kl/init.c ret = request_firmware(&fw_entry, filename, ar->dev); ar 702 drivers/net/wireless/ath/ath6kl/init.c static bool check_device_tree(struct ath6kl *ar) ar 718 drivers/net/wireless/ath/ath6kl/init.c "%s/bdata.%s.bin", ar->hw.fw.dir, board_id); ar 720 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, board_filename, &ar->fw_board, ar 721 drivers/net/wireless/ath/ath6kl/init.c &ar->fw_board_len); ar 733 drivers/net/wireless/ath/ath6kl/init.c static bool check_device_tree(struct ath6kl *ar) ar 739 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_board_file(struct ath6kl *ar) ar 744 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_board != NULL) ar 747 drivers/net/wireless/ath/ath6kl/init.c if (WARN_ON(ar->hw.fw_board == NULL)) ar 750 drivers/net/wireless/ath/ath6kl/init.c filename = ar->hw.fw_board; ar 752 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, filename, &ar->fw_board, ar 753 drivers/net/wireless/ath/ath6kl/init.c &ar->fw_board_len); ar 759 drivers/net/wireless/ath/ath6kl/init.c if (check_device_tree(ar)) { ar 768 drivers/net/wireless/ath/ath6kl/init.c filename = ar->hw.fw_default_board; ar 770 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, filename, &ar->fw_board, ar 771 drivers/net/wireless/ath/ath6kl/init.c &ar->fw_board_len); ar 784 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_otp_file(struct ath6kl *ar) ar 789 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_otp != NULL) ar 792 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.fw.otp == NULL) { ar 799 drivers/net/wireless/ath/ath6kl/init.c ar->hw.fw.dir, ar->hw.fw.otp); ar 801 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, filename, &ar->fw_otp, ar 802 drivers/net/wireless/ath/ath6kl/init.c &ar->fw_otp_len); ar 812 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_testmode_file(struct ath6kl *ar) ar 817 drivers/net/wireless/ath/ath6kl/init.c if (ar->testmode == 0) ar 820 drivers/net/wireless/ath/ath6kl/init.c ath6kl_dbg(ATH6KL_DBG_BOOT, "testmode %d\n", ar->testmode); ar 822 drivers/net/wireless/ath/ath6kl/init.c if (ar->testmode == 2) { ar 823 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.fw.utf == NULL) { ar 829 drivers/net/wireless/ath/ath6kl/init.c ar->hw.fw.dir, ar->hw.fw.utf); ar 831 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.fw.tcmd == NULL) { ar 837 drivers/net/wireless/ath/ath6kl/init.c ar->hw.fw.dir, ar->hw.fw.tcmd); ar 840 drivers/net/wireless/ath/ath6kl/init.c set_bit(TESTMODE, &ar->flag); ar 842 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, filename, &ar->fw, &ar->fw_len); ar 845 drivers/net/wireless/ath/ath6kl/init.c ar->testmode, filename, ret); ar 852 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_fw_file(struct ath6kl *ar) ar 857 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw != NULL) ar 861 drivers/net/wireless/ath/ath6kl/init.c if (WARN_ON(ar->hw.fw.fw == NULL)) ar 865 drivers/net/wireless/ath/ath6kl/init.c ar->hw.fw.dir, ar->hw.fw.fw); ar 867 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, filename, &ar->fw, &ar->fw_len); ar 877 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_patch_file(struct ath6kl *ar) ar 882 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_patch != NULL) ar 885 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.fw.patch == NULL) ar 889 drivers/net/wireless/ath/ath6kl/init.c ar->hw.fw.dir, ar->hw.fw.patch); ar 891 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, filename, &ar->fw_patch, ar 892 drivers/net/wireless/ath/ath6kl/init.c &ar->fw_patch_len); ar 902 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_testscript_file(struct ath6kl *ar) ar 907 drivers/net/wireless/ath/ath6kl/init.c if (ar->testmode != 2) ar 910 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_testscript != NULL) ar 913 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.fw.testscript == NULL) ar 917 drivers/net/wireless/ath/ath6kl/init.c ar->hw.fw.dir, ar->hw.fw.testscript); ar 919 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_get_fw(ar, filename, &ar->fw_testscript, ar 920 drivers/net/wireless/ath/ath6kl/init.c &ar->fw_testscript_len); ar 930 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_fw_api1(struct ath6kl *ar) ar 934 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_otp_file(ar); ar 938 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_fw_file(ar); ar 942 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_patch_file(ar); ar 946 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_testscript_file(ar); ar 953 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_fetch_fw_apin(struct ath6kl *ar, const char *name) ar 963 drivers/net/wireless/ath/ath6kl/init.c snprintf(filename, sizeof(filename), "%s/%s", ar->hw.fw.dir, name); ar 965 drivers/net/wireless/ath/ath6kl/init.c ret = request_firmware(&fw, filename, ar->dev); ar 1017 drivers/net/wireless/ath/ath6kl/init.c strlcpy(ar->wiphy->fw_version, data, ar 1018 drivers/net/wireless/ath/ath6kl/init.c min(sizeof(ar->wiphy->fw_version), ie_len+1)); ar 1022 drivers/net/wireless/ath/ath6kl/init.c ar->wiphy->fw_version); ar 1028 drivers/net/wireless/ath/ath6kl/init.c ar->fw_otp = kmemdup(data, ie_len, GFP_KERNEL); ar 1030 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_otp == NULL) { ar 1036 drivers/net/wireless/ath/ath6kl/init.c ar->fw_otp_len = ie_len; ar 1043 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw != NULL) ar 1046 drivers/net/wireless/ath/ath6kl/init.c ar->fw = vmalloc(ie_len); ar 1048 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw == NULL) { ar 1054 drivers/net/wireless/ath/ath6kl/init.c memcpy(ar->fw, data, ie_len); ar 1055 drivers/net/wireless/ath/ath6kl/init.c ar->fw_len = ie_len; ar 1061 drivers/net/wireless/ath/ath6kl/init.c ar->fw_patch = kmemdup(data, ie_len, GFP_KERNEL); ar 1063 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_patch == NULL) { ar 1069 drivers/net/wireless/ath/ath6kl/init.c ar->fw_patch_len = ie_len; ar 1073 drivers/net/wireless/ath/ath6kl/init.c ar->hw.reserved_ram_size = le32_to_cpup(val); ar 1077 drivers/net/wireless/ath/ath6kl/init.c ar->hw.reserved_ram_size); ar 1092 drivers/net/wireless/ath/ath6kl/init.c __set_bit(i, ar->fw_capabilities); ar 1096 drivers/net/wireless/ath/ath6kl/init.c ar->fw_capabilities, ar 1097 drivers/net/wireless/ath/ath6kl/init.c sizeof(ar->fw_capabilities)); ar 1104 drivers/net/wireless/ath/ath6kl/init.c ar->hw.dataset_patch_addr = le32_to_cpup(val); ar 1108 drivers/net/wireless/ath/ath6kl/init.c ar->hw.dataset_patch_addr); ar 1115 drivers/net/wireless/ath/ath6kl/init.c ar->hw.board_addr = le32_to_cpup(val); ar 1119 drivers/net/wireless/ath/ath6kl/init.c ar->hw.board_addr); ar 1126 drivers/net/wireless/ath/ath6kl/init.c ar->vif_max = min_t(unsigned int, le32_to_cpup(val), ar 1129 drivers/net/wireless/ath/ath6kl/init.c if (ar->vif_max > 1 && !ar->p2p) ar 1130 drivers/net/wireless/ath/ath6kl/init.c ar->max_norm_iface = 2; ar 1133 drivers/net/wireless/ath/ath6kl/init.c "found vif max ie %d\n", ar->vif_max); ar 1152 drivers/net/wireless/ath/ath6kl/init.c int ath6kl_init_fetch_firmwares(struct ath6kl *ar) ar 1156 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_board_file(ar); ar 1160 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_testmode_file(ar); ar 1164 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_fw_apin(ar, ATH6KL_FW_API5_FILE); ar 1166 drivers/net/wireless/ath/ath6kl/init.c ar->fw_api = 5; ar 1170 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_fw_apin(ar, ATH6KL_FW_API4_FILE); ar 1172 drivers/net/wireless/ath/ath6kl/init.c ar->fw_api = 4; ar 1176 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_fw_apin(ar, ATH6KL_FW_API3_FILE); ar 1178 drivers/net/wireless/ath/ath6kl/init.c ar->fw_api = 3; ar 1182 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_fw_apin(ar, ATH6KL_FW_API2_FILE); ar 1184 drivers/net/wireless/ath/ath6kl/init.c ar->fw_api = 2; ar 1188 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_fetch_fw_api1(ar); ar 1192 drivers/net/wireless/ath/ath6kl/init.c ar->fw_api = 1; ar 1195 drivers/net/wireless/ath/ath6kl/init.c ath6kl_dbg(ATH6KL_DBG_BOOT, "using fw api %d\n", ar->fw_api); ar 1200 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_upload_board_file(struct ath6kl *ar) ar 1206 drivers/net/wireless/ath/ath6kl/init.c if (WARN_ON(ar->fw_board == NULL)) ar 1214 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.board_addr != 0) { ar 1215 drivers/net/wireless/ath/ath6kl/init.c board_address = ar->hw.board_addr; ar 1216 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_write_hi32(ar, hi_board_data, ar 1219 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_read_hi32(ar, hi_board_data, &board_address); ar 1227 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_read_hi32(ar, hi_board_ext_data, &board_ext_address); ar 1233 drivers/net/wireless/ath/ath6kl/init.c if (ar->target_type == TARGET_TYPE_AR6003 && ar 1239 drivers/net/wireless/ath/ath6kl/init.c switch (ar->target_type) { ar 1243 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_board_len > (board_data_size + board_ext_data_size)) ar 1256 drivers/net/wireless/ath/ath6kl/init.c ar->fw_board_len == (board_data_size + board_ext_data_size)) { ar 1262 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_write(ar, board_ext_address, ar 1263 drivers/net/wireless/ath/ath6kl/init.c ar->fw_board + board_data_size, ar 1274 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_write_hi32(ar, hi_board_ext_data_config, param); ar 1277 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_board_len < board_data_size) { ar 1278 drivers/net/wireless/ath/ath6kl/init.c ath6kl_err("Too small board file: %zu\n", ar->fw_board_len); ar 1286 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_write(ar, board_address, ar->fw_board, ar 1295 drivers/net/wireless/ath/ath6kl/init.c if ((ar->version.target_ver == AR6004_HW_1_3_VERSION) || ar 1296 drivers/net/wireless/ath/ath6kl/init.c (ar->version.target_ver == AR6004_HW_3_0_VERSION)) ar 1301 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_write_hi32(ar, hi_board_data_initialized, param); ar 1306 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_upload_otp(struct ath6kl *ar) ar 1312 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_otp == NULL) ar 1315 drivers/net/wireless/ath/ath6kl/init.c address = ar->hw.app_load_addr; ar 1318 drivers/net/wireless/ath/ath6kl/init.c ar->fw_otp_len); ar 1320 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_fast_download(ar, address, ar->fw_otp, ar 1321 drivers/net/wireless/ath/ath6kl/init.c ar->fw_otp_len); ar 1328 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_read_hi32(ar, hi_app_start, &address); ar 1335 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.app_start_override_addr == 0) { ar 1336 drivers/net/wireless/ath/ath6kl/init.c ar->hw.app_start_override_addr = address; ar 1342 drivers/net/wireless/ath/ath6kl/init.c ar->hw.app_start_override_addr); ar 1346 drivers/net/wireless/ath/ath6kl/init.c ar->hw.app_start_override_addr); ar 1348 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_execute(ar, ar->hw.app_start_override_addr, ¶m); ar 1353 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_upload_firmware(struct ath6kl *ar) ar 1358 drivers/net/wireless/ath/ath6kl/init.c if (WARN_ON(ar->fw == NULL)) ar 1361 drivers/net/wireless/ath/ath6kl/init.c address = ar->hw.app_load_addr; ar 1364 drivers/net/wireless/ath/ath6kl/init.c address, ar->fw_len); ar 1366 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_fast_download(ar, address, ar->fw, ar->fw_len); ar 1377 drivers/net/wireless/ath/ath6kl/init.c if (ar->target_type != TARGET_TYPE_AR6004) { ar 1378 drivers/net/wireless/ath/ath6kl/init.c address = ar->hw.app_start_override_addr; ar 1379 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_set_app_start(ar, address); ar 1384 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_upload_patch(struct ath6kl *ar) ar 1389 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_patch == NULL) ar 1392 drivers/net/wireless/ath/ath6kl/init.c address = ar->hw.dataset_patch_addr; ar 1395 drivers/net/wireless/ath/ath6kl/init.c address, ar->fw_patch_len); ar 1397 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_write(ar, address, ar->fw_patch, ar->fw_patch_len); ar 1403 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_write_hi32(ar, hi_dset_list_head, address); ar 1408 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_upload_testscript(struct ath6kl *ar) ar 1413 drivers/net/wireless/ath/ath6kl/init.c if (ar->testmode != 2) ar 1416 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_testscript == NULL) ar 1419 drivers/net/wireless/ath/ath6kl/init.c address = ar->hw.testscript_addr; ar 1422 drivers/net/wireless/ath/ath6kl/init.c address, ar->fw_testscript_len); ar 1424 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_write(ar, address, ar->fw_testscript, ar 1425 drivers/net/wireless/ath/ath6kl/init.c ar->fw_testscript_len); ar 1431 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_write_hi32(ar, hi_ota_testscript, address); ar 1433 drivers/net/wireless/ath/ath6kl/init.c if ((ar->version.target_ver != AR6004_HW_1_3_VERSION) && ar 1434 drivers/net/wireless/ath/ath6kl/init.c (ar->version.target_ver != AR6004_HW_3_0_VERSION)) ar 1435 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_write_hi32(ar, hi_end_ram_reserve_sz, 4096); ar 1437 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_write_hi32(ar, hi_test_apps_related, 1); ar 1442 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_init_upload(struct ath6kl *ar) ar 1447 drivers/net/wireless/ath/ath6kl/init.c if (ar->target_type != TARGET_TYPE_AR6003 && ar 1448 drivers/net/wireless/ath/ath6kl/init.c ar->target_type != TARGET_TYPE_AR6004) ar 1453 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_read(ar, address, ¶m); ar 1460 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1465 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_read(ar, address, ¶m); ar 1472 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1481 drivers/net/wireless/ath/ath6kl/init.c if (ar->target_type != TARGET_TYPE_AR6004) { ar 1482 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, ATH6KL_ANALOG_PLL_REGISTER, ar 1492 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1500 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1505 drivers/net/wireless/ath/ath6kl/init.c if (ar->hw.flags & ATH6KL_HW_SDIO_CRC_ERROR_WAR) { ar 1510 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1517 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1522 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1527 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1532 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1538 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_upload_board_file(ar); ar 1543 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_upload_otp(ar); ar 1548 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_upload_firmware(ar); ar 1552 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_upload_patch(ar); ar 1557 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_upload_testscript(ar); ar 1563 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, sleep); ar 1569 drivers/net/wireless/ath/ath6kl/init.c status = ath6kl_bmi_reg_write(ar, address, param); ar 1576 drivers/net/wireless/ath/ath6kl/init.c int ath6kl_init_hw_params(struct ath6kl *ar) ar 1584 drivers/net/wireless/ath/ath6kl/init.c if (hw->id == ar->version.target_ver) ar 1590 drivers/net/wireless/ath/ath6kl/init.c ar->version.target_ver); ar 1594 drivers/net/wireless/ath/ath6kl/init.c ar->hw = *hw; ar 1598 drivers/net/wireless/ath/ath6kl/init.c ar->version.target_ver, ar->target_type, ar 1599 drivers/net/wireless/ath/ath6kl/init.c ar->hw.dataset_patch_addr, ar->hw.app_load_addr); ar 1602 drivers/net/wireless/ath/ath6kl/init.c ar->hw.app_start_override_addr, ar->hw.board_ext_data_addr, ar 1603 drivers/net/wireless/ath/ath6kl/init.c ar->hw.reserved_ram_size); ar 1606 drivers/net/wireless/ath/ath6kl/init.c ar->hw.refclk_hz, ar->hw.uarttx_pin); ar 1661 drivers/net/wireless/ath/ath6kl/init.c static void ath6kl_init_get_fwcaps(struct ath6kl *ar, char *buf, size_t buf_len) ar 1663 drivers/net/wireless/ath/ath6kl/init.c u8 *data = (u8 *) ar->fw_capabilities; ar 1672 drivers/net/wireless/ath/ath6kl/init.c if (index >= sizeof(ar->fw_capabilities) * 4) ar 1698 drivers/net/wireless/ath/ath6kl/init.c static int ath6kl_init_hw_reset(struct ath6kl *ar) ar 1702 drivers/net/wireless/ath/ath6kl/init.c return ath6kl_diag_write32(ar, RESET_CONTROL_ADDRESS, ar 1706 drivers/net/wireless/ath/ath6kl/init.c static int __ath6kl_init_hw_start(struct ath6kl *ar) ar 1714 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_hif_power_on(ar); ar 1718 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_configure_target(ar); ar 1722 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_init_upload(ar); ar 1727 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_bmi_done(ar); ar 1736 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_htc_wait_target(ar->htc_target); ar 1746 drivers/net/wireless/ath/ath6kl/init.c ath6kl_init_hw_reset(ar); ar 1753 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_init_service_ep(ar); ar 1760 drivers/net/wireless/ath/ath6kl/init.c ath6kl_htc_credit_setup(ar->htc_target, &ar->credit_state_info); ar 1763 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_htc_start(ar->htc_target); ar 1766 drivers/net/wireless/ath/ath6kl/init.c ath6kl_cookie_cleanup(ar); ar 1771 drivers/net/wireless/ath/ath6kl/init.c timeleft = wait_event_interruptible_timeout(ar->event_wq, ar 1773 drivers/net/wireless/ath/ath6kl/init.c &ar->flag), ar 1776 drivers/net/wireless/ath/ath6kl/init.c clear_bit(WMI_READY, &ar->flag); ar 1785 drivers/net/wireless/ath/ath6kl/init.c if (test_and_clear_bit(FIRST_BOOT, &ar->flag)) { ar 1787 drivers/net/wireless/ath/ath6kl/init.c ar->hw.name, ar 1788 drivers/net/wireless/ath/ath6kl/init.c ath6kl_init_get_hif_name(ar->hif_type), ar 1789 drivers/net/wireless/ath/ath6kl/init.c ar->wiphy->fw_version, ar 1790 drivers/net/wireless/ath/ath6kl/init.c ar->fw_api, ar 1791 drivers/net/wireless/ath/ath6kl/init.c test_bit(TESTMODE, &ar->flag) ? " testmode" : ""); ar 1792 drivers/net/wireless/ath/ath6kl/init.c ath6kl_init_get_fwcaps(ar, buf, sizeof(buf)); ar 1796 drivers/net/wireless/ath/ath6kl/init.c if (ar->version.abi_ver != ATH6KL_ABI_VERSION) { ar 1798 drivers/net/wireless/ath/ath6kl/init.c ATH6KL_ABI_VERSION, ar->version.abi_ver); ar 1807 drivers/net/wireless/ath/ath6kl/init.c if ((ath6kl_set_host_app_area(ar)) != 0) ar 1810 drivers/net/wireless/ath/ath6kl/init.c for (i = 0; i < ar->vif_max; i++) { ar 1811 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_target_config_wlan_params(ar, i); ar 1819 drivers/net/wireless/ath/ath6kl/init.c ath6kl_htc_stop(ar->htc_target); ar 1821 drivers/net/wireless/ath/ath6kl/init.c ath6kl_hif_cleanup_scatter(ar); ar 1823 drivers/net/wireless/ath/ath6kl/init.c ath6kl_hif_power_off(ar); ar 1828 drivers/net/wireless/ath/ath6kl/init.c int ath6kl_init_hw_start(struct ath6kl *ar) ar 1832 drivers/net/wireless/ath/ath6kl/init.c err = __ath6kl_init_hw_start(ar); ar 1835 drivers/net/wireless/ath/ath6kl/init.c ar->state = ATH6KL_STATE_ON; ar 1839 drivers/net/wireless/ath/ath6kl/init.c static int __ath6kl_init_hw_stop(struct ath6kl *ar) ar 1845 drivers/net/wireless/ath/ath6kl/init.c ath6kl_htc_stop(ar->htc_target); ar 1847 drivers/net/wireless/ath/ath6kl/init.c ath6kl_hif_stop(ar); ar 1849 drivers/net/wireless/ath/ath6kl/init.c ath6kl_bmi_reset(ar); ar 1851 drivers/net/wireless/ath/ath6kl/init.c ret = ath6kl_hif_power_off(ar); ar 1858 drivers/net/wireless/ath/ath6kl/init.c int ath6kl_init_hw_stop(struct ath6kl *ar) ar 1862 drivers/net/wireless/ath/ath6kl/init.c err = __ath6kl_init_hw_stop(ar); ar 1865 drivers/net/wireless/ath/ath6kl/init.c ar->state = ATH6KL_STATE_OFF; ar 1869 drivers/net/wireless/ath/ath6kl/init.c void ath6kl_init_hw_restart(struct ath6kl *ar) ar 1871 drivers/net/wireless/ath/ath6kl/init.c clear_bit(WMI_READY, &ar->flag); ar 1873 drivers/net/wireless/ath/ath6kl/init.c ath6kl_cfg80211_stop_all(ar); ar 1875 drivers/net/wireless/ath/ath6kl/init.c if (__ath6kl_init_hw_stop(ar)) { ar 1880 drivers/net/wireless/ath/ath6kl/init.c if (__ath6kl_init_hw_start(ar)) { ar 1886 drivers/net/wireless/ath/ath6kl/init.c void ath6kl_stop_txrx(struct ath6kl *ar) ar 1891 drivers/net/wireless/ath/ath6kl/init.c set_bit(DESTROY_IN_PROGRESS, &ar->flag); ar 1893 drivers/net/wireless/ath/ath6kl/init.c if (down_interruptible(&ar->sem)) { ar 1899 drivers/net/wireless/ath/ath6kl/init.c aggr_reset_state(ar->sta_list[i].aggr_conn); ar 1901 drivers/net/wireless/ath/ath6kl/init.c spin_lock_bh(&ar->list_lock); ar 1902 drivers/net/wireless/ath/ath6kl/init.c list_for_each_entry_safe(vif, tmp_vif, &ar->vif_list, list) { ar 1904 drivers/net/wireless/ath/ath6kl/init.c spin_unlock_bh(&ar->list_lock); ar 1905 drivers/net/wireless/ath/ath6kl/init.c ath6kl_cfg80211_vif_stop(vif, test_bit(WMI_READY, &ar->flag)); ar 1909 drivers/net/wireless/ath/ath6kl/init.c spin_lock_bh(&ar->list_lock); ar 1911 drivers/net/wireless/ath/ath6kl/init.c spin_unlock_bh(&ar->list_lock); ar 1913 drivers/net/wireless/ath/ath6kl/init.c clear_bit(WMI_READY, &ar->flag); ar 1915 drivers/net/wireless/ath/ath6kl/init.c if (ar->fw_recovery.enable) ar 1916 drivers/net/wireless/ath/ath6kl/init.c del_timer_sync(&ar->fw_recovery.hb_timer); ar 1927 drivers/net/wireless/ath/ath6kl/init.c ath6kl_wmi_shutdown(ar->wmi); ar 1929 drivers/net/wireless/ath/ath6kl/init.c clear_bit(WMI_ENABLED, &ar->flag); ar 1930 drivers/net/wireless/ath/ath6kl/init.c if (ar->htc_target) { ar 1932 drivers/net/wireless/ath/ath6kl/init.c ath6kl_htc_stop(ar->htc_target); ar 1939 drivers/net/wireless/ath/ath6kl/init.c ath6kl_init_hw_reset(ar); ar 1941 drivers/net/wireless/ath/ath6kl/init.c up(&ar->sem); ar 28 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 38 drivers/net/wireless/ath/ath6kl/main.c if (memcmp(node_addr, ar->sta_list[i].mac, ETH_ALEN) == 0) { ar 39 drivers/net/wireless/ath/ath6kl/main.c conn = &ar->sta_list[i]; ar 47 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl_sta *ath6kl_find_sta_by_aid(struct ath6kl *ar, u8 aid) ar 53 drivers/net/wireless/ath/ath6kl/main.c if (ar->sta_list[ctr].aid == aid) { ar 54 drivers/net/wireless/ath/ath6kl/main.c conn = &ar->sta_list[ctr]; ar 65 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 71 drivers/net/wireless/ath/ath6kl/main.c sta = &ar->sta_list[free_slot]; ar 81 drivers/net/wireless/ath/ath6kl/main.c ar->sta_list_index = ar->sta_list_index | (1 << free_slot); ar 82 drivers/net/wireless/ath/ath6kl/main.c ar->ap_stats.sta[free_slot].aid = cpu_to_le32(aid); ar 86 drivers/net/wireless/ath/ath6kl/main.c static void ath6kl_sta_cleanup(struct ath6kl *ar, u8 i) ar 88 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl_sta *sta = &ar->sta_list[i]; ar 106 drivers/net/wireless/ath/ath6kl/main.c memset(&ar->ap_stats.sta[sta->aid - 1], 0, ar 113 drivers/net/wireless/ath/ath6kl/main.c ar->sta_list_index = ar->sta_list_index & ~(1 << i); ar 117 drivers/net/wireless/ath/ath6kl/main.c static u8 ath6kl_remove_sta(struct ath6kl *ar, u8 *mac, u16 reason) ar 128 drivers/net/wireless/ath/ath6kl/main.c if (!is_zero_ether_addr(ar->sta_list[i].mac)) { ar 129 drivers/net/wireless/ath/ath6kl/main.c ath6kl_sta_cleanup(ar, i); ar 135 drivers/net/wireless/ath/ath6kl/main.c if (memcmp(ar->sta_list[i].mac, mac, ETH_ALEN) == 0) { ar 138 drivers/net/wireless/ath/ath6kl/main.c mac, ar->sta_list[i].aid, reason); ar 139 drivers/net/wireless/ath/ath6kl/main.c ath6kl_sta_cleanup(ar, i); ar 151 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = devt; ar 152 drivers/net/wireless/ath/ath6kl/main.c return ar->ac2ep_map[ac]; ar 155 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl_cookie *ath6kl_alloc_cookie(struct ath6kl *ar) ar 159 drivers/net/wireless/ath/ath6kl/main.c cookie = ar->cookie_list; ar 161 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_list = cookie->arc_list_next; ar 162 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_count--; ar 168 drivers/net/wireless/ath/ath6kl/main.c void ath6kl_cookie_init(struct ath6kl *ar) ar 172 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_list = NULL; ar 173 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_count = 0; ar 175 drivers/net/wireless/ath/ath6kl/main.c memset(ar->cookie_mem, 0, sizeof(ar->cookie_mem)); ar 178 drivers/net/wireless/ath/ath6kl/main.c ath6kl_free_cookie(ar, &ar->cookie_mem[i]); ar 181 drivers/net/wireless/ath/ath6kl/main.c void ath6kl_cookie_cleanup(struct ath6kl *ar) ar 183 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_list = NULL; ar 184 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_count = 0; ar 187 drivers/net/wireless/ath/ath6kl/main.c void ath6kl_free_cookie(struct ath6kl *ar, struct ath6kl_cookie *cookie) ar 191 drivers/net/wireless/ath/ath6kl/main.c if (!ar || !cookie) ar 194 drivers/net/wireless/ath/ath6kl/main.c cookie->arc_list_next = ar->cookie_list; ar 195 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_list = cookie; ar 196 drivers/net/wireless/ath/ath6kl/main.c ar->cookie_count++; ar 203 drivers/net/wireless/ath/ath6kl/main.c int ath6kl_diag_read32(struct ath6kl *ar, u32 address, u32 *value) ar 207 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_hif_diag_read32(ar, address, value); ar 221 drivers/net/wireless/ath/ath6kl/main.c int ath6kl_diag_write32(struct ath6kl *ar, u32 address, __le32 value) ar 225 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_hif_diag_write32(ar, address, value); ar 236 drivers/net/wireless/ath/ath6kl/main.c int ath6kl_diag_read(struct ath6kl *ar, u32 address, void *data, u32 length) ar 245 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_diag_read32(ar, address, &buf[count]); ar 253 drivers/net/wireless/ath/ath6kl/main.c int ath6kl_diag_write(struct ath6kl *ar, u32 address, void *data, u32 length) ar 263 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_diag_write32(ar, address, buf[count]); ar 271 drivers/net/wireless/ath/ath6kl/main.c int ath6kl_read_fwlogs(struct ath6kl *ar) ar 283 drivers/net/wireless/ath/ath6kl/main.c address = TARG_VTOP(ar->target_type, ar 284 drivers/net/wireless/ath/ath6kl/main.c ath6kl_get_hi_item_addr(ar, ar 287 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_diag_read32(ar, address, &debug_hdr_addr); ar 298 drivers/net/wireless/ath/ath6kl/main.c address = TARG_VTOP(ar->target_type, debug_hdr_addr); ar 299 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_diag_read(ar, address, &debug_hdr, sizeof(debug_hdr)); ar 303 drivers/net/wireless/ath/ath6kl/main.c address = TARG_VTOP(ar->target_type, ar 306 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_diag_read(ar, address, &debug_buf, sizeof(debug_buf)); ar 313 drivers/net/wireless/ath/ath6kl/main.c address = TARG_VTOP(ar->target_type, ar 321 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_diag_read(ar, address, ar 326 drivers/net/wireless/ath/ath6kl/main.c ath6kl_debug_fwlog_event(ar, buf, length); ar 329 drivers/net/wireless/ath/ath6kl/main.c address = TARG_VTOP(ar->target_type, ar 331 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_diag_read(ar, address, &debug_buf, ar 361 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_addkey_cmd(vif->ar->wmi, vif->fw_vif_idx, ar 376 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 381 drivers/net/wireless/ath/ath6kl/main.c ik = &ar->ap_mode_bkey; ar 403 drivers/net/wireless/ath/ath6kl/main.c ar->wmi, vif->fw_vif_idx, ik->key_index, ik->key_type, ar 414 drivers/net/wireless/ath/ath6kl/main.c if (ar->last_ch != channel) ar 418 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, NONE_BSS_FILTER, 0); ar 513 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_disconnect_cmd(vif->ar->wmi, vif->fw_vif_idx); ar 528 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = devt; ar 530 drivers/net/wireless/ath/ath6kl/main.c memcpy(ar->mac_addr, datap, ETH_ALEN); ar 534 drivers/net/wireless/ath/ath6kl/main.c ar->mac_addr, sw_ver, abi_ver, cap); ar 536 drivers/net/wireless/ath/ath6kl/main.c ar->version.wlan_ver = sw_ver; ar 537 drivers/net/wireless/ath/ath6kl/main.c ar->version.abi_ver = abi_ver; ar 538 drivers/net/wireless/ath/ath6kl/main.c ar->hw.cap = cap; ar 540 drivers/net/wireless/ath/ath6kl/main.c if (strlen(ar->wiphy->fw_version) == 0) { ar 541 drivers/net/wireless/ath/ath6kl/main.c snprintf(ar->wiphy->fw_version, ar 542 drivers/net/wireless/ath/ath6kl/main.c sizeof(ar->wiphy->fw_version), ar 544 drivers/net/wireless/ath/ath6kl/main.c (ar->version.wlan_ver & 0xf0000000) >> 28, ar 545 drivers/net/wireless/ath/ath6kl/main.c (ar->version.wlan_ver & 0x0f000000) >> 24, ar 546 drivers/net/wireless/ath/ath6kl/main.c (ar->version.wlan_ver & 0x00ff0000) >> 16, ar 547 drivers/net/wireless/ath/ath6kl/main.c (ar->version.wlan_ver & 0x0000ffff)); ar 551 drivers/net/wireless/ath/ath6kl/main.c set_bit(WMI_READY, &ar->flag); ar 552 drivers/net/wireless/ath/ath6kl/main.c wake_up(&ar->event_wq); ar 557 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 565 drivers/net/wireless/ath/ath6kl/main.c if (!ar->usr_bss_filter) { ar 567 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 576 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 588 drivers/net/wireless/ath/ath6kl/main.c ar->fw_capabilities)) ar 589 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_set_ie_cmd(ar->wmi, vif->fw_vif_idx, ar 594 drivers/net/wireless/ath/ath6kl/main.c return ath6kl_wmi_ap_profile_commit(ar->wmi, vif->fw_vif_idx, ar 602 drivers/net/wireless/ath/ath6kl/main.c static void ath6kl_check_ch_switch(struct ath6kl *ar, u16 channel) ar 607 drivers/net/wireless/ath/ath6kl/main.c if (!ar->want_ch_switch) ar 610 drivers/net/wireless/ath/ath6kl/main.c spin_lock_bh(&ar->list_lock); ar 611 drivers/net/wireless/ath/ath6kl/main.c list_for_each_entry(vif, &ar->vif_list, list) { ar 612 drivers/net/wireless/ath/ath6kl/main.c if (ar->want_ch_switch & (1 << vif->fw_vif_idx)) ar 616 drivers/net/wireless/ath/ath6kl/main.c ar->want_ch_switch &= ~(1 << vif->fw_vif_idx); ar 622 drivers/net/wireless/ath/ath6kl/main.c spin_unlock_bh(&ar->list_lock); ar 631 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 643 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_listeninterval_cmd(ar->wmi, vif->fw_vif_idx, ar 645 drivers/net/wireless/ath/ath6kl/main.c ath6kl_check_ch_switch(ar, channel); ar 660 drivers/net/wireless/ath/ath6kl/main.c if ((vif->nw_type == ADHOC_NETWORK) && ar->ibss_ps_enable) { ar 661 drivers/net/wireless/ath/ath6kl/main.c memset(ar->node_map, 0, sizeof(ar->node_map)); ar 662 drivers/net/wireless/ath/ath6kl/main.c ar->node_num = 0; ar 663 drivers/net/wireless/ath/ath6kl/main.c ar->next_ep_id = ENDPOINT_2; ar 666 drivers/net/wireless/ath/ath6kl/main.c if (!ar->usr_bss_filter) { ar 668 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 676 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 684 drivers/net/wireless/ath/ath6kl/main.c sta = ath6kl_find_sta_by_aid(ar, (keyid >> 2)); ar 704 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 739 drivers/net/wireless/ath/ath6kl/main.c stats->tx_ucast_rate = ath6kl_wmi_get_rate(ar->wmi, rate); ar 758 drivers/net/wireless/ath/ath6kl/main.c stats->rx_ucast_rate = ath6kl_wmi_get_rate(ar->wmi, rate); ar 810 drivers/net/wireless/ath/ath6kl/main.c wake_up(&ar->event_wq); ar 822 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 823 drivers/net/wireless/ath/ath6kl/main.c struct wmi_ap_mode_stat *ap = &ar->ap_stats; ar 852 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = (struct ath6kl *) dev; ar 854 drivers/net/wireless/ath/ath6kl/main.c wake_up(&ar->event_wq); ar 859 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = (struct ath6kl *) devt; ar 861 drivers/net/wireless/ath/ath6kl/main.c ar->tx_pwr = tx_pwr; ar 862 drivers/net/wireless/ath/ath6kl/main.c wake_up(&ar->event_wq); ar 870 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 873 drivers/net/wireless/ath/ath6kl/main.c conn = ath6kl_find_sta_by_aid(ar, aid); ar 898 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_send_mgmt_cmd(ar->wmi, vif->fw_vif_idx, ar 918 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, conn->aid, 0); ar 925 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 936 drivers/net/wireless/ath/ath6kl/main.c if (!ar->sta_list_index) ar 939 drivers/net/wireless/ath/ath6kl/main.c spin_lock_bh(&ar->mcastpsq_lock); ar 940 drivers/net/wireless/ath/ath6kl/main.c mcastq_empty = skb_queue_empty(&ar->mcastpsq); ar 941 drivers/net/wireless/ath/ath6kl/main.c spin_unlock_bh(&ar->mcastpsq_lock); ar 949 drivers/net/wireless/ath/ath6kl/main.c spin_lock_bh(&ar->mcastpsq_lock); ar 950 drivers/net/wireless/ath/ath6kl/main.c while ((skb = skb_dequeue(&ar->mcastpsq)) != NULL) { ar 951 drivers/net/wireless/ath/ath6kl/main.c spin_unlock_bh(&ar->mcastpsq_lock); ar 955 drivers/net/wireless/ath/ath6kl/main.c spin_lock_bh(&ar->mcastpsq_lock); ar 957 drivers/net/wireless/ath/ath6kl/main.c spin_unlock_bh(&ar->mcastpsq_lock); ar 962 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, MCAST_AID, 0); ar 969 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 975 drivers/net/wireless/ath/ath6kl/main.c ar->want_ch_switch |= 1 << vif->fw_vif_idx; ar 977 drivers/net/wireless/ath/ath6kl/main.c ar->last_ch = le16_to_cpu(vif->profile.ch); ar 994 drivers/net/wireless/ath/ath6kl/main.c if (!ath6kl_remove_sta(ar, bssid, prot_reason_status)) ar 998 drivers/net/wireless/ath/ath6kl/main.c if (ar->sta_list_index == 0) { ar 999 drivers/net/wireless/ath/ath6kl/main.c spin_lock_bh(&ar->mcastpsq_lock); ar 1000 drivers/net/wireless/ath/ath6kl/main.c skb_queue_purge(&ar->mcastpsq); ar 1001 drivers/net/wireless/ath/ath6kl/main.c spin_unlock_bh(&ar->mcastpsq_lock); ar 1004 drivers/net/wireless/ath/ath6kl/main.c if (test_bit(WMI_READY, &ar->flag)) ar 1005 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, ar 1037 drivers/net/wireless/ath/ath6kl/main.c if (!ar->usr_bss_filter && test_bit(WMI_READY, &ar->flag)) ar 1038 drivers/net/wireless/ath/ath6kl/main.c ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 1052 drivers/net/wireless/ath/ath6kl/main.c ath6kl_check_ch_switch(ar, ar->last_ch); ar 1064 drivers/net/wireless/ath/ath6kl/main.c ar->user_key_ctrl = 0; ar 1070 drivers/net/wireless/ath/ath6kl/main.c ath6kl_tx_data_cleanup(ar); ar 1073 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl_vif *ath6kl_vif_first(struct ath6kl *ar) ar 1077 drivers/net/wireless/ath/ath6kl/main.c spin_lock_bh(&ar->list_lock); ar 1078 drivers/net/wireless/ath/ath6kl/main.c if (list_empty(&ar->vif_list)) { ar 1079 drivers/net/wireless/ath/ath6kl/main.c spin_unlock_bh(&ar->list_lock); ar 1083 drivers/net/wireless/ath/ath6kl/main.c vif = list_first_entry(&ar->vif_list, struct ath6kl_vif, list); ar 1085 drivers/net/wireless/ath/ath6kl/main.c spin_unlock_bh(&ar->list_lock); ar 1123 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = vif->ar; ar 1127 drivers/net/wireless/ath/ath6kl/main.c (ar->rx_meta_ver != WMI_META_VERSION_2)) { ar 1128 drivers/net/wireless/ath/ath6kl/main.c ar->rx_meta_ver = WMI_META_VERSION_2; ar 1129 drivers/net/wireless/ath/ath6kl/main.c err = ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi, ar 1131 drivers/net/wireless/ath/ath6kl/main.c ar->rx_meta_ver, 0, 0); ar 1137 drivers/net/wireless/ath/ath6kl/main.c (ar->rx_meta_ver == WMI_META_VERSION_2)) { ar 1138 drivers/net/wireless/ath/ath6kl/main.c ar->rx_meta_ver = 0; ar 1139 drivers/net/wireless/ath/ath6kl/main.c err = ath6kl_wmi_set_rx_frame_format_cmd(ar->wmi, ar 1141 drivers/net/wireless/ath/ath6kl/main.c ar->rx_meta_ver, 0, 0); ar 1162 drivers/net/wireless/ath/ath6kl/main.c if (!test_bit(WMI_READY, &vif->ar->flag) || ar 1177 drivers/net/wireless/ath/ath6kl/main.c vif->ar->fw_capabilities)) { ar 1178 drivers/net/wireless/ath/ath6kl/main.c mc_all_on = mc_all_on || (vif->ar->state == ATH6KL_STATE_ON); ar 1192 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_wmi_mcast_filter_cmd(vif->ar->wmi, vif->fw_vif_idx, ar 1222 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi, ar 1262 drivers/net/wireless/ath/ath6kl/main.c ret = ath6kl_wmi_add_del_mcast_filter_cmd(vif->ar->wmi, ar 1290 drivers/net/wireless/ath/ath6kl/main.c struct ath6kl *ar = ath6kl_priv(dev); ar 1304 drivers/net/wireless/ath/ath6kl/main.c ar->fw_capabilities)) ar 23 drivers/net/wireless/ath/ath6kl/recovery.c struct ath6kl *ar = container_of(work, struct ath6kl, ar 26 drivers/net/wireless/ath/ath6kl/recovery.c ar->state = ATH6KL_STATE_RECOVERY; ar 28 drivers/net/wireless/ath/ath6kl/recovery.c del_timer_sync(&ar->fw_recovery.hb_timer); ar 30 drivers/net/wireless/ath/ath6kl/recovery.c ath6kl_init_hw_restart(ar); ar 32 drivers/net/wireless/ath/ath6kl/recovery.c ar->state = ATH6KL_STATE_ON; ar 33 drivers/net/wireless/ath/ath6kl/recovery.c clear_bit(WMI_CTRL_EP_FULL, &ar->flag); ar 35 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.err_reason = 0; ar 37 drivers/net/wireless/ath/ath6kl/recovery.c if (ar->fw_recovery.hb_poll) ar 38 drivers/net/wireless/ath/ath6kl/recovery.c mod_timer(&ar->fw_recovery.hb_timer, jiffies + ar 39 drivers/net/wireless/ath/ath6kl/recovery.c msecs_to_jiffies(ar->fw_recovery.hb_poll)); ar 42 drivers/net/wireless/ath/ath6kl/recovery.c void ath6kl_recovery_err_notify(struct ath6kl *ar, enum ath6kl_fw_err reason) ar 44 drivers/net/wireless/ath/ath6kl/recovery.c if (!ar->fw_recovery.enable) ar 50 drivers/net/wireless/ath/ath6kl/recovery.c set_bit(reason, &ar->fw_recovery.err_reason); ar 52 drivers/net/wireless/ath/ath6kl/recovery.c if (!test_bit(RECOVERY_CLEANUP, &ar->flag) && ar 53 drivers/net/wireless/ath/ath6kl/recovery.c ar->state != ATH6KL_STATE_RECOVERY) ar 54 drivers/net/wireless/ath/ath6kl/recovery.c queue_work(ar->ath6kl_wq, &ar->fw_recovery.recovery_work); ar 57 drivers/net/wireless/ath/ath6kl/recovery.c void ath6kl_recovery_hb_event(struct ath6kl *ar, u32 cookie) ar 59 drivers/net/wireless/ath/ath6kl/recovery.c if (cookie == ar->fw_recovery.seq_num) ar 60 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_pending = false; ar 65 drivers/net/wireless/ath/ath6kl/recovery.c struct ath6kl *ar = from_timer(ar, t, fw_recovery.hb_timer); ar 68 drivers/net/wireless/ath/ath6kl/recovery.c if (test_bit(RECOVERY_CLEANUP, &ar->flag) || ar 69 drivers/net/wireless/ath/ath6kl/recovery.c (ar->state == ATH6KL_STATE_RECOVERY)) ar 72 drivers/net/wireless/ath/ath6kl/recovery.c if (ar->fw_recovery.hb_pending) ar 73 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_misscnt++; ar 75 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_misscnt = 0; ar 77 drivers/net/wireless/ath/ath6kl/recovery.c if (ar->fw_recovery.hb_misscnt > ATH6KL_HB_RESP_MISS_THRES) { ar 78 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_misscnt = 0; ar 79 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.seq_num = 0; ar 80 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_pending = false; ar 81 drivers/net/wireless/ath/ath6kl/recovery.c ath6kl_recovery_err_notify(ar, ATH6KL_FW_HB_RESP_FAILURE); ar 85 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.seq_num++; ar 86 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_pending = true; ar 88 drivers/net/wireless/ath/ath6kl/recovery.c err = ath6kl_wmi_get_challenge_resp_cmd(ar->wmi, ar 89 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.seq_num, 0); ar 94 drivers/net/wireless/ath/ath6kl/recovery.c mod_timer(&ar->fw_recovery.hb_timer, jiffies + ar 95 drivers/net/wireless/ath/ath6kl/recovery.c msecs_to_jiffies(ar->fw_recovery.hb_poll)); ar 98 drivers/net/wireless/ath/ath6kl/recovery.c void ath6kl_recovery_init(struct ath6kl *ar) ar 100 drivers/net/wireless/ath/ath6kl/recovery.c struct ath6kl_fw_recovery *recovery = &ar->fw_recovery; ar 102 drivers/net/wireless/ath/ath6kl/recovery.c clear_bit(RECOVERY_CLEANUP, &ar->flag); ar 106 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_pending = false; ar 107 drivers/net/wireless/ath/ath6kl/recovery.c timer_setup(&ar->fw_recovery.hb_timer, ath6kl_recovery_hb_timer, ar 110 drivers/net/wireless/ath/ath6kl/recovery.c if (ar->fw_recovery.hb_poll) ar 111 drivers/net/wireless/ath/ath6kl/recovery.c mod_timer(&ar->fw_recovery.hb_timer, jiffies + ar 112 drivers/net/wireless/ath/ath6kl/recovery.c msecs_to_jiffies(ar->fw_recovery.hb_poll)); ar 115 drivers/net/wireless/ath/ath6kl/recovery.c void ath6kl_recovery_cleanup(struct ath6kl *ar) ar 117 drivers/net/wireless/ath/ath6kl/recovery.c if (!ar->fw_recovery.enable) ar 120 drivers/net/wireless/ath/ath6kl/recovery.c set_bit(RECOVERY_CLEANUP, &ar->flag); ar 122 drivers/net/wireless/ath/ath6kl/recovery.c del_timer_sync(&ar->fw_recovery.hb_timer); ar 123 drivers/net/wireless/ath/ath6kl/recovery.c cancel_work_sync(&ar->fw_recovery.recovery_work); ar 126 drivers/net/wireless/ath/ath6kl/recovery.c void ath6kl_recovery_suspend(struct ath6kl *ar) ar 128 drivers/net/wireless/ath/ath6kl/recovery.c if (!ar->fw_recovery.enable) ar 131 drivers/net/wireless/ath/ath6kl/recovery.c ath6kl_recovery_cleanup(ar); ar 133 drivers/net/wireless/ath/ath6kl/recovery.c if (!ar->fw_recovery.err_reason) ar 137 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.err_reason = 0; ar 138 drivers/net/wireless/ath/ath6kl/recovery.c WARN_ON(ar->state != ATH6KL_STATE_ON); ar 139 drivers/net/wireless/ath/ath6kl/recovery.c ar->state = ATH6KL_STATE_RECOVERY; ar 140 drivers/net/wireless/ath/ath6kl/recovery.c ath6kl_init_hw_restart(ar); ar 141 drivers/net/wireless/ath/ath6kl/recovery.c ar->state = ATH6KL_STATE_ON; ar 144 drivers/net/wireless/ath/ath6kl/recovery.c void ath6kl_recovery_resume(struct ath6kl *ar) ar 146 drivers/net/wireless/ath/ath6kl/recovery.c if (!ar->fw_recovery.enable) ar 149 drivers/net/wireless/ath/ath6kl/recovery.c clear_bit(RECOVERY_CLEANUP, &ar->flag); ar 151 drivers/net/wireless/ath/ath6kl/recovery.c if (!ar->fw_recovery.hb_poll) ar 154 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_pending = false; ar 155 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.seq_num = 0; ar 156 drivers/net/wireless/ath/ath6kl/recovery.c ar->fw_recovery.hb_misscnt = 0; ar 157 drivers/net/wireless/ath/ath6kl/recovery.c mod_timer(&ar->fw_recovery.hb_timer, ar 158 drivers/net/wireless/ath/ath6kl/recovery.c jiffies + msecs_to_jiffies(ar->fw_recovery.hb_poll)); ar 45 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl *ar; ar 78 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_config(struct ath6kl *ar); ar 80 drivers/net/wireless/ath/ath6kl/sdio.c static inline struct ath6kl_sdio *ath6kl_sdio_priv(struct ath6kl *ar) ar 82 drivers/net/wireless/ath/ath6kl/sdio.c return ar->hif_priv; ar 96 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_set_mbox_info(struct ath6kl *ar) ar 98 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_mbox_info *mbox_info = &ar->mbox_info; ar 339 drivers/net/wireless/ath/ath6kl/sdio.c scat_req->complete(ar_sdio->ar->htc_target, scat_req); ar 403 drivers/net/wireless/ath/ath6kl/sdio.c hif_scatter_req_add(ar_sdio->ar, s_req); ar 409 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_read_write_sync(struct ath6kl *ar, u32 addr, u8 *buf, ar 412 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 453 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_sdio_read_write_sync(ar_sdio->ar, req->address, ar 494 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_hif_intr_bh_handler(ar_sdio->ar); ar 503 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_power_on(struct ath6kl *ar) ar 505 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 531 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_sdio_config(ar); ar 543 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_power_off(struct ath6kl *ar) ar 545 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 566 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_write_async(struct ath6kl *ar, u32 address, u8 *buffer, ar 570 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 587 drivers/net/wireless/ath/ath6kl/sdio.c queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work); ar 592 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_irq_enable(struct ath6kl *ar) ar 594 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 607 drivers/net/wireless/ath/ath6kl/sdio.c static bool ath6kl_sdio_is_on_irq(struct ath6kl *ar) ar 609 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 614 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_irq_disable(struct ath6kl *ar) ar 616 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 625 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_sdio_is_on_irq(ar)); ar 639 drivers/net/wireless/ath/ath6kl/sdio.c static struct hif_scatter_req *ath6kl_sdio_scatter_req_get(struct ath6kl *ar) ar 641 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 659 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_scatter_req_add(struct ath6kl *ar, ar 662 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 672 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_async_rw_scatter(struct ath6kl *ar, ar 675 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 692 drivers/net/wireless/ath/ath6kl/sdio.c queue_work(ar->ath6kl_wq, &ar_sdio->wr_async_work); ar 699 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_cleanup_scatter(struct ath6kl *ar) ar 701 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 731 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_enable_scatter(struct ath6kl *ar) ar 733 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 734 drivers/net/wireless/ath/ath6kl/sdio.c struct htc_target *target = ar->htc_target; ar 766 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_sdio_cleanup_scatter(ar); ar 778 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_sdio_cleanup_scatter(ar); ar 794 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_config(struct ath6kl *ar) ar 796 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 833 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_set_sdio_pm_caps(struct ath6kl *ar) ar 835 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 862 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow) ar 864 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 870 drivers/net/wireless/ath/ath6kl/sdio.c if (ar->suspend_mode == WLAN_POWER_STATE_WOW || ar 871 drivers/net/wireless/ath/ath6kl/sdio.c (!ar->suspend_mode && wow)) { ar 872 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_set_sdio_pm_caps(ar); ar 876 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_WOW, wow); ar 881 drivers/net/wireless/ath/ath6kl/sdio.c (!ar->wow_suspend_mode || ar 882 drivers/net/wireless/ath/ath6kl/sdio.c ar->wow_suspend_mode == WLAN_POWER_STATE_DEEP_SLEEP)) ar 885 drivers/net/wireless/ath/ath6kl/sdio.c ar->wow_suspend_mode == WLAN_POWER_STATE_CUT_PWR) ar 891 drivers/net/wireless/ath/ath6kl/sdio.c if (ar->suspend_mode == WLAN_POWER_STATE_DEEP_SLEEP || ar 892 drivers/net/wireless/ath/ath6kl/sdio.c !ar->suspend_mode || try_deepsleep) { ar 914 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_DEEPSLEEP, ar 926 drivers/net/wireless/ath/ath6kl/sdio.c return ath6kl_cfg80211_suspend(ar, ATH6KL_CFG_SUSPEND_CUTPOWER, NULL); ar 929 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_resume(struct ath6kl *ar) ar 931 drivers/net/wireless/ath/ath6kl/sdio.c switch (ar->state) { ar 938 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_sdio_config(ar); ar 960 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_cfg80211_resume(ar); ar 966 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_set_addrwin_reg(struct ath6kl *ar, u32 reg_addr, u32 addr) ar 989 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_sdio_read_write_sync(ar, reg_addr + i, addr_val, ar 1007 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_sdio_read_write_sync(ar, reg_addr, (u8 *)(&addr), ar 1019 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_diag_read32(struct ath6kl *ar, u32 address, u32 *data) ar 1024 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_set_addrwin_reg(ar, WINDOW_READ_ADDR_ADDRESS, ar 1031 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_sdio_read_write_sync(ar, WINDOW_DATA_ADDRESS, ar 1042 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_diag_write32(struct ath6kl *ar, u32 address, ar 1049 drivers/net/wireless/ath/ath6kl/sdio.c status = ath6kl_sdio_read_write_sync(ar, WINDOW_DATA_ADDRESS, ar 1058 drivers/net/wireless/ath/ath6kl/sdio.c return ath6kl_set_addrwin_reg(ar, WINDOW_WRITE_ADDR_ADDRESS, ar 1062 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_bmi_credits(struct ath6kl *ar) ar 1068 drivers/net/wireless/ath/ath6kl/sdio.c ar->bmi.cmd_credits = 0; ar 1074 drivers/net/wireless/ath/ath6kl/sdio.c while (time_before(jiffies, timeout) && !ar->bmi.cmd_credits) { ar 1081 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_sdio_read_write_sync(ar, addr, ar 1082 drivers/net/wireless/ath/ath6kl/sdio.c (u8 *)&ar->bmi.cmd_credits, 4, ar 1093 drivers/net/wireless/ath/ath6kl/sdio.c ar->bmi.cmd_credits &= 0xFF; ar 1096 drivers/net/wireless/ath/ath6kl/sdio.c if (!ar->bmi.cmd_credits) { ar 1104 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_bmi_get_rx_lkahd(struct ath6kl *ar) ar 1112 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_sdio_read_write_sync(ar, ar 1133 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_bmi_write(struct ath6kl *ar, u8 *buf, u32 len) ar 1138 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_sdio_bmi_credits(ar); ar 1142 drivers/net/wireless/ath/ath6kl/sdio.c addr = ar->mbox_info.htc_addr; ar 1144 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_sdio_read_write_sync(ar, addr, buf, len, ar 1154 drivers/net/wireless/ath/ath6kl/sdio.c static int ath6kl_sdio_bmi_read(struct ath6kl *ar, u8 *buf, u32 len) ar 1206 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_bmi_get_rx_lkahd(ar); ar 1211 drivers/net/wireless/ath/ath6kl/sdio.c addr = ar->mbox_info.htc_addr; ar 1212 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_sdio_read_write_sync(ar, addr, buf, len, ar 1223 drivers/net/wireless/ath/ath6kl/sdio.c static void ath6kl_sdio_stop(struct ath6kl *ar) ar 1225 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl_sdio *ar_sdio = ath6kl_sdio_priv(ar); ar 1241 drivers/net/wireless/ath/ath6kl/sdio.c req->scat_req->complete(ar_sdio->ar->htc_target, ar 1312 drivers/net/wireless/ath/ath6kl/sdio.c struct ath6kl *ar; ar 1352 drivers/net/wireless/ath/ath6kl/sdio.c ar = ath6kl_core_create(&ar_sdio->func->dev); ar 1353 drivers/net/wireless/ath/ath6kl/sdio.c if (!ar) { ar 1359 drivers/net/wireless/ath/ath6kl/sdio.c ar_sdio->ar = ar; ar 1360 drivers/net/wireless/ath/ath6kl/sdio.c ar->hif_type = ATH6KL_HIF_TYPE_SDIO; ar 1361 drivers/net/wireless/ath/ath6kl/sdio.c ar->hif_priv = ar_sdio; ar 1362 drivers/net/wireless/ath/ath6kl/sdio.c ar->hif_ops = &ath6kl_sdio_ops; ar 1363 drivers/net/wireless/ath/ath6kl/sdio.c ar->bmi.max_data_size = 256; ar 1365 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_sdio_set_mbox_info(ar); ar 1367 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_sdio_config(ar); ar 1373 drivers/net/wireless/ath/ath6kl/sdio.c ret = ath6kl_core_init(ar, ATH6KL_HTC_TYPE_MBOX); ar 1382 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_core_destroy(ar_sdio->ar); ar 1401 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_stop_txrx(ar_sdio->ar); ar 1404 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_core_cleanup(ar_sdio->ar); ar 1405 drivers/net/wireless/ath/ath6kl/sdio.c ath6kl_core_destroy(ar_sdio->ar); ar 46 drivers/net/wireless/ath/ath6kl/testmode.c void ath6kl_tm_rx_event(struct ath6kl *ar, void *buf, size_t buf_len) ar 53 drivers/net/wireless/ath/ath6kl/testmode.c skb = cfg80211_testmode_alloc_event_skb(ar->wiphy, buf_len, GFP_KERNEL); ar 72 drivers/net/wireless/ath/ath6kl/testmode.c struct ath6kl *ar = wiphy_priv(wiphy); ar 93 drivers/net/wireless/ath/ath6kl/testmode.c ath6kl_wmi_test_cmd(ar->wmi, buf, buf_len); ar 22 drivers/net/wireless/ath/ath6kl/testmode.h void ath6kl_tm_rx_event(struct ath6kl *ar, void *buf, size_t buf_len); ar 28 drivers/net/wireless/ath/ath6kl/testmode.h static inline void ath6kl_tm_rx_event(struct ath6kl *ar, void *buf, ar 45 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = ath6kl_priv(dev); ar 57 drivers/net/wireless/ath/ath6kl/txrx.c for (i = 0; i < ar->node_num; i++) { ar 58 drivers/net/wireless/ath/ath6kl/txrx.c if (memcmp(eth_hdr->h_dest, ar->node_map[i].mac_addr, ar 61 drivers/net/wireless/ath/ath6kl/txrx.c ar->node_map[i].tx_pend++; ar 62 drivers/net/wireless/ath/ath6kl/txrx.c return ar->node_map[i].ep_id; ar 65 drivers/net/wireless/ath/ath6kl/txrx.c if ((ep_map == -1) && !ar->node_map[i].tx_pend) ar 70 drivers/net/wireless/ath/ath6kl/txrx.c ep_map = ar->node_num; ar 71 drivers/net/wireless/ath/ath6kl/txrx.c ar->node_num++; ar 72 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->node_num > MAX_NODE_NUM) ar 76 drivers/net/wireless/ath/ath6kl/txrx.c memcpy(ar->node_map[ep_map].mac_addr, eth_hdr->h_dest, ETH_ALEN); ar 79 drivers/net/wireless/ath/ath6kl/txrx.c if (!ar->tx_pending[i]) { ar 80 drivers/net/wireless/ath/ath6kl/txrx.c ar->node_map[ep_map].ep_id = i; ar 89 drivers/net/wireless/ath/ath6kl/txrx.c ar->node_map[ep_map].ep_id = ar->next_ep_id; ar 90 drivers/net/wireless/ath/ath6kl/txrx.c ar->next_ep_id++; ar 91 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->next_ep_id > ENDPOINT_5) ar 92 drivers/net/wireless/ath/ath6kl/txrx.c ar->next_ep_id = ENDPOINT_2; ar 97 drivers/net/wireless/ath/ath6kl/txrx.c ar->node_map[ep_map].tx_pend++; ar 99 drivers/net/wireless/ath/ath6kl/txrx.c return ar->node_map[ep_map].ep_id; ar 107 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = vif->ar; ar 166 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_wmi_set_apsd_bfrd_traf(ar->wmi, ar 181 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = vif->ar; ar 203 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_wmi_set_pvb_cmd(ar->wmi, ar 215 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = vif->ar; ar 222 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->sta_list[ctr].sta_flags & STA_PS_SLEEP) { ar 236 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->mcastpsq_lock); ar 238 drivers/net/wireless/ath/ath6kl/txrx.c skb_queue_empty(&ar->mcastpsq); ar 239 drivers/net/wireless/ath/ath6kl/txrx.c skb_queue_tail(&ar->mcastpsq, skb); ar 240 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->mcastpsq_lock); ar 248 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_wmi_set_pvb_cmd(ar->wmi, ar 258 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->mcastpsq_lock); ar 259 drivers/net/wireless/ath/ath6kl/txrx.c if (!skb_queue_empty(&ar->mcastpsq)) ar 261 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->mcastpsq_lock); ar 289 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = devt; ar 295 drivers/net/wireless/ath/ath6kl/txrx.c if (WARN_ON_ONCE(ar->state == ATH6KL_STATE_WOW)) { ar 306 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 312 drivers/net/wireless/ath/ath6kl/txrx.c if (test_bit(WMI_CTRL_EP_FULL, &ar->flag) && (eid == ar->ctrl_ep)) { ar 321 drivers/net/wireless/ath/ath6kl/txrx.c cookie = ath6kl_alloc_cookie(ar); ar 325 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 330 drivers/net/wireless/ath/ath6kl/txrx.c ar->tx_pending[eid]++; ar 332 drivers/net/wireless/ath/ath6kl/txrx.c if (eid != ar->ctrl_ep) ar 333 drivers/net/wireless/ath/ath6kl/txrx.c ar->total_tx_data_pend++; ar 335 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 347 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_htc_tx(ar->htc_target, &cookie->htc_pkt); ar 358 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = ath6kl_priv(dev); ar 381 drivers/net/wireless/ath/ath6kl/txrx.c if (WARN_ON_ONCE(ar->state != ATH6KL_STATE_ON)) ar 384 drivers/net/wireless/ath/ath6kl/txrx.c if (!test_bit(WMI_READY, &ar->flag)) ar 393 drivers/net/wireless/ath/ath6kl/txrx.c if (test_bit(WMI_ENABLED, &ar->flag)) { ar 408 drivers/net/wireless/ath/ath6kl/txrx.c if (ath6kl_wmi_dix_2_dot3(ar->wmi, skb)) { ar 427 drivers/net/wireless/ath/ath6kl/txrx.c ret = ath6kl_wmi_data_hdr_add(ar->wmi, skb, ar 439 drivers/net/wireless/ath/ath6kl/txrx.c ar->ibss_ps_enable && test_bit(CONNECTED, &vif->flags)) ar 443 drivers/net/wireless/ath/ath6kl/txrx.c ret = ath6kl_wmi_implicit_create_pstream(ar->wmi, ar 453 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 458 drivers/net/wireless/ath/ath6kl/txrx.c eid = ar->ac2ep_map[ac]; ar 462 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 467 drivers/net/wireless/ath/ath6kl/txrx.c cookie = ath6kl_alloc_cookie(ar); ar 470 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 475 drivers/net/wireless/ath/ath6kl/txrx.c ar->tx_pending[eid]++; ar 476 drivers/net/wireless/ath/ath6kl/txrx.c ar->total_tx_data_pend++; ar 478 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 511 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_htc_tx(ar->htc_target, &cookie->htc_pkt); ar 527 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = devt; ar 531 drivers/net/wireless/ath/ath6kl/txrx.c eid = ar->ac2ep_map[traffic_class]; ar 533 drivers/net/wireless/ath/ath6kl/txrx.c if (!test_bit(WMI_ENABLED, &ar->flag)) ar 536 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 538 drivers/net/wireless/ath/ath6kl/txrx.c ar->ac_stream_active[traffic_class] = active; ar 545 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->ac_stream_pri_map[traffic_class] > ar 546 drivers/net/wireless/ath/ath6kl/txrx.c ar->hiac_stream_active_pri) ar 548 drivers/net/wireless/ath/ath6kl/txrx.c ar->hiac_stream_active_pri = ar 549 drivers/net/wireless/ath/ath6kl/txrx.c ar->ac_stream_pri_map[traffic_class]; ar 556 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->hiac_stream_active_pri == ar 557 drivers/net/wireless/ath/ath6kl/txrx.c ar->ac_stream_pri_map[traffic_class]) { ar 563 drivers/net/wireless/ath/ath6kl/txrx.c ar->hiac_stream_active_pri = 0; ar 566 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->ac_stream_active[i] && ar 567 drivers/net/wireless/ath/ath6kl/txrx.c (ar->ac_stream_pri_map[i] > ar 568 drivers/net/wireless/ath/ath6kl/txrx.c ar->hiac_stream_active_pri)) ar 573 drivers/net/wireless/ath/ath6kl/txrx.c ar->hiac_stream_active_pri = ar 574 drivers/net/wireless/ath/ath6kl/txrx.c ar->ac_stream_pri_map[i]; ar 579 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 583 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_htc_activity_changed(ar->htc_target, eid, active); ar 589 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = target->dev->ar; ar 594 drivers/net/wireless/ath/ath6kl/txrx.c if (endpoint == ar->ctrl_ep) { ar 601 drivers/net/wireless/ath/ath6kl/txrx.c set_bit(WMI_CTRL_EP_FULL, &ar->flag); ar 603 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_recovery_err_notify(ar, ATH6KL_FW_EP_FULL); ar 614 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->ac_stream_pri_map[ar->ep2ac_map[endpoint]] < ar 615 drivers/net/wireless/ath/ath6kl/txrx.c ar->hiac_stream_active_pri && ar 616 drivers/net/wireless/ath/ath6kl/txrx.c ar->cookie_count <= ar 625 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->list_lock); ar 626 drivers/net/wireless/ath/ath6kl/txrx.c list_for_each_entry(vif, &ar->vif_list, list) { ar 629 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->list_lock); ar 637 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->list_lock); ar 646 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = vif->ar; ar 652 drivers/net/wireless/ath/ath6kl/txrx.c if (!ar->ibss_ps_enable) ar 655 drivers/net/wireless/ath/ath6kl/txrx.c if (eid == ar->ctrl_ep) ar 662 drivers/net/wireless/ath/ath6kl/txrx.c ar->node_map[map_no].tx_pend--; ar 664 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->node_map[map_no].tx_pend) ar 667 drivers/net/wireless/ath/ath6kl/txrx.c if (map_no != (ar->node_num - 1)) ar 670 drivers/net/wireless/ath/ath6kl/txrx.c for (i = ar->node_num; i > 0; i--) { ar 671 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->node_map[i - 1].tx_pend) ar 674 drivers/net/wireless/ath/ath6kl/txrx.c memset(&ar->node_map[i - 1], 0, ar 676 drivers/net/wireless/ath/ath6kl/txrx.c ar->node_num--; ar 683 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = target->dev->ar; ar 699 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 722 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_free_cookie(ar, ath6kl_cookie); ar 729 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_free_cookie(ar, ath6kl_cookie); ar 733 drivers/net/wireless/ath/ath6kl/txrx.c ar->tx_pending[eid]--; ar 735 drivers/net/wireless/ath/ath6kl/txrx.c if (eid != ar->ctrl_ep) ar 736 drivers/net/wireless/ath/ath6kl/txrx.c ar->total_tx_data_pend--; ar 738 drivers/net/wireless/ath/ath6kl/txrx.c if (eid == ar->ctrl_ep) { ar 739 drivers/net/wireless/ath/ath6kl/txrx.c if (test_bit(WMI_CTRL_EP_FULL, &ar->flag)) ar 740 drivers/net/wireless/ath/ath6kl/txrx.c clear_bit(WMI_CTRL_EP_FULL, &ar->flag); ar 742 drivers/net/wireless/ath/ath6kl/txrx.c if (ar->tx_pending[eid] == 0) ar 746 drivers/net/wireless/ath/ath6kl/txrx.c if (eid == ar->ctrl_ep) { ar 754 drivers/net/wireless/ath/ath6kl/txrx.c vif = ath6kl_get_vif_by_index(ar, if_idx); ar 756 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_free_cookie(ar, ath6kl_cookie); ar 787 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_free_cookie(ar, ath6kl_cookie); ar 793 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 798 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->list_lock); ar 799 drivers/net/wireless/ath/ath6kl/txrx.c list_for_each_entry(vif, &ar->vif_list, list) { ar 802 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->list_lock); ar 804 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->list_lock); ar 807 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->list_lock); ar 810 drivers/net/wireless/ath/ath6kl/txrx.c wake_up(&ar->event_wq); ar 815 drivers/net/wireless/ath/ath6kl/txrx.c void ath6kl_tx_data_cleanup(struct ath6kl *ar) ar 821 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_htc_flush_txep(ar->htc_target, ar->ac2ep_map[i], ar 876 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = target->dev->ar; ar 884 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_htc_get_rxbuf_num(ar->htc_target, endpoint); ar 913 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_htc_add_rxbuf_multiple(ar->htc_target, &queue); ar 916 drivers/net/wireless/ath/ath6kl/txrx.c void ath6kl_refill_amsdu_rxbufs(struct ath6kl *ar, int count) ar 936 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 937 drivers/net/wireless/ath/ath6kl/txrx.c list_add_tail(&packet->list, &ar->amsdu_rx_buffer_queue); ar 938 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 951 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = target->dev->ar; ar 963 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 965 drivers/net/wireless/ath/ath6kl/txrx.c if (list_empty(&ar->amsdu_rx_buffer_queue)) { ar 966 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 971 drivers/net/wireless/ath/ath6kl/txrx.c packet = list_first_entry(&ar->amsdu_rx_buffer_queue, ar 974 drivers/net/wireless/ath/ath6kl/txrx.c list_for_each(pkt_pos, &ar->amsdu_rx_buffer_queue) ar 978 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 985 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_refill_amsdu_rxbufs(ar, refill_cnt); ar 1235 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = vif->ar; ar 1293 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_wmi_set_apsd_bfrd_traf(ar->wmi, ar 1303 drivers/net/wireless/ath/ath6kl/txrx.c struct ath6kl *ar = target->dev->ar; ar 1324 drivers/net/wireless/ath/ath6kl/txrx.c __func__, ar, ept, skb, packet->buf, ar 1338 drivers/net/wireless/ath/ath6kl/txrx.c if (ept == ar->ctrl_ep) { ar 1339 drivers/net/wireless/ath/ath6kl/txrx.c if (test_bit(WMI_ENABLED, &ar->flag)) { ar 1340 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_check_wow_status(ar); ar 1341 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_wmi_control_rx(ar->wmi, skb); ar 1351 drivers/net/wireless/ath/ath6kl/txrx.c vif = ath6kl_get_vif_by_index(ar, if_idx); ar 1370 drivers/net/wireless/ath/ath6kl/txrx.c if (!test_bit(WMI_ENABLED, &ar->flag)) { ar 1377 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_check_wow_status(ar); ar 1472 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_wmi_send_mgmt_cmd(ar->wmi, ar 1501 drivers/net/wireless/ath/ath6kl/txrx.c ar->wmi, ar 1506 drivers/net/wireless/ath/ath6kl/txrx.c ath6kl_wmi_set_pvb_cmd(ar->wmi, vif->fw_vif_idx, ar 1547 drivers/net/wireless/ath/ath6kl/txrx.c status = ath6kl_wmi_dot11_hdr_remove(ar->wmi, skb); ar 1582 drivers/net/wireless/ath/ath6kl/txrx.c if (conn && ar->intra_bss) { ar 1585 drivers/net/wireless/ath/ath6kl/txrx.c } else if (conn && !ar->intra_bss) { ar 1709 drivers/net/wireless/ath/ath6kl/txrx.c sta = ath6kl_find_sta_by_aid(vif->ar, aid); ar 1802 drivers/net/wireless/ath/ath6kl/txrx.c sta = ath6kl_find_sta_by_aid(vif->ar, aid); ar 1839 drivers/net/wireless/ath/ath6kl/txrx.c void ath6kl_cleanup_amsdu_rxbufs(struct ath6kl *ar) ar 1843 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 1844 drivers/net/wireless/ath/ath6kl/txrx.c if (list_empty(&ar->amsdu_rx_buffer_queue)) { ar 1845 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 1849 drivers/net/wireless/ath/ath6kl/txrx.c list_for_each_entry_safe(packet, tmp_pkt, &ar->amsdu_rx_buffer_queue, ar 1852 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 1854 drivers/net/wireless/ath/ath6kl/txrx.c spin_lock_bh(&ar->lock); ar 1857 drivers/net/wireless/ath/ath6kl/txrx.c spin_unlock_bh(&ar->lock); ar 73 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl *ar; ar 81 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl *ar; ar 176 drivers/net/wireless/ath/ath6kl/usb.c static inline struct ath6kl_usb *ath6kl_usb_priv(struct ath6kl *ar) ar 178 drivers/net/wireless/ath/ath6kl/usb.c return ar->hif_priv; ar 594 drivers/net/wireless/ath/ath6kl/usb.c ath6kl_core_tx_complete(ar_usb->ar, skb); ar 598 drivers/net/wireless/ath/ath6kl/usb.c ath6kl_core_rx_complete(ar_usb->ar, skb, ar 676 drivers/net/wireless/ath/ath6kl/usb.c ath6kl_stop_txrx(ar_usb->ar); ar 680 drivers/net/wireless/ath/ath6kl/usb.c ath6kl_core_cleanup(ar_usb->ar); ar 685 drivers/net/wireless/ath/ath6kl/usb.c static void hif_start(struct ath6kl *ar) ar 687 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *device = ath6kl_usb_priv(ar); ar 700 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_send(struct ath6kl *ar, u8 PipeID, ar 703 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *device = ath6kl_usb_priv(ar); ar 776 drivers/net/wireless/ath/ath6kl/usb.c static void hif_stop(struct ath6kl *ar) ar 778 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *device = ath6kl_usb_priv(ar); ar 783 drivers/net/wireless/ath/ath6kl/usb.c static void ath6kl_usb_get_default_pipe(struct ath6kl *ar, ar 790 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_map_service_pipe(struct ath6kl *ar, u16 svc_id, ar 814 drivers/net/wireless/ath/ath6kl/usb.c ar->fw_capabilities)) ar 827 drivers/net/wireless/ath/ath6kl/usb.c ar->fw_capabilities)) ar 845 drivers/net/wireless/ath/ath6kl/usb.c static u16 ath6kl_usb_get_free_queue_number(struct ath6kl *ar, u8 pipe_id) ar 847 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *device = ath6kl_usb_priv(ar); ar 852 drivers/net/wireless/ath/ath6kl/usb.c static void hif_detach_htc(struct ath6kl *ar) ar 854 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *device = ath6kl_usb_priv(ar); ar 950 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_diag_read32(struct ath6kl *ar, u32 address, u32 *data) ar 952 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *ar_usb = ar->hif_priv; ar 985 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_diag_write32(struct ath6kl *ar, u32 address, __le32 data) ar 987 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *ar_usb = ar->hif_priv; ar 1011 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_bmi_read(struct ath6kl *ar, u8 *buf, u32 len) ar 1013 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *ar_usb = ar->hif_priv; ar 1029 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_bmi_write(struct ath6kl *ar, u8 *buf, u32 len) ar 1031 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl_usb *ar_usb = ar->hif_priv; ar 1047 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_power_on(struct ath6kl *ar) ar 1049 drivers/net/wireless/ath/ath6kl/usb.c hif_start(ar); ar 1053 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_power_off(struct ath6kl *ar) ar 1055 drivers/net/wireless/ath/ath6kl/usb.c hif_detach_htc(ar); ar 1059 drivers/net/wireless/ath/ath6kl/usb.c static void ath6kl_usb_stop(struct ath6kl *ar) ar 1061 drivers/net/wireless/ath/ath6kl/usb.c hif_stop(ar); ar 1064 drivers/net/wireless/ath/ath6kl/usb.c static void ath6kl_usb_cleanup_scatter(struct ath6kl *ar) ar 1072 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_suspend(struct ath6kl *ar, struct cfg80211_wowlan *wow) ar 1080 drivers/net/wireless/ath/ath6kl/usb.c static int ath6kl_usb_resume(struct ath6kl *ar) ar 1110 drivers/net/wireless/ath/ath6kl/usb.c struct ath6kl *ar; ar 1140 drivers/net/wireless/ath/ath6kl/usb.c ar = ath6kl_core_create(&ar_usb->udev->dev); ar 1141 drivers/net/wireless/ath/ath6kl/usb.c if (ar == NULL) { ar 1147 drivers/net/wireless/ath/ath6kl/usb.c ar->hif_priv = ar_usb; ar 1148 drivers/net/wireless/ath/ath6kl/usb.c ar->hif_type = ATH6KL_HIF_TYPE_USB; ar 1149 drivers/net/wireless/ath/ath6kl/usb.c ar->hif_ops = &ath6kl_usb_ops; ar 1150 drivers/net/wireless/ath/ath6kl/usb.c ar->mbox_info.block_size = 16; ar 1151 drivers/net/wireless/ath/ath6kl/usb.c ar->bmi.max_data_size = 252; ar 1153 drivers/net/wireless/ath/ath6kl/usb.c ar_usb->ar = ar; ar 1155 drivers/net/wireless/ath/ath6kl/usb.c ret = ath6kl_core_init(ar, ATH6KL_HTC_TYPE_PIPE); ar 1164 drivers/net/wireless/ath/ath6kl/usb.c ath6kl_core_destroy(ar); ar 136 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl_vif *ath6kl_get_vif_by_index(struct ath6kl *ar, u8 if_idx) ar 140 drivers/net/wireless/ath/ath6kl/wmi.c if (WARN_ON(if_idx > (ar->vif_max - 1))) ar 144 drivers/net/wireless/ath/ath6kl/wmi.c spin_lock_bh(&ar->list_lock); ar 145 drivers/net/wireless/ath/ath6kl/wmi.c list_for_each_entry(vif, &ar->vif_list, list) { ar 151 drivers/net/wireless/ath/ath6kl/wmi.c spin_unlock_bh(&ar->list_lock); ar 510 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 521 drivers/net/wireless/ath/ath6kl/wmi.c chan = ieee80211_get_channel(ar->wiphy, freq); ar 543 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 555 drivers/net/wireless/ath/ath6kl/wmi.c chan = ieee80211_get_channel(ar->wiphy, freq); ar 1083 drivers/net/wireless/ath/ath6kl/wmi.c cfg80211_sched_scan_results(vif->ar->wiphy, 0); ar 1092 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 1115 drivers/net/wireless/ath/ath6kl/wmi.c ath6kl_wmi_bssfilter_cmd(ar->wmi, vif->fw_vif_idx, ar 1119 drivers/net/wireless/ath/ath6kl/wmi.c channel = ieee80211_get_channel(ar->wiphy, le16_to_cpu(bih->ch)); ar 1138 drivers/net/wireless/ath/ath6kl/wmi.c bss = cfg80211_inform_bss(ar->wiphy, channel, ar 1149 drivers/net/wireless/ath/ath6kl/wmi.c cfg80211_put_bss(ar->wiphy, bss); ar 1594 drivers/net/wireless/ath/ath6kl/wmi.c vif->ar->fw_capabilities)) ar 2019 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 2024 drivers/net/wireless/ath/ath6kl/wmi.c ar->fw_capabilities)) { ar 2057 drivers/net/wireless/ath/ath6kl/wmi.c sband = ar->wiphy->bands[band]; ar 2871 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 2874 drivers/net/wireless/ath/ath6kl/wmi.c ar->fw_capabilities)) ar 2916 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 2919 drivers/net/wireless/ath/ath6kl/wmi.c wake_up(&ar->event_wq); ar 3317 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 3331 drivers/net/wireless/ath/ath6kl/wmi.c ar->fw_capabilities)) { ar 3726 drivers/net/wireless/ath/ath6kl/wmi.c struct ath6kl *ar = wmi->parent_dev; ar 3729 drivers/net/wireless/ath/ath6kl/wmi.c ar->fw_capabilities)) { ar 3736 drivers/net/wireless/ath/ath6kl/wmi.c status = __ath6kl_wmi_send_mgmt_cmd(ar->wmi, if_idx, id, freq, ar 3740 drivers/net/wireless/ath/ath6kl/wmi.c status = ath6kl_wmi_send_action_cmd(ar->wmi, if_idx, id, freq, ar 2726 drivers/net/wireless/ath/ath6kl/wmi.h struct ath6kl_vif *ath6kl_get_vif_by_index(struct ath6kl *ar, u8 if_idx); ar 198 drivers/net/wireless/ath/carl9170/carl9170.h struct ar9170 *ar; ar 495 drivers/net/wireless/ath/carl9170/carl9170.h struct ar9170 *ar; ar 504 drivers/net/wireless/ath/carl9170/carl9170.h static inline void __carl9170_set_state(struct ar9170 *ar, ar 507 drivers/net/wireless/ath/carl9170/carl9170.h ar->state = newstate; ar 510 drivers/net/wireless/ath/carl9170/carl9170.h static inline void carl9170_set_state(struct ar9170 *ar, ar 515 drivers/net/wireless/ath/carl9170/carl9170.h spin_lock_irqsave(&ar->state_lock, flags); ar 516 drivers/net/wireless/ath/carl9170/carl9170.h __carl9170_set_state(ar, newstate); ar 517 drivers/net/wireless/ath/carl9170/carl9170.h spin_unlock_irqrestore(&ar->state_lock, flags); ar 520 drivers/net/wireless/ath/carl9170/carl9170.h static inline void carl9170_set_state_when(struct ar9170 *ar, ar 525 drivers/net/wireless/ath/carl9170/carl9170.h spin_lock_irqsave(&ar->state_lock, flags); ar 526 drivers/net/wireless/ath/carl9170/carl9170.h if (CHK_DEV_STATE(ar, min)) ar 527 drivers/net/wireless/ath/carl9170/carl9170.h __carl9170_set_state(ar, newstate); ar 528 drivers/net/wireless/ath/carl9170/carl9170.h spin_unlock_irqrestore(&ar->state_lock, flags); ar 533 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_register(struct ar9170 *ar); ar 534 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_unregister(struct ar9170 *ar); ar 535 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_free(struct ar9170 *ar); ar 536 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_restart(struct ar9170 *ar, const enum carl9170_restart_reasons r); ar 537 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_ps_check(struct ar9170 *ar); ar 540 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_usb_open(struct ar9170 *ar); ar 541 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_usb_stop(struct ar9170 *ar); ar 542 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_usb_tx(struct ar9170 *ar, struct sk_buff *skb); ar 543 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_usb_handle_tx_err(struct ar9170 *ar); ar 544 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_exec_cmd(struct ar9170 *ar, const enum carl9170_cmd_oids, ar 546 drivers/net/wireless/ath/carl9170/carl9170.h int __carl9170_exec_cmd(struct ar9170 *ar, struct carl9170_cmd *cmd, ar 548 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_usb_restart(struct ar9170 *ar); ar 549 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_usb_reset(struct ar9170 *ar); ar 552 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_init_mac(struct ar9170 *ar); ar 553 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_qos(struct ar9170 *ar); ar 554 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_update_multicast(struct ar9170 *ar, const u64 mc_hast); ar 555 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_mod_virtual_mac(struct ar9170 *ar, const unsigned int id, ar 557 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_operating_mode(struct ar9170 *ar); ar 558 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_beacon_timers(struct ar9170 *ar); ar 559 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_dyn_sifs_ack(struct ar9170 *ar); ar 560 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_rts_cts_rate(struct ar9170 *ar); ar 561 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_ampdu_settings(struct ar9170 *ar); ar 562 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_slot_time(struct ar9170 *ar); ar 563 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_mac_rates(struct ar9170 *ar); ar 564 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_hwretry_limit(struct ar9170 *ar, const u32 max_retry); ar 565 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_upload_key(struct ar9170 *ar, const u8 id, const u8 *mac, ar 567 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_disable_key(struct ar9170 *ar, const u8 id); ar 568 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_mac_tpc(struct ar9170 *ar, struct ieee80211_channel *channel); ar 571 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_rx(struct ar9170 *ar, void *buf, unsigned int len); ar 572 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_handle_command_response(struct ar9170 *ar, void *buf, u32 len); ar 579 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_tx_process_status(struct ar9170 *ar, ar 581 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_tx_status(struct ar9170 *ar, struct sk_buff *skb, ar 583 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_tx_callback(struct ar9170 *ar, struct sk_buff *skb); ar 584 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_tx_drop(struct ar9170 *ar, struct sk_buff *skb); ar 585 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_tx_scheduler(struct ar9170 *ar); ar 588 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_update_beacon(struct ar9170 *ar, const bool submit); ar 592 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_led_register(struct ar9170 *ar); ar 593 drivers/net/wireless/ath/carl9170/carl9170.h void carl9170_led_unregister(struct ar9170 *ar); ar 595 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_led_init(struct ar9170 *ar); ar 596 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_led_set_state(struct ar9170 *ar, const u32 led_state); ar 599 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_set_channel(struct ar9170 *ar, struct ieee80211_channel *channel, ar 601 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_get_noisefloor(struct ar9170 *ar); ar 604 drivers/net/wireless/ath/carl9170/carl9170.h int carl9170_parse_firmware(struct ar9170 *ar); ar 648 drivers/net/wireless/ath/carl9170/carl9170.h static inline struct ieee80211_vif *carl9170_get_main_vif(struct ar9170 *ar) ar 652 drivers/net/wireless/ath/carl9170/carl9170.h list_for_each_entry_rcu(cvif, &ar->vif_list, list) { ar 660 drivers/net/wireless/ath/carl9170/carl9170.h static inline bool is_main_vif(struct ar9170 *ar, struct ieee80211_vif *vif) ar 665 drivers/net/wireless/ath/carl9170/carl9170.h ret = (carl9170_get_main_vif(ar) == vif); ar 43 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_write_reg(struct ar9170 *ar, const u32 reg, const u32 val) ar 51 drivers/net/wireless/ath/carl9170/cmd.c err = carl9170_exec_cmd(ar, CARL9170_CMD_WREG, sizeof(buf), ar 55 drivers/net/wireless/ath/carl9170/cmd.c wiphy_err(ar->hw->wiphy, "writing reg %#x " ar 62 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_read_mreg(struct ar9170 *ar, const int nregs, ar 76 drivers/net/wireless/ath/carl9170/cmd.c err = carl9170_exec_cmd(ar, CARL9170_CMD_RREG, ar 81 drivers/net/wireless/ath/carl9170/cmd.c wiphy_err(ar->hw->wiphy, "reading regs failed (%d)\n", ar 94 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_read_reg(struct ar9170 *ar, u32 reg, u32 *val) ar 96 drivers/net/wireless/ath/carl9170/cmd.c return carl9170_read_mreg(ar, 1, ®, val); ar 99 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_echo_test(struct ar9170 *ar, const u32 v) ar 104 drivers/net/wireless/ath/carl9170/cmd.c err = carl9170_exec_cmd(ar, CARL9170_CMD_ECHO, ar 111 drivers/net/wireless/ath/carl9170/cmd.c wiphy_info(ar->hw->wiphy, "wrong echo %x != %x", v, echores); ar 118 drivers/net/wireless/ath/carl9170/cmd.c struct carl9170_cmd *carl9170_cmd_buf(struct ar9170 *ar, ar 132 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_reboot(struct ar9170 *ar) ar 137 drivers/net/wireless/ath/carl9170/cmd.c cmd = carl9170_cmd_buf(ar, CARL9170_CMD_REBOOT_ASYNC, 0); ar 141 drivers/net/wireless/ath/carl9170/cmd.c err = __carl9170_exec_cmd(ar, cmd, true); ar 145 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_mac_reset(struct ar9170 *ar) ar 147 drivers/net/wireless/ath/carl9170/cmd.c return carl9170_exec_cmd(ar, CARL9170_CMD_SWRST, ar 151 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_bcn_ctrl(struct ar9170 *ar, const unsigned int vif_id, ar 156 drivers/net/wireless/ath/carl9170/cmd.c cmd = carl9170_cmd_buf(ar, CARL9170_CMD_BCN_CTRL_ASYNC, ar 166 drivers/net/wireless/ath/carl9170/cmd.c return __carl9170_exec_cmd(ar, cmd, true); ar 169 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_collect_tally(struct ar9170 *ar) ar 176 drivers/net/wireless/ath/carl9170/cmd.c err = carl9170_exec_cmd(ar, CARL9170_CMD_TALLY, 0, NULL, ar 183 drivers/net/wireless/ath/carl9170/cmd.c ar->tally.active += le32_to_cpu(tally.active) / tick; ar 184 drivers/net/wireless/ath/carl9170/cmd.c ar->tally.cca += le32_to_cpu(tally.cca) / tick; ar 185 drivers/net/wireless/ath/carl9170/cmd.c ar->tally.tx_time += le32_to_cpu(tally.tx_time) / tick; ar 186 drivers/net/wireless/ath/carl9170/cmd.c ar->tally.rx_total += le32_to_cpu(tally.rx_total); ar 187 drivers/net/wireless/ath/carl9170/cmd.c ar->tally.rx_overrun += le32_to_cpu(tally.rx_overrun); ar 189 drivers/net/wireless/ath/carl9170/cmd.c if (ar->channel) { ar 190 drivers/net/wireless/ath/carl9170/cmd.c info = &ar->survey[ar->channel->hw_value]; ar 191 drivers/net/wireless/ath/carl9170/cmd.c info->time = ar->tally.active; ar 192 drivers/net/wireless/ath/carl9170/cmd.c info->time_busy = ar->tally.cca; ar 193 drivers/net/wireless/ath/carl9170/cmd.c info->time_tx = ar->tally.tx_time; ar 202 drivers/net/wireless/ath/carl9170/cmd.c int carl9170_powersave(struct ar9170 *ar, const bool ps) ar 207 drivers/net/wireless/ath/carl9170/cmd.c cmd = carl9170_cmd_buf(ar, CARL9170_CMD_PSM_ASYNC, ar 221 drivers/net/wireless/ath/carl9170/cmd.c return __carl9170_exec_cmd(ar, cmd, true); ar 45 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_write_reg(struct ar9170 *ar, const u32 reg, const u32 val); ar 46 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_read_reg(struct ar9170 *ar, const u32 reg, u32 *val); ar 47 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_read_mreg(struct ar9170 *ar, const int nregs, ar 49 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_echo_test(struct ar9170 *ar, u32 v); ar 50 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_reboot(struct ar9170 *ar); ar 51 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_mac_reset(struct ar9170 *ar); ar 52 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_powersave(struct ar9170 *ar, const bool power_on); ar 53 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_collect_tally(struct ar9170 *ar); ar 54 drivers/net/wireless/ath/carl9170/cmd.h int carl9170_bcn_ctrl(struct ar9170 *ar, const unsigned int vif_id, ar 57 drivers/net/wireless/ath/carl9170/cmd.h static inline int carl9170_flush_cab(struct ar9170 *ar, ar 60 drivers/net/wireless/ath/carl9170/cmd.h return carl9170_bcn_ctrl(ar, vif_id, CARL9170_BCN_CTRL_DRAIN, 0, 0); ar 63 drivers/net/wireless/ath/carl9170/cmd.h static inline int carl9170_rx_filter(struct ar9170 *ar, ar 68 drivers/net/wireless/ath/carl9170/cmd.h return carl9170_exec_cmd(ar, CARL9170_CMD_RX_FILTER, ar 73 drivers/net/wireless/ath/carl9170/cmd.h struct carl9170_cmd *carl9170_cmd_buf(struct ar9170 *ar, ar 82 drivers/net/wireless/ath/carl9170/cmd.h #define carl9170_regwrite_begin(ar) \ ar 85 drivers/net/wireless/ath/carl9170/cmd.h struct ar9170 *__ar = ar; ar 54 drivers/net/wireless/ath/carl9170/debug.c char *(*read)(struct ar9170 *ar, char *buf, size_t bufsize, ar 66 drivers/net/wireless/ath/carl9170/debug.c struct ar9170 *ar; ar 74 drivers/net/wireless/ath/carl9170/debug.c ar = file->private_data; ar 76 drivers/net/wireless/ath/carl9170/debug.c if (!ar) ar 90 drivers/net/wireless/ath/carl9170/debug.c mutex_lock(&ar->mutex); ar 91 drivers/net/wireless/ath/carl9170/debug.c if (!CHK_DEV_STATE(ar, dfops->req_dev_state)) { ar 97 drivers/net/wireless/ath/carl9170/debug.c res_buf = dfops->read(ar, buf, dfops->read_bufsize, &ret); ar 109 drivers/net/wireless/ath/carl9170/debug.c mutex_unlock(&ar->mutex); ar 117 drivers/net/wireless/ath/carl9170/debug.c struct ar9170 *ar; ar 127 drivers/net/wireless/ath/carl9170/debug.c ar = file->private_data; ar 129 drivers/net/wireless/ath/carl9170/debug.c if (!ar) ar 146 drivers/net/wireless/ath/carl9170/debug.c if (mutex_trylock(&ar->mutex) == 0) { ar 151 drivers/net/wireless/ath/carl9170/debug.c if (!CHK_DEV_STATE(ar, dfops->req_dev_state)) { ar 156 drivers/net/wireless/ath/carl9170/debug.c err = dfops->write(ar, buf, count); ar 161 drivers/net/wireless/ath/carl9170/debug.c mutex_unlock(&ar->mutex); ar 207 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_ ##name ## _read(struct ar9170 *ar, \ ar 216 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_mem_usage_read(struct ar9170 *ar, char *buf, ar 219 drivers/net/wireless/ath/carl9170/debug.c spin_lock_bh(&ar->mem_lock); ar 222 drivers/net/wireless/ath/carl9170/debug.c ar->fw.mem_blocks, ar->mem_bitmap); ar 225 drivers/net/wireless/ath/carl9170/debug.c bitmap_weight(ar->mem_bitmap, ar->fw.mem_blocks), ar 226 drivers/net/wireless/ath/carl9170/debug.c ar->fw.mem_blocks, atomic_read(&ar->mem_allocs)); ar 229 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->mem_free_blocks), ar 230 drivers/net/wireless/ath/carl9170/debug.c (atomic_read(&ar->mem_free_blocks) * ar->fw.mem_block_size) / 1024, ar 231 drivers/net/wireless/ath/carl9170/debug.c (ar->fw.mem_blocks * ar->fw.mem_block_size) / 1024); ar 233 drivers/net/wireless/ath/carl9170/debug.c spin_unlock_bh(&ar->mem_lock); ar 239 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_qos_stat_read(struct ar9170 *ar, char *buf, ar 248 drivers/net/wireless/ath/carl9170/debug.c spin_lock_bh(&ar->tx_stats_lock); ar 253 drivers/net/wireless/ath/carl9170/debug.c ar->tx_stats[0].len, ar->tx_stats[0].limit, ar 254 drivers/net/wireless/ath/carl9170/debug.c ar->tx_stats[1].len, ar->tx_stats[1].limit, ar 255 drivers/net/wireless/ath/carl9170/debug.c ar->tx_stats[2].len, ar->tx_stats[2].limit, ar 256 drivers/net/wireless/ath/carl9170/debug.c ar->tx_stats[3].len, ar->tx_stats[3].limit); ar 261 drivers/net/wireless/ath/carl9170/debug.c ar->tx_stats[0].count, ar->tx_stats[1].count, ar 262 drivers/net/wireless/ath/carl9170/debug.c ar->tx_stats[2].count, ar->tx_stats[3].count); ar 264 drivers/net/wireless/ath/carl9170/debug.c spin_unlock_bh(&ar->tx_stats_lock); ar 270 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_pending[0]), ar 271 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_status[0]), ar 272 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_pending[1]), ar 273 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_status[1]), ar 274 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_pending[2]), ar 275 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_status[2]), ar 276 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_pending[3]), ar 277 drivers/net/wireless/ath/carl9170/debug.c skb_queue_len(&ar->tx_status[3])); ar 283 drivers/net/wireless/ath/carl9170/debug.c static void carl9170_debugfs_format_frame(struct ar9170 *ar, ar 300 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_ampdu_state_read(struct ar9170 *ar, char *buf, ar 309 drivers/net/wireless/ath/carl9170/debug.c list_for_each_entry_rcu(iter, &ar->tx_ampdu_list, list) { ar 342 drivers/net/wireless/ath/carl9170/debug.c carl9170_debugfs_format_frame(ar, skb, prefix, buf, ar 356 drivers/net/wireless/ath/carl9170/debug.c static void carl9170_debugfs_queue_dump(struct ar9170 *ar, char *buf, ar 366 drivers/net/wireless/ath/carl9170/debug.c carl9170_debugfs_format_frame(ar, skb, prefix, buf, ar 374 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_##q ##_##qi ##_read(struct ar9170 *ar, \ ar 377 drivers/net/wireless/ath/carl9170/debug.c carl9170_debugfs_queue_dump(ar, buf, len, bufsize, &ar->q[qi]); \ ar 382 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_sta_psm_read(struct ar9170 *ar, char *buf, ar 385 drivers/net/wireless/ath/carl9170/debug.c ADD(buf, *len, bufsize, "psm state: %s\n", (ar->ps.off_override ? ar 386 drivers/net/wireless/ath/carl9170/debug.c "FORCE CAM" : (ar->ps.state ? "PSM" : "CAM"))); ar 388 drivers/net/wireless/ath/carl9170/debug.c ADD(buf, *len, bufsize, "sleep duration: %d ms.\n", ar->ps.sleep_ms); ar 390 drivers/net/wireless/ath/carl9170/debug.c jiffies_to_msecs(jiffies - ar->ps.last_action)); ar 392 drivers/net/wireless/ath/carl9170/debug.c jiffies_to_msecs(jiffies - ar->ps.last_slept)); ar 398 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_tx_stuck_read(struct ar9170 *ar, char *buf, ar 403 drivers/net/wireless/ath/carl9170/debug.c for (i = 0; i < ar->hw->queues; i++) { ar 405 drivers/net/wireless/ath/carl9170/debug.c i, ieee80211_queue_stopped(ar->hw, i) ? ar 406 drivers/net/wireless/ath/carl9170/debug.c jiffies_to_msecs(jiffies - ar->queue_stop_timeout[i]) : 0, ar 407 drivers/net/wireless/ath/carl9170/debug.c jiffies_to_msecs(ar->max_queue_stop_timeout[i])); ar 409 drivers/net/wireless/ath/carl9170/debug.c ar->max_queue_stop_timeout[i] = 0; ar 416 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_phy_noise_read(struct ar9170 *ar, char *buf, ar 421 drivers/net/wireless/ath/carl9170/debug.c err = carl9170_get_noisefloor(ar); ar 428 drivers/net/wireless/ath/carl9170/debug.c ar->noise[0], ar->noise[2]); ar 430 drivers/net/wireless/ath/carl9170/debug.c ar->noise[1], ar->noise[3]); ar 436 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_vif_dump_read(struct ar9170 *ar, char *buf, ar 443 drivers/net/wireless/ath/carl9170/debug.c ar->vifs, ar->fw.vif_num); ar 446 drivers/net/wireless/ath/carl9170/debug.c ar->fw.vif_num, &ar->vif_bitmap); ar 449 drivers/net/wireless/ath/carl9170/debug.c list_for_each_entry_rcu(iter, &ar->vif_list, list) { ar 452 drivers/net/wireless/ath/carl9170/debug.c " mac:%pM %s]\n", i, (carl9170_get_main_vif(ar) == vif ? ar 463 drivers/net/wireless/ath/carl9170/debug.c #define UPDATE_COUNTER(ar, name) ({ \ ar 469 drivers/net/wireless/ath/carl9170/debug.c ar->debug.stats.name##_counter[__i] = 0; \ ar 472 drivers/net/wireless/ath/carl9170/debug.c if (IS_STARTED(ar)) \ ar 473 drivers/net/wireless/ath/carl9170/debug.c __err = carl9170_read_mreg(ar, ARRAY_SIZE(name##_regs), \ ar 474 drivers/net/wireless/ath/carl9170/debug.c __tmp, ar->debug.stats.name##_counter); \ ar 477 drivers/net/wireless/ath/carl9170/debug.c #define TALLY_SUM_UP(ar, name) do { \ ar 481 drivers/net/wireless/ath/carl9170/debug.c ar->debug.stats.name##_sum[__i] += \ ar 482 drivers/net/wireless/ath/carl9170/debug.c ar->debug.stats.name##_counter[__i]; \ ar 487 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_##name ## _read(struct ar9170 *ar, \ ar 498 drivers/net/wireless/ath/carl9170/debug.c err = UPDATE_COUNTER(ar, name); \ ar 504 drivers/net/wireless/ath/carl9170/debug.c TALLY_SUM_UP(ar, name); \ ar 508 drivers/net/wireless/ath/carl9170/debug.c name##_regs[i].nreg, ar->debug.stats.name ##_sum[i],\ ar 509 drivers/net/wireless/ath/carl9170/debug.c ar->debug.stats.name ##_counter[i]); \ ar 517 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_##name ## _read(struct ar9170 *ar, \ ar 528 drivers/net/wireless/ath/carl9170/debug.c err = UPDATE_COUNTER(ar, name); \ ar 537 drivers/net/wireless/ath/carl9170/debug.c ar->debug.stats.name##_counter[i]); \ ar 544 drivers/net/wireless/ath/carl9170/debug.c static ssize_t carl9170_debugfs_hw_ioread32_write(struct ar9170 *ar, ar 581 drivers/net/wireless/ath/carl9170/debug.c err = carl9170_read_reg(ar, reg + (i << 2), &tmp); ar 585 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring[ar->debug.ring_tail].reg = reg + (i << 2); ar 586 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring[ar->debug.ring_tail].value = tmp; ar 587 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring_tail++; ar 588 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring_tail %= CARL9170_DEBUG_RING_SIZE; ar 595 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_hw_ioread32_read(struct ar9170 *ar, char *buf, ar 600 drivers/net/wireless/ath/carl9170/debug.c while (ar->debug.ring_head != ar->debug.ring_tail) { ar 602 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring[ar->debug.ring_head].reg, ar 603 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring[ar->debug.ring_head].value); ar 605 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring_head++; ar 606 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring_head %= CARL9170_DEBUG_RING_SIZE; ar 611 drivers/net/wireless/ath/carl9170/debug.c ar->debug.ring_head = ar->debug.ring_tail; ar 616 drivers/net/wireless/ath/carl9170/debug.c static ssize_t carl9170_debugfs_bug_write(struct ar9170 *ar, const char *buf, ar 626 drivers/net/wireless/ath/carl9170/debug.c ar->needs_full_reset = true; ar 630 drivers/net/wireless/ath/carl9170/debug.c if (!IS_STARTED(ar)) { ar 635 drivers/net/wireless/ath/carl9170/debug.c ar->needs_full_reset = false; ar 639 drivers/net/wireless/ath/carl9170/debug.c err = carl9170_mac_reset(ar); ar 646 drivers/net/wireless/ath/carl9170/debug.c err = carl9170_set_channel(ar, ar->hw->conf.chandef.chan, ar 647 drivers/net/wireless/ath/carl9170/debug.c cfg80211_get_chandef_type(&ar->hw->conf.chandef)); ar 657 drivers/net/wireless/ath/carl9170/debug.c carl9170_restart(ar, CARL9170_RR_USER_REQUEST); ar 663 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_bug_read(struct ar9170 *ar, char *buf, ar 669 drivers/net/wireless/ath/carl9170/debug.c ar->restart_counter, ar->last_reason); ar 671 drivers/net/wireless/ath/carl9170/debug.c ar->total_chan_fail, ar->chan_fail); ar 673 drivers/net/wireless/ath/carl9170/debug.c ar->fw.err_counter); ar 675 drivers/net/wireless/ath/carl9170/debug.c ar->fw.bug_counter); ar 677 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->pending_restarts)); ar 691 drivers/net/wireless/ath/carl9170/debug.c static char *carl9170_debugfs_erp_read(struct ar9170 *ar, char *buf, ar 694 drivers/net/wireless/ath/carl9170/debug.c ADD(buf, *ret, bufsize, "ERP Setting: (%d) -> %s\n", ar->erp_mode, ar 695 drivers/net/wireless/ath/carl9170/debug.c erp_modes[ar->erp_mode]); ar 699 drivers/net/wireless/ath/carl9170/debug.c static ssize_t carl9170_debugfs_erp_write(struct ar9170 *ar, const char *buf, ar 715 drivers/net/wireless/ath/carl9170/debug.c ar->erp_mode = val; ar 721 drivers/net/wireless/ath/carl9170/debug.c static ssize_t carl9170_debugfs_hw_iowrite32_write(struct ar9170 *ar, ar 749 drivers/net/wireless/ath/carl9170/debug.c err = carl9170_write_reg(ar, reg, val); ar 773 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->tx_anch_urbs)); ar 775 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->rx_anch_urbs)); ar 777 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->rx_work_urbs)); ar 779 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->rx_pool_urbs)); ar 782 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->tx_total_queued)); ar 784 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->tx_ampdu_scheduler)); ar 787 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->tx_total_pending)); ar 790 drivers/net/wireless/ath/carl9170/debug.c ar->tx_ampdu_list_len); ar 793 drivers/net/wireless/ath/carl9170/debug.c atomic_read(&ar->tx_ampdu_upload)); ar 796 drivers/net/wireless/ath/carl9170/debug.c jiffies_to_msecs(jiffies - ar->tx_janitor_last_run)); ar 798 drivers/net/wireless/ath/carl9170/debug.c DEBUGFS_READONLY_FILE(tx_dropped, 20, "%d", ar->tx_dropped); ar 800 drivers/net/wireless/ath/carl9170/debug.c DEBUGFS_READONLY_FILE(rx_dropped, 20, "%d", ar->rx_dropped); ar 802 drivers/net/wireless/ath/carl9170/debug.c DEBUGFS_READONLY_FILE(sniffer_enabled, 20, "%d", ar->sniffer_enabled); ar 804 drivers/net/wireless/ath/carl9170/debug.c ar->rx_software_decryption); ar 806 drivers/net/wireless/ath/carl9170/debug.c ar->current_factor); ar 808 drivers/net/wireless/ath/carl9170/debug.c ar->current_density); ar 810 drivers/net/wireless/ath/carl9170/debug.c DEBUGFS_READONLY_FILE(beacon_int, 20, "%d TU", ar->global_beacon_int); ar 811 drivers/net/wireless/ath/carl9170/debug.c DEBUGFS_READONLY_FILE(pretbtt, 20, "%d TU", ar->global_pretbtt); ar 813 drivers/net/wireless/ath/carl9170/debug.c void carl9170_debugfs_register(struct ar9170 *ar) ar 815 drivers/net/wireless/ath/carl9170/debug.c ar->debug_dir = debugfs_create_dir(KBUILD_MODNAME, ar 816 drivers/net/wireless/ath/carl9170/debug.c ar->hw->wiphy->debugfsdir); ar 820 drivers/net/wireless/ath/carl9170/debug.c ar->debug_dir, ar, \ ar 883 drivers/net/wireless/ath/carl9170/debug.c void carl9170_debugfs_unregister(struct ar9170 *ar) ar 885 drivers/net/wireless/ath/carl9170/debug.c debugfs_remove_recursive(ar->debug_dir); ar 132 drivers/net/wireless/ath/carl9170/debug.h void carl9170_debugfs_register(struct ar9170 *ar); ar 133 drivers/net/wireless/ath/carl9170/debug.h void carl9170_debugfs_unregister(struct ar9170 *ar); ar 20 drivers/net/wireless/ath/carl9170/fw.c static const void *carl9170_fw_find_desc(struct ar9170 *ar, const u8 descid[4], ar 25 drivers/net/wireless/ath/carl9170/fw.c carl9170fw_for_each_hdr(iter, ar->fw.desc) { ar 39 drivers/net/wireless/ath/carl9170/fw.c static int carl9170_fw_verify_descs(struct ar9170 *ar, ar 82 drivers/net/wireless/ath/carl9170/fw.c static void carl9170_fw_info(struct ar9170 *ar) ar 88 drivers/net/wireless/ath/carl9170/fw.c dev_info(&ar->udev->dev, "driver API: %s 2%03d-%02d-%02d [%d-%d]\n", ar 93 drivers/net/wireless/ath/carl9170/fw.c motd_desc = carl9170_fw_find_desc(ar, MOTD_MAGIC, ar 102 drivers/net/wireless/ath/carl9170/fw.c dev_info(&ar->udev->dev, "firmware API: %.*s 2%03d-%02d-%02d\n", ar 108 drivers/net/wireless/ath/carl9170/fw.c strlcpy(ar->hw->wiphy->fw_version, motd_desc->release, ar 109 drivers/net/wireless/ath/carl9170/fw.c sizeof(ar->hw->wiphy->fw_version)); ar 131 drivers/net/wireless/ath/carl9170/fw.c static int carl9170_fw_checksum(struct ar9170 *ar, const __u8 *data, ar 141 drivers/net/wireless/ath/carl9170/fw.c last_desc = carl9170_fw_find_desc(ar, LAST_MAGIC, ar 146 drivers/net/wireless/ath/carl9170/fw.c otus_desc = carl9170_fw_find_desc(ar, OTUS_MAGIC, ar 149 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "failed to find compatible firmware " ar 154 drivers/net/wireless/ath/carl9170/fw.c chk_desc = carl9170_fw_find_desc(ar, CHK_MAGIC, ar 158 drivers/net/wireless/ath/carl9170/fw.c dev_warn(&ar->udev->dev, "Unprotected firmware image.\n"); ar 176 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "fw checksum test failed.\n"); ar 182 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "descriptor check failed.\n"); ar 188 drivers/net/wireless/ath/carl9170/fw.c static int carl9170_fw_tx_sequence(struct ar9170 *ar) ar 192 drivers/net/wireless/ath/carl9170/fw.c txsq_desc = carl9170_fw_find_desc(ar, TXSQ_MAGIC, sizeof(*txsq_desc), ar 195 drivers/net/wireless/ath/carl9170/fw.c ar->fw.tx_seq_table = le32_to_cpu(txsq_desc->seq_table_addr); ar 196 drivers/net/wireless/ath/carl9170/fw.c if (!valid_cpu_addr(ar->fw.tx_seq_table)) ar 199 drivers/net/wireless/ath/carl9170/fw.c ar->fw.tx_seq_table = 0; ar 205 drivers/net/wireless/ath/carl9170/fw.c static void carl9170_fw_set_if_combinations(struct ar9170 *ar, ar 208 drivers/net/wireless/ath/carl9170/fw.c if (ar->fw.vif_num < 2) ar 211 drivers/net/wireless/ath/carl9170/fw.c ar->if_comb_limits[0].max = ar->fw.vif_num; ar 212 drivers/net/wireless/ath/carl9170/fw.c ar->if_comb_limits[0].types = if_comb_types; ar 214 drivers/net/wireless/ath/carl9170/fw.c ar->if_combs[0].num_different_channels = 1; ar 215 drivers/net/wireless/ath/carl9170/fw.c ar->if_combs[0].max_interfaces = ar->fw.vif_num; ar 216 drivers/net/wireless/ath/carl9170/fw.c ar->if_combs[0].limits = ar->if_comb_limits; ar 217 drivers/net/wireless/ath/carl9170/fw.c ar->if_combs[0].n_limits = ARRAY_SIZE(ar->if_comb_limits); ar 219 drivers/net/wireless/ath/carl9170/fw.c ar->hw->wiphy->iface_combinations = ar->if_combs; ar 220 drivers/net/wireless/ath/carl9170/fw.c ar->hw->wiphy->n_iface_combinations = ARRAY_SIZE(ar->if_combs); ar 223 drivers/net/wireless/ath/carl9170/fw.c static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len) ar 229 drivers/net/wireless/ath/carl9170/fw.c err = carl9170_fw_checksum(ar, data, len); ar 233 drivers/net/wireless/ath/carl9170/fw.c otus_desc = carl9170_fw_find_desc(ar, OTUS_MAGIC, ar 243 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "invalid firmware descriptor " ar 248 drivers/net/wireless/ath/carl9170/fw.c ar->fw.api_version = otus_desc->api_ver; ar 250 drivers/net/wireless/ath/carl9170/fw.c if (ar->fw.api_version < CARL9170FW_API_MIN_VER || ar 251 drivers/net/wireless/ath/carl9170/fw.c ar->fw.api_version > CARL9170FW_API_MAX_VER) { ar 252 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "unsupported firmware api version.\n"); ar 258 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "firmware does support " ar 265 drivers/net/wireless/ath/carl9170/fw.c dev_warn(&ar->udev->dev, "driver does not support all " ar 270 drivers/net/wireless/ath/carl9170/fw.c dev_info(&ar->udev->dev, "crypto offloading is disabled " ar 272 drivers/net/wireless/ath/carl9170/fw.c ar->fw.disable_offload_fw = true; ar 276 drivers/net/wireless/ath/carl9170/fw.c ieee80211_hw_set(ar->hw, SUPPORTS_PS); ar 279 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "firmware does not provide " ar 285 drivers/net/wireless/ath/carl9170/fw.c ar->fw.offset = le16_to_cpu(otus_desc->miniboot_size); ar 287 drivers/net/wireless/ath/carl9170/fw.c ar->fw.offset = 0; ar 290 drivers/net/wireless/ath/carl9170/fw.c ar->hw->extra_tx_headroom += sizeof(struct ar9170_stream); ar 291 drivers/net/wireless/ath/carl9170/fw.c ar->fw.tx_stream = true; ar 295 drivers/net/wireless/ath/carl9170/fw.c ar->fw.rx_stream = true; ar 298 drivers/net/wireless/ath/carl9170/fw.c ar->fw.rx_filter = true; ar 299 drivers/net/wireless/ath/carl9170/fw.c ar->rx_filter_caps = FIF_FCSFAIL | FIF_PLCPFAIL | ar 304 drivers/net/wireless/ath/carl9170/fw.c ar->fw.hw_counters = true; ar 307 drivers/net/wireless/ath/carl9170/fw.c device_set_wakeup_enable(&ar->udev->dev, true); ar 310 drivers/net/wireless/ath/carl9170/fw.c ar->fw.ba_filter = true; ar 315 drivers/net/wireless/ath/carl9170/fw.c ar->fw.vif_num = otus_desc->vif_num; ar 316 drivers/net/wireless/ath/carl9170/fw.c ar->fw.cmd_bufs = otus_desc->cmd_bufs; ar 317 drivers/net/wireless/ath/carl9170/fw.c ar->fw.address = le32_to_cpu(otus_desc->fw_address); ar 318 drivers/net/wireless/ath/carl9170/fw.c ar->fw.rx_size = le16_to_cpu(otus_desc->rx_max_frame_len); ar 319 drivers/net/wireless/ath/carl9170/fw.c ar->fw.mem_blocks = min_t(unsigned int, otus_desc->tx_descs, 0xfe); ar 320 drivers/net/wireless/ath/carl9170/fw.c atomic_set(&ar->mem_free_blocks, ar->fw.mem_blocks); ar 321 drivers/net/wireless/ath/carl9170/fw.c ar->fw.mem_block_size = le16_to_cpu(otus_desc->tx_frag_len); ar 323 drivers/net/wireless/ath/carl9170/fw.c if (ar->fw.vif_num >= AR9170_MAX_VIRTUAL_MAC || !ar->fw.vif_num || ar 324 drivers/net/wireless/ath/carl9170/fw.c ar->fw.mem_blocks < 16 || !ar->fw.cmd_bufs || ar 325 drivers/net/wireless/ath/carl9170/fw.c ar->fw.mem_block_size < 64 || ar->fw.mem_block_size > 512 || ar 326 drivers/net/wireless/ath/carl9170/fw.c ar->fw.rx_size > 32768 || ar->fw.rx_size < 4096 || ar 327 drivers/net/wireless/ath/carl9170/fw.c !valid_cpu_addr(ar->fw.address)) { ar 328 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "firmware shows obvious signs of " ar 333 drivers/net/wireless/ath/carl9170/fw.c ar->fw.beacon_addr = le32_to_cpu(otus_desc->bcn_addr); ar 334 drivers/net/wireless/ath/carl9170/fw.c ar->fw.beacon_max_len = le16_to_cpu(otus_desc->bcn_len); ar 336 drivers/net/wireless/ath/carl9170/fw.c if (valid_dma_addr(ar->fw.beacon_addr) && ar->fw.beacon_max_len >= ar 338 drivers/net/wireless/ath/carl9170/fw.c ar->hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC); ar 352 drivers/net/wireless/ath/carl9170/fw.c carl9170_fw_set_if_combinations(ar, if_comb_types); ar 354 drivers/net/wireless/ath/carl9170/fw.c ar->hw->wiphy->interface_modes |= if_comb_types; ar 356 drivers/net/wireless/ath/carl9170/fw.c ar->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; ar 359 drivers/net/wireless/ath/carl9170/fw.c ar->hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL | ar 363 drivers/net/wireless/ath/carl9170/fw.c return carl9170_fw_tx_sequence(ar); ar 367 drivers/net/wireless/ath/carl9170/fw.c carl9170_find_fw_desc(struct ar9170 *ar, const __u8 *fw_data, const size_t len) ar 373 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "firmware size is out of bound.\n"); ar 396 drivers/net/wireless/ath/carl9170/fw.c int carl9170_parse_firmware(struct ar9170 *ar) ar 399 drivers/net/wireless/ath/carl9170/fw.c const struct firmware *fw = ar->fw.fw; ar 406 drivers/net/wireless/ath/carl9170/fw.c fw_desc = carl9170_find_fw_desc(ar, fw->data, fw->size); ar 409 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "unsupported firmware.\n"); ar 415 drivers/net/wireless/ath/carl9170/fw.c err = carl9170_fw_verify_descs(ar, fw_desc, fw->size - header_offset); ar 417 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "damaged firmware (%d).\n", err); ar 421 drivers/net/wireless/ath/carl9170/fw.c ar->fw.desc = fw_desc; ar 423 drivers/net/wireless/ath/carl9170/fw.c carl9170_fw_info(ar); ar 425 drivers/net/wireless/ath/carl9170/fw.c err = carl9170_fw(ar, fw->data, fw->size); ar 427 drivers/net/wireless/ath/carl9170/fw.c dev_err(&ar->udev->dev, "failed to parse firmware (%d).\n", ar 43 drivers/net/wireless/ath/carl9170/led.c int carl9170_led_set_state(struct ar9170 *ar, const u32 led_state) ar 45 drivers/net/wireless/ath/carl9170/led.c return carl9170_write_reg(ar, AR9170_GPIO_REG_PORT_DATA, led_state); ar 48 drivers/net/wireless/ath/carl9170/led.c int carl9170_led_init(struct ar9170 *ar) ar 54 drivers/net/wireless/ath/carl9170/led.c err = carl9170_write_reg(ar, AR9170_GPIO_REG_PORT_TYPE, 3); ar 59 drivers/net/wireless/ath/carl9170/led.c err = carl9170_led_set_state(ar, 0); ar 68 drivers/net/wireless/ath/carl9170/led.c struct ar9170 *ar = container_of(work, struct ar9170, led_work.work); ar 73 drivers/net/wireless/ath/carl9170/led.c if (!IS_ACCEPTING_CMD(ar)) ar 76 drivers/net/wireless/ath/carl9170/led.c mutex_lock(&ar->mutex); ar 78 drivers/net/wireless/ath/carl9170/led.c if (ar->leds[i].registered) { ar 79 drivers/net/wireless/ath/carl9170/led.c if (ar->leds[i].last_state || ar 80 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].toggled) { ar 82 drivers/net/wireless/ath/carl9170/led.c if (ar->leds[i].toggled) ar 83 drivers/net/wireless/ath/carl9170/led.c tmp = 70 + 200 / (ar->leds[i].toggled); ar 89 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].toggled = 0; ar 95 drivers/net/wireless/ath/carl9170/led.c carl9170_led_set_state(ar, led_val); ar 96 drivers/net/wireless/ath/carl9170/led.c mutex_unlock(&ar->mutex); ar 101 drivers/net/wireless/ath/carl9170/led.c ieee80211_queue_delayed_work(ar->hw, ar 102 drivers/net/wireless/ath/carl9170/led.c &ar->led_work, ar 110 drivers/net/wireless/ath/carl9170/led.c struct ar9170 *ar = arl->ar; ar 120 drivers/net/wireless/ath/carl9170/led.c if (likely(IS_ACCEPTING_CMD(ar) && arl->toggled)) ar 121 drivers/net/wireless/ath/carl9170/led.c ieee80211_queue_delayed_work(ar->hw, &ar->led_work, HZ / 10); ar 124 drivers/net/wireless/ath/carl9170/led.c static int carl9170_led_register_led(struct ar9170 *ar, int i, char *name, ar 129 drivers/net/wireless/ath/carl9170/led.c snprintf(ar->leds[i].name, sizeof(ar->leds[i].name), ar 130 drivers/net/wireless/ath/carl9170/led.c "carl9170-%s::%s", wiphy_name(ar->hw->wiphy), name); ar 132 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].ar = ar; ar 133 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].l.name = ar->leds[i].name; ar 134 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].l.brightness_set = carl9170_led_set_brightness; ar 135 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].l.brightness = 0; ar 136 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].l.default_trigger = trigger; ar 138 drivers/net/wireless/ath/carl9170/led.c err = led_classdev_register(wiphy_dev(ar->hw->wiphy), ar 139 drivers/net/wireless/ath/carl9170/led.c &ar->leds[i].l); ar 141 drivers/net/wireless/ath/carl9170/led.c wiphy_err(ar->hw->wiphy, "failed to register %s LED (%d).\n", ar 142 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].name, err); ar 144 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].registered = true; ar 150 drivers/net/wireless/ath/carl9170/led.c void carl9170_led_unregister(struct ar9170 *ar) ar 155 drivers/net/wireless/ath/carl9170/led.c if (ar->leds[i].registered) { ar 156 drivers/net/wireless/ath/carl9170/led.c led_classdev_unregister(&ar->leds[i].l); ar 157 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].registered = false; ar 158 drivers/net/wireless/ath/carl9170/led.c ar->leds[i].toggled = 0; ar 161 drivers/net/wireless/ath/carl9170/led.c cancel_delayed_work_sync(&ar->led_work); ar 164 drivers/net/wireless/ath/carl9170/led.c int carl9170_led_register(struct ar9170 *ar) ar 168 drivers/net/wireless/ath/carl9170/led.c INIT_DELAYED_WORK(&ar->led_work, carl9170_led_update); ar 170 drivers/net/wireless/ath/carl9170/led.c err = carl9170_led_register_led(ar, 0, "tx", ar 171 drivers/net/wireless/ath/carl9170/led.c ieee80211_get_tx_led_name(ar->hw)); ar 175 drivers/net/wireless/ath/carl9170/led.c if (ar->features & CARL9170_ONE_LED) ar 178 drivers/net/wireless/ath/carl9170/led.c err = carl9170_led_register_led(ar, 1, "assoc", ar 179 drivers/net/wireless/ath/carl9170/led.c ieee80211_get_assoc_led_name(ar->hw)); ar 186 drivers/net/wireless/ath/carl9170/led.c carl9170_led_unregister(ar); ar 44 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_dyn_sifs_ack(struct ar9170 *ar) ar 48 drivers/net/wireless/ath/carl9170/mac.c if (conf_is_ht40(&ar->hw->conf)) ar 51 drivers/net/wireless/ath/carl9170/mac.c if (ar->hw->conf.chandef.chan->band == NL80211_BAND_2GHZ) ar 57 drivers/net/wireless/ath/carl9170/mac.c return carl9170_write_reg(ar, AR9170_MAC_REG_DYNAMIC_SIFS_ACK, val); ar 60 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_rts_cts_rate(struct ar9170 *ar) ar 64 drivers/net/wireless/ath/carl9170/mac.c if (conf_is_ht(&ar->hw->conf)) { ar 69 drivers/net/wireless/ath/carl9170/mac.c if (ar->hw->conf.chandef.chan->band == NL80211_BAND_2GHZ) { ar 80 drivers/net/wireless/ath/carl9170/mac.c return carl9170_write_reg(ar, AR9170_MAC_REG_RTS_CTS_RATE, ar 84 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_slot_time(struct ar9170 *ar) ar 90 drivers/net/wireless/ath/carl9170/mac.c vif = carl9170_get_main_vif(ar); ar 96 drivers/net/wireless/ath/carl9170/mac.c if ((ar->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ) || ar 102 drivers/net/wireless/ath/carl9170/mac.c return carl9170_write_reg(ar, AR9170_MAC_REG_SLOT_TIME, ar 106 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_mac_rates(struct ar9170 *ar) ar 112 drivers/net/wireless/ath/carl9170/mac.c vif = carl9170_get_main_vif(ar); ar 123 drivers/net/wireless/ath/carl9170/mac.c if (ar->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ) ar 128 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 136 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_qos(struct ar9170 *ar) ar 138 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 140 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite(AR9170_MAC_REG_AC0_CW, ar->edcf[0].cw_min | ar 141 drivers/net/wireless/ath/carl9170/mac.c (ar->edcf[0].cw_max << 16)); ar 142 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite(AR9170_MAC_REG_AC1_CW, ar->edcf[1].cw_min | ar 143 drivers/net/wireless/ath/carl9170/mac.c (ar->edcf[1].cw_max << 16)); ar 144 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite(AR9170_MAC_REG_AC2_CW, ar->edcf[2].cw_min | ar 145 drivers/net/wireless/ath/carl9170/mac.c (ar->edcf[2].cw_max << 16)); ar 146 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite(AR9170_MAC_REG_AC3_CW, ar->edcf[3].cw_min | ar 147 drivers/net/wireless/ath/carl9170/mac.c (ar->edcf[3].cw_max << 16)); ar 148 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite(AR9170_MAC_REG_AC4_CW, ar->edcf[4].cw_min | ar 149 drivers/net/wireless/ath/carl9170/mac.c (ar->edcf[4].cw_max << 16)); ar 152 drivers/net/wireless/ath/carl9170/mac.c ((ar->edcf[0].aifs * 9 + 10)) | ar 153 drivers/net/wireless/ath/carl9170/mac.c ((ar->edcf[1].aifs * 9 + 10) << 12) | ar 154 drivers/net/wireless/ath/carl9170/mac.c ((ar->edcf[2].aifs * 9 + 10) << 24)); ar 156 drivers/net/wireless/ath/carl9170/mac.c ((ar->edcf[2].aifs * 9 + 10) >> 8) | ar 157 drivers/net/wireless/ath/carl9170/mac.c ((ar->edcf[3].aifs * 9 + 10) << 4) | ar 158 drivers/net/wireless/ath/carl9170/mac.c ((ar->edcf[4].aifs * 9 + 10) << 16)); ar 161 drivers/net/wireless/ath/carl9170/mac.c ar->edcf[0].txop | ar->edcf[1].txop << 16); ar 163 drivers/net/wireless/ath/carl9170/mac.c ar->edcf[2].txop | ar->edcf[3].txop << 16 | ar 164 drivers/net/wireless/ath/carl9170/mac.c ar->edcf[4].txop << 24); ar 171 drivers/net/wireless/ath/carl9170/mac.c int carl9170_init_mac(struct ar9170 *ar) ar 173 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 257 drivers/net/wireless/ath/carl9170/mac.c static int carl9170_set_mac_reg(struct ar9170 *ar, ar 265 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 275 drivers/net/wireless/ath/carl9170/mac.c int carl9170_mod_virtual_mac(struct ar9170 *ar, const unsigned int id, ar 278 drivers/net/wireless/ath/carl9170/mac.c if (WARN_ON(id >= ar->fw.vif_num)) ar 281 drivers/net/wireless/ath/carl9170/mac.c return carl9170_set_mac_reg(ar, ar 285 drivers/net/wireless/ath/carl9170/mac.c int carl9170_update_multicast(struct ar9170 *ar, const u64 mc_hash) ar 289 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 297 drivers/net/wireless/ath/carl9170/mac.c ar->cur_mc_hash = mc_hash; ar 301 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_operating_mode(struct ar9170 *ar) ar 304 drivers/net/wireless/ath/carl9170/mac.c struct ath_common *common = &ar->common; ar 315 drivers/net/wireless/ath/carl9170/mac.c vif = carl9170_get_main_vif(ar); ar 371 drivers/net/wireless/ath/carl9170/mac.c if (ar->rx_software_decryption) ar 374 drivers/net/wireless/ath/carl9170/mac.c if (ar->sniffer_enabled) { ar 378 drivers/net/wireless/ath/carl9170/mac.c err = carl9170_set_mac_reg(ar, AR9170_MAC_REG_MAC_ADDR_L, mac_addr); ar 382 drivers/net/wireless/ath/carl9170/mac.c err = carl9170_set_mac_reg(ar, AR9170_MAC_REG_BSSID_L, bssid); ar 386 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 396 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_hwretry_limit(struct ar9170 *ar, const unsigned int max_retry) ar 400 drivers/net/wireless/ath/carl9170/mac.c return carl9170_write_reg(ar, AR9170_MAC_REG_RETRY_MAX, tmp); ar 403 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_beacon_timers(struct ar9170 *ar) ar 410 drivers/net/wireless/ath/carl9170/mac.c vif = carl9170_get_main_vif(ar); ar 416 drivers/net/wireless/ath/carl9170/mac.c if (mvif->enable_beacon && !WARN_ON(!ar->beacon_enabled)) { ar 417 drivers/net/wireless/ath/carl9170/mac.c ar->global_beacon_int = vif->bss_conf.beacon_int / ar 418 drivers/net/wireless/ath/carl9170/mac.c ar->beacon_enabled; ar 436 drivers/net/wireless/ath/carl9170/mac.c ar->global_beacon_int = vif->bss_conf.beacon_int; ar 439 drivers/net/wireless/ath/carl9170/mac.c ar->hw->conf.ps_dtim_period); ar 445 drivers/net/wireless/ath/carl9170/mac.c if (ar->global_beacon_int) { ar 446 drivers/net/wireless/ath/carl9170/mac.c if (ar->global_beacon_int < 15) { ar 451 drivers/net/wireless/ath/carl9170/mac.c ar->global_pretbtt = ar->global_beacon_int - ar 454 drivers/net/wireless/ath/carl9170/mac.c ar->global_pretbtt = 0; ar 457 drivers/net/wireless/ath/carl9170/mac.c ar->global_beacon_int = 0; ar 458 drivers/net/wireless/ath/carl9170/mac.c ar->global_pretbtt = 0; ar 463 drivers/net/wireless/ath/carl9170/mac.c SET_VAL(AR9170_MAC_BCN_PERIOD, v, ar->global_beacon_int); ar 464 drivers/net/wireless/ath/carl9170/mac.c SET_VAL(AR9170_MAC_PRETBTT, pretbtt, ar->global_pretbtt); ar 465 drivers/net/wireless/ath/carl9170/mac.c SET_VAL(AR9170_MAC_PRETBTT2, pretbtt, ar->global_pretbtt); ar 467 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 474 drivers/net/wireless/ath/carl9170/mac.c int carl9170_upload_key(struct ar9170 *ar, const u8 id, const u8 *mac, ar 491 drivers/net/wireless/ath/carl9170/mac.c return carl9170_exec_cmd(ar, CARL9170_CMD_EKEY, ar 495 drivers/net/wireless/ath/carl9170/mac.c int carl9170_disable_key(struct ar9170 *ar, const u8 id) ar 501 drivers/net/wireless/ath/carl9170/mac.c return carl9170_exec_cmd(ar, CARL9170_CMD_DKEY, ar 505 drivers/net/wireless/ath/carl9170/mac.c int carl9170_set_mac_tpc(struct ar9170 *ar, struct ieee80211_channel *channel) ar 509 drivers/net/wireless/ath/carl9170/mac.c if (ar->eeprom.tx_mask != 1) ar 516 drivers/net/wireless/ath/carl9170/mac.c power = ar->power_2G_ofdm[0] & 0x3f; ar 519 drivers/net/wireless/ath/carl9170/mac.c power = ar->power_5G_leg[0] & 0x3f; ar 525 drivers/net/wireless/ath/carl9170/mac.c power = min_t(unsigned int, power, ar->hw->conf.power_level * 2); ar 527 drivers/net/wireless/ath/carl9170/mac.c carl9170_regwrite_begin(ar); ar 184 drivers/net/wireless/ath/carl9170/main.c static void carl9170_ampdu_gc(struct ar9170 *ar) ar 190 drivers/net/wireless/ath/carl9170/main.c list_for_each_entry_rcu(tid_info, &ar->tx_ampdu_list, list) { ar 191 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->tx_ampdu_list_lock); ar 195 drivers/net/wireless/ath/carl9170/main.c ar->tx_ampdu_list_len--; ar 198 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->tx_ampdu_list_lock); ar 201 drivers/net/wireless/ath/carl9170/main.c rcu_assign_pointer(ar->tx_ampdu_iter, tid_info); ar 212 drivers/net/wireless/ath/carl9170/main.c carl9170_tx_status(ar, skb, false); ar 219 drivers/net/wireless/ath/carl9170/main.c static void carl9170_flush(struct ar9170 *ar, bool drop_queued) ar 229 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < ar->hw->queues; i++) { ar 232 drivers/net/wireless/ath/carl9170/main.c while ((skb = skb_dequeue(&ar->tx_pending[i]))) { ar 237 drivers/net/wireless/ath/carl9170/main.c atomic_dec(&ar->tx_ampdu_upload); ar 239 drivers/net/wireless/ath/carl9170/main.c carl9170_tx_status(ar, skb, false); ar 245 drivers/net/wireless/ath/carl9170/main.c if (atomic_read(&ar->tx_total_queued)) ar 246 drivers/net/wireless/ath/carl9170/main.c WARN_ON(wait_for_completion_timeout(&ar->tx_flush, HZ) == 0); ar 249 drivers/net/wireless/ath/carl9170/main.c static void carl9170_flush_ba(struct ar9170 *ar) ar 258 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->tx_ampdu_list_lock); ar 259 drivers/net/wireless/ath/carl9170/main.c list_for_each_entry_rcu(tid_info, &ar->tx_ampdu_list, list) { ar 269 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->tx_ampdu_list_lock); ar 273 drivers/net/wireless/ath/carl9170/main.c carl9170_tx_status(ar, skb, false); ar 276 drivers/net/wireless/ath/carl9170/main.c static void carl9170_zap_queues(struct ar9170 *ar) ar 281 drivers/net/wireless/ath/carl9170/main.c carl9170_ampdu_gc(ar); ar 283 drivers/net/wireless/ath/carl9170/main.c carl9170_flush_ba(ar); ar 284 drivers/net/wireless/ath/carl9170/main.c carl9170_flush(ar, true); ar 286 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < ar->hw->queues; i++) { ar 287 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->tx_status[i].lock); ar 288 drivers/net/wireless/ath/carl9170/main.c while (!skb_queue_empty(&ar->tx_status[i])) { ar 291 drivers/net/wireless/ath/carl9170/main.c skb = skb_peek(&ar->tx_status[i]); ar 293 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->tx_status[i].lock); ar 294 drivers/net/wireless/ath/carl9170/main.c carl9170_tx_drop(ar, skb); ar 295 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->tx_status[i].lock); ar 298 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->tx_status[i].lock); ar 306 drivers/net/wireless/ath/carl9170/main.c memset(&ar->tx_stats, 0, sizeof(ar->tx_stats)); ar 307 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < ar->hw->queues; i++) ar 308 drivers/net/wireless/ath/carl9170/main.c ar->tx_stats[i].limit = CARL9170_NUM_TX_LIMIT_HARD; ar 310 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < DIV_ROUND_UP(ar->fw.mem_blocks, BITS_PER_LONG); i++) ar 311 drivers/net/wireless/ath/carl9170/main.c ar->mem_bitmap[i] = 0; ar 314 drivers/net/wireless/ath/carl9170/main.c list_for_each_entry_rcu(cvif, &ar->vif_list, list) { ar 315 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->beacon_lock); ar 318 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->beacon_lock); ar 322 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->tx_ampdu_upload, 0); ar 323 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->tx_ampdu_scheduler, 0); ar 324 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->tx_total_pending, 0); ar 325 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->tx_total_queued, 0); ar 326 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->mem_free_blocks, ar->fw.mem_blocks); ar 339 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 342 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 344 drivers/net/wireless/ath/carl9170/main.c carl9170_zap_queues(ar); ar 347 drivers/net/wireless/ath/carl9170/main.c CARL9170_FILL_QUEUE(ar->edcf[AR9170_TXQ_VO], 2, 3, 7, 47); ar 348 drivers/net/wireless/ath/carl9170/main.c CARL9170_FILL_QUEUE(ar->edcf[AR9170_TXQ_VI], 2, 7, 15, 94); ar 349 drivers/net/wireless/ath/carl9170/main.c CARL9170_FILL_QUEUE(ar->edcf[AR9170_TXQ_BE], 3, 15, 1023, 0); ar 350 drivers/net/wireless/ath/carl9170/main.c CARL9170_FILL_QUEUE(ar->edcf[AR9170_TXQ_BK], 7, 15, 1023, 0); ar 351 drivers/net/wireless/ath/carl9170/main.c CARL9170_FILL_QUEUE(ar->edcf[AR9170_TXQ_SPECIAL], 2, 3, 7, 0); ar 353 drivers/net/wireless/ath/carl9170/main.c ar->current_factor = ar->current_density = -1; ar 355 drivers/net/wireless/ath/carl9170/main.c ar->usedkeys = 1; ar 356 drivers/net/wireless/ath/carl9170/main.c ar->filter_state = 0; ar 357 drivers/net/wireless/ath/carl9170/main.c ar->ps.last_action = jiffies; ar 358 drivers/net/wireless/ath/carl9170/main.c ar->ps.last_slept = jiffies; ar 359 drivers/net/wireless/ath/carl9170/main.c ar->erp_mode = CARL9170_ERP_AUTO; ar 364 drivers/net/wireless/ath/carl9170/main.c ar->disable_offload = modparam_nohwcrypt | ar 365 drivers/net/wireless/ath/carl9170/main.c ar->fw.disable_offload_fw; ar 366 drivers/net/wireless/ath/carl9170/main.c ar->rx_software_decryption = ar->disable_offload; ar 368 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < ar->hw->queues; i++) { ar 369 drivers/net/wireless/ath/carl9170/main.c ar->queue_stop_timeout[i] = jiffies; ar 370 drivers/net/wireless/ath/carl9170/main.c ar->max_queue_stop_timeout[i] = 0; ar 373 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->mem_allocs, 0); ar 375 drivers/net/wireless/ath/carl9170/main.c err = carl9170_usb_open(ar); ar 379 drivers/net/wireless/ath/carl9170/main.c err = carl9170_init_mac(ar); ar 383 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_qos(ar); ar 387 drivers/net/wireless/ath/carl9170/main.c if (ar->fw.rx_filter) { ar 388 drivers/net/wireless/ath/carl9170/main.c err = carl9170_rx_filter(ar, CARL9170_RX_FILTER_OTHER_RA | ar 394 drivers/net/wireless/ath/carl9170/main.c err = carl9170_write_reg(ar, AR9170_MAC_REG_DMA_TRIGGER, ar 401 drivers/net/wireless/ath/carl9170/main.c err = carl9170_upload_key(ar, i, NULL, AR9170_ENC_ALG_NONE, ar 406 drivers/net/wireless/ath/carl9170/main.c err = carl9170_upload_key(ar, i, NULL, AR9170_ENC_ALG_NONE, ar 412 drivers/net/wireless/ath/carl9170/main.c err = carl9170_disable_key(ar, i); ar 418 drivers/net/wireless/ath/carl9170/main.c carl9170_set_state_when(ar, CARL9170_IDLE, CARL9170_STARTED); ar 420 drivers/net/wireless/ath/carl9170/main.c ieee80211_queue_delayed_work(ar->hw, &ar->stat_work, ar 423 drivers/net/wireless/ath/carl9170/main.c ieee80211_wake_queues(ar->hw); ar 427 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 431 drivers/net/wireless/ath/carl9170/main.c static void carl9170_cancel_worker(struct ar9170 *ar) ar 433 drivers/net/wireless/ath/carl9170/main.c cancel_delayed_work_sync(&ar->stat_work); ar 434 drivers/net/wireless/ath/carl9170/main.c cancel_delayed_work_sync(&ar->tx_janitor); ar 436 drivers/net/wireless/ath/carl9170/main.c cancel_delayed_work_sync(&ar->led_work); ar 438 drivers/net/wireless/ath/carl9170/main.c cancel_work_sync(&ar->ps_work); ar 439 drivers/net/wireless/ath/carl9170/main.c cancel_work_sync(&ar->ping_work); ar 440 drivers/net/wireless/ath/carl9170/main.c cancel_work_sync(&ar->ampdu_work); ar 445 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 447 drivers/net/wireless/ath/carl9170/main.c carl9170_set_state_when(ar, CARL9170_STARTED, CARL9170_IDLE); ar 449 drivers/net/wireless/ath/carl9170/main.c ieee80211_stop_queues(ar->hw); ar 451 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 452 drivers/net/wireless/ath/carl9170/main.c if (IS_ACCEPTING_CMD(ar)) { ar 453 drivers/net/wireless/ath/carl9170/main.c RCU_INIT_POINTER(ar->beacon_iter, NULL); ar 455 drivers/net/wireless/ath/carl9170/main.c carl9170_led_set_state(ar, 0); ar 458 drivers/net/wireless/ath/carl9170/main.c carl9170_write_reg(ar, AR9170_MAC_REG_DMA_TRIGGER, 0); ar 459 drivers/net/wireless/ath/carl9170/main.c carl9170_usb_stop(ar); ar 462 drivers/net/wireless/ath/carl9170/main.c carl9170_zap_queues(ar); ar 463 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 465 drivers/net/wireless/ath/carl9170/main.c carl9170_cancel_worker(ar); ar 470 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = container_of(work, struct ar9170, ar 474 drivers/net/wireless/ath/carl9170/main.c ar->usedkeys = 0; ar 475 drivers/net/wireless/ath/carl9170/main.c ar->filter_state = 0; ar 476 drivers/net/wireless/ath/carl9170/main.c carl9170_cancel_worker(ar); ar 478 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 479 drivers/net/wireless/ath/carl9170/main.c if (!ar->force_usb_reset) { ar 480 drivers/net/wireless/ath/carl9170/main.c err = carl9170_usb_restart(ar); ar 483 drivers/net/wireless/ath/carl9170/main.c dev_err(&ar->udev->dev, "Failed to restart device (%d).\n", err); ar 485 drivers/net/wireless/ath/carl9170/main.c dev_info(&ar->udev->dev, "device restarted successfully.\n"); ar 488 drivers/net/wireless/ath/carl9170/main.c carl9170_zap_queues(ar); ar 489 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 491 drivers/net/wireless/ath/carl9170/main.c if (!err && !ar->force_usb_reset) { ar 492 drivers/net/wireless/ath/carl9170/main.c ar->restart_counter++; ar 493 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->pending_restarts, 0); ar 495 drivers/net/wireless/ath/carl9170/main.c ieee80211_restart_hw(ar->hw); ar 503 drivers/net/wireless/ath/carl9170/main.c carl9170_usb_reset(ar); ar 507 drivers/net/wireless/ath/carl9170/main.c void carl9170_restart(struct ar9170 *ar, const enum carl9170_restart_reasons r) ar 509 drivers/net/wireless/ath/carl9170/main.c carl9170_set_state_when(ar, CARL9170_STARTED, CARL9170_IDLE); ar 516 drivers/net/wireless/ath/carl9170/main.c if (atomic_inc_return(&ar->pending_restarts) > 1) { ar 517 drivers/net/wireless/ath/carl9170/main.c dev_dbg(&ar->udev->dev, "ignoring restart (%d)\n", r); ar 521 drivers/net/wireless/ath/carl9170/main.c ieee80211_stop_queues(ar->hw); ar 523 drivers/net/wireless/ath/carl9170/main.c dev_err(&ar->udev->dev, "restart device (%d)\n", r); ar 527 drivers/net/wireless/ath/carl9170/main.c ar->last_reason = r; ar 529 drivers/net/wireless/ath/carl9170/main.c if (!ar->registered) ar 532 drivers/net/wireless/ath/carl9170/main.c if (!IS_ACCEPTING_CMD(ar) || ar->needs_full_reset) ar 533 drivers/net/wireless/ath/carl9170/main.c ar->force_usb_reset = true; ar 535 drivers/net/wireless/ath/carl9170/main.c ieee80211_queue_work(ar->hw, &ar->restart_work); ar 546 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = container_of(work, struct ar9170, ping_work); ar 549 drivers/net/wireless/ath/carl9170/main.c if (!IS_STARTED(ar)) ar 552 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 553 drivers/net/wireless/ath/carl9170/main.c err = carl9170_echo_test(ar, 0xdeadbeef); ar 555 drivers/net/wireless/ath/carl9170/main.c carl9170_restart(ar, CARL9170_RR_UNRESPONSIVE_DEVICE); ar 556 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 559 drivers/net/wireless/ath/carl9170/main.c static int carl9170_init_interface(struct ar9170 *ar, ar 562 drivers/net/wireless/ath/carl9170/main.c struct ath_common *common = &ar->common; ar 566 drivers/net/wireless/ath/carl9170/main.c WARN_ON_ONCE(IS_STARTED(ar)); ar 582 drivers/net/wireless/ath/carl9170/main.c ar->disable_offload |= ((vif->type != NL80211_IFTYPE_STATION) && ar 591 drivers/net/wireless/ath/carl9170/main.c ar->disable_offload |= vif->p2p; ar 593 drivers/net/wireless/ath/carl9170/main.c ar->rx_software_decryption = ar->disable_offload; ar 595 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_operating_mode(ar); ar 604 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 607 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 617 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->beacon_lock); ar 620 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->beacon_lock); ar 634 drivers/net/wireless/ath/carl9170/main.c main_vif = carl9170_get_main_vif(ar); ar 677 drivers/net/wireless/ath/carl9170/main.c vif_id = bitmap_find_free_region(&ar->vif_bitmap, ar->fw.vif_num, 0); ar 686 drivers/net/wireless/ath/carl9170/main.c BUG_ON(ar->vif_priv[vif_id].id != vif_id); ar 691 drivers/net/wireless/ath/carl9170/main.c ar->vifs++; ar 697 drivers/net/wireless/ath/carl9170/main.c list_add_rcu(&vif_priv->list, &ar->vif_list); ar 702 drivers/net/wireless/ath/carl9170/main.c list_add_tail_rcu(&vif_priv->list, &ar->vif_list); ar 704 drivers/net/wireless/ath/carl9170/main.c rcu_assign_pointer(ar->vif_priv[vif_id].vif, vif); ar 707 drivers/net/wireless/ath/carl9170/main.c main_vif = carl9170_get_main_vif(ar); ar 710 drivers/net/wireless/ath/carl9170/main.c rcu_assign_pointer(ar->beacon_iter, vif_priv); ar 721 drivers/net/wireless/ath/carl9170/main.c err = carl9170_mod_virtual_mac(ar, old_main_priv->id, ar 727 drivers/net/wireless/ath/carl9170/main.c err = carl9170_init_interface(ar, vif); ar 732 drivers/net/wireless/ath/carl9170/main.c err = carl9170_mod_virtual_mac(ar, vif_id, vif->addr); ar 738 drivers/net/wireless/ath/carl9170/main.c if (ar->fw.tx_seq_table) { ar 739 drivers/net/wireless/ath/carl9170/main.c err = carl9170_write_reg(ar, ar->fw.tx_seq_table + vif_id * 4, ar 748 drivers/net/wireless/ath/carl9170/main.c bitmap_release_region(&ar->vif_bitmap, vif_id, 0); ar 749 drivers/net/wireless/ath/carl9170/main.c ar->vifs--; ar 750 drivers/net/wireless/ath/carl9170/main.c RCU_INIT_POINTER(ar->vif_priv[vif_id].vif, NULL); ar 752 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 755 drivers/net/wireless/ath/carl9170/main.c if (ar->vifs > 1) ar 756 drivers/net/wireless/ath/carl9170/main.c ar->ps.off_override |= PS_OFF_VIF; ar 758 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 769 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 772 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 777 drivers/net/wireless/ath/carl9170/main.c ar->vifs--; ar 780 drivers/net/wireless/ath/carl9170/main.c main_vif = carl9170_get_main_vif(ar); ar 788 drivers/net/wireless/ath/carl9170/main.c RCU_INIT_POINTER(ar->vif_priv[id].vif, NULL); ar 793 drivers/net/wireless/ath/carl9170/main.c if (ar->vifs) { ar 794 drivers/net/wireless/ath/carl9170/main.c WARN_ON(carl9170_init_interface(ar, ar 795 drivers/net/wireless/ath/carl9170/main.c carl9170_get_main_vif(ar))); ar 797 drivers/net/wireless/ath/carl9170/main.c carl9170_set_operating_mode(ar); ar 802 drivers/net/wireless/ath/carl9170/main.c WARN_ON(carl9170_mod_virtual_mac(ar, id, NULL)); ar 805 drivers/net/wireless/ath/carl9170/main.c carl9170_update_beacon(ar, false); ar 806 drivers/net/wireless/ath/carl9170/main.c carl9170_flush_cab(ar, id); ar 808 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->beacon_lock); ar 811 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->beacon_lock); ar 813 drivers/net/wireless/ath/carl9170/main.c bitmap_release_region(&ar->vif_bitmap, id, 0); ar 815 drivers/net/wireless/ath/carl9170/main.c carl9170_set_beacon_timers(ar); ar 817 drivers/net/wireless/ath/carl9170/main.c if (ar->vifs == 1) ar 818 drivers/net/wireless/ath/carl9170/main.c ar->ps.off_override &= ~PS_OFF_VIF; ar 821 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 826 drivers/net/wireless/ath/carl9170/main.c void carl9170_ps_check(struct ar9170 *ar) ar 828 drivers/net/wireless/ath/carl9170/main.c ieee80211_queue_work(ar->hw, &ar->ps_work); ar 832 drivers/net/wireless/ath/carl9170/main.c static int carl9170_ps_update(struct ar9170 *ar) ar 837 drivers/net/wireless/ath/carl9170/main.c if (!ar->ps.off_override) ar 838 drivers/net/wireless/ath/carl9170/main.c ps = (ar->hw->conf.flags & IEEE80211_CONF_PS); ar 840 drivers/net/wireless/ath/carl9170/main.c if (ps != ar->ps.state) { ar 841 drivers/net/wireless/ath/carl9170/main.c err = carl9170_powersave(ar, ps); ar 845 drivers/net/wireless/ath/carl9170/main.c if (ar->ps.state && !ps) { ar 846 drivers/net/wireless/ath/carl9170/main.c ar->ps.sleep_ms = jiffies_to_msecs(jiffies - ar 847 drivers/net/wireless/ath/carl9170/main.c ar->ps.last_action); ar 851 drivers/net/wireless/ath/carl9170/main.c ar->ps.last_slept = jiffies; ar 853 drivers/net/wireless/ath/carl9170/main.c ar->ps.last_action = jiffies; ar 854 drivers/net/wireless/ath/carl9170/main.c ar->ps.state = ps; ar 862 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = container_of(work, struct ar9170, ar 864 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 865 drivers/net/wireless/ath/carl9170/main.c if (IS_STARTED(ar)) ar 866 drivers/net/wireless/ath/carl9170/main.c WARN_ON_ONCE(carl9170_ps_update(ar) != 0); ar 867 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 870 drivers/net/wireless/ath/carl9170/main.c static int carl9170_update_survey(struct ar9170 *ar, bool flush, bool noise) ar 875 drivers/net/wireless/ath/carl9170/main.c err = carl9170_get_noisefloor(ar); ar 880 drivers/net/wireless/ath/carl9170/main.c if (ar->fw.hw_counters) { ar 881 drivers/net/wireless/ath/carl9170/main.c err = carl9170_collect_tally(ar); ar 887 drivers/net/wireless/ath/carl9170/main.c memset(&ar->tally, 0, sizeof(ar->tally)); ar 894 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = container_of(work, struct ar9170, stat_work.work); ar 897 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 898 drivers/net/wireless/ath/carl9170/main.c err = carl9170_update_survey(ar, false, true); ar 899 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 904 drivers/net/wireless/ath/carl9170/main.c ieee80211_queue_delayed_work(ar->hw, &ar->stat_work, ar 910 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 913 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 920 drivers/net/wireless/ath/carl9170/main.c err = carl9170_ps_update(ar); ar 935 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_slot_time(ar); ar 939 drivers/net/wireless/ath/carl9170/main.c err = carl9170_update_survey(ar, true, false); ar 943 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_channel(ar, hw->conf.chandef.chan, ar 948 drivers/net/wireless/ath/carl9170/main.c err = carl9170_update_survey(ar, false, true); ar 952 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_dyn_sifs_ack(ar); ar 956 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_rts_cts_rate(ar); ar 962 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_mac_tpc(ar, ar->hw->conf.chandef.chan); ar 968 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 992 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 995 drivers/net/wireless/ath/carl9170/main.c *new_flags &= FIF_ALLMULTI | ar->rx_filter_caps; ar 997 drivers/net/wireless/ath/carl9170/main.c if (!IS_ACCEPTING_CMD(ar)) ar 1000 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1002 drivers/net/wireless/ath/carl9170/main.c ar->filter_state = *new_flags; ar 1011 drivers/net/wireless/ath/carl9170/main.c if (multicast != ar->cur_mc_hash) ar 1012 drivers/net/wireless/ath/carl9170/main.c WARN_ON(carl9170_update_multicast(ar, multicast)); ar 1015 drivers/net/wireless/ath/carl9170/main.c ar->sniffer_enabled = !!(*new_flags & FIF_OTHER_BSS); ar 1017 drivers/net/wireless/ath/carl9170/main.c WARN_ON(carl9170_set_operating_mode(ar)); ar 1020 drivers/net/wireless/ath/carl9170/main.c if (ar->fw.rx_filter && changed_flags & ar->rx_filter_caps) { ar 1023 drivers/net/wireless/ath/carl9170/main.c if (!ar->fw.ba_filter) ar 1040 drivers/net/wireless/ath/carl9170/main.c WARN_ON(carl9170_rx_filter(ar, rx_filter)); ar 1043 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1052 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1053 drivers/net/wireless/ath/carl9170/main.c struct ath_common *common = &ar->common; ar 1058 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1060 drivers/net/wireless/ath/carl9170/main.c main_vif = carl9170_get_main_vif(ar); ar 1070 drivers/net/wireless/ath/carl9170/main.c list_for_each_entry_rcu(iter, &ar->vif_list, list) { ar 1077 drivers/net/wireless/ath/carl9170/main.c ar->beacon_enabled = i; ar 1081 drivers/net/wireless/ath/carl9170/main.c err = carl9170_update_beacon(ar, false); ar 1105 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_beacon_timers(ar); ar 1127 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_operating_mode(ar); ar 1133 drivers/net/wireless/ath/carl9170/main.c ar->common.curaid = bss_conf->aid; ar 1134 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_beacon_timers(ar); ar 1140 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_slot_time(ar); ar 1146 drivers/net/wireless/ath/carl9170/main.c err = carl9170_set_mac_rates(ar); ar 1152 drivers/net/wireless/ath/carl9170/main.c WARN_ON_ONCE(err && IS_STARTED(ar)); ar 1153 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1159 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1163 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1164 drivers/net/wireless/ath/carl9170/main.c err = carl9170_exec_cmd(ar, CARL9170_CMD_READ_TSF, ar 1166 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1178 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1182 drivers/net/wireless/ath/carl9170/main.c if (ar->disable_offload || !vif) ar 1192 drivers/net/wireless/ath/carl9170/main.c if (!is_main_vif(ar, vif)) { ar 1193 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1225 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1227 drivers/net/wireless/ath/carl9170/main.c if (!IS_STARTED(ar)) { ar 1238 drivers/net/wireless/ath/carl9170/main.c if (!(ar->usedkeys & BIT(i))) ar 1246 drivers/net/wireless/ath/carl9170/main.c err = carl9170_upload_key(ar, i, sta ? sta->addr : NULL, ar 1253 drivers/net/wireless/ath/carl9170/main.c err = carl9170_upload_key(ar, i, sta ? sta->addr : ar 1267 drivers/net/wireless/ath/carl9170/main.c ar->usedkeys |= BIT(i); ar 1271 drivers/net/wireless/ath/carl9170/main.c if (!IS_STARTED(ar)) { ar 1278 drivers/net/wireless/ath/carl9170/main.c ar->usedkeys &= ~BIT(key->hw_key_idx); ar 1280 drivers/net/wireless/ath/carl9170/main.c err = carl9170_upload_key(ar, key->hw_key_idx, NULL, ar 1287 drivers/net/wireless/ath/carl9170/main.c err = carl9170_upload_key(ar, key->hw_key_idx, ar 1297 drivers/net/wireless/ath/carl9170/main.c err = carl9170_disable_key(ar, key->hw_key_idx); ar 1303 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1307 drivers/net/wireless/ath/carl9170/main.c if (!ar->rx_software_decryption) { ar 1308 drivers/net/wireless/ath/carl9170/main.c ar->rx_software_decryption = true; ar 1309 drivers/net/wireless/ath/carl9170/main.c carl9170_set_operating_mode(ar); ar 1311 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1348 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1367 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->tx_ampdu_list_lock); ar 1370 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->tx_ampdu_list_lock); ar 1376 drivers/net/wireless/ath/carl9170/main.c carl9170_ampdu_gc(ar); ar 1386 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1389 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1390 drivers/net/wireless/ath/carl9170/main.c memcpy(&ar->edcf[ar9170_qmap[queue]], param, sizeof(*param)); ar 1391 drivers/net/wireless/ath/carl9170/main.c ret = carl9170_set_qos(ar); ar 1392 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1398 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = container_of(work, struct ar9170, ar 1401 drivers/net/wireless/ath/carl9170/main.c if (!IS_STARTED(ar)) ar 1404 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1405 drivers/net/wireless/ath/carl9170/main.c carl9170_ampdu_gc(ar); ar 1406 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1417 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1446 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->tx_ampdu_list_lock); ar 1447 drivers/net/wireless/ath/carl9170/main.c ar->tx_ampdu_list_len++; ar 1448 drivers/net/wireless/ath/carl9170/main.c list_add_tail_rcu(&tid_info->list, &ar->tx_ampdu_list); ar 1450 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->tx_ampdu_list_lock); ar 1461 drivers/net/wireless/ath/carl9170/main.c spin_lock_bh(&ar->tx_ampdu_list_lock); ar 1464 drivers/net/wireless/ath/carl9170/main.c spin_unlock_bh(&ar->tx_ampdu_list_lock); ar 1471 drivers/net/wireless/ath/carl9170/main.c ieee80211_queue_work(ar->hw, &ar->ampdu_work); ar 1505 drivers/net/wireless/ath/carl9170/main.c static int carl9170_register_wps_button(struct ar9170 *ar) ar 1510 drivers/net/wireless/ath/carl9170/main.c if (!(ar->features & CARL9170_WPS_BUTTON)) ar 1517 drivers/net/wireless/ath/carl9170/main.c snprintf(ar->wps.name, sizeof(ar->wps.name), "%s WPS Button", ar 1518 drivers/net/wireless/ath/carl9170/main.c wiphy_name(ar->hw->wiphy)); ar 1520 drivers/net/wireless/ath/carl9170/main.c snprintf(ar->wps.phys, sizeof(ar->wps.phys), ar 1521 drivers/net/wireless/ath/carl9170/main.c "ieee80211/%s/input0", wiphy_name(ar->hw->wiphy)); ar 1523 drivers/net/wireless/ath/carl9170/main.c input->name = ar->wps.name; ar 1524 drivers/net/wireless/ath/carl9170/main.c input->phys = ar->wps.phys; ar 1526 drivers/net/wireless/ath/carl9170/main.c input->dev.parent = &ar->hw->wiphy->dev; ar 1536 drivers/net/wireless/ath/carl9170/main.c ar->wps.pbc = input; ar 1542 drivers/net/wireless/ath/carl9170/main.c static int carl9170_rng_get(struct ar9170 *ar) ar 1558 drivers/net/wireless/ath/carl9170/main.c if (!IS_ACCEPTING_CMD(ar) || !ar->rng.initialized) ar 1561 drivers/net/wireless/ath/carl9170/main.c count = ARRAY_SIZE(ar->rng.cache); ar 1563 drivers/net/wireless/ath/carl9170/main.c err = carl9170_exec_cmd(ar, CARL9170_CMD_RREG, ar 1571 drivers/net/wireless/ath/carl9170/main.c ar->rng.cache[off + i] = buf[i]; ar 1577 drivers/net/wireless/ath/carl9170/main.c ar->rng.cache_idx = 0; ar 1586 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = (struct ar9170 *)rng->priv; ar 1589 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1590 drivers/net/wireless/ath/carl9170/main.c if (ar->rng.cache_idx >= ARRAY_SIZE(ar->rng.cache)) { ar 1591 drivers/net/wireless/ath/carl9170/main.c ret = carl9170_rng_get(ar); ar 1593 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1598 drivers/net/wireless/ath/carl9170/main.c *data = ar->rng.cache[ar->rng.cache_idx++]; ar 1599 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1604 drivers/net/wireless/ath/carl9170/main.c static void carl9170_unregister_hwrng(struct ar9170 *ar) ar 1606 drivers/net/wireless/ath/carl9170/main.c if (ar->rng.initialized) { ar 1607 drivers/net/wireless/ath/carl9170/main.c hwrng_unregister(&ar->rng.rng); ar 1608 drivers/net/wireless/ath/carl9170/main.c ar->rng.initialized = false; ar 1612 drivers/net/wireless/ath/carl9170/main.c static int carl9170_register_hwrng(struct ar9170 *ar) ar 1616 drivers/net/wireless/ath/carl9170/main.c snprintf(ar->rng.name, ARRAY_SIZE(ar->rng.name), ar 1617 drivers/net/wireless/ath/carl9170/main.c "%s_%s", KBUILD_MODNAME, wiphy_name(ar->hw->wiphy)); ar 1618 drivers/net/wireless/ath/carl9170/main.c ar->rng.rng.name = ar->rng.name; ar 1619 drivers/net/wireless/ath/carl9170/main.c ar->rng.rng.data_read = carl9170_rng_read; ar 1620 drivers/net/wireless/ath/carl9170/main.c ar->rng.rng.priv = (unsigned long)ar; ar 1622 drivers/net/wireless/ath/carl9170/main.c if (WARN_ON(ar->rng.initialized)) ar 1625 drivers/net/wireless/ath/carl9170/main.c err = hwrng_register(&ar->rng.rng); ar 1627 drivers/net/wireless/ath/carl9170/main.c dev_err(&ar->udev->dev, "Failed to register the random " ar 1632 drivers/net/wireless/ath/carl9170/main.c ar->rng.initialized = true; ar 1634 drivers/net/wireless/ath/carl9170/main.c err = carl9170_rng_get(ar); ar 1636 drivers/net/wireless/ath/carl9170/main.c carl9170_unregister_hwrng(ar); ar 1647 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1652 drivers/net/wireless/ath/carl9170/main.c chan = ar->channel; ar 1657 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1658 drivers/net/wireless/ath/carl9170/main.c err = carl9170_update_survey(ar, false, true); ar 1659 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1665 drivers/net/wireless/ath/carl9170/main.c band = ar->hw->wiphy->bands[b]; ar 1680 drivers/net/wireless/ath/carl9170/main.c memcpy(survey, &ar->survey[idx], sizeof(*survey)); ar 1685 drivers/net/wireless/ath/carl9170/main.c if (ar->channel == chan) ar 1688 drivers/net/wireless/ath/carl9170/main.c if (ar->fw.hw_counters) { ar 1701 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1704 drivers/net/wireless/ath/carl9170/main.c mutex_lock(&ar->mutex); ar 1705 drivers/net/wireless/ath/carl9170/main.c for_each_set_bit(vid, &ar->vif_bitmap, ar->fw.vif_num) ar 1706 drivers/net/wireless/ath/carl9170/main.c carl9170_flush_cab(ar, vid); ar 1708 drivers/net/wireless/ath/carl9170/main.c carl9170_flush(ar, drop); ar 1709 drivers/net/wireless/ath/carl9170/main.c mutex_unlock(&ar->mutex); ar 1715 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1718 drivers/net/wireless/ath/carl9170/main.c stats->dot11ACKFailureCount = ar->tx_ack_failures; ar 1719 drivers/net/wireless/ath/carl9170/main.c stats->dot11FCSErrorCount = ar->tx_fcs_errors; ar 1745 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1747 drivers/net/wireless/ath/carl9170/main.c return !!atomic_read(&ar->tx_total_queued); ar 1776 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar; ar 1794 drivers/net/wireless/ath/carl9170/main.c ar = hw->priv; ar 1795 drivers/net/wireless/ath/carl9170/main.c ar->hw = hw; ar 1796 drivers/net/wireless/ath/carl9170/main.c ar->rx_failover = skb; ar 1798 drivers/net/wireless/ath/carl9170/main.c memset(&ar->rx_plcp, 0, sizeof(struct ar9170_rx_head)); ar 1799 drivers/net/wireless/ath/carl9170/main.c ar->rx_has_plcp = false; ar 1811 drivers/net/wireless/ath/carl9170/main.c mutex_init(&ar->mutex); ar 1812 drivers/net/wireless/ath/carl9170/main.c spin_lock_init(&ar->beacon_lock); ar 1813 drivers/net/wireless/ath/carl9170/main.c spin_lock_init(&ar->cmd_lock); ar 1814 drivers/net/wireless/ath/carl9170/main.c spin_lock_init(&ar->tx_stats_lock); ar 1815 drivers/net/wireless/ath/carl9170/main.c spin_lock_init(&ar->tx_ampdu_list_lock); ar 1816 drivers/net/wireless/ath/carl9170/main.c spin_lock_init(&ar->mem_lock); ar 1817 drivers/net/wireless/ath/carl9170/main.c spin_lock_init(&ar->state_lock); ar 1818 drivers/net/wireless/ath/carl9170/main.c atomic_set(&ar->pending_restarts, 0); ar 1819 drivers/net/wireless/ath/carl9170/main.c ar->vifs = 0; ar 1820 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < ar->hw->queues; i++) { ar 1821 drivers/net/wireless/ath/carl9170/main.c skb_queue_head_init(&ar->tx_status[i]); ar 1822 drivers/net/wireless/ath/carl9170/main.c skb_queue_head_init(&ar->tx_pending[i]); ar 1824 drivers/net/wireless/ath/carl9170/main.c INIT_LIST_HEAD(&ar->bar_list[i]); ar 1825 drivers/net/wireless/ath/carl9170/main.c spin_lock_init(&ar->bar_list_lock[i]); ar 1827 drivers/net/wireless/ath/carl9170/main.c INIT_WORK(&ar->ps_work, carl9170_ps_work); ar 1828 drivers/net/wireless/ath/carl9170/main.c INIT_WORK(&ar->ping_work, carl9170_ping_work); ar 1829 drivers/net/wireless/ath/carl9170/main.c INIT_WORK(&ar->restart_work, carl9170_restart_work); ar 1830 drivers/net/wireless/ath/carl9170/main.c INIT_WORK(&ar->ampdu_work, carl9170_ampdu_work); ar 1831 drivers/net/wireless/ath/carl9170/main.c INIT_DELAYED_WORK(&ar->stat_work, carl9170_stat_work); ar 1832 drivers/net/wireless/ath/carl9170/main.c INIT_DELAYED_WORK(&ar->tx_janitor, carl9170_tx_janitor); ar 1833 drivers/net/wireless/ath/carl9170/main.c INIT_LIST_HEAD(&ar->tx_ampdu_list); ar 1834 drivers/net/wireless/ath/carl9170/main.c rcu_assign_pointer(ar->tx_ampdu_iter, ar 1835 drivers/net/wireless/ath/carl9170/main.c (struct carl9170_sta_tid *) &ar->tx_ampdu_list); ar 1837 drivers/net/wireless/ath/carl9170/main.c bitmap_zero(&ar->vif_bitmap, ar->fw.vif_num); ar 1838 drivers/net/wireless/ath/carl9170/main.c INIT_LIST_HEAD(&ar->vif_list); ar 1839 drivers/net/wireless/ath/carl9170/main.c init_completion(&ar->tx_flush); ar 1869 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < ARRAY_SIZE(ar->noise); i++) ar 1870 drivers/net/wireless/ath/carl9170/main.c ar->noise[i] = -95; /* ATH_DEFAULT_NOISE_FLOOR */ ar 1874 drivers/net/wireless/ath/carl9170/main.c return ar; ar 1881 drivers/net/wireless/ath/carl9170/main.c static int carl9170_read_eeprom(struct ar9170 *ar) ar 1885 drivers/net/wireless/ath/carl9170/main.c u8 *eeprom = (void *)&ar->eeprom; ar 1889 drivers/net/wireless/ath/carl9170/main.c BUILD_BUG_ON(sizeof(ar->eeprom) & 3); ar 1894 drivers/net/wireless/ath/carl9170/main.c BUILD_BUG_ON(sizeof(ar->eeprom) % RB); ar 1897 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < sizeof(ar->eeprom) / RB; i++) { ar 1902 drivers/net/wireless/ath/carl9170/main.c err = carl9170_exec_cmd(ar, CARL9170_CMD_RREG, ar 1914 drivers/net/wireless/ath/carl9170/main.c static int carl9170_parse_eeprom(struct ar9170 *ar) ar 1916 drivers/net/wireless/ath/carl9170/main.c struct ath_regulatory *regulatory = &ar->common.regulatory; ar 1921 drivers/net/wireless/ath/carl9170/main.c if (ar->eeprom.length == cpu_to_le16(0xffff)) ar 1924 drivers/net/wireless/ath/carl9170/main.c rx_streams = hweight8(ar->eeprom.rx_mask); ar 1925 drivers/net/wireless/ath/carl9170/main.c tx_streams = hweight8(ar->eeprom.tx_mask); ar 1940 drivers/net/wireless/ath/carl9170/main.c if (ar->eeprom.operating_flags & AR9170_OPFLAG_2GHZ) { ar 1941 drivers/net/wireless/ath/carl9170/main.c ar->hw->wiphy->bands[NL80211_BAND_2GHZ] = ar 1946 drivers/net/wireless/ath/carl9170/main.c if (ar->eeprom.operating_flags & AR9170_OPFLAG_5GHZ) { ar 1947 drivers/net/wireless/ath/carl9170/main.c ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = ar 1956 drivers/net/wireless/ath/carl9170/main.c ar->survey = kcalloc(chans, sizeof(struct survey_info), GFP_KERNEL); ar 1957 drivers/net/wireless/ath/carl9170/main.c if (!ar->survey) ar 1959 drivers/net/wireless/ath/carl9170/main.c ar->num_channels = chans; ar 1961 drivers/net/wireless/ath/carl9170/main.c regulatory->current_rd = le16_to_cpu(ar->eeprom.reg_domain[0]); ar 1964 drivers/net/wireless/ath/carl9170/main.c SET_IEEE80211_PERM_ADDR(ar->hw, ar->eeprom.mac_address); ar 1973 drivers/net/wireless/ath/carl9170/main.c struct ar9170 *ar = hw->priv; ar 1975 drivers/net/wireless/ath/carl9170/main.c ath_reg_notifier_apply(wiphy, request, &ar->common.regulatory); ar 1978 drivers/net/wireless/ath/carl9170/main.c int carl9170_register(struct ar9170 *ar) ar 1980 drivers/net/wireless/ath/carl9170/main.c struct ath_regulatory *regulatory = &ar->common.regulatory; ar 1983 drivers/net/wireless/ath/carl9170/main.c if (WARN_ON(ar->mem_bitmap)) ar 1986 drivers/net/wireless/ath/carl9170/main.c ar->mem_bitmap = kcalloc(roundup(ar->fw.mem_blocks, BITS_PER_LONG), ar 1990 drivers/net/wireless/ath/carl9170/main.c if (!ar->mem_bitmap) ar 1994 drivers/net/wireless/ath/carl9170/main.c err = carl9170_read_eeprom(ar); ar 1998 drivers/net/wireless/ath/carl9170/main.c err = carl9170_parse_eeprom(ar); ar 2002 drivers/net/wireless/ath/carl9170/main.c err = ath_regd_init(regulatory, ar->hw->wiphy, ar 2012 drivers/net/wireless/ath/carl9170/main.c for (i = 0; i < ar->fw.vif_num; i++) { ar 2013 drivers/net/wireless/ath/carl9170/main.c ar->vif_priv[i].id = i; ar 2014 drivers/net/wireless/ath/carl9170/main.c ar->vif_priv[i].vif = NULL; ar 2017 drivers/net/wireless/ath/carl9170/main.c err = ieee80211_register_hw(ar->hw); ar 2022 drivers/net/wireless/ath/carl9170/main.c ar->registered = true; ar 2025 drivers/net/wireless/ath/carl9170/main.c regulatory_hint(ar->hw->wiphy, regulatory->alpha2); ar 2028 drivers/net/wireless/ath/carl9170/main.c carl9170_debugfs_register(ar); ar 2031 drivers/net/wireless/ath/carl9170/main.c err = carl9170_led_init(ar); ar 2036 drivers/net/wireless/ath/carl9170/main.c err = carl9170_led_register(ar); ar 2042 drivers/net/wireless/ath/carl9170/main.c err = carl9170_register_wps_button(ar); ar 2048 drivers/net/wireless/ath/carl9170/main.c err = carl9170_register_hwrng(ar); ar 2053 drivers/net/wireless/ath/carl9170/main.c dev_info(&ar->udev->dev, "Atheros AR9170 is registered as '%s'\n", ar 2054 drivers/net/wireless/ath/carl9170/main.c wiphy_name(ar->hw->wiphy)); ar 2059 drivers/net/wireless/ath/carl9170/main.c carl9170_unregister(ar); ar 2063 drivers/net/wireless/ath/carl9170/main.c void carl9170_unregister(struct ar9170 *ar) ar 2065 drivers/net/wireless/ath/carl9170/main.c if (!ar->registered) ar 2068 drivers/net/wireless/ath/carl9170/main.c ar->registered = false; ar 2071 drivers/net/wireless/ath/carl9170/main.c carl9170_led_unregister(ar); ar 2075 drivers/net/wireless/ath/carl9170/main.c carl9170_debugfs_unregister(ar); ar 2079 drivers/net/wireless/ath/carl9170/main.c if (ar->wps.pbc) { ar 2080 drivers/net/wireless/ath/carl9170/main.c input_unregister_device(ar->wps.pbc); ar 2081 drivers/net/wireless/ath/carl9170/main.c ar->wps.pbc = NULL; ar 2086 drivers/net/wireless/ath/carl9170/main.c carl9170_unregister_hwrng(ar); ar 2089 drivers/net/wireless/ath/carl9170/main.c carl9170_cancel_worker(ar); ar 2090 drivers/net/wireless/ath/carl9170/main.c cancel_work_sync(&ar->restart_work); ar 2092 drivers/net/wireless/ath/carl9170/main.c ieee80211_unregister_hw(ar->hw); ar 2095 drivers/net/wireless/ath/carl9170/main.c void carl9170_free(struct ar9170 *ar) ar 2097 drivers/net/wireless/ath/carl9170/main.c WARN_ON(ar->registered); ar 2098 drivers/net/wireless/ath/carl9170/main.c WARN_ON(IS_INITIALIZED(ar)); ar 2100 drivers/net/wireless/ath/carl9170/main.c kfree_skb(ar->rx_failover); ar 2101 drivers/net/wireless/ath/carl9170/main.c ar->rx_failover = NULL; ar 2103 drivers/net/wireless/ath/carl9170/main.c kfree(ar->mem_bitmap); ar 2104 drivers/net/wireless/ath/carl9170/main.c ar->mem_bitmap = NULL; ar 2106 drivers/net/wireless/ath/carl9170/main.c kfree(ar->survey); ar 2107 drivers/net/wireless/ath/carl9170/main.c ar->survey = NULL; ar 2109 drivers/net/wireless/ath/carl9170/main.c mutex_destroy(&ar->mutex); ar 2111 drivers/net/wireless/ath/carl9170/main.c ieee80211_free_hw(ar->hw); ar 44 drivers/net/wireless/ath/carl9170/phy.c static int carl9170_init_power_cal(struct ar9170 *ar) ar 46 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite_begin(ar); ar 432 drivers/net/wireless/ath/carl9170/phy.c static int carl9170_init_phy_from_eeprom(struct ar9170 *ar, ar 440 drivers/net/wireless/ath/carl9170/phy.c struct ar9170_eeprom_modal *m = &ar->eeprom.modal_header[is_2ghz]; ar 443 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite_begin(ar); ar 536 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite(AR9170_PHY_REG_RX_CHAINMASK, ar->eeprom.rx_mask); ar 537 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite(AR9170_PHY_REG_CAL_CHAINMASK, ar->eeprom.rx_mask); ar 543 drivers/net/wireless/ath/carl9170/phy.c static int carl9170_init_phy(struct ar9170 *ar, enum nl80211_band band) ar 548 drivers/net/wireless/ath/carl9170/phy.c bool is_40mhz = conf_is_ht40(&ar->hw->conf); ar 550 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite_begin(ar); ar 573 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_init_phy_from_eeprom(ar, is_2ghz, is_40mhz); ar 577 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_init_power_cal(ar); ar 581 drivers/net/wireless/ath/carl9170/phy.c if (!ar->fw.hw_counters) { ar 582 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_write_reg(ar, AR9170_PWR_REG_PLL_ADDAC, ar 672 drivers/net/wireless/ath/carl9170/phy.c static int carl9170_init_rf_banks_0_7(struct ar9170 *ar, bool band5ghz) ar 676 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite_begin(ar); ar 686 drivers/net/wireless/ath/carl9170/phy.c wiphy_err(ar->hw->wiphy, "rf init failed\n"); ar 966 drivers/net/wireless/ath/carl9170/phy.c static int carl9170_init_rf_bank4_pwr(struct ar9170 *ar, bool band5ghz, ar 1021 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite_begin(ar); ar 1117 drivers/net/wireless/ath/carl9170/phy.c static int carl9170_set_freq_cal_data(struct ar9170 *ar, ar 1130 drivers/net/wireless/ath/carl9170/phy.c cal_freq_pier = ar->eeprom.cal_freq_pier_2G; ar 1136 drivers/net/wireless/ath/carl9170/phy.c cal_freq_pier = ar->eeprom.cal_freq_pier_5G; ar 1153 drivers/net/wireless/ath/carl9170/phy.c carl9170_regwrite_begin(ar); ar 1162 drivers/net/wireless/ath/carl9170/phy.c cal_pier_data = &ar->eeprom. ar 1167 drivers/net/wireless/ath/carl9170/phy.c cal_pier_data = &ar->eeprom. ar 1217 drivers/net/wireless/ath/carl9170/phy.c static u8 carl9170_get_max_edge_power(struct ar9170 *ar, ar 1259 drivers/net/wireless/ath/carl9170/phy.c static u8 carl9170_get_heavy_clip(struct ar9170 *ar, u32 freq, ar 1291 drivers/net/wireless/ath/carl9170/phy.c static void carl9170_calc_ctl(struct ar9170 *ar, u32 freq, enum carl9170_bw bw) ar 1308 drivers/net/wireless/ath/carl9170/phy.c { CTL_11B, 0, ar->power_2G_cck, 4 }, ar 1309 drivers/net/wireless/ath/carl9170/phy.c { CTL_11G, 0, ar->power_2G_ofdm, 4 }, ar 1310 drivers/net/wireless/ath/carl9170/phy.c { CTL_2GHT20, 0, ar->power_2G_ht20, 8 }, ar 1311 drivers/net/wireless/ath/carl9170/phy.c { CTL_2GHT40, 0, ar->power_2G_ht40, 8 }, ar 1314 drivers/net/wireless/ath/carl9170/phy.c { CTL_11A, 0, ar->power_5G_leg, 4 }, ar 1315 drivers/net/wireless/ath/carl9170/phy.c { CTL_5GHT20, 0, ar->power_5G_ht20, 8 }, ar 1316 drivers/net/wireless/ath/carl9170/phy.c { CTL_5GHT40, 0, ar->power_5G_ht40, 8 }, ar 1320 drivers/net/wireless/ath/carl9170/phy.c #define EDGES(c, n) (ar->eeprom.ctl_data[c].control_edges[n]) ar 1322 drivers/net/wireless/ath/carl9170/phy.c ar->heavy_clip = 0; ar 1332 drivers/net/wireless/ath/carl9170/phy.c ctl_grp = ath_regd_get_band_ctl(&ar->common.regulatory, ar 1333 drivers/net/wireless/ath/carl9170/phy.c ar->hw->conf.chandef.chan->band); ar 1343 drivers/net/wireless/ath/carl9170/phy.c if (ar->hw->conf.chandef.chan->band == NL80211_BAND_2GHZ) { ar 1354 drivers/net/wireless/ath/carl9170/phy.c if (c == ar->eeprom.ctl_index[ctl_idx]) ar 1364 drivers/net/wireless/ath/carl9170/phy.c ar->heavy_clip = ar 1365 drivers/net/wireless/ath/carl9170/phy.c carl9170_get_heavy_clip(ar, ar 1379 drivers/net/wireless/ath/carl9170/phy.c carl9170_get_max_edge_power(ar, ar 1414 drivers/net/wireless/ath/carl9170/phy.c if (ar->heavy_clip & 0xf0) { ar 1415 drivers/net/wireless/ath/carl9170/phy.c ar->power_2G_ht40[0]--; ar 1416 drivers/net/wireless/ath/carl9170/phy.c ar->power_2G_ht40[1]--; ar 1417 drivers/net/wireless/ath/carl9170/phy.c ar->power_2G_ht40[2]--; ar 1419 drivers/net/wireless/ath/carl9170/phy.c if (ar->heavy_clip & 0xf) { ar 1420 drivers/net/wireless/ath/carl9170/phy.c ar->power_2G_ht20[0]++; ar 1421 drivers/net/wireless/ath/carl9170/phy.c ar->power_2G_ht20[1]++; ar 1422 drivers/net/wireless/ath/carl9170/phy.c ar->power_2G_ht20[2]++; ar 1428 drivers/net/wireless/ath/carl9170/phy.c static void carl9170_set_power_cal(struct ar9170 *ar, u32 freq, ar 1452 drivers/net/wireless/ath/carl9170/phy.c ctpl = &ar->eeprom.cal_tgt_pwr_5G[0]; ar 1454 drivers/net/wireless/ath/carl9170/phy.c ctpres = ar->power_5G_leg; ar 1457 drivers/net/wireless/ath/carl9170/phy.c ctpl = &ar->eeprom.cal_tgt_pwr_2G_cck[0]; ar 1459 drivers/net/wireless/ath/carl9170/phy.c ctpres = ar->power_2G_cck; ar 1462 drivers/net/wireless/ath/carl9170/phy.c ctpl = &ar->eeprom.cal_tgt_pwr_2G_ofdm[0]; ar 1464 drivers/net/wireless/ath/carl9170/phy.c ctpres = ar->power_2G_ofdm; ar 1487 drivers/net/wireless/ath/carl9170/phy.c ctph = &ar->eeprom.cal_tgt_pwr_5G_ht20[0]; ar 1489 drivers/net/wireless/ath/carl9170/phy.c ctpres = ar->power_5G_ht20; ar 1492 drivers/net/wireless/ath/carl9170/phy.c ctph = &ar->eeprom.cal_tgt_pwr_5G_ht40[0]; ar 1494 drivers/net/wireless/ath/carl9170/phy.c ctpres = ar->power_5G_ht40; ar 1497 drivers/net/wireless/ath/carl9170/phy.c ctph = &ar->eeprom.cal_tgt_pwr_2G_ht20[0]; ar 1499 drivers/net/wireless/ath/carl9170/phy.c ctpres = ar->power_2G_ht20; ar 1502 drivers/net/wireless/ath/carl9170/phy.c ctph = &ar->eeprom.cal_tgt_pwr_2G_ht40[0]; ar 1504 drivers/net/wireless/ath/carl9170/phy.c ctpres = ar->power_2G_ht40; ar 1524 drivers/net/wireless/ath/carl9170/phy.c carl9170_calc_ctl(ar, freq, bw); ar 1527 drivers/net/wireless/ath/carl9170/phy.c int carl9170_get_noisefloor(struct ar9170 *ar) ar 1535 drivers/net/wireless/ath/carl9170/phy.c BUILD_BUG_ON(ARRAY_SIZE(phy_regs) != ARRAY_SIZE(ar->noise)); ar 1537 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_read_mreg(ar, ARRAY_SIZE(phy_regs), phy_regs, phy_res); ar 1542 drivers/net/wireless/ath/carl9170/phy.c ar->noise[i] = sign_extend32(GET_VAL( ar 1545 drivers/net/wireless/ath/carl9170/phy.c ar->noise[i + 2] = sign_extend32(GET_VAL( ar 1549 drivers/net/wireless/ath/carl9170/phy.c if (ar->channel) ar 1550 drivers/net/wireless/ath/carl9170/phy.c ar->survey[ar->channel->hw_value].noise = ar->noise[0]; ar 1570 drivers/net/wireless/ath/carl9170/phy.c int carl9170_set_channel(struct ar9170 *ar, struct ieee80211_channel *channel, ar 1583 drivers/net/wireless/ath/carl9170/phy.c if (conf_is_ht(&ar->hw->conf)) ar 1586 drivers/net/wireless/ath/carl9170/phy.c if (conf_is_ht40(&ar->hw->conf)) ar 1590 drivers/net/wireless/ath/carl9170/phy.c if (ar->channel) { ar 1591 drivers/net/wireless/ath/carl9170/phy.c old_channel = ar->channel; ar 1592 drivers/net/wireless/ath/carl9170/phy.c ar->channel = NULL; ar 1596 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_write_reg(ar, AR9170_PWR_REG_RESET, ar 1601 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_write_reg(ar, AR9170_PWR_REG_RESET, 0x0); ar 1605 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_init_phy(ar, channel->band); ar 1609 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_init_rf_banks_0_7(ar, ar 1614 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_exec_cmd(ar, CARL9170_CMD_FREQ_START, 0, NULL, 0, NULL); ar 1618 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_write_reg(ar, AR9170_PHY_REG_HEAVY_CLIP_ENABLE, ar 1623 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_init_rf_bank4_pwr(ar, ar 1651 drivers/net/wireless/ath/carl9170/phy.c if (ar->eeprom.tx_mask != 1) ar 1654 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_write_reg(ar, AR9170_PHY_REG_TURBO, tmp); ar 1658 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_set_freq_cal_data(ar, channel); ar 1662 drivers/net/wireless/ath/carl9170/phy.c carl9170_set_power_cal(ar, channel->center_freq, bw); ar 1664 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_set_mac_tpc(ar, channel); ar 1671 drivers/net/wireless/ath/carl9170/phy.c if (conf_is_ht40(&ar->hw->conf)) ar 1680 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_exec_cmd(ar, CARL9170_CMD_RF_INIT, sizeof(rf), &rf, ar 1687 drivers/net/wireless/ath/carl9170/phy.c ar->chan_fail++; ar 1688 drivers/net/wireless/ath/carl9170/phy.c ar->total_chan_fail++; ar 1690 drivers/net/wireless/ath/carl9170/phy.c wiphy_err(ar->hw->wiphy, "channel change: %d -> %d " ar 1695 drivers/net/wireless/ath/carl9170/phy.c if (ar->chan_fail > 3) { ar 1702 drivers/net/wireless/ath/carl9170/phy.c carl9170_restart(ar, CARL9170_RR_TOO_MANY_PHY_ERRORS); ar 1706 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_set_channel(ar, channel, _bw); ar 1710 drivers/net/wireless/ath/carl9170/phy.c ar->chan_fail = 0; ar 1713 drivers/net/wireless/ath/carl9170/phy.c if (ar->heavy_clip) { ar 1714 drivers/net/wireless/ath/carl9170/phy.c err = carl9170_write_reg(ar, AR9170_PHY_REG_HEAVY_CLIP_ENABLE, ar 1715 drivers/net/wireless/ath/carl9170/phy.c 0x200 | ar->heavy_clip); ar 1718 drivers/net/wireless/ath/carl9170/phy.c wiphy_err(ar->hw->wiphy, "failed to set " ar 1726 drivers/net/wireless/ath/carl9170/phy.c ar->channel = channel; ar 1727 drivers/net/wireless/ath/carl9170/phy.c ar->ht_settings = new_ht; ar 49 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_dbg_message(struct ar9170 *ar, const char *buf, u32 len) ar 56 drivers/net/wireless/ath/carl9170/rx.c ar->fw.err_counter++; ar 57 drivers/net/wireless/ath/carl9170/rx.c if (ar->fw.err_counter > 3) { ar 64 drivers/net/wireless/ath/carl9170/rx.c ar->fw.bug_counter++; ar 70 drivers/net/wireless/ath/carl9170/rx.c wiphy_info(ar->hw->wiphy, "FW: %.*s\n", len, buf); ar 73 drivers/net/wireless/ath/carl9170/rx.c carl9170_restart(ar, reason); ar 76 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_handle_ps(struct ar9170 *ar, struct carl9170_rsp *rsp) ar 84 drivers/net/wireless/ath/carl9170/rx.c if (ar->ps.state != new_ps) { ar 86 drivers/net/wireless/ath/carl9170/rx.c ar->ps.sleep_ms = jiffies_to_msecs(jiffies - ar 87 drivers/net/wireless/ath/carl9170/rx.c ar->ps.last_action); ar 90 drivers/net/wireless/ath/carl9170/rx.c ar->ps.last_action = jiffies; ar 92 drivers/net/wireless/ath/carl9170/rx.c ar->ps.state = new_ps; ar 96 drivers/net/wireless/ath/carl9170/rx.c static int carl9170_check_sequence(struct ar9170 *ar, unsigned int seq) ar 98 drivers/net/wireless/ath/carl9170/rx.c if (ar->cmd_seq < -1) ar 104 drivers/net/wireless/ath/carl9170/rx.c if (ar->cmd_seq < 0) ar 105 drivers/net/wireless/ath/carl9170/rx.c ar->cmd_seq = seq; ar 113 drivers/net/wireless/ath/carl9170/rx.c if (seq != ar->cmd_seq) { ar 116 drivers/net/wireless/ath/carl9170/rx.c count = (seq - ar->cmd_seq) % ar->fw.cmd_bufs; ar 118 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "lost %d command responses/traps! " ar 119 drivers/net/wireless/ath/carl9170/rx.c "w:%d g:%d\n", count, ar->cmd_seq, seq); ar 121 drivers/net/wireless/ath/carl9170/rx.c carl9170_restart(ar, CARL9170_RR_LOST_RSP); ar 125 drivers/net/wireless/ath/carl9170/rx.c ar->cmd_seq = (ar->cmd_seq + 1) % ar->fw.cmd_bufs; ar 129 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_cmd_callback(struct ar9170 *ar, u32 len, void *buffer) ar 136 drivers/net/wireless/ath/carl9170/rx.c if (unlikely(ar->readlen != (len - 4))) { ar 137 drivers/net/wireless/ath/carl9170/rx.c dev_warn(&ar->udev->dev, "received invalid command response:" ar 138 drivers/net/wireless/ath/carl9170/rx.c "got %d, instead of %d\n", len - 4, ar->readlen); ar 140 drivers/net/wireless/ath/carl9170/rx.c ar->cmd_buf, (ar->cmd.hdr.len + 4) & 0x3f); ar 147 drivers/net/wireless/ath/carl9170/rx.c carl9170_restart(ar, CARL9170_RR_INVALID_RSP); ar 150 drivers/net/wireless/ath/carl9170/rx.c spin_lock(&ar->cmd_lock); ar 151 drivers/net/wireless/ath/carl9170/rx.c if (ar->readbuf) { ar 153 drivers/net/wireless/ath/carl9170/rx.c memcpy(ar->readbuf, buffer + 4, len - 4); ar 155 drivers/net/wireless/ath/carl9170/rx.c ar->readbuf = NULL; ar 157 drivers/net/wireless/ath/carl9170/rx.c complete(&ar->cmd_wait); ar 158 drivers/net/wireless/ath/carl9170/rx.c spin_unlock(&ar->cmd_lock); ar 161 drivers/net/wireless/ath/carl9170/rx.c void carl9170_handle_command_response(struct ar9170 *ar, void *buf, u32 len) ar 168 drivers/net/wireless/ath/carl9170/rx.c carl9170_cmd_callback(ar, len, buf); ar 175 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "FW: received over-/under" ar 191 drivers/net/wireless/ath/carl9170/rx.c vif = carl9170_get_main_vif(ar); ar 200 drivers/net/wireless/ath/carl9170/rx.c carl9170_handle_ps(ar, cmd); ar 206 drivers/net/wireless/ath/carl9170/rx.c carl9170_update_beacon(ar, true); ar 219 drivers/net/wireless/ath/carl9170/rx.c carl9170_tx_process_status(ar, cmd); ar 239 drivers/net/wireless/ath/carl9170/rx.c carl9170_restart(ar, CARL9170_RR_WATCHDOG); ar 244 drivers/net/wireless/ath/carl9170/rx.c carl9170_dbg_message(ar, (char *)buf + 4, len - 4); ar 248 drivers/net/wireless/ath/carl9170/rx.c wiphy_dbg(ar->hw->wiphy, "FW: HD %d\n", len - 4); ar 257 drivers/net/wireless/ath/carl9170/rx.c wiphy_info(ar->hw->wiphy, "FW: RADAR! Please report this " ar 263 drivers/net/wireless/ath/carl9170/rx.c if (ar->wps.pbc) { ar 267 drivers/net/wireless/ath/carl9170/rx.c if (state != ar->wps.pbc_state) { ar 268 drivers/net/wireless/ath/carl9170/rx.c ar->wps.pbc_state = state; ar 269 drivers/net/wireless/ath/carl9170/rx.c input_report_key(ar->wps.pbc, KEY_WPS_BUTTON, ar 271 drivers/net/wireless/ath/carl9170/rx.c input_sync(ar->wps.pbc); ar 278 drivers/net/wireless/ath/carl9170/rx.c complete(&ar->fw_boot_wait); ar 282 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "FW: received unhandled event %x\n", ar 289 drivers/net/wireless/ath/carl9170/rx.c static int carl9170_rx_mac_status(struct ar9170 *ar, ar 302 drivers/net/wireless/ath/carl9170/rx.c if (!ar->sniffer_enabled) ar 307 drivers/net/wireless/ath/carl9170/rx.c if (!(ar->filter_state & FIF_PLCPFAIL)) ar 314 drivers/net/wireless/ath/carl9170/rx.c ar->tx_fcs_errors++; ar 316 drivers/net/wireless/ath/carl9170/rx.c if (!(ar->filter_state & FIF_FCSFAIL)) ar 332 drivers/net/wireless/ath/carl9170/rx.c if (error & AR9170_RX_ERROR_DECRYPT && !ar->sniffer_enabled) ar 346 drivers/net/wireless/ath/carl9170/rx.c wiphy_dbg(ar->hw->wiphy, "received frame with " ar 352 drivers/net/wireless/ath/carl9170/rx.c chan = ar->channel; ar 377 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "invalid plcp cck " ar 414 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "invalid plcp ofdm " ar 442 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_rx_phy_status(struct ar9170 *ar, ar 459 drivers/net/wireless/ath/carl9170/rx.c status->signal = ar->noise[0] + phy->rssi_combined; ar 518 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_ps_beacon(struct ar9170 *ar, void *data, unsigned int len) ar 522 drivers/net/wireless/ath/carl9170/rx.c struct ath_common *common = &ar->common; ar 527 drivers/net/wireless/ath/carl9170/rx.c if (likely(!(ar->hw->conf.flags & IEEE80211_CONF_PS))) ar 539 drivers/net/wireless/ath/carl9170/rx.c ar->ps.last_beacon = jiffies; ar 551 drivers/net/wireless/ath/carl9170/rx.c if (!WARN_ON_ONCE(!ar->hw->conf.ps_dtim_period)) ar 552 drivers/net/wireless/ath/carl9170/rx.c ar->ps.dtim_counter = (tim_ie->dtim_count - 1) % ar 553 drivers/net/wireless/ath/carl9170/rx.c ar->hw->conf.ps_dtim_period; ar 558 drivers/net/wireless/ath/carl9170/rx.c cam = ieee80211_check_tim(tim_ie, tim_len, ar->common.curaid); ar 565 drivers/net/wireless/ath/carl9170/rx.c ar->ps.off_override &= ~PS_OFF_BCN; ar 566 drivers/net/wireless/ath/carl9170/rx.c carl9170_ps_check(ar); ar 569 drivers/net/wireless/ath/carl9170/rx.c ar->ps.off_override |= PS_OFF_BCN; ar 573 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_ba_check(struct ar9170 *ar, void *data, unsigned int len) ar 590 drivers/net/wireless/ath/carl9170/rx.c list_for_each_entry_rcu(entry, &ar->bar_list[queue], list) { ar 608 drivers/net/wireless/ath/carl9170/rx.c spin_lock_bh(&ar->bar_list_lock[queue]); ar 610 drivers/net/wireless/ath/carl9170/rx.c spin_unlock_bh(&ar->bar_list_lock[queue]); ar 620 drivers/net/wireless/ath/carl9170/rx.c static bool carl9170_ampdu_check(struct ar9170 *ar, u8 *buf, u8 ms, ar 635 drivers/net/wireless/ath/carl9170/rx.c rx_status->ampdu_reference = ar->ampdu_ref; ar 659 drivers/net/wireless/ath/carl9170/rx.c static int carl9170_handle_mpdu(struct ar9170 *ar, u8 *buf, int len, ar 675 drivers/net/wireless/ath/carl9170/rx.c carl9170_ps_beacon(ar, buf, len); ar 677 drivers/net/wireless/ath/carl9170/rx.c carl9170_ba_check(ar, buf, len); ar 684 drivers/net/wireless/ath/carl9170/rx.c ieee80211_rx(ar->hw, skb); ar 697 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_rx_untie_data(struct ar9170 *ar, u8 *buf, int len) ar 706 drivers/net/wireless/ath/carl9170/rx.c if (!IS_STARTED(ar)) ar 720 drivers/net/wireless/ath/carl9170/rx.c ar->ampdu_ref++; ar 733 drivers/net/wireless/ath/carl9170/rx.c memcpy(&ar->rx_plcp, (void *) buf, ar 739 drivers/net/wireless/ath/carl9170/rx.c ar->rx_has_plcp = true; ar 742 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "plcp info " ar 763 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "frame tail " ar 773 drivers/net/wireless/ath/carl9170/rx.c if (unlikely(!ar->rx_has_plcp)) { ar 777 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "rx stream does not start " ar 783 drivers/net/wireless/ath/carl9170/rx.c head = &ar->rx_plcp; ar 806 drivers/net/wireless/ath/carl9170/rx.c if (unlikely(carl9170_rx_mac_status(ar, head, mac, &status))) ar 809 drivers/net/wireless/ath/carl9170/rx.c if (!carl9170_ampdu_check(ar, buf, mac_status, &status)) ar 813 drivers/net/wireless/ath/carl9170/rx.c carl9170_rx_phy_status(ar, phy, &status); ar 817 drivers/net/wireless/ath/carl9170/rx.c if (carl9170_handle_mpdu(ar, buf, mpdu_len, &status)) ar 822 drivers/net/wireless/ath/carl9170/rx.c ar->rx_dropped++; ar 825 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_rx_untie_cmds(struct ar9170 *ar, const u8 *respbuf, ar 838 drivers/net/wireless/ath/carl9170/rx.c if (carl9170_check_sequence(ar, cmd->hdr.seq)) ar 841 drivers/net/wireless/ath/carl9170/rx.c carl9170_handle_command_response(ar, cmd, cmd->hdr.len + 4); ar 848 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "malformed firmware trap:\n"); ar 854 drivers/net/wireless/ath/carl9170/rx.c static void __carl9170_rx(struct ar9170 *ar, u8 *buf, unsigned int len) ar 870 drivers/net/wireless/ath/carl9170/rx.c carl9170_rx_untie_cmds(ar, buf, len); ar 872 drivers/net/wireless/ath/carl9170/rx.c carl9170_rx_untie_data(ar, buf, len); ar 875 drivers/net/wireless/ath/carl9170/rx.c static void carl9170_rx_stream(struct ar9170 *ar, void *buf, unsigned int len) ar 897 drivers/net/wireless/ath/carl9170/rx.c if (!ar->rx_failover_missing) { ar 901 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, ar 905 drivers/net/wireless/ath/carl9170/rx.c __carl9170_rx(ar, tbuf, tlen); ar 909 drivers/net/wireless/ath/carl9170/rx.c if (ar->rx_failover_missing > tlen) { ar 911 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, ar 920 drivers/net/wireless/ath/carl9170/rx.c skb_put_data(ar->rx_failover, tbuf, tlen); ar 921 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover_missing -= tlen; ar 923 drivers/net/wireless/ath/carl9170/rx.c if (ar->rx_failover_missing <= 0) { ar 932 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover_missing = 0; ar 933 drivers/net/wireless/ath/carl9170/rx.c carl9170_rx_stream(ar, ar->rx_failover->data, ar 934 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover->len); ar 936 drivers/net/wireless/ath/carl9170/rx.c skb_reset_tail_pointer(ar->rx_failover); ar 937 drivers/net/wireless/ath/carl9170/rx.c skb_trim(ar->rx_failover, 0); ar 945 drivers/net/wireless/ath/carl9170/rx.c if (ar->rx_failover_missing) { ar 948 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "double rx " ar 962 drivers/net/wireless/ath/carl9170/rx.c skb_put_data(ar->rx_failover, tbuf, tlen); ar 963 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover_missing = clen - tlen; ar 966 drivers/net/wireless/ath/carl9170/rx.c __carl9170_rx(ar, rx_stream->payload, clen); ar 974 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "%d bytes of unprocessed " ar 984 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "damaged RX stream data [want:%d, " ar 986 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover_missing); ar 988 drivers/net/wireless/ath/carl9170/rx.c if (ar->rx_failover_missing) ar 990 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover->data, ar 991 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover->len); ar 996 drivers/net/wireless/ath/carl9170/rx.c wiphy_err(ar->hw->wiphy, "please check your hardware and cables, if " ar 1000 drivers/net/wireless/ath/carl9170/rx.c if (ar->rx_failover_missing) { ar 1001 drivers/net/wireless/ath/carl9170/rx.c skb_reset_tail_pointer(ar->rx_failover); ar 1002 drivers/net/wireless/ath/carl9170/rx.c skb_trim(ar->rx_failover, 0); ar 1003 drivers/net/wireless/ath/carl9170/rx.c ar->rx_failover_missing = 0; ar 1007 drivers/net/wireless/ath/carl9170/rx.c void carl9170_rx(struct ar9170 *ar, void *buf, unsigned int len) ar 1009 drivers/net/wireless/ath/carl9170/rx.c if (ar->fw.rx_stream) ar 1010 drivers/net/wireless/ath/carl9170/rx.c carl9170_rx_stream(ar, buf, len); ar 1012 drivers/net/wireless/ath/carl9170/rx.c __carl9170_rx(ar, buf, len); ar 48 drivers/net/wireless/ath/carl9170/tx.c static inline unsigned int __carl9170_get_queue(struct ar9170 *ar, ar 64 drivers/net/wireless/ath/carl9170/tx.c static inline unsigned int carl9170_get_queue(struct ar9170 *ar, ar 67 drivers/net/wireless/ath/carl9170/tx.c return __carl9170_get_queue(ar, skb_get_queue_mapping(skb)); ar 70 drivers/net/wireless/ath/carl9170/tx.c static bool is_mem_full(struct ar9170 *ar) ar 72 drivers/net/wireless/ath/carl9170/tx.c return (DIV_ROUND_UP(IEEE80211_MAX_FRAME_LEN, ar->fw.mem_block_size) > ar 73 drivers/net/wireless/ath/carl9170/tx.c atomic_read(&ar->mem_free_blocks)); ar 76 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_accounting(struct ar9170 *ar, struct sk_buff *skb) ar 81 drivers/net/wireless/ath/carl9170/tx.c atomic_inc(&ar->tx_total_queued); ar 84 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->tx_stats_lock); ar 92 drivers/net/wireless/ath/carl9170/tx.c ar->tx_stats[queue].len++; ar 93 drivers/net/wireless/ath/carl9170/tx.c ar->tx_stats[queue].count++; ar 95 drivers/net/wireless/ath/carl9170/tx.c mem_full = is_mem_full(ar); ar 96 drivers/net/wireless/ath/carl9170/tx.c for (i = 0; i < ar->hw->queues; i++) { ar 97 drivers/net/wireless/ath/carl9170/tx.c if (mem_full || ar->tx_stats[i].len >= ar->tx_stats[i].limit) { ar 98 drivers/net/wireless/ath/carl9170/tx.c ieee80211_stop_queue(ar->hw, i); ar 99 drivers/net/wireless/ath/carl9170/tx.c ar->queue_stop_timeout[i] = jiffies; ar 103 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->tx_stats_lock); ar 107 drivers/net/wireless/ath/carl9170/tx.c static struct ieee80211_sta *__carl9170_get_tx_sta(struct ar9170 *ar, ar 121 drivers/net/wireless/ath/carl9170/tx.c vif = rcu_dereference(ar->vif_priv[vif_id].vif); ar 138 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_ps_unblock(struct ar9170 *ar, struct sk_buff *skb) ar 144 drivers/net/wireless/ath/carl9170/tx.c sta = __carl9170_get_tx_sta(ar, skb); ar 150 drivers/net/wireless/ath/carl9170/tx.c ieee80211_sta_block_awake(ar->hw, sta, false); ar 156 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_accounting_free(struct ar9170 *ar, struct sk_buff *skb) ar 162 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->tx_stats_lock); ar 164 drivers/net/wireless/ath/carl9170/tx.c ar->tx_stats[queue].len--; ar 166 drivers/net/wireless/ath/carl9170/tx.c if (!is_mem_full(ar)) { ar 168 drivers/net/wireless/ath/carl9170/tx.c for (i = 0; i < ar->hw->queues; i++) { ar 169 drivers/net/wireless/ath/carl9170/tx.c if (ar->tx_stats[i].len >= CARL9170_NUM_TX_LIMIT_SOFT) ar 172 drivers/net/wireless/ath/carl9170/tx.c if (ieee80211_queue_stopped(ar->hw, i)) { ar 175 drivers/net/wireless/ath/carl9170/tx.c tmp = jiffies - ar->queue_stop_timeout[i]; ar 176 drivers/net/wireless/ath/carl9170/tx.c if (tmp > ar->max_queue_stop_timeout[i]) ar 177 drivers/net/wireless/ath/carl9170/tx.c ar->max_queue_stop_timeout[i] = tmp; ar 180 drivers/net/wireless/ath/carl9170/tx.c ieee80211_wake_queue(ar->hw, i); ar 184 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->tx_stats_lock); ar 186 drivers/net/wireless/ath/carl9170/tx.c if (atomic_dec_and_test(&ar->tx_total_queued)) ar 187 drivers/net/wireless/ath/carl9170/tx.c complete(&ar->tx_flush); ar 190 drivers/net/wireless/ath/carl9170/tx.c static int carl9170_alloc_dev_space(struct ar9170 *ar, struct sk_buff *skb) ar 196 drivers/net/wireless/ath/carl9170/tx.c atomic_inc(&ar->mem_allocs); ar 198 drivers/net/wireless/ath/carl9170/tx.c chunks = DIV_ROUND_UP(skb->len, ar->fw.mem_block_size); ar 199 drivers/net/wireless/ath/carl9170/tx.c if (unlikely(atomic_sub_return(chunks, &ar->mem_free_blocks) < 0)) { ar 200 drivers/net/wireless/ath/carl9170/tx.c atomic_add(chunks, &ar->mem_free_blocks); ar 204 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->mem_lock); ar 205 drivers/net/wireless/ath/carl9170/tx.c cookie = bitmap_find_free_region(ar->mem_bitmap, ar->fw.mem_blocks, 0); ar 206 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->mem_lock); ar 209 drivers/net/wireless/ath/carl9170/tx.c atomic_add(chunks, &ar->mem_free_blocks); ar 226 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_release_dev_space(struct ar9170 *ar, struct sk_buff *skb) ar 250 drivers/net/wireless/ath/carl9170/tx.c WARN_ON_ONCE(cookie > ar->fw.mem_blocks)) ar 253 drivers/net/wireless/ath/carl9170/tx.c atomic_add(DIV_ROUND_UP(skb->len, ar->fw.mem_block_size), ar 254 drivers/net/wireless/ath/carl9170/tx.c &ar->mem_free_blocks); ar 256 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->mem_lock); ar 257 drivers/net/wireless/ath/carl9170/tx.c bitmap_release_region(ar->mem_bitmap, cookie - 1, 0); ar 258 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->mem_lock); ar 264 drivers/net/wireless/ath/carl9170/tx.c struct ar9170 *ar; ar 274 drivers/net/wireless/ath/carl9170/tx.c ar = arinfo->ar; ar 275 drivers/net/wireless/ath/carl9170/tx.c if (WARN_ON_ONCE(!ar)) ar 285 drivers/net/wireless/ath/carl9170/tx.c if (atomic_read(&ar->tx_total_queued)) ar 286 drivers/net/wireless/ath/carl9170/tx.c ar->tx_schedule = true; ar 289 drivers/net/wireless/ath/carl9170/tx.c if (!atomic_read(&ar->tx_ampdu_upload)) ar 290 drivers/net/wireless/ath/carl9170/tx.c ar->tx_ampdu_schedule = true; ar 316 drivers/net/wireless/ath/carl9170/tx.c ieee80211_free_txskb(ar->hw, skb); ar 327 drivers/net/wireless/ath/carl9170/tx.c ieee80211_tx_status_irqsafe(ar->hw, skb); ar 346 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_shift_bm(struct ar9170 *ar, ar 378 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_status_process_ampdu(struct ar9170 *ar, ar 393 drivers/net/wireless/ath/carl9170/tx.c sta = __carl9170_get_tx_sta(ar, skb); ar 406 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_shift_bm(ar, tid_info, get_seq_h(hdr)); ar 437 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_bar_status(struct ar9170 *ar, struct sk_buff *skb, ar 458 drivers/net/wireless/ath/carl9170/tx.c list_for_each_entry_rcu(entry, &ar->bar_list[queue], list) { ar 460 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->bar_list_lock[queue]); ar 462 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->bar_list_lock[queue]); ar 476 drivers/net/wireless/ath/carl9170/tx.c void carl9170_tx_status(struct ar9170 *ar, struct sk_buff *skb, ar 481 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_accounting_free(ar, skb); ar 485 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_bar_status(ar, skb, txinfo); ar 490 drivers/net/wireless/ath/carl9170/tx.c ar->tx_ack_failures++; ar 493 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_status_process_ampdu(ar, skb, txinfo); ar 495 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_ps_unblock(ar, skb); ar 500 drivers/net/wireless/ath/carl9170/tx.c void carl9170_tx_callback(struct ar9170 *ar, struct sk_buff *skb) ar 504 drivers/net/wireless/ath/carl9170/tx.c atomic_dec(&ar->tx_total_pending); ar 507 drivers/net/wireless/ath/carl9170/tx.c atomic_dec(&ar->tx_ampdu_upload); ar 510 drivers/net/wireless/ath/carl9170/tx.c tasklet_hi_schedule(&ar->usb_tasklet); ar 513 drivers/net/wireless/ath/carl9170/tx.c static struct sk_buff *carl9170_get_queued_skb(struct ar9170 *ar, u8 cookie, ar 528 drivers/net/wireless/ath/carl9170/tx.c carl9170_release_dev_space(ar, skb); ar 536 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_fill_rateinfo(struct ar9170 *ar, unsigned int rix, ar 558 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_check_queue_stop_timeout(struct ar9170 *ar) ar 566 drivers/net/wireless/ath/carl9170/tx.c for (i = 0; i < ar->hw->queues; i++) { ar 567 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->tx_status[i].lock); ar 569 drivers/net/wireless/ath/carl9170/tx.c skb = skb_peek(&ar->tx_status[i]); ar 582 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->tx_status[i].lock); ar 599 drivers/net/wireless/ath/carl9170/tx.c carl9170_restart(ar, CARL9170_RR_STUCK_TX); ar 603 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_ampdu_timeout(struct ar9170 *ar) ar 612 drivers/net/wireless/ath/carl9170/tx.c list_for_each_entry_rcu(iter, &ar->tx_ampdu_list, list) { ar 641 drivers/net/wireless/ath/carl9170/tx.c struct ar9170 *ar = container_of(work, struct ar9170, ar 643 drivers/net/wireless/ath/carl9170/tx.c if (!IS_STARTED(ar)) ar 646 drivers/net/wireless/ath/carl9170/tx.c ar->tx_janitor_last_run = jiffies; ar 648 drivers/net/wireless/ath/carl9170/tx.c carl9170_check_queue_stop_timeout(ar); ar 649 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_ampdu_timeout(ar); ar 651 drivers/net/wireless/ath/carl9170/tx.c if (!atomic_read(&ar->tx_total_queued)) ar 654 drivers/net/wireless/ath/carl9170/tx.c ieee80211_queue_delayed_work(ar->hw, &ar->tx_janitor, ar 658 drivers/net/wireless/ath/carl9170/tx.c static void __carl9170_tx_process_status(struct ar9170 *ar, ar 668 drivers/net/wireless/ath/carl9170/tx.c skb = carl9170_get_queued_skb(ar, cookie, &ar->tx_status[q]); ar 685 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_fill_rateinfo(ar, r, t, txinfo); ar 686 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_status(ar, skb, success); ar 689 drivers/net/wireless/ath/carl9170/tx.c void carl9170_tx_process_status(struct ar9170 *ar, ar 701 drivers/net/wireless/ath/carl9170/tx.c __carl9170_tx_process_status(ar, cmd->_tx_status[i].cookie, ar 706 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_rate_tpc_chains(struct ar9170 *ar, ar 724 drivers/net/wireless/ath/carl9170/tx.c txpower = ar->power_2G_ht40; ar 726 drivers/net/wireless/ath/carl9170/tx.c txpower = ar->power_5G_ht40; ar 729 drivers/net/wireless/ath/carl9170/tx.c txpower = ar->power_2G_ht20; ar 731 drivers/net/wireless/ath/carl9170/tx.c txpower = ar->power_5G_ht20; ar 739 drivers/net/wireless/ath/carl9170/tx.c txpower = ar->power_2G_cck; ar 741 drivers/net/wireless/ath/carl9170/tx.c txpower = ar->power_2G_ofdm; ar 743 drivers/net/wireless/ath/carl9170/tx.c txpower = ar->power_5G_leg; ar 752 drivers/net/wireless/ath/carl9170/tx.c if (ar->eeprom.tx_mask == 1) { ar 762 drivers/net/wireless/ath/carl9170/tx.c *tpc = min_t(unsigned int, *tpc, ar->hw->conf.power_level * 2); ar 765 drivers/net/wireless/ath/carl9170/tx.c static __le32 carl9170_tx_physet(struct ar9170 *ar, ar 816 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_rate_tpc_chains(ar, info, txrate, ar 825 drivers/net/wireless/ath/carl9170/tx.c static bool carl9170_tx_rts_check(struct ar9170 *ar, ar 829 drivers/net/wireless/ath/carl9170/tx.c switch (ar->erp_mode) { ar 851 drivers/net/wireless/ath/carl9170/tx.c static bool carl9170_tx_cts_check(struct ar9170 *ar, ar 854 drivers/net/wireless/ath/carl9170/tx.c switch (ar->erp_mode) { ar 871 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_get_rates(struct ar9170 *ar, ar 888 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_apply_rateset(struct ar9170 *ar, ar 920 drivers/net/wireless/ath/carl9170/tx.c phy_set = carl9170_tx_physet(ar, info, txrate); ar 930 drivers/net/wireless/ath/carl9170/tx.c if (carl9170_tx_rts_check(ar, txrate, ampdu, no_ack)) ar 932 drivers/net/wireless/ath/carl9170/tx.c else if (carl9170_tx_cts_check(ar, txrate)) ar 946 drivers/net/wireless/ath/carl9170/tx.c if (carl9170_tx_rts_check(ar, txrate, ampdu, no_ack)) ar 949 drivers/net/wireless/ath/carl9170/tx.c else if (carl9170_tx_cts_check(ar, txrate)) ar 958 drivers/net/wireless/ath/carl9170/tx.c static int carl9170_tx_prepare(struct ar9170 *ar, ar 982 drivers/net/wireless/ath/carl9170/tx.c hw_queue = ar9170_qmap[carl9170_get_queue(ar, skb)]; ar 1073 drivers/net/wireless/ath/carl9170/tx.c arinfo->ar = ar; ar 1082 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_set_immba(struct ar9170 *ar, struct sk_buff *skb) ar 1090 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_set_ampdu_params(struct ar9170 *ar, struct sk_buff *skb) ar 1111 drivers/net/wireless/ath/carl9170/tx.c if (tmp != ar->current_density) { ar 1112 drivers/net/wireless/ath/carl9170/tx.c ar->current_density = tmp; ar 1120 drivers/net/wireless/ath/carl9170/tx.c if (tmp != ar->current_factor) { ar 1121 drivers/net/wireless/ath/carl9170/tx.c ar->current_factor = tmp; ar 1127 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx_ampdu(struct ar9170 *ar) ar 1136 drivers/net/wireless/ath/carl9170/tx.c atomic_inc(&ar->tx_ampdu_scheduler); ar 1137 drivers/net/wireless/ath/carl9170/tx.c ar->tx_ampdu_schedule = false; ar 1139 drivers/net/wireless/ath/carl9170/tx.c if (atomic_read(&ar->tx_ampdu_upload)) ar 1142 drivers/net/wireless/ath/carl9170/tx.c if (!ar->tx_ampdu_list_len) ar 1148 drivers/net/wireless/ath/carl9170/tx.c tid_info = rcu_dereference(ar->tx_ampdu_iter); ar 1155 drivers/net/wireless/ath/carl9170/tx.c list_for_each_entry_continue_rcu(tid_info, &ar->tx_ampdu_list, list) { ar 1190 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_get_rates(ar, tid_info->vif, ar 1195 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_apply_rateset(ar, tx_info_first, skb); ar 1197 drivers/net/wireless/ath/carl9170/tx.c atomic_inc(&ar->tx_ampdu_upload); ar 1225 drivers/net/wireless/ath/carl9170/tx.c carl9170_set_ampdu_params(ar, skb_peek(&agg)); ar 1228 drivers/net/wireless/ath/carl9170/tx.c carl9170_set_immba(ar, skb_peek_tail(&agg)); ar 1230 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->tx_pending[queue].lock); ar 1231 drivers/net/wireless/ath/carl9170/tx.c skb_queue_splice_tail_init(&agg, &ar->tx_pending[queue]); ar 1232 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->tx_pending[queue].lock); ar 1233 drivers/net/wireless/ath/carl9170/tx.c ar->tx_schedule = true; ar 1238 drivers/net/wireless/ath/carl9170/tx.c rcu_assign_pointer(ar->tx_ampdu_iter, tid_info); ar 1242 drivers/net/wireless/ath/carl9170/tx.c static struct sk_buff *carl9170_tx_pick_skb(struct ar9170 *ar, ar 1256 drivers/net/wireless/ath/carl9170/tx.c if (carl9170_alloc_dev_space(ar, skb)) ar 1273 drivers/net/wireless/ath/carl9170/tx.c void carl9170_tx_drop(struct ar9170 *ar, struct sk_buff *skb) ar 1278 drivers/net/wireless/ath/carl9170/tx.c ar->tx_dropped++; ar 1282 drivers/net/wireless/ath/carl9170/tx.c ar9170_qmap[carl9170_get_queue(ar, skb)]); ar 1283 drivers/net/wireless/ath/carl9170/tx.c __carl9170_tx_process_status(ar, super->s.cookie, q); ar 1286 drivers/net/wireless/ath/carl9170/tx.c static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb) ar 1293 drivers/net/wireless/ath/carl9170/tx.c sta = __carl9170_get_tx_sta(ar, skb); ar 1306 drivers/net/wireless/ath/carl9170/tx.c atomic_dec(&ar->tx_ampdu_upload); ar 1309 drivers/net/wireless/ath/carl9170/tx.c carl9170_release_dev_space(ar, skb); ar 1310 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_status(ar, skb, false); ar 1319 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_bar_check(struct ar9170 *ar, struct sk_buff *skb) ar 1332 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->bar_list_lock[queue]); ar 1333 drivers/net/wireless/ath/carl9170/tx.c list_add_tail_rcu(&entry->list, &ar->bar_list[queue]); ar 1334 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->bar_list_lock[queue]); ar 1339 drivers/net/wireless/ath/carl9170/tx.c static void carl9170_tx(struct ar9170 *ar) ar 1345 drivers/net/wireless/ath/carl9170/tx.c ar->tx_schedule = false; ar 1347 drivers/net/wireless/ath/carl9170/tx.c if (unlikely(!IS_STARTED(ar))) ar 1350 drivers/net/wireless/ath/carl9170/tx.c carl9170_usb_handle_tx_err(ar); ar 1352 drivers/net/wireless/ath/carl9170/tx.c for (i = 0; i < ar->hw->queues; i++) { ar 1353 drivers/net/wireless/ath/carl9170/tx.c while (!skb_queue_empty(&ar->tx_pending[i])) { ar 1354 drivers/net/wireless/ath/carl9170/tx.c skb = carl9170_tx_pick_skb(ar, &ar->tx_pending[i]); ar 1358 drivers/net/wireless/ath/carl9170/tx.c if (unlikely(carl9170_tx_ps_drop(ar, skb))) ar 1361 drivers/net/wireless/ath/carl9170/tx.c carl9170_bar_check(ar, skb); ar 1363 drivers/net/wireless/ath/carl9170/tx.c atomic_inc(&ar->tx_total_pending); ar 1365 drivers/net/wireless/ath/carl9170/tx.c q = __carl9170_get_queue(ar, i); ar 1370 drivers/net/wireless/ath/carl9170/tx.c skb_queue_tail(&ar->tx_status[q], skb); ar 1382 drivers/net/wireless/ath/carl9170/tx.c carl9170_usb_tx(ar, skb); ar 1390 drivers/net/wireless/ath/carl9170/tx.c ieee80211_queue_delayed_work(ar->hw, &ar->tx_janitor, ar 1394 drivers/net/wireless/ath/carl9170/tx.c static bool carl9170_tx_ampdu_queue(struct ar9170 *ar, ar 1465 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_status(ar, skb, false); ar 1466 drivers/net/wireless/ath/carl9170/tx.c ar->tx_dropped++; ar 1474 drivers/net/wireless/ath/carl9170/tx.c struct ar9170 *ar = hw->priv; ar 1480 drivers/net/wireless/ath/carl9170/tx.c if (unlikely(!IS_STARTED(ar))) ar 1486 drivers/net/wireless/ath/carl9170/tx.c if (unlikely(carl9170_tx_prepare(ar, sta, skb))) ar 1489 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_accounting(ar, skb); ar 1508 drivers/net/wireless/ath/carl9170/tx.c run = carl9170_tx_ampdu_queue(ar, sta, skb, info); ar 1510 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_ampdu(ar); ar 1515 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_get_rates(ar, vif, sta, skb); ar 1516 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_apply_rateset(ar, info, skb); ar 1517 drivers/net/wireless/ath/carl9170/tx.c skb_queue_tail(&ar->tx_pending[queue], skb); ar 1520 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx(ar); ar 1524 drivers/net/wireless/ath/carl9170/tx.c ar->tx_dropped++; ar 1525 drivers/net/wireless/ath/carl9170/tx.c ieee80211_free_txskb(ar->hw, skb); ar 1528 drivers/net/wireless/ath/carl9170/tx.c void carl9170_tx_scheduler(struct ar9170 *ar) ar 1531 drivers/net/wireless/ath/carl9170/tx.c if (ar->tx_ampdu_schedule) ar 1532 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_ampdu(ar); ar 1534 drivers/net/wireless/ath/carl9170/tx.c if (ar->tx_schedule) ar 1535 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx(ar); ar 1539 drivers/net/wireless/ath/carl9170/tx.c static struct carl9170_vif_info *carl9170_pick_beaconing_vif(struct ar9170 *ar) ar 1551 drivers/net/wireless/ath/carl9170/tx.c cvif = rcu_dereference(ar->beacon_iter); ar 1552 drivers/net/wireless/ath/carl9170/tx.c if (ar->vifs > 0 && cvif) { ar 1554 drivers/net/wireless/ath/carl9170/tx.c list_for_each_entry_continue_rcu(cvif, &ar->vif_list, ar 1559 drivers/net/wireless/ath/carl9170/tx.c } while (ar->beacon_enabled && i--); ar 1563 drivers/net/wireless/ath/carl9170/tx.c RCU_INIT_POINTER(ar->beacon_iter, cvif); ar 1567 drivers/net/wireless/ath/carl9170/tx.c static bool carl9170_tx_beacon_physet(struct ar9170 *ar, struct sk_buff *skb, ar 1578 drivers/net/wireless/ath/carl9170/tx.c carl9170_tx_rate_tpc_chains(ar, txinfo, rate, plcp, &power, &chains); ar 1611 drivers/net/wireless/ath/carl9170/tx.c int carl9170_update_beacon(struct ar9170 *ar, const bool submit) ar 1621 drivers/net/wireless/ath/carl9170/tx.c cvif = carl9170_pick_beaconing_vif(ar); ar 1625 drivers/net/wireless/ath/carl9170/tx.c skb = ieee80211_beacon_get_tim(ar->hw, carl9170_get_vif(cvif), ar 1633 drivers/net/wireless/ath/carl9170/tx.c spin_lock_bh(&ar->beacon_lock); ar 1639 drivers/net/wireless/ath/carl9170/tx.c addr = ar->fw.beacon_addr + off; ar 1642 drivers/net/wireless/ath/carl9170/tx.c if ((off + len) > ar->fw.beacon_max_len) { ar 1644 drivers/net/wireless/ath/carl9170/tx.c wiphy_err(ar->hw->wiphy, "beacon does not " ar 1653 drivers/net/wireless/ath/carl9170/tx.c wiphy_err(ar->hw->wiphy, "no support for beacons " ar 1662 drivers/net/wireless/ath/carl9170/tx.c ht_rate = carl9170_tx_beacon_physet(ar, skb, &ht1, &plcp); ar 1664 drivers/net/wireless/ath/carl9170/tx.c carl9170_async_regwrite_begin(ar); ar 1691 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->beacon_lock); ar 1696 drivers/net/wireless/ath/carl9170/tx.c err = carl9170_bcn_ctrl(ar, cvif->id, ar 1708 drivers/net/wireless/ath/carl9170/tx.c spin_unlock_bh(&ar->beacon_lock); ar 133 drivers/net/wireless/ath/carl9170/usb.c static void carl9170_usb_submit_data_urb(struct ar9170 *ar) ar 138 drivers/net/wireless/ath/carl9170/usb.c if (atomic_inc_return(&ar->tx_anch_urbs) > AR9170_NUM_TX_URBS) ar 141 drivers/net/wireless/ath/carl9170/usb.c urb = usb_get_from_anchor(&ar->tx_wait); ar 145 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->tx_anch); ar 150 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "tx submit failed (%d)\n", ar 155 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->tx_err); ar 164 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->tx_anch_urbs); ar 169 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); ar 171 drivers/net/wireless/ath/carl9170/usb.c if (WARN_ON_ONCE(!ar)) { ar 176 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->tx_anch_urbs); ar 181 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_callback(ar, (void *)urb->context); ar 194 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->tx_err); ar 200 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "tx failed (%d)\n", ar 204 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->tx_err); ar 208 drivers/net/wireless/ath/carl9170/usb.c if (likely(IS_STARTED(ar))) ar 209 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_submit_data_urb(ar); ar 212 drivers/net/wireless/ath/carl9170/usb.c static int carl9170_usb_submit_cmd_urb(struct ar9170 *ar) ar 217 drivers/net/wireless/ath/carl9170/usb.c if (atomic_inc_return(&ar->tx_cmd_urbs) != 1) { ar 218 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->tx_cmd_urbs); ar 222 drivers/net/wireless/ath/carl9170/usb.c urb = usb_get_from_anchor(&ar->tx_cmd); ar 224 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->tx_cmd_urbs); ar 228 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->tx_anch); ar 232 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->tx_cmd_urbs); ar 241 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = urb->context; ar 244 drivers/net/wireless/ath/carl9170/usb.c if (WARN_ON_ONCE(!ar)) ar 247 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->tx_cmd_urbs); ar 266 drivers/net/wireless/ath/carl9170/usb.c if (!IS_INITIALIZED(ar)) ar 270 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "submit cmd cb failed (%d).\n", err); ar 272 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_submit_cmd_urb(ar); ar 274 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "submit cmd failed (%d).\n", err); ar 279 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = urb->context; ar 281 drivers/net/wireless/ath/carl9170/usb.c if (WARN_ON_ONCE(!ar)) ar 307 drivers/net/wireless/ath/carl9170/usb.c carl9170_handle_command_response(ar, urb->transfer_buffer, ar 311 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_anch); ar 316 drivers/net/wireless/ath/carl9170/usb.c static int carl9170_usb_submit_rx_urb(struct ar9170 *ar, gfp_t gfp) ar 321 drivers/net/wireless/ath/carl9170/usb.c while ((atomic_read(&ar->rx_anch_urbs) < AR9170_NUM_RX_URBS) && ar 324 drivers/net/wireless/ath/carl9170/usb.c urb = usb_get_from_anchor(&ar->rx_pool); ar 326 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_anch); ar 330 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_pool); ar 332 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->rx_pool_urbs); ar 333 drivers/net/wireless/ath/carl9170/usb.c atomic_inc(&ar->rx_anch_urbs); ar 342 drivers/net/wireless/ath/carl9170/usb.c static void carl9170_usb_rx_work(struct ar9170 *ar) ar 348 drivers/net/wireless/ath/carl9170/usb.c urb = usb_get_from_anchor(&ar->rx_work); ar 352 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->rx_work_urbs); ar 353 drivers/net/wireless/ath/carl9170/usb.c if (IS_INITIALIZED(ar)) { ar 354 drivers/net/wireless/ath/carl9170/usb.c carl9170_rx(ar, urb->transfer_buffer, ar 358 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_pool); ar 359 drivers/net/wireless/ath/carl9170/usb.c atomic_inc(&ar->rx_pool_urbs); ar 363 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_submit_rx_urb(ar, GFP_ATOMIC); ar 367 drivers/net/wireless/ath/carl9170/usb.c void carl9170_usb_handle_tx_err(struct ar9170 *ar) ar 371 drivers/net/wireless/ath/carl9170/usb.c while ((urb = usb_get_from_anchor(&ar->tx_err))) { ar 374 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_drop(ar, skb); ar 375 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_callback(ar, skb); ar 382 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = (struct ar9170 *) data; ar 384 drivers/net/wireless/ath/carl9170/usb.c if (!IS_INITIALIZED(ar)) ar 387 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_rx_work(ar); ar 394 drivers/net/wireless/ath/carl9170/usb.c if (IS_STARTED(ar)) ar 395 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_scheduler(ar); ar 400 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = (struct ar9170 *)urb->context; ar 403 drivers/net/wireless/ath/carl9170/usb.c if (WARN_ON_ONCE(!ar)) ar 406 drivers/net/wireless/ath/carl9170/usb.c atomic_dec(&ar->rx_anch_urbs); ar 411 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_work); ar 412 drivers/net/wireless/ath/carl9170/usb.c atomic_inc(&ar->rx_work_urbs); ar 424 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_pool); ar 425 drivers/net/wireless/ath/carl9170/usb.c atomic_inc(&ar->rx_pool_urbs); ar 429 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_submit_rx_urb(ar, GFP_ATOMIC); ar 437 drivers/net/wireless/ath/carl9170/usb.c tasklet_hi_schedule(&ar->usb_tasklet); ar 439 drivers/net/wireless/ath/carl9170/usb.c if (atomic_read(&ar->rx_anch_urbs) == 0) { ar 448 drivers/net/wireless/ath/carl9170/usb.c ieee80211_queue_work(ar->hw, &ar->ping_work); ar 455 drivers/net/wireless/ath/carl9170/usb.c tasklet_hi_schedule(&ar->usb_tasklet); ar 459 drivers/net/wireless/ath/carl9170/usb.c static struct urb *carl9170_usb_alloc_rx_urb(struct ar9170 *ar, gfp_t gfp) ar 464 drivers/net/wireless/ath/carl9170/usb.c buf = kmalloc(ar->fw.rx_size, gfp); ar 474 drivers/net/wireless/ath/carl9170/usb.c usb_fill_bulk_urb(urb, ar->udev, usb_rcvbulkpipe(ar->udev, ar 475 drivers/net/wireless/ath/carl9170/usb.c AR9170_USB_EP_RX), buf, ar->fw.rx_size, ar 476 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_rx_complete, ar); ar 483 drivers/net/wireless/ath/carl9170/usb.c static int carl9170_usb_send_rx_irq_urb(struct ar9170 *ar) ar 497 drivers/net/wireless/ath/carl9170/usb.c usb_fill_int_urb(urb, ar->udev, usb_rcvintpipe(ar->udev, ar 499 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_rx_irq_complete, ar, 1); ar 503 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_anch); ar 513 drivers/net/wireless/ath/carl9170/usb.c static int carl9170_usb_init_rx_bulk_urbs(struct ar9170 *ar) ar 529 drivers/net/wireless/ath/carl9170/usb.c urb = carl9170_usb_alloc_rx_urb(ar, GFP_KERNEL); ar 535 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->rx_pool); ar 536 drivers/net/wireless/ath/carl9170/usb.c atomic_inc(&ar->rx_pool_urbs); ar 540 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_submit_rx_urb(ar, GFP_KERNEL); ar 545 drivers/net/wireless/ath/carl9170/usb.c carl9170_set_state_when(ar, CARL9170_STOPPED, CARL9170_IDLE); ar 550 drivers/net/wireless/ath/carl9170/usb.c usb_scuttle_anchored_urbs(&ar->rx_pool); ar 551 drivers/net/wireless/ath/carl9170/usb.c usb_scuttle_anchored_urbs(&ar->rx_work); ar 552 drivers/net/wireless/ath/carl9170/usb.c usb_kill_anchored_urbs(&ar->rx_anch); ar 556 drivers/net/wireless/ath/carl9170/usb.c static int carl9170_usb_flush(struct ar9170 *ar) ar 561 drivers/net/wireless/ath/carl9170/usb.c while ((urb = usb_get_from_anchor(&ar->tx_wait))) { ar 563 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_drop(ar, skb); ar 564 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_callback(ar, skb); ar 568 drivers/net/wireless/ath/carl9170/usb.c ret = usb_wait_anchor_empty_timeout(&ar->tx_cmd, 1000); ar 573 drivers/net/wireless/ath/carl9170/usb.c ret = usb_wait_anchor_empty_timeout(&ar->tx_anch, 1000); ar 577 drivers/net/wireless/ath/carl9170/usb.c usb_kill_anchored_urbs(&ar->tx_anch); ar 578 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_handle_tx_err(ar); ar 583 drivers/net/wireless/ath/carl9170/usb.c static void carl9170_usb_cancel_urbs(struct ar9170 *ar) ar 587 drivers/net/wireless/ath/carl9170/usb.c carl9170_set_state(ar, CARL9170_UNKNOWN_STATE); ar 589 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_flush(ar); ar 591 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "stuck tx urbs!\n"); ar 593 drivers/net/wireless/ath/carl9170/usb.c usb_poison_anchored_urbs(&ar->tx_anch); ar 594 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_handle_tx_err(ar); ar 595 drivers/net/wireless/ath/carl9170/usb.c usb_poison_anchored_urbs(&ar->rx_anch); ar 597 drivers/net/wireless/ath/carl9170/usb.c tasklet_kill(&ar->usb_tasklet); ar 599 drivers/net/wireless/ath/carl9170/usb.c usb_scuttle_anchored_urbs(&ar->rx_work); ar 600 drivers/net/wireless/ath/carl9170/usb.c usb_scuttle_anchored_urbs(&ar->rx_pool); ar 601 drivers/net/wireless/ath/carl9170/usb.c usb_scuttle_anchored_urbs(&ar->tx_cmd); ar 604 drivers/net/wireless/ath/carl9170/usb.c int __carl9170_exec_cmd(struct ar9170 *ar, struct carl9170_cmd *cmd, ar 610 drivers/net/wireless/ath/carl9170/usb.c if (!IS_INITIALIZED(ar)) { ar 626 drivers/net/wireless/ath/carl9170/usb.c if (ar->usb_ep_cmd_is_bulk) ar 627 drivers/net/wireless/ath/carl9170/usb.c usb_fill_bulk_urb(urb, ar->udev, ar 628 drivers/net/wireless/ath/carl9170/usb.c usb_sndbulkpipe(ar->udev, AR9170_USB_EP_CMD), ar 630 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cmd_complete, ar); ar 632 drivers/net/wireless/ath/carl9170/usb.c usb_fill_int_urb(urb, ar->udev, ar 633 drivers/net/wireless/ath/carl9170/usb.c usb_sndintpipe(ar->udev, AR9170_USB_EP_CMD), ar 635 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cmd_complete, ar, 1); ar 640 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->tx_cmd); ar 643 drivers/net/wireless/ath/carl9170/usb.c return carl9170_usb_submit_cmd_urb(ar); ar 652 drivers/net/wireless/ath/carl9170/usb.c int carl9170_exec_cmd(struct ar9170 *ar, const enum carl9170_cmd_oids cmd, ar 658 drivers/net/wireless/ath/carl9170/usb.c if (!IS_ACCEPTING_CMD(ar)) ar 664 drivers/net/wireless/ath/carl9170/usb.c ar->cmd.hdr.len = plen; ar 665 drivers/net/wireless/ath/carl9170/usb.c ar->cmd.hdr.cmd = cmd; ar 667 drivers/net/wireless/ath/carl9170/usb.c if (plen && payload != (u8 *)(ar->cmd.data)) ar 668 drivers/net/wireless/ath/carl9170/usb.c memcpy(ar->cmd.data, payload, plen); ar 670 drivers/net/wireless/ath/carl9170/usb.c spin_lock_bh(&ar->cmd_lock); ar 671 drivers/net/wireless/ath/carl9170/usb.c ar->readbuf = (u8 *)out; ar 672 drivers/net/wireless/ath/carl9170/usb.c ar->readlen = outlen; ar 673 drivers/net/wireless/ath/carl9170/usb.c spin_unlock_bh(&ar->cmd_lock); ar 675 drivers/net/wireless/ath/carl9170/usb.c reinit_completion(&ar->cmd_wait); ar 676 drivers/net/wireless/ath/carl9170/usb.c err = __carl9170_exec_cmd(ar, &ar->cmd, false); ar 679 drivers/net/wireless/ath/carl9170/usb.c time_left = wait_for_completion_timeout(&ar->cmd_wait, HZ); ar 685 drivers/net/wireless/ath/carl9170/usb.c if (ar->readlen != outlen) { ar 695 drivers/net/wireless/ath/carl9170/usb.c if (IS_STARTED(ar)) { ar 696 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "no command feedback " ar 701 drivers/net/wireless/ath/carl9170/usb.c &ar->cmd, plen + 4); ar 703 drivers/net/wireless/ath/carl9170/usb.c carl9170_restart(ar, CARL9170_RR_COMMAND_TIMEOUT); ar 707 drivers/net/wireless/ath/carl9170/usb.c spin_lock_bh(&ar->cmd_lock); ar 708 drivers/net/wireless/ath/carl9170/usb.c ar->readbuf = NULL; ar 709 drivers/net/wireless/ath/carl9170/usb.c ar->readlen = 0; ar 710 drivers/net/wireless/ath/carl9170/usb.c spin_unlock_bh(&ar->cmd_lock); ar 715 drivers/net/wireless/ath/carl9170/usb.c void carl9170_usb_tx(struct ar9170 *ar, struct sk_buff *skb) ar 722 drivers/net/wireless/ath/carl9170/usb.c if (!IS_STARTED(ar)) ar 729 drivers/net/wireless/ath/carl9170/usb.c if (ar->fw.tx_stream) { ar 741 drivers/net/wireless/ath/carl9170/usb.c usb_fill_bulk_urb(urb, ar->udev, usb_sndbulkpipe(ar->udev, ar 747 drivers/net/wireless/ath/carl9170/usb.c usb_anchor_urb(urb, &ar->tx_wait); ar 751 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_submit_data_urb(ar); ar 755 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_drop(ar, skb); ar 756 drivers/net/wireless/ath/carl9170/usb.c carl9170_tx_callback(ar, skb); ar 759 drivers/net/wireless/ath/carl9170/usb.c static void carl9170_release_firmware(struct ar9170 *ar) ar 761 drivers/net/wireless/ath/carl9170/usb.c if (ar->fw.fw) { ar 762 drivers/net/wireless/ath/carl9170/usb.c release_firmware(ar->fw.fw); ar 763 drivers/net/wireless/ath/carl9170/usb.c memset(&ar->fw, 0, sizeof(ar->fw)); ar 767 drivers/net/wireless/ath/carl9170/usb.c void carl9170_usb_stop(struct ar9170 *ar) ar 771 drivers/net/wireless/ath/carl9170/usb.c carl9170_set_state_when(ar, CARL9170_IDLE, CARL9170_STOPPED); ar 773 drivers/net/wireless/ath/carl9170/usb.c ret = carl9170_usb_flush(ar); ar 775 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "kill pending tx urbs.\n"); ar 777 drivers/net/wireless/ath/carl9170/usb.c usb_poison_anchored_urbs(&ar->tx_anch); ar 778 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_handle_tx_err(ar); ar 781 drivers/net/wireless/ath/carl9170/usb.c spin_lock_bh(&ar->cmd_lock); ar 782 drivers/net/wireless/ath/carl9170/usb.c ar->readlen = 0; ar 783 drivers/net/wireless/ath/carl9170/usb.c spin_unlock_bh(&ar->cmd_lock); ar 784 drivers/net/wireless/ath/carl9170/usb.c complete(&ar->cmd_wait); ar 793 drivers/net/wireless/ath/carl9170/usb.c int carl9170_usb_open(struct ar9170 *ar) ar 795 drivers/net/wireless/ath/carl9170/usb.c usb_unpoison_anchored_urbs(&ar->tx_anch); ar 797 drivers/net/wireless/ath/carl9170/usb.c carl9170_set_state_when(ar, CARL9170_STOPPED, CARL9170_IDLE); ar 801 drivers/net/wireless/ath/carl9170/usb.c static int carl9170_usb_load_firmware(struct ar9170 *ar) ar 816 drivers/net/wireless/ath/carl9170/usb.c data = ar->fw.fw->data; ar 817 drivers/net/wireless/ath/carl9170/usb.c len = ar->fw.fw->size; ar 818 drivers/net/wireless/ath/carl9170/usb.c addr = ar->fw.address; ar 821 drivers/net/wireless/ath/carl9170/usb.c data += ar->fw.offset; ar 822 drivers/net/wireless/ath/carl9170/usb.c len -= ar->fw.offset; ar 828 drivers/net/wireless/ath/carl9170/usb.c err = usb_control_msg(ar->udev, usb_sndctrlpipe(ar->udev, 0), ar 843 drivers/net/wireless/ath/carl9170/usb.c err = usb_control_msg(ar->udev, usb_sndctrlpipe(ar->udev, 0), ar 847 drivers/net/wireless/ath/carl9170/usb.c if (wait_for_completion_timeout(&ar->fw_boot_wait, HZ) == 0) { ar 852 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_echo_test(ar, 0x4a110123); ar 857 drivers/net/wireless/ath/carl9170/usb.c ar->cmd_seq = -1; ar 862 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "firmware upload failed (%d).\n", err); ar 866 drivers/net/wireless/ath/carl9170/usb.c int carl9170_usb_restart(struct ar9170 *ar) ar 870 drivers/net/wireless/ath/carl9170/usb.c if (ar->intf->condition != USB_INTERFACE_BOUND) ar 879 drivers/net/wireless/ath/carl9170/usb.c ar->cmd_seq = -2; ar 881 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_reboot(ar); ar 883 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_stop(ar); ar 888 drivers/net/wireless/ath/carl9170/usb.c tasklet_schedule(&ar->usb_tasklet); ar 893 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_open(ar); ar 897 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_load_firmware(ar); ar 904 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cancel_urbs(ar); ar 908 drivers/net/wireless/ath/carl9170/usb.c void carl9170_usb_reset(struct ar9170 *ar) ar 919 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cancel_urbs(ar); ar 921 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_stop(ar); ar 923 drivers/net/wireless/ath/carl9170/usb.c usb_queue_reset_device(ar->intf); ar 926 drivers/net/wireless/ath/carl9170/usb.c static int carl9170_usb_init_device(struct ar9170 *ar) ar 937 drivers/net/wireless/ath/carl9170/usb.c ar->cmd_seq = -2; ar 939 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_send_rx_irq_urb(ar); ar 943 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_init_rx_bulk_urbs(ar); ar 947 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_open(ar); ar 951 drivers/net/wireless/ath/carl9170/usb.c mutex_lock(&ar->mutex); ar 952 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_load_firmware(ar); ar 953 drivers/net/wireless/ath/carl9170/usb.c mutex_unlock(&ar->mutex); ar 960 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_stop(ar); ar 963 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cancel_urbs(ar); ar 969 drivers/net/wireless/ath/carl9170/usb.c static void carl9170_usb_firmware_failed(struct ar9170 *ar) ar 975 drivers/net/wireless/ath/carl9170/usb.c struct usb_interface *intf = ar->intf; ar 976 drivers/net/wireless/ath/carl9170/usb.c struct usb_device *udev = ar->udev; ar 978 drivers/net/wireless/ath/carl9170/usb.c complete(&ar->fw_load_wait); ar 980 drivers/net/wireless/ath/carl9170/usb.c ar = NULL; ar 990 drivers/net/wireless/ath/carl9170/usb.c static void carl9170_usb_firmware_finish(struct ar9170 *ar) ar 992 drivers/net/wireless/ath/carl9170/usb.c struct usb_interface *intf = ar->intf; ar 995 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_parse_firmware(ar); ar 999 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_init_device(ar); ar 1003 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_register(ar); ar 1005 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_stop(ar); ar 1009 drivers/net/wireless/ath/carl9170/usb.c complete(&ar->fw_load_wait); ar 1014 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cancel_urbs(ar); ar 1017 drivers/net/wireless/ath/carl9170/usb.c carl9170_release_firmware(ar); ar 1018 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_firmware_failed(ar); ar 1024 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = context; ar 1027 drivers/net/wireless/ath/carl9170/usb.c ar->fw.fw = fw; ar 1028 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_firmware_finish(ar); ar 1032 drivers/net/wireless/ath/carl9170/usb.c dev_err(&ar->udev->dev, "firmware not found.\n"); ar 1033 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_firmware_failed(ar); ar 1040 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar; ar 1048 drivers/net/wireless/ath/carl9170/usb.c ar = carl9170_alloc(sizeof(*ar)); ar 1049 drivers/net/wireless/ath/carl9170/usb.c if (IS_ERR(ar)) ar 1050 drivers/net/wireless/ath/carl9170/usb.c return PTR_ERR(ar); ar 1053 drivers/net/wireless/ath/carl9170/usb.c ar->udev = udev; ar 1054 drivers/net/wireless/ath/carl9170/usb.c ar->intf = intf; ar 1055 drivers/net/wireless/ath/carl9170/usb.c ar->features = id->driver_info; ar 1069 drivers/net/wireless/ath/carl9170/usb.c ar->usb_ep_cmd_is_bulk = true; ar 1072 drivers/net/wireless/ath/carl9170/usb.c usb_set_intfdata(intf, ar); ar 1073 drivers/net/wireless/ath/carl9170/usb.c SET_IEEE80211_DEV(ar->hw, &intf->dev); ar 1075 drivers/net/wireless/ath/carl9170/usb.c init_usb_anchor(&ar->rx_anch); ar 1076 drivers/net/wireless/ath/carl9170/usb.c init_usb_anchor(&ar->rx_pool); ar 1077 drivers/net/wireless/ath/carl9170/usb.c init_usb_anchor(&ar->rx_work); ar 1078 drivers/net/wireless/ath/carl9170/usb.c init_usb_anchor(&ar->tx_wait); ar 1079 drivers/net/wireless/ath/carl9170/usb.c init_usb_anchor(&ar->tx_anch); ar 1080 drivers/net/wireless/ath/carl9170/usb.c init_usb_anchor(&ar->tx_cmd); ar 1081 drivers/net/wireless/ath/carl9170/usb.c init_usb_anchor(&ar->tx_err); ar 1082 drivers/net/wireless/ath/carl9170/usb.c init_completion(&ar->cmd_wait); ar 1083 drivers/net/wireless/ath/carl9170/usb.c init_completion(&ar->fw_boot_wait); ar 1084 drivers/net/wireless/ath/carl9170/usb.c init_completion(&ar->fw_load_wait); ar 1085 drivers/net/wireless/ath/carl9170/usb.c tasklet_init(&ar->usb_tasklet, carl9170_usb_tasklet, ar 1086 drivers/net/wireless/ath/carl9170/usb.c (unsigned long)ar); ar 1088 drivers/net/wireless/ath/carl9170/usb.c atomic_set(&ar->tx_cmd_urbs, 0); ar 1089 drivers/net/wireless/ath/carl9170/usb.c atomic_set(&ar->tx_anch_urbs, 0); ar 1090 drivers/net/wireless/ath/carl9170/usb.c atomic_set(&ar->rx_work_urbs, 0); ar 1091 drivers/net/wireless/ath/carl9170/usb.c atomic_set(&ar->rx_anch_urbs, 0); ar 1092 drivers/net/wireless/ath/carl9170/usb.c atomic_set(&ar->rx_pool_urbs, 0); ar 1096 drivers/net/wireless/ath/carl9170/usb.c carl9170_set_state(ar, CARL9170_STOPPED); ar 1099 drivers/net/wireless/ath/carl9170/usb.c &ar->udev->dev, GFP_KERNEL, ar, carl9170_usb_firmware_step2); ar 1102 drivers/net/wireless/ath/carl9170/usb.c carl9170_free(ar); ar 1109 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = usb_get_intfdata(intf); ar 1111 drivers/net/wireless/ath/carl9170/usb.c if (WARN_ON(!ar)) ar 1114 drivers/net/wireless/ath/carl9170/usb.c wait_for_completion(&ar->fw_load_wait); ar 1116 drivers/net/wireless/ath/carl9170/usb.c if (IS_INITIALIZED(ar)) { ar 1117 drivers/net/wireless/ath/carl9170/usb.c carl9170_reboot(ar); ar 1118 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_stop(ar); ar 1121 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cancel_urbs(ar); ar 1122 drivers/net/wireless/ath/carl9170/usb.c carl9170_unregister(ar); ar 1126 drivers/net/wireless/ath/carl9170/usb.c carl9170_release_firmware(ar); ar 1127 drivers/net/wireless/ath/carl9170/usb.c carl9170_free(ar); ar 1134 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = usb_get_intfdata(intf); ar 1136 drivers/net/wireless/ath/carl9170/usb.c if (!ar) ar 1139 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cancel_urbs(ar); ar 1146 drivers/net/wireless/ath/carl9170/usb.c struct ar9170 *ar = usb_get_intfdata(intf); ar 1149 drivers/net/wireless/ath/carl9170/usb.c if (!ar) ar 1152 drivers/net/wireless/ath/carl9170/usb.c usb_unpoison_anchored_urbs(&ar->rx_anch); ar 1153 drivers/net/wireless/ath/carl9170/usb.c carl9170_set_state(ar, CARL9170_STOPPED); ar 1166 drivers/net/wireless/ath/carl9170/usb.c err = carl9170_usb_init_device(ar); ar 1173 drivers/net/wireless/ath/carl9170/usb.c carl9170_usb_cancel_urbs(ar); ar 2321 drivers/net/wireless/mac80211_hwsim.c struct mac80211_hwsim_data *ar = hw->priv; ar 2324 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->tx_pkts; ar 2325 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->tx_bytes; ar 2326 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->rx_pkts; ar 2327 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->rx_bytes; ar 2328 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->tx_dropped; ar 2329 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->tx_failed; ar 2330 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->ps; ar 2331 drivers/net/wireless/mac80211_hwsim.c data[i++] = ar->group; ar 906 drivers/scsi/esas2r/esas2r_main.c struct esas2r_request *ar = *abort_request; ar 923 drivers/scsi/esas2r/esas2r_main.c ar = esas2r_alloc_request(a); ar 924 drivers/scsi/esas2r/esas2r_main.c if (ar == NULL) { ar 936 drivers/scsi/esas2r/esas2r_main.c ar->sense_len = 0; ar 937 drivers/scsi/esas2r/esas2r_main.c ar->vrq->scsi.length = 0; ar 938 drivers/scsi/esas2r/esas2r_main.c ar->target_id = rq->target_id; ar 939 drivers/scsi/esas2r/esas2r_main.c ar->vrq->scsi.flags |= cpu_to_le32( ar 942 drivers/scsi/esas2r/esas2r_main.c memset(ar->vrq->scsi.cdb, 0, ar 943 drivers/scsi/esas2r/esas2r_main.c sizeof(ar->vrq->scsi.cdb)); ar 945 drivers/scsi/esas2r/esas2r_main.c ar->vrq->scsi.flags |= cpu_to_le32( ar 947 drivers/scsi/esas2r/esas2r_main.c ar->vrq->scsi.u.abort_handle = ar 2653 drivers/scsi/megaraid/megaraid_sas.h u16 MR_ArPdGet(u32 ar, u32 arm, struct MR_DRV_RAID_MAP_ALL *map); ar 119 drivers/scsi/megaraid/megaraid_sas_fp.c u16 MR_ArPdGet(u32 ar, u32 arm, struct MR_DRV_RAID_MAP_ALL *map) ar 121 drivers/scsi/megaraid/megaraid_sas_fp.c return le16_to_cpu(map->raidMap.arMapInfo[ar].pd[arm]); ar 134 drivers/staging/media/meson/vdec/codec_mpeg12.c u32 ar = seq & MPEG2_SEQ_DAR_MASK; ar 136 drivers/staging/media/meson/vdec/codec_mpeg12.c switch (ar) { ar 383 drivers/video/fbdev/core/svgalib.c u16 am, an, ar; ar 388 drivers/video/fbdev/core/svgalib.c ar = pll->r_max; ar 389 drivers/video/fbdev/core/svgalib.c f_vco = f_wanted << ar; ar 392 drivers/video/fbdev/core/svgalib.c if ((f_vco >> ar) != f_wanted) ar 398 drivers/video/fbdev/core/svgalib.c while ((ar > pll->r_min) && (f_vco > pll->f_vco_max)) { ar 399 drivers/video/fbdev/core/svgalib.c ar--; ar 410 drivers/video/fbdev/core/svgalib.c *r = ar; ar 433 drivers/video/fbdev/core/svgalib.c pr_debug("fb%d: found frequency: %d kHz (VCO %d kHz)\n", node, (int) (f_current >> ar), (int) f_current); ar 655 fs/ext4/balloc.c struct ext4_allocation_request ar; ar 658 fs/ext4/balloc.c memset(&ar, 0, sizeof(ar)); ar 660 fs/ext4/balloc.c ar.inode = inode; ar 661 fs/ext4/balloc.c ar.goal = goal; ar 662 fs/ext4/balloc.c ar.len = count ? *count : 1; ar 663 fs/ext4/balloc.c ar.flags = flags; ar 665 fs/ext4/balloc.c ret = ext4_mb_new_blocks(handle, &ar, errp); ar 667 fs/ext4/balloc.c *count = ar.len; ar 674 fs/ext4/balloc.c EXT4_C2B(EXT4_SB(inode->i_sb), ar.len)); ar 4277 fs/ext4/extents.c struct ext4_allocation_request ar; ar 4392 fs/ext4/extents.c ar.len = allocated = map->m_len; ar 4399 fs/ext4/extents.c ar.lleft = map->m_lblk; ar 4400 fs/ext4/extents.c err = ext4_ext_search_left(inode, path, &ar.lleft, &ar.pleft); ar 4403 fs/ext4/extents.c ar.lright = map->m_lblk; ar 4405 fs/ext4/extents.c err = ext4_ext_search_right(inode, path, &ar.lright, &ar.pright, &ex2); ar 4413 fs/ext4/extents.c ar.len = allocated = map->m_len; ar 4441 fs/ext4/extents.c ar.inode = inode; ar 4442 fs/ext4/extents.c ar.goal = ext4_ext_find_goal(inode, path, map->m_lblk); ar 4443 fs/ext4/extents.c ar.logical = map->m_lblk; ar 4453 fs/ext4/extents.c ar.len = EXT4_NUM_B2C(sbi, offset+allocated); ar 4454 fs/ext4/extents.c ar.goal -= offset; ar 4455 fs/ext4/extents.c ar.logical -= offset; ar 4457 fs/ext4/extents.c ar.flags = EXT4_MB_HINT_DATA; ar 4460 fs/ext4/extents.c ar.flags = 0; ar 4462 fs/ext4/extents.c ar.flags |= EXT4_MB_HINT_NOPREALLOC; ar 4464 fs/ext4/extents.c ar.flags |= EXT4_MB_DELALLOC_RESERVED; ar 4466 fs/ext4/extents.c ar.flags |= EXT4_MB_USE_RESERVED; ar 4467 fs/ext4/extents.c newblock = ext4_mb_new_blocks(handle, &ar, &err); ar 4471 fs/ext4/extents.c ar.goal, newblock, allocated); ar 4473 fs/ext4/extents.c allocated_clusters = ar.len; ar 4474 fs/ext4/extents.c ar.len = EXT4_C2B(sbi, ar.len) - offset; ar 4475 fs/ext4/extents.c if (ar.len > allocated) ar 4476 fs/ext4/extents.c ar.len = allocated; ar 4481 fs/ext4/extents.c newex.ee_len = cpu_to_le16(ar.len); ar 4491 fs/ext4/extents.c path, ar.len); ar 322 fs/ext4/indirect.c struct ext4_allocation_request *ar, ar 333 fs/ext4/indirect.c new_blocks[i] = ext4_mb_new_blocks(handle, ar, &err); ar 335 fs/ext4/indirect.c ar->goal = new_blocks[i] = ext4_new_meta_blocks(handle, ar 336 fs/ext4/indirect.c ar->inode, ar->goal, ar 337 fs/ext4/indirect.c ar->flags & EXT4_MB_DELALLOC_RESERVED, ar 347 fs/ext4/indirect.c bh = branch[i].bh = sb_getblk(ar->inode->i_sb, new_blocks[i-1]); ar 365 fs/ext4/indirect.c len = ar->len; ar 374 fs/ext4/indirect.c err = ext4_handle_dirty_metadata(handle, ar->inode, bh); ar 388 fs/ext4/indirect.c ext4_forget(handle, 1, ar->inode, branch[i].bh, ar 390 fs/ext4/indirect.c ext4_free_blocks(handle, ar->inode, NULL, new_blocks[i], ar 391 fs/ext4/indirect.c (i == indirect_blks) ? ar->len : 1, 0); ar 408 fs/ext4/indirect.c struct ext4_allocation_request *ar, ar 434 fs/ext4/indirect.c if (num == 0 && ar->len > 1) { ar 436 fs/ext4/indirect.c for (i = 1; i < ar->len; i++) ar 453 fs/ext4/indirect.c err = ext4_handle_dirty_metadata(handle, ar->inode, where->bh); ar 460 fs/ext4/indirect.c ext4_mark_inode_dirty(handle, ar->inode); ar 472 fs/ext4/indirect.c ext4_free_blocks(handle, ar->inode, where[i].bh, 0, 1, ar 475 fs/ext4/indirect.c ext4_free_blocks(handle, ar->inode, NULL, le32_to_cpu(where[num].key), ar 476 fs/ext4/indirect.c ar->len, 0); ar 513 fs/ext4/indirect.c struct ext4_allocation_request ar; ar 588 fs/ext4/indirect.c memset(&ar, 0, sizeof(ar)); ar 589 fs/ext4/indirect.c ar.inode = inode; ar 590 fs/ext4/indirect.c ar.logical = map->m_lblk; ar 592 fs/ext4/indirect.c ar.flags = EXT4_MB_HINT_DATA; ar 594 fs/ext4/indirect.c ar.flags |= EXT4_MB_DELALLOC_RESERVED; ar 596 fs/ext4/indirect.c ar.flags |= EXT4_MB_USE_RESERVED; ar 598 fs/ext4/indirect.c ar.goal = ext4_find_goal(inode, map->m_lblk, partial); ar 607 fs/ext4/indirect.c ar.len = ext4_blks_to_allocate(partial, indirect_blks, ar 613 fs/ext4/indirect.c err = ext4_alloc_branch(handle, &ar, indirect_blks, ar 624 fs/ext4/indirect.c err = ext4_splice_branch(handle, &ar, partial, indirect_blks); ar 631 fs/ext4/indirect.c count = ar.len; ar 3083 fs/ext4/mballoc.c struct ext4_allocation_request *ar) ar 3168 fs/ext4/mballoc.c if (ar->pleft && start <= ar->lleft) { ar 3169 fs/ext4/mballoc.c size -= ar->lleft + 1 - start; ar 3170 fs/ext4/mballoc.c start = ar->lleft + 1; ar 3172 fs/ext4/mballoc.c if (ar->pright && start + size - 1 >= ar->lright) ar 3173 fs/ext4/mballoc.c size -= start + size - ar->lright; ar 3257 fs/ext4/mballoc.c if (ar->pright && (ar->lright == (start + size))) { ar 3259 fs/ext4/mballoc.c ext4_get_group_no_and_offset(ac->ac_sb, ar->pright - size, ar 3264 fs/ext4/mballoc.c if (ar->pleft && (ar->lleft + 1 == start)) { ar 3266 fs/ext4/mballoc.c ext4_get_group_no_and_offset(ac->ac_sb, ar->pleft + 1, ar 4237 fs/ext4/mballoc.c struct ext4_allocation_request *ar) ar 4239 fs/ext4/mballoc.c struct super_block *sb = ar->inode->i_sb; ar 4248 fs/ext4/mballoc.c len = ar->len; ar 4255 fs/ext4/mballoc.c goal = ar->goal; ar 4262 fs/ext4/mballoc.c ac->ac_b_ex.fe_logical = EXT4_LBLK_CMASK(sbi, ar->logical); ar 4265 fs/ext4/mballoc.c ac->ac_inode = ar->inode; ar 4271 fs/ext4/mballoc.c ac->ac_flags = ar->flags; ar 4279 fs/ext4/mballoc.c (unsigned) ar->len, (unsigned) ar->logical, ar 4280 fs/ext4/mballoc.c (unsigned) ar->goal, ac->ac_flags, ac->ac_2order, ar 4281 fs/ext4/mballoc.c (unsigned) ar->lleft, (unsigned) ar->pleft, ar 4282 fs/ext4/mballoc.c (unsigned) ar->lright, (unsigned) ar->pright, ar 4283 fs/ext4/mballoc.c inode_is_open_for_write(ar->inode) ? "" : "non-"); ar 4485 fs/ext4/mballoc.c struct ext4_allocation_request *ar, int *errp) ar 4496 fs/ext4/mballoc.c sb = ar->inode->i_sb; ar 4499 fs/ext4/mballoc.c trace_ext4_request_blocks(ar); ar 4502 fs/ext4/mballoc.c if (ext4_is_quota_file(ar->inode)) ar 4503 fs/ext4/mballoc.c ar->flags |= EXT4_MB_USE_ROOT_BLOCKS; ar 4505 fs/ext4/mballoc.c if ((ar->flags & EXT4_MB_DELALLOC_RESERVED) == 0) { ar 4510 fs/ext4/mballoc.c while (ar->len && ar 4511 fs/ext4/mballoc.c ext4_claim_free_clusters(sbi, ar->len, ar->flags)) { ar 4515 fs/ext4/mballoc.c ar->len = ar->len >> 1; ar 4517 fs/ext4/mballoc.c if (!ar->len) { ar 4521 fs/ext4/mballoc.c reserv_clstrs = ar->len; ar 4522 fs/ext4/mballoc.c if (ar->flags & EXT4_MB_USE_ROOT_BLOCKS) { ar 4523 fs/ext4/mballoc.c dquot_alloc_block_nofail(ar->inode, ar 4524 fs/ext4/mballoc.c EXT4_C2B(sbi, ar->len)); ar 4526 fs/ext4/mballoc.c while (ar->len && ar 4527 fs/ext4/mballoc.c dquot_alloc_block(ar->inode, ar 4528 fs/ext4/mballoc.c EXT4_C2B(sbi, ar->len))) { ar 4530 fs/ext4/mballoc.c ar->flags |= EXT4_MB_HINT_NOPREALLOC; ar 4531 fs/ext4/mballoc.c ar->len--; ar 4534 fs/ext4/mballoc.c inquota = ar->len; ar 4535 fs/ext4/mballoc.c if (ar->len == 0) { ar 4543 fs/ext4/mballoc.c ar->len = 0; ar 4548 fs/ext4/mballoc.c *errp = ext4_mb_initialize_context(ac, ar); ar 4550 fs/ext4/mballoc.c ar->len = 0; ar 4557 fs/ext4/mballoc.c ext4_mb_normalize_request(ac, ar); ar 4583 fs/ext4/mballoc.c ar->len = ac->ac_b_ex.fe_len; ar 4595 fs/ext4/mballoc.c ar->len = 0; ar 4602 fs/ext4/mballoc.c if (inquota && ar->len < inquota) ar 4603 fs/ext4/mballoc.c dquot_free_block(ar->inode, EXT4_C2B(sbi, inquota - ar->len)); ar 4604 fs/ext4/mballoc.c if (!ar->len) { ar 4605 fs/ext4/mballoc.c if ((ar->flags & EXT4_MB_DELALLOC_RESERVED) == 0) ar 4611 fs/ext4/mballoc.c trace_ext4_allocate_blocks(ar, (unsigned long long)block); ar 742 fs/libfs.c struct simple_transaction_argresp *ar = file->private_data; ar 751 fs/libfs.c ar->size = n; ar 757 fs/libfs.c struct simple_transaction_argresp *ar; ar 763 fs/libfs.c ar = (struct simple_transaction_argresp *)get_zeroed_page(GFP_KERNEL); ar 764 fs/libfs.c if (!ar) ar 772 fs/libfs.c free_page((unsigned long)ar); ar 776 fs/libfs.c file->private_data = ar; ar 780 fs/libfs.c if (copy_from_user(ar->data, buf, size)) ar 783 fs/libfs.c return ar->data; ar 789 fs/libfs.c struct simple_transaction_argresp *ar = file->private_data; ar 791 fs/libfs.c if (!ar) ar 793 fs/libfs.c return simple_read_from_buffer(buf, size, pos, ar->data, ar->size); ar 46 include/sound/sof/xtensa.h uint32_t ar[]; ar 771 include/trace/events/ext4.h TP_PROTO(struct ext4_allocation_request *ar), ar 773 include/trace/events/ext4.h TP_ARGS(ar), ar 789 include/trace/events/ext4.h __entry->dev = ar->inode->i_sb->s_dev; ar 790 include/trace/events/ext4.h __entry->ino = ar->inode->i_ino; ar 791 include/trace/events/ext4.h __entry->len = ar->len; ar 792 include/trace/events/ext4.h __entry->logical = ar->logical; ar 793 include/trace/events/ext4.h __entry->goal = ar->goal; ar 794 include/trace/events/ext4.h __entry->lleft = ar->lleft; ar 795 include/trace/events/ext4.h __entry->lright = ar->lright; ar 796 include/trace/events/ext4.h __entry->pleft = ar->pleft; ar 797 include/trace/events/ext4.h __entry->pright = ar->pright; ar 798 include/trace/events/ext4.h __entry->flags = ar->flags; ar 811 include/trace/events/ext4.h TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), ar 813 include/trace/events/ext4.h TP_ARGS(ar, block), ar 830 include/trace/events/ext4.h __entry->dev = ar->inode->i_sb->s_dev; ar 831 include/trace/events/ext4.h __entry->ino = ar->inode->i_ino; ar 833 include/trace/events/ext4.h __entry->len = ar->len; ar 834 include/trace/events/ext4.h __entry->logical = ar->logical; ar 835 include/trace/events/ext4.h __entry->goal = ar->goal; ar 836 include/trace/events/ext4.h __entry->lleft = ar->lleft; ar 837 include/trace/events/ext4.h __entry->lright = ar->lright; ar 838 include/trace/events/ext4.h __entry->pleft = ar->pleft; ar 839 include/trace/events/ext4.h __entry->pright = ar->pright; ar 840 include/trace/events/ext4.h __entry->flags = ar->flags; ar 385 include/uapi/linux/kvm.h __u8 ar; ar 471 include/uapi/linux/kvm.h __u8 ar; /* the access register number */ ar 266 net/mac80211/rc80211_minstrel.c struct ieee80211_tx_rate *ar = info->status.rates; ar 273 net/mac80211/rc80211_minstrel.c if (ar[i].idx < 0) ar 276 net/mac80211/rc80211_minstrel.c ndx = rix_to_ndx(mi, ar[i].idx); ar 280 net/mac80211/rc80211_minstrel.c mi->r[ndx].stats.attempts += ar[i].count; ar 282 net/mac80211/rc80211_minstrel.c if ((i != IEEE80211_TX_MAX_RATES - 1) && (ar[i + 1].idx < 0)) ar 889 net/mac80211/rc80211_minstrel_ht.c struct ieee80211_tx_rate *ar = info->status.rates; ar 929 net/mac80211/rc80211_minstrel_ht.c last = !minstrel_ht_txstat_valid(mp, &ar[0]); ar 932 net/mac80211/rc80211_minstrel_ht.c !minstrel_ht_txstat_valid(mp, &ar[i + 1]); ar 934 net/mac80211/rc80211_minstrel_ht.c rate = minstrel_ht_get_stats(mp, mi, &ar[i]); ar 941 net/mac80211/rc80211_minstrel_ht.c rate->attempts += ar[i].count * info->status.ampdu_len; ar 93 scripts/kallsyms.c struct addr_range *ar; ar 96 scripts/kallsyms.c ar = &ranges[i]; ar 98 scripts/kallsyms.c if (strcmp(sym, ar->start_sym) == 0) { ar 99 scripts/kallsyms.c ar->start = addr; ar 101 scripts/kallsyms.c } else if (strcmp(sym, ar->end_sym) == 0) { ar 102 scripts/kallsyms.c ar->end = addr; ar 181 scripts/kallsyms.c struct addr_range *ar; ar 184 scripts/kallsyms.c ar = &ranges[i]; ar 186 scripts/kallsyms.c if (s->addr >= ar->start && s->addr <= ar->end) ar 1156 security/apparmor/label.c struct aa_label *label, *ar = NULL, *br = NULL; ar 1163 security/apparmor/label.c a = ar = aa_get_newest_label(a); ar 1170 security/apparmor/label.c aa_put_label(ar); ar 160 sound/isa/msnd/msnd_pinnacle_mixer.c #define update_potm(d, s, ar) \ ar 168 sound/isa/msnd/msnd_pinnacle_mixer.c if (snd_msnd_send_word(dev, 0, 0, ar) == 0) \ ar 172 sound/isa/msnd/msnd_pinnacle_mixer.c #define update_pot(d, s, ar) \ ar 178 sound/isa/msnd/msnd_pinnacle_mixer.c if (snd_msnd_send_word(dev, 0, 0, ar) == 0) \ ar 385 tools/include/uapi/linux/kvm.h __u8 ar; ar 471 tools/include/uapi/linux/kvm.h __u8 ar; /* the access register number */ ar 47 tools/perf/arch/s390/util/auxtrace.c cpumsf_recording_options(struct auxtrace_record *ar __maybe_unused, ar 62 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 80 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 92 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 102 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 113 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 123 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 133 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 143 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 0; ar 157 tools/testing/selftests/kvm/s390x/memop.c ksmo.ar = 17; ar 65 tools/testing/selftests/x86/ldt_gdt.c uint32_t has_limit = 0, has_ar = 0, limit, ar; ar 78 tools/testing/selftests/x86/ldt_gdt.c : [ar] "=r" (ar), [has_ar] "+rm" (has_ar) ar 95 tools/testing/selftests/x86/ldt_gdt.c uint32_t has_limit = 0, has_ar = 0, limit, ar; ar 108 tools/testing/selftests/x86/ldt_gdt.c : [ar] "=r" (ar), [has_ar] "+rm" (has_ar) ar 119 tools/testing/selftests/x86/ldt_gdt.c ar &= ~0xF0000; ar 125 tools/testing/selftests/x86/ldt_gdt.c if (ar != expected_ar && ar != (expected_ar | AR_ACCESSED)) { ar 127 tools/testing/selftests/x86/ldt_gdt.c (ldt ? "LDT" : "GDT"), index, ar, expected_ar); ar 135 tools/testing/selftests/x86/ldt_gdt.c (ldt ? "LDT" : "GDT"), index, ar, limit); ar 139 tools/testing/selftests/x86/ldt_gdt.c static bool install_valid_mode(const struct user_desc *d, uint32_t ar, ar 172 tools/testing/selftests/x86/ldt_gdt.c check_valid_segment(desc.entry_number, ldt, ar, limit, true); ar 189 tools/testing/selftests/x86/ldt_gdt.c static bool install_valid(const struct user_desc *desc, uint32_t ar) ar 191 tools/testing/selftests/x86/ldt_gdt.c bool ret = install_valid_mode(desc, ar, false, true); ar 196 tools/testing/selftests/x86/ldt_gdt.c install_valid_mode(desc, ar, false, false); ar 340 tools/testing/selftests/x86/sigreturn.c uint32_t valid = 0, ar; ar 345 tools/testing/selftests/x86/sigreturn.c : [ar] "=r" (ar), [valid] "+rm" (valid) ar 351 tools/testing/selftests/x86/sigreturn.c bool db = (ar & (1 << 22)); ar 352 tools/testing/selftests/x86/sigreturn.c bool l = (ar & (1 << 21)); ar 354 tools/testing/selftests/x86/sigreturn.c if (!(ar & (1<<11))) ar 373 tools/testing/selftests/x86/sigreturn.c uint32_t valid = 0, ar; ar 378 tools/testing/selftests/x86/sigreturn.c : [ar] "=r" (ar), [valid] "+rm" (valid) ar 384 tools/testing/selftests/x86/sigreturn.c if ((ar & AR_TYPE_MASK) != AR_TYPE_RWDATA && ar 385 tools/testing/selftests/x86/sigreturn.c (ar & AR_TYPE_MASK) != AR_TYPE_RWDATA_EXPDOWN) ar 388 tools/testing/selftests/x86/sigreturn.c return (ar & AR_P);