arch/alpha/boot/tools/objstrip.c
206
if (aout->fh.f_opthdr != sizeof(aout->ah)) {
arch/alpha/boot/tools/objstrip.c
218
fil_size = aout->ah.tsize + aout->ah.dsize;
arch/alpha/boot/tools/objstrip.c
219
mem_size = fil_size + aout->ah.bsize;
arch/alpha/boot/tools/objstrip.c
223
prog_name, aout->ah.text_start,
arch/alpha/boot/tools/objstrip.c
224
aout->ah.text_start + fil_size, offset);
arch/alpha/include/uapi/asm/a.out.h
58
struct aouthdr ah;
arch/alpha/include/uapi/asm/a.out.h
65
#define a_info ah.info
arch/alpha/include/uapi/asm/a.out.h
66
#define a_text ah.tsize
arch/alpha/include/uapi/asm/a.out.h
67
#define a_data ah.dsize
arch/alpha/include/uapi/asm/a.out.h
68
#define a_bss ah.bsize
arch/alpha/include/uapi/asm/a.out.h
69
#define a_entry ah.entry
arch/alpha/include/uapi/asm/a.out.h
70
#define a_textstart ah.text_start
arch/alpha/include/uapi/asm/a.out.h
71
#define a_datastart ah.data_start
arch/alpha/include/uapi/asm/a.out.h
72
#define a_bssstart ah.bss_start
arch/alpha/include/uapi/asm/a.out.h
73
#define a_gprmask ah.gprmask
arch/alpha/include/uapi/asm/a.out.h
74
#define a_fprmask ah.fprmask
arch/alpha/include/uapi/asm/a.out.h
75
#define a_gpvalue ah.gpvalue
arch/alpha/math-emu/sfp-util.h
11
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
arch/alpha/math-emu/sfp-util.h
12
((sl) = (al) - (bl), (sh) = (ah) - (bh) - ((al) < (bl)))
arch/alpha/math-emu/sfp-util.h
8
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
arch/alpha/math-emu/sfp-util.h
9
((sl) = (al) + (bl), (sh) = (ah) + (bh) + ((sl) < (al)))
arch/powerpc/include/asm/sfp-machine.h
216
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
arch/powerpc/include/asm/sfp-machine.h
220
: "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
arch/powerpc/include/asm/sfp-machine.h
223
: "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
arch/powerpc/include/asm/sfp-machine.h
227
: "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \
arch/powerpc/include/asm/sfp-machine.h
239
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
arch/powerpc/include/asm/sfp-machine.h
241
if (__builtin_constant_p (ah) && (ah) == 0) \
arch/powerpc/include/asm/sfp-machine.h
244
else if (__builtin_constant_p (ah) && (ah) == ~(USItype) 0) \
arch/powerpc/include/asm/sfp-machine.h
249
: "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
arch/powerpc/include/asm/sfp-machine.h
252
: "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
arch/powerpc/include/asm/sfp-machine.h
256
: "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \
arch/sh/math-emu/sfp-util.h
10
(sh) = (ah) + (bh) + (__x < (al)); \
arch/sh/math-emu/sfp-util.h
14
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
arch/sh/math-emu/sfp-util.h
18
(sh) = (ah) - (bh) - (__x > (al)); \
arch/sh/math-emu/sfp-util.h
6
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
arch/sparc/math-emu/sfp-util_32.h
12
: "%rJ" ((USItype)(ah)), \
arch/sparc/math-emu/sfp-util_32.h
17
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
arch/sparc/math-emu/sfp-util_32.h
22
: "rJ" ((USItype)(ah)), \
arch/sparc/math-emu/sfp-util_32.h
7
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
arch/sparc/math-emu/sfp-util_64.h
15
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
arch/sparc/math-emu/sfp-util_64.h
23
: "r" ((UDItype)(ah)), \
arch/sparc/math-emu/sfp-util_64.h
29
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
arch/sparc/math-emu/sfp-util_64.h
37
: "r" ((UDItype)(ah)), \
arch/x86/boot/apm.c
25
ireg.ah = 0x53;
arch/x86/boot/boot.h
240
u8 al, ah, eax2, eax3;
arch/x86/boot/edd.c
100
ireg.ah = 0x48;
arch/x86/boot/edd.c
107
ireg.ah = 0x08;
arch/x86/boot/edd.c
82
ireg.ah = 0x41;
arch/x86/boot/edd.c
94
ei->version = oreg.ah; /* EDD version number */
arch/x86/boot/main.c
70
ireg.ah = 0x02; /* Get keyboard status */
arch/x86/boot/memory.c
110
ireg.ah = 0x88;
arch/x86/boot/tty.c
102
ireg.ah = 0x01;
arch/x86/boot/tty.c
45
ireg.ah = 0x0e;
arch/x86/boot/tty.c
77
ireg.ah = 0x02;
arch/x86/boot/video-bios.c
38
ireg.ah = 0x0f; /* Get Current Video Mode */
arch/x86/boot/video.c
27
ireg.ah = 0x03;
arch/x86/boot/video.c
309
ireg.ah = 0x02; /* Set cursor position */
arch/x86/boot/video.c
47
ireg.ah = 0x0f;
arch/x86/kvm/emulate.c
3045
u8 al, ah;
arch/x86/kvm/emulate.c
3051
ah = al / ctxt->src.val;
arch/x86/kvm/emulate.c
3054
ctxt->dst.val = (ctxt->dst.val & 0xffff0000) | al | (ah << 8);
arch/x86/kvm/emulate.c
3068
u8 ah = (ctxt->dst.val >> 8) & 0xff;
arch/x86/kvm/emulate.c
3070
al = (al + (ah * ctxt->src.val)) & 0xff;
drivers/ata/pata_rb532_cf.c
107
struct ata_host *ah;
drivers/ata/pata_rb532_cf.c
131
ah = ata_host_alloc(&pdev->dev, RB500_CF_MAXPORTS);
drivers/ata/pata_rb532_cf.c
132
if (!ah)
drivers/ata/pata_rb532_cf.c
139
ah->private_data = info;
drivers/ata/pata_rb532_cf.c
148
rb532_pata_setup_ports(ah);
drivers/ata/pata_rb532_cf.c
150
ret = ata_host_activate(ah, irq, rb532_pata_irq_handler,
drivers/ata/pata_rb532_cf.c
160
struct ata_host *ah = platform_get_drvdata(pdev);
drivers/ata/pata_rb532_cf.c
162
ata_host_detach(ah);
drivers/ata/pata_rb532_cf.c
56
struct ata_host *ah = dev_instance;
drivers/ata/pata_rb532_cf.c
57
struct rb532_cf_info *info = ah->private_data;
drivers/ata/pata_rb532_cf.c
82
static void rb532_pata_setup_ports(struct ata_host *ah)
drivers/ata/pata_rb532_cf.c
84
struct rb532_cf_info *info = ah->private_data;
drivers/ata/pata_rb532_cf.c
87
ap = ah->ports[0];
drivers/block/aoe/aoecmd.c
1382
struct aoe_atahdr *ah;
drivers/block/aoe/aoecmd.c
1396
ah = (struct aoe_atahdr *) (h+1);
drivers/block/aoe/aoecmd.c
1397
skb_put(skb, sizeof *h + sizeof *ah);
drivers/block/aoe/aoecmd.c
1406
ah->scnt = 1;
drivers/block/aoe/aoecmd.c
1407
ah->cmdstat = ATA_CMD_ID_ATA;
drivers/block/aoe/aoecmd.c
1408
ah->lba3 = 0xa0;
drivers/block/aoe/aoecmd.c
145
put_lba(struct aoe_atahdr *ah, sector_t lba)
drivers/block/aoe/aoecmd.c
147
ah->lba0 = lba;
drivers/block/aoe/aoecmd.c
148
ah->lba1 = lba >>= 8;
drivers/block/aoe/aoecmd.c
149
ah->lba2 = lba >>= 8;
drivers/block/aoe/aoecmd.c
150
ah->lba3 = lba >>= 8;
drivers/block/aoe/aoecmd.c
151
ah->lba4 = lba >>= 8;
drivers/block/aoe/aoecmd.c
152
ah->lba5 = lba >>= 8;
drivers/block/aoe/aoecmd.c
321
struct aoe_atahdr *ah;
drivers/block/aoe/aoecmd.c
327
ah = (struct aoe_atahdr *) (h + 1);
drivers/block/aoe/aoecmd.c
328
skb_put(skb, sizeof(*h) + sizeof(*ah));
drivers/block/aoe/aoecmd.c
342
ah->scnt = f->iter.bi_size >> 9;
drivers/block/aoe/aoecmd.c
343
put_lba(ah, f->iter.bi_sector);
drivers/block/aoe/aoecmd.c
345
ah->aflags |= AOEAFL_EXT;
drivers/block/aoe/aoecmd.c
348
ah->lba3 &= 0x0f;
drivers/block/aoe/aoecmd.c
349
ah->lba3 |= 0xe0; /* LBA bit + obsolete 0xa0 */
drivers/block/aoe/aoecmd.c
353
ah->aflags |= AOEAFL_WRITE;
drivers/block/aoe/aoecmd.c
363
ah->cmdstat = ATA_CMD_PIO_READ | writebit | extbit;
drivers/block/aoe/aoenet.c
134
struct aoe_atahdr *ah;
drivers/block/aoe/aoenet.c
147
sn = sizeof(*h) + sizeof(*ah);
drivers/bluetooth/bluecard_cs.c
452
struct hci_acl_hdr *ah;
drivers/bluetooth/bluecard_cs.c
464
ah = hci_acl_hdr(info->rx_skb);
drivers/bluetooth/bluecard_cs.c
465
dlen = __le16_to_cpu(ah->dlen);
drivers/bluetooth/bt3c_cs.c
293
struct hci_acl_hdr *ah;
drivers/bluetooth/bt3c_cs.c
305
ah = hci_acl_hdr(info->rx_skb);
drivers/bluetooth/bt3c_cs.c
306
dlen = __le16_to_cpu(ah->dlen);
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
3371
u32 k, a, ah, al;
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
3381
ah = ((a * t) + 5000) / 10000;
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
3382
al = a - ah;
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
3384
*th = t - ah;
drivers/gpu/drm/radeon/r600_dpm.c
221
u32 k, a, ah, al;
drivers/gpu/drm/radeon/r600_dpm.c
231
ah = ((a * t) + 5000) / 10000;
drivers/gpu/drm/radeon/r600_dpm.c
232
al = a - ah;
drivers/gpu/drm/radeon/r600_dpm.c
234
*th = t - ah;
drivers/i2c/busses/i2c-i801.c
1500
acpi_handle ah = ACPI_HANDLE(&priv->pci_dev->dev);
drivers/i2c/busses/i2c-i801.c
1503
status = acpi_install_address_space_handler(ah, ACPI_ADR_SPACE_SYSTEM_IO,
drivers/i2c/busses/i2c-i801.c
1513
acpi_handle ah = ACPI_HANDLE(&priv->pci_dev->dev);
drivers/i2c/busses/i2c-i801.c
1515
acpi_remove_address_space_handler(ah, ACPI_ADR_SPACE_SYSTEM_IO, i801_acpi_io_handler);
drivers/infiniband/core/agent.c
111
ah = ib_create_ah_from_wc(agent->qp->pd, wc, grh, port_num);
drivers/infiniband/core/agent.c
112
if (IS_ERR(ah)) {
drivers/infiniband/core/agent.c
113
dev_err(&device->dev, "ib_create_ah_from_wc error %pe\n", ah);
drivers/infiniband/core/agent.c
131
send_buf->ah = ah;
drivers/infiniband/core/agent.c
148
rdma_destroy_ah(ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/agent.c
154
rdma_destroy_ah(mad_send_wc->send_buf->ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/agent.c
97
struct ib_ah *ah;
drivers/infiniband/core/cm.c
282
struct ib_ah *ah;
drivers/infiniband/core/cm.c
297
ah = rdma_create_ah(mad_agent->qp->pd, &cm_id_priv->av.ah_attr, 0);
drivers/infiniband/core/cm.c
298
if (IS_ERR(ah)) {
drivers/infiniband/core/cm.c
299
m = ERR_CAST(ah);
drivers/infiniband/core/cm.c
309
rdma_destroy_ah(ah, 0);
drivers/infiniband/core/cm.c
313
m->ah = ah;
drivers/infiniband/core/cm.c
327
if (msg->ah)
drivers/infiniband/core/cm.c
328
rdma_destroy_ah(msg->ah, 0);
drivers/infiniband/core/cm.c
370
if (msg->ah)
drivers/infiniband/core/cm.c
371
rdma_destroy_ah(msg->ah, 0);
drivers/infiniband/core/cm.c
396
struct ib_ah *ah;
drivers/infiniband/core/cm.c
398
ah = ib_create_ah_from_wc(port->mad_agent->qp->pd, mad_recv_wc->wc,
drivers/infiniband/core/cm.c
400
if (IS_ERR(ah))
drivers/infiniband/core/cm.c
401
return PTR_ERR(ah);
drivers/infiniband/core/cm.c
403
msg->ah = ah;
drivers/infiniband/core/mad.c
1302
mad_send_wr->send_wr.ah = send_buf->ah;
drivers/infiniband/core/mad.c
1892
if (rdma_query_ah(wr->send_buf.ah, &attr))
drivers/infiniband/core/mad.c
65
rdma_query_ah(wr->ah, &attr);
drivers/infiniband/core/mad_rmpp.c
145
msg->ah = rmpp_recv->ah;
drivers/infiniband/core/mad_rmpp.c
155
struct ib_ah *ah;
drivers/infiniband/core/mad_rmpp.c
158
ah = ib_create_ah_from_wc(agent->qp->pd, recv_wc->wc,
drivers/infiniband/core/mad_rmpp.c
160
if (IS_ERR(ah))
drivers/infiniband/core/mad_rmpp.c
161
return ERR_CAST(ah);
drivers/infiniband/core/mad_rmpp.c
169
rdma_destroy_ah(ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/mad_rmpp.c
171
msg->ah = ah;
drivers/infiniband/core/mad_rmpp.c
172
msg->context[0] = ah;
drivers/infiniband/core/mad_rmpp.c
199
rdma_destroy_ah(msg->ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/mad_rmpp.c
206
if (mad_send_wc->send_buf->context[0] == mad_send_wc->send_buf->ah)
drivers/infiniband/core/mad_rmpp.c
207
rdma_destroy_ah(mad_send_wc->send_buf->ah,
drivers/infiniband/core/mad_rmpp.c
236
rdma_destroy_ah(msg->ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/mad_rmpp.c
286
rmpp_recv->ah = ib_create_ah_from_wc(agent->agent.qp->pd,
drivers/infiniband/core/mad_rmpp.c
290
if (IS_ERR(rmpp_recv->ah))
drivers/infiniband/core/mad_rmpp.c
56
struct ib_ah *ah;
drivers/infiniband/core/mad_rmpp.c
83
rdma_destroy_ah(rmpp_recv->ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/mad_rmpp.c
870
if (rdma_query_ah(mad_send_wr->send_buf.ah, &ah_attr))
drivers/infiniband/core/sa_query.c
1186
rdma_destroy_ah(sm_ah->ah, 0);
drivers/infiniband/core/sa_query.c
1348
if ((rdma_query_ah(query->sm_ah->ah, &ah_attr) < 0) ||
drivers/infiniband/core/sa_query.c
1365
query->mad_buf->ah = query->sm_ah->ah;
drivers/infiniband/core/sa_query.c
2350
new_ah->ah = rdma_create_ah(port->agent->qp->pd, &ah_attr,
drivers/infiniband/core/sa_query.c
2352
if (IS_ERR(new_ah->ah)) {
drivers/infiniband/core/sa_query.c
65
struct ib_ah *ah;
drivers/infiniband/core/user_mad.c
228
rdma_destroy_ah(packet->msg->ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/user_mad.c
515
struct ib_ah *ah;
drivers/infiniband/core/user_mad.c
572
ah = rdma_create_user_ah(agent->qp->pd, &ah_attr, NULL);
drivers/infiniband/core/user_mad.c
573
if (IS_ERR(ah)) {
drivers/infiniband/core/user_mad.c
574
ret = PTR_ERR(ah);
drivers/infiniband/core/user_mad.c
606
packet->msg->ah = ah;
drivers/infiniband/core/user_mad.c
669
rdma_destroy_ah(ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/core/uverbs_cmd.c
2096
ud->ah = uobj_get_obj_read(ah, UVERBS_OBJECT_AH,
drivers/infiniband/core/uverbs_cmd.c
2097
user_wr->wr.ud.ah, attrs);
drivers/infiniband/core/uverbs_cmd.c
2098
if (IS_ERR(ud->ah)) {
drivers/infiniband/core/uverbs_cmd.c
2099
ret = PTR_ERR(ud->ah);
drivers/infiniband/core/uverbs_cmd.c
2206
if (is_ud && ud_wr(wr)->ah)
drivers/infiniband/core/uverbs_cmd.c
2207
uobj_put_obj_read(ud_wr(wr)->ah);
drivers/infiniband/core/uverbs_cmd.c
2426
struct ib_ah *ah;
drivers/infiniband/core/uverbs_cmd.c
2468
ah = rdma_create_user_ah(pd, &attr, &attrs->driver_udata);
drivers/infiniband/core/uverbs_cmd.c
2469
if (IS_ERR(ah)) {
drivers/infiniband/core/uverbs_cmd.c
2470
ret = PTR_ERR(ah);
drivers/infiniband/core/uverbs_cmd.c
2474
ah->uobject = uobj;
drivers/infiniband/core/uverbs_cmd.c
2476
uobj->object = ah;
drivers/infiniband/core/verbs.c
1001
ret = rdma_fill_sgid_attr(ah->device, ah_attr, &old_sgid_attr);
drivers/infiniband/core/verbs.c
1005
ret = ah->device->ops.modify_ah ?
drivers/infiniband/core/verbs.c
1006
ah->device->ops.modify_ah(ah, ah_attr) :
drivers/infiniband/core/verbs.c
1009
ah->sgid_attr = rdma_update_sgid_attr(ah_attr, ah->sgid_attr);
drivers/infiniband/core/verbs.c
1015
int rdma_query_ah(struct ib_ah *ah, struct rdma_ah_attr *ah_attr)
drivers/infiniband/core/verbs.c
1019
return ah->device->ops.query_ah ?
drivers/infiniband/core/verbs.c
1020
ah->device->ops.query_ah(ah, ah_attr) :
drivers/infiniband/core/verbs.c
1025
int rdma_destroy_ah_user(struct ib_ah *ah, u32 flags, struct ib_udata *udata)
drivers/infiniband/core/verbs.c
1027
const struct ib_gid_attr *sgid_attr = ah->sgid_attr;
drivers/infiniband/core/verbs.c
1033
pd = ah->pd;
drivers/infiniband/core/verbs.c
1035
ret = ah->device->ops.destroy_ah(ah, flags);
drivers/infiniband/core/verbs.c
1043
kfree(ah);
drivers/infiniband/core/verbs.c
566
struct ib_ah *ah;
drivers/infiniband/core/verbs.c
574
ah = rdma_zalloc_drv_obj_gfp(
drivers/infiniband/core/verbs.c
577
if (!ah)
drivers/infiniband/core/verbs.c
580
ah->device = device;
drivers/infiniband/core/verbs.c
581
ah->pd = pd;
drivers/infiniband/core/verbs.c
582
ah->type = ah_attr->type;
drivers/infiniband/core/verbs.c
583
ah->sgid_attr = rdma_update_sgid_attr(ah_attr, NULL);
drivers/infiniband/core/verbs.c
589
ret = device->ops.create_user_ah(ah, &init_attr, udata);
drivers/infiniband/core/verbs.c
591
ret = device->ops.create_ah(ah, &init_attr, NULL);
drivers/infiniband/core/verbs.c
593
if (ah->sgid_attr)
drivers/infiniband/core/verbs.c
594
rdma_put_gid_attr(ah->sgid_attr);
drivers/infiniband/core/verbs.c
595
kfree(ah);
drivers/infiniband/core/verbs.c
600
return ah;
drivers/infiniband/core/verbs.c
619
struct ib_ah *ah;
drivers/infiniband/core/verbs.c
632
ah = _rdma_create_ah(pd, ah_attr, flags, NULL, slave);
drivers/infiniband/core/verbs.c
635
return ah;
drivers/infiniband/core/verbs.c
657
struct ib_ah *ah;
drivers/infiniband/core/verbs.c
667
ah = ERR_PTR(err);
drivers/infiniband/core/verbs.c
672
ah = _rdma_create_ah(pd, ah_attr, RDMA_CREATE_AH_SLEEPABLE,
drivers/infiniband/core/verbs.c
677
return ah;
drivers/infiniband/core/verbs.c
979
struct ib_ah *ah;
drivers/infiniband/core/verbs.c
986
ah = rdma_create_ah(pd, &ah_attr, RDMA_CREATE_AH_SLEEPABLE);
drivers/infiniband/core/verbs.c
989
return ah;
drivers/infiniband/core/verbs.c
993
int rdma_modify_ah(struct ib_ah *ah, struct rdma_ah_attr *ah_attr)
drivers/infiniband/core/verbs.c
998
if (ah->type != ah_attr->type)
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1189
struct bnxt_re_ah *ah;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1193
ah = kzalloc_obj(*ah);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1194
if (!ah)
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1197
ah->rdev = rdev;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1198
ah->qplib_ah.pd = &pd->qplib_pd;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1205
memcpy(ah->qplib_ah.dgid.data, &sgid.raw,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1207
ah->qplib_ah.sgid_index = 0;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1209
ah->qplib_ah.traffic_class = 0;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1210
ah->qplib_ah.flow_label = 0;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1211
ah->qplib_ah.hop_limit = 1;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1212
ah->qplib_ah.sl = 0;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1214
ether_addr_copy(ah->qplib_ah.dmac, rdev->netdev->dev_addr);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1216
rc = bnxt_qplib_create_ah(&rdev->qplib_res, &ah->qplib_ah, false);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1224
return ah;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
1227
kfree(ah);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2192
memcpy(qp->qplib_qp.ah.dgid.data, grh->dgid.raw,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2193
sizeof(qp->qplib_qp.ah.dgid.data));
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2194
qp->qplib_qp.ah.flow_label = grh->flow_label;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2200
qp->qplib_qp.ah.sgid_index = ctx->idx;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2201
qp->qplib_qp.ah.host_sgid_index = grh->sgid_index;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2202
qp->qplib_qp.ah.hop_limit = grh->hop_limit;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2203
qp->qplib_qp.ah.traffic_class = grh->traffic_class >> 2;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2204
qp->qplib_qp.ah.sl = rdma_ah_get_sl(&qp_attr->ah_attr);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2205
ether_addr_copy(qp->qplib_qp.ah.dmac,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2366
qplib_qp->ah.host_sgid_index = qp->qplib_qp.ah.host_sgid_index;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2382
qplib_qp->ah.host_sgid_index,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2383
qplib_qp->ah.hop_limit,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2384
qplib_qp->ah.traffic_class);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2385
rdma_ah_set_dgid_raw(&qp_attr->ah_attr, qplib_qp->ah.dgid.data);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2386
rdma_ah_set_sl(&qp_attr->ah_attr, qplib_qp->ah.sl);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2387
ether_addr_copy(qp_attr->ah_attr.roce.dmac, qplib_qp->ah.dmac);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2421
struct bnxt_re_ah *ah = container_of(ud_wr(wr)->ah, struct bnxt_re_ah,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2423
struct bnxt_qplib_ah *qplib_ah = &ah->qplib_ah;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2424
const struct ib_gid_attr *sgid_attr = ah->ib_ah.sgid_attr;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2480
ether_addr_copy(qp->qp1_hdr.eth.dmac_h, ah->qplib_ah.dmac);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2643
struct bnxt_re_ah *ah = NULL;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2646
ah = container_of(ud_wr(wr)->ah, struct bnxt_re_ah, ib_ah);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
2649
wqe->send.avid = ah->qplib_ah.id;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
3678
udwr.ah = &gsi_sah->ib_ah;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
786
struct bnxt_re_ah *ah = container_of(ib_ah, struct bnxt_re_ah, ib_ah);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
787
struct bnxt_re_dev *rdev = ah->rdev;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
792
rc = bnxt_qplib_destroy_ah(&rdev->qplib_res, &ah->qplib_ah, block);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
832
struct bnxt_re_ah *ah = container_of(ib_ah, struct bnxt_re_ah, ib_ah);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
842
ah->rdev = rdev;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
843
ah->qplib_ah.pd = &pd->qplib_pd;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
846
memcpy(ah->qplib_ah.dgid.data, grh->dgid.raw,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
853
ah->qplib_ah.sgid_index = ctx->idx;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
854
ah->qplib_ah.host_sgid_index = grh->sgid_index;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
855
ah->qplib_ah.traffic_class = grh->traffic_class;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
856
ah->qplib_ah.flow_label = grh->flow_label;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
857
ah->qplib_ah.hop_limit = grh->hop_limit;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
858
ah->qplib_ah.sl = rdma_ah_get_sl(ah_attr);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
862
ah->qplib_ah.nw_type = bnxt_re_stack_to_dev_nw_type(nw_type);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
864
memcpy(ah->qplib_ah.dmac, ah_attr->roce.dmac, ETH_ALEN);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
865
rc = bnxt_qplib_create_ah(&rdev->qplib_res, &ah->qplib_ah,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
882
*wrptr = ah->qplib_ah.id;
drivers/infiniband/hw/bnxt_re/ib_verbs.c
895
struct bnxt_re_ah *ah = container_of(ib_ah, struct bnxt_re_ah, ib_ah);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
898
rdma_ah_set_sl(ah_attr, ah->qplib_ah.sl);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
899
memcpy(ah_attr->roce.dmac, ah->qplib_ah.dmac, ETH_ALEN);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
901
ah->qplib_ah.host_sgid_index,
drivers/infiniband/hw/bnxt_re/ib_verbs.c
902
0, ah->qplib_ah.traffic_class);
drivers/infiniband/hw/bnxt_re/ib_verbs.c
903
rdma_ah_set_dgid_raw(ah_attr, ah->qplib_ah.dgid.data);
drivers/infiniband/hw/bnxt_re/ib_verbs.h
223
int bnxt_re_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
drivers/infiniband/hw/bnxt_re/ib_verbs.h
225
int bnxt_re_query_ah(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
drivers/infiniband/hw/bnxt_re/ib_verbs.h
226
int bnxt_re_destroy_ah(struct ib_ah *ah, u32 flags);
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1200
qp->ah.sgid_index = 0;
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1359
memcpy(temp32, qp->ah.dgid.data, sizeof(struct bnxt_qplib_gid));
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1366
req.flow_label = cpu_to_le32(qp->ah.flow_label);
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1374
cpu_to_le16(sgid_tbl->hw_id[qp->ah.sgid_index]);
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1378
req.hop_limit = qp->ah.hop_limit;
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1381
req.traffic_class = qp->ah.traffic_class;
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1384
memcpy(req.dest_mac, qp->ah.dmac, 6);
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1425
((res->sgid_tbl.tbl[qp->ah.sgid_index].vlan_id <<
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1429
((qp->ah.sl << CMDQ_MODIFY_QP_VLAN_PCP_SFT) &
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1488
memcpy(qp->ah.dgid.data, temp32, sizeof(qp->ah.dgid.data));
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1490
qp->ah.flow_label = le32_to_cpu(sb->flow_label);
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1492
qp->ah.sgid_index = 0;
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1495
qp->ah.sgid_index = i;
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1502
qp->ah.hop_limit = sb->hop_limit;
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1503
qp->ah.traffic_class = sb->traffic_class;
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1504
memcpy(qp->ah.dmac, sb->dest_mac, 6);
drivers/infiniband/hw/bnxt_re/qplib_fp.c
1505
qp->ah.vlan_id = (le16_to_cpu(sb->path_mtu_dest_vlan_id) &
drivers/infiniband/hw/bnxt_re/qplib_fp.h
305
struct bnxt_qplib_ah ah;
drivers/infiniband/hw/bnxt_re/qplib_sp.c
409
int bnxt_qplib_create_ah(struct bnxt_qplib_res *res, struct bnxt_qplib_ah *ah,
drivers/infiniband/hw/bnxt_re/qplib_sp.c
424
memcpy(temp32, ah->dgid.data, sizeof(struct bnxt_qplib_gid));
drivers/infiniband/hw/bnxt_re/qplib_sp.c
430
req.type = ah->nw_type;
drivers/infiniband/hw/bnxt_re/qplib_sp.c
431
req.hop_limit = ah->hop_limit;
drivers/infiniband/hw/bnxt_re/qplib_sp.c
432
req.sgid_index = cpu_to_le16(res->sgid_tbl.hw_id[ah->sgid_index]);
drivers/infiniband/hw/bnxt_re/qplib_sp.c
433
req.dest_vlan_id_flow_label = cpu_to_le32((ah->flow_label &
drivers/infiniband/hw/bnxt_re/qplib_sp.c
436
req.pd_id = cpu_to_le32(ah->pd->id);
drivers/infiniband/hw/bnxt_re/qplib_sp.c
437
req.traffic_class = ah->traffic_class;
drivers/infiniband/hw/bnxt_re/qplib_sp.c
440
memcpy(temp16, ah->dmac, 6);
drivers/infiniband/hw/bnxt_re/qplib_sp.c
451
ah->id = le32_to_cpu(resp.xid);
drivers/infiniband/hw/bnxt_re/qplib_sp.c
455
int bnxt_qplib_destroy_ah(struct bnxt_qplib_res *res, struct bnxt_qplib_ah *ah,
drivers/infiniband/hw/bnxt_re/qplib_sp.c
469
req.ah_cid = cpu_to_le32(ah->id);
drivers/infiniband/hw/bnxt_re/qplib_sp.h
337
int bnxt_qplib_create_ah(struct bnxt_qplib_res *res, struct bnxt_qplib_ah *ah,
drivers/infiniband/hw/bnxt_re/qplib_sp.h
339
int bnxt_qplib_destroy_ah(struct bnxt_qplib_res *res, struct bnxt_qplib_ah *ah,
drivers/infiniband/hw/efa/efa.h
136
u16 ah;
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
316
u16 ah;
drivers/infiniband/hw/efa/efa_admin_cmds_defs.h
327
u16 ah;
drivers/infiniband/hw/efa/efa_com_cmd.c
342
result->ah = cmd_completion.ah;
drivers/infiniband/hw/efa/efa_com_cmd.c
356
ah_cmd.ah = params->ah;
drivers/infiniband/hw/efa/efa_com_cmd.c
367
ah_cmd.ah, ah_cmd.pd, err);
drivers/infiniband/hw/efa/efa_com_cmd.h
104
u16 ah;
drivers/infiniband/hw/efa/efa_com_cmd.h
108
u16 ah;
drivers/infiniband/hw/efa/efa_io_defs.h
122
u16 ah;
drivers/infiniband/hw/efa/efa_io_defs.h
328
u16 ah;
drivers/infiniband/hw/efa/efa_verbs.c
2101
static int efa_ah_destroy(struct efa_dev *dev, struct efa_ah *ah)
drivers/infiniband/hw/efa/efa_verbs.c
2104
.ah = ah->ah,
drivers/infiniband/hw/efa/efa_verbs.c
2105
.pdn = to_epd(ah->ibah.pd)->pdn,
drivers/infiniband/hw/efa/efa_verbs.c
2120
struct efa_ah *ah = to_eah(ibah);
drivers/infiniband/hw/efa/efa_verbs.c
2144
memcpy(ah->id, ah_attr->grh.dgid.raw, sizeof(ah->id));
drivers/infiniband/hw/efa/efa_verbs.c
2145
ah->ah = result.ah;
drivers/infiniband/hw/efa/efa_verbs.c
2147
resp.efa_address_handle = result.ah;
drivers/infiniband/hw/efa/efa_verbs.c
2158
ibdev_dbg(&dev->ibdev, "Created ah[%d]\n", ah->ah);
drivers/infiniband/hw/efa/efa_verbs.c
2163
efa_ah_destroy(dev, ah);
drivers/infiniband/hw/efa/efa_verbs.c
2172
struct efa_ah *ah = to_eah(ibah);
drivers/infiniband/hw/efa/efa_verbs.c
2174
ibdev_dbg(&dev->ibdev, "Destroy ah[%d]\n", ah->ah);
drivers/infiniband/hw/efa/efa_verbs.c
2182
efa_ah_destroy(dev, ah);
drivers/infiniband/hw/erdma/erdma_qp.c
423
struct erdma_ah *ah = to_eah(uwr->ah);
drivers/infiniband/hw/erdma/erdma_qp.c
433
sqe->ahn = cpu_to_le32(ah->ahn);
drivers/infiniband/hw/erdma/erdma_verbs.c
2227
struct erdma_ah *ah = to_eah(ibah);
drivers/infiniband/hw/erdma/erdma_verbs.c
2240
ah->ahn = ret;
drivers/infiniband/hw/erdma/erdma_verbs.c
2246
IB_ROCE_UDP_ENCAP_VALID_PORT_MIN + (ah->ahn & 0x3FFF);
drivers/infiniband/hw/erdma/erdma_verbs.c
2248
erdma_attr_to_av(init_attr->ah_attr, &ah->av, udp_sport);
drivers/infiniband/hw/erdma/erdma_verbs.c
2254
req.ahn = ah->ahn;
drivers/infiniband/hw/erdma/erdma_verbs.c
2255
erdma_set_av_cfg(&req.av_cfg, &ah->av);
drivers/infiniband/hw/erdma/erdma_verbs.c
2260
erdma_free_idx(&dev->res_cb[ERDMA_RES_TYPE_AH], ah->ahn);
drivers/infiniband/hw/erdma/erdma_verbs.c
2271
struct erdma_ah *ah = to_eah(ibah);
drivers/infiniband/hw/erdma/erdma_verbs.c
2279
req.ahn = ah->ahn;
drivers/infiniband/hw/erdma/erdma_verbs.c
2286
erdma_free_idx(&dev->res_cb[ERDMA_RES_TYPE_AH], ah->ahn);
drivers/infiniband/hw/erdma/erdma_verbs.c
2293
struct erdma_ah *ah = to_eah(ibah);
drivers/infiniband/hw/erdma/erdma_verbs.c
2296
erdma_av_to_attr(&ah->av, ah_attr);
drivers/infiniband/hw/hfi1/mad.c
234
struct rvt_ah *ah, u32 dlid)
drivers/infiniband/hw/hfi1/mad.c
241
attr.type = ah->ibah.type;
drivers/infiniband/hw/hfi1/mad.c
246
ret = rdma_modify_ah(&ah->ibah, &attr);
drivers/infiniband/hw/hfi1/mad.c
254
struct ib_ah *ah = ERR_PTR(-EINVAL);
drivers/infiniband/hw/hfi1/mad.c
266
ah = rdma_create_ah(qp0->ibqp.pd, &attr, 0);
drivers/infiniband/hw/hfi1/mad.c
268
return ah;
drivers/infiniband/hw/hfi1/mad.c
334
struct ib_ah *ah;
drivers/infiniband/hw/hfi1/mad.c
336
ah = hfi1_create_qp0_ah(ibp, ibp->rvp.sm_lid);
drivers/infiniband/hw/hfi1/mad.c
337
if (IS_ERR(ah)) {
drivers/infiniband/hw/hfi1/mad.c
341
send_buf->ah = ah;
drivers/infiniband/hw/hfi1/mad.c
342
ibp->rvp.sm_ah = ibah_to_rvtah(ah);
drivers/infiniband/hw/hfi1/mad.c
348
send_buf->ah = &ibp->rvp.sm_ah->ibah;
drivers/infiniband/hw/hfi1/qp.c
266
struct rvt_ah *ah;
drivers/infiniband/hw/hfi1/qp.c
295
ah = rvt_get_swqe_ah(wqe);
drivers/infiniband/hw/hfi1/qp.c
296
if (wqe->length > (1 << ah->log_pmtu))
drivers/infiniband/hw/hfi1/qp.c
298
if (ibp->sl_to_sc[rdma_ah_get_sl(&ah->attr)] == 0xf)
drivers/infiniband/hw/hfi1/verbs.c
1471
u8 ah_to_sc(struct ib_device *ibdev, struct rdma_ah_attr *ah)
drivers/infiniband/hw/hfi1/verbs.c
1473
struct hfi1_ibport *ibp = to_iport(ibdev, rdma_ah_get_port_num(ah));
drivers/infiniband/hw/hfi1/verbs.c
1475
return ibp->sl_to_sc[rdma_ah_get_sl(ah)];
drivers/infiniband/hw/hfi1/verbs.c
1508
struct rvt_ah *ah)
drivers/infiniband/hw/hfi1/verbs.c
1514
struct rdma_ah_attr *attr = &ah->attr;
drivers/infiniband/hw/hfi1/verbs.c
1523
sc5 = ibp->sl_to_sc[rdma_ah_get_sl(&ah->attr)];
drivers/infiniband/hw/hfi1/verbs.c
1527
ah->vl = sc_to_vlt(dd, sc5);
drivers/infiniband/hw/hfi1/verbs.c
1528
if (ah->vl < num_vls || ah->vl == 15)
drivers/infiniband/hw/hfi1/verbs.c
1529
ah->log_pmtu = ilog2(dd->vld[ah->vl].mtu);
drivers/infiniband/hw/hns/hns_roce_ah.c
104
&ah->av.vlan_id, NULL);
drivers/infiniband/hw/hns/hns_roce_ah.c
108
ah->av.vlan_en = ah->av.vlan_id < VLAN_N_VID;
drivers/infiniband/hw/hns/hns_roce_ah.c
112
resp.priority = ah->av.sl;
drivers/infiniband/hw/hns/hns_roce_ah.c
128
struct hns_roce_ah *ah = to_hr_ah(ibah);
drivers/infiniband/hw/hns/hns_roce_ah.c
132
rdma_ah_set_sl(ah_attr, ah->av.sl);
drivers/infiniband/hw/hns/hns_roce_ah.c
133
rdma_ah_set_port_num(ah_attr, ah->av.port);
drivers/infiniband/hw/hns/hns_roce_ah.c
134
rdma_ah_set_static_rate(ah_attr, ah->av.stat_rate);
drivers/infiniband/hw/hns/hns_roce_ah.c
135
rdma_ah_set_grh(ah_attr, NULL, ah->av.flowlabel,
drivers/infiniband/hw/hns/hns_roce_ah.c
136
ah->av.gid_index, ah->av.hop_limit, ah->av.tclass);
drivers/infiniband/hw/hns/hns_roce_ah.c
137
rdma_ah_set_dgid_raw(ah_attr, ah->av.dgid);
drivers/infiniband/hw/hns/hns_roce_ah.c
59
struct hns_roce_ah *ah = to_hr_ah(ibah);
drivers/infiniband/hw/hns/hns_roce_ah.c
70
ah->av.port = rdma_ah_get_port_num(ah_attr);
drivers/infiniband/hw/hns/hns_roce_ah.c
71
ah->av.gid_index = grh->sgid_index;
drivers/infiniband/hw/hns/hns_roce_ah.c
74
ah->av.stat_rate = IB_RATE_10_GBPS;
drivers/infiniband/hw/hns/hns_roce_ah.c
76
ah->av.hop_limit = grh->hop_limit;
drivers/infiniband/hw/hns/hns_roce_ah.c
77
ah->av.flowlabel = grh->flow_label;
drivers/infiniband/hw/hns/hns_roce_ah.c
78
ah->av.udp_sport = get_ah_udp_sport(ah_attr);
drivers/infiniband/hw/hns/hns_roce_ah.c
79
ah->av.tclass = tclass;
drivers/infiniband/hw/hns/hns_roce_ah.c
80
ah->av.sl = rdma_ah_get_sl(ah_attr);
drivers/infiniband/hw/hns/hns_roce_ah.c
90
ah->av.sl = priority;
drivers/infiniband/hw/hns/hns_roce_ah.c
93
if (!check_sl_valid(hr_dev, ah->av.sl)) {
drivers/infiniband/hw/hns/hns_roce_ah.c
98
memcpy(ah->av.dgid, grh->dgid.raw, HNS_ROCE_GID_SIZE);
drivers/infiniband/hw/hns/hns_roce_ah.c
99
memcpy(ah->av.mac, ah_attr->roce.dmac, ETH_ALEN);
drivers/infiniband/hw/hns/hns_roce_device.h
1230
int hns_roce_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
drivers/infiniband/hw/hns/hns_roce_device.h
1233
static inline int hns_roce_destroy_ah(struct ib_ah *ah, u32 flags)
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
434
struct hns_roce_ah *ah)
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
436
struct ib_device *ib_dev = ah->ibah.device;
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
439
hr_reg_write(ud_sq_wqe, UD_SEND_WQE_UDPSPN, ah->av.udp_sport);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
440
hr_reg_write(ud_sq_wqe, UD_SEND_WQE_HOPLIMIT, ah->av.hop_limit);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
441
hr_reg_write(ud_sq_wqe, UD_SEND_WQE_TCLASS, ah->av.tclass);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
442
hr_reg_write(ud_sq_wqe, UD_SEND_WQE_FLOW_LABEL, ah->av.flowlabel);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
443
hr_reg_write(ud_sq_wqe, UD_SEND_WQE_SL, ah->av.sl);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
445
ud_sq_wqe->sgid_index = ah->av.gid_index;
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
447
memcpy(ud_sq_wqe->dmac, ah->av.mac, ETH_ALEN);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
448
memcpy(ud_sq_wqe->dgid, ah->av.dgid, GID_LEN_V2);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
453
hr_reg_write(ud_sq_wqe, UD_SEND_WQE_VLAN_EN, ah->av.vlan_en);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
454
hr_reg_write(ud_sq_wqe, UD_SEND_WQE_VLAN, ah->av.vlan_id);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
464
struct hns_roce_ah *ah = to_hr_ah(ud_wr(wr)->ah);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
493
ret = fill_ud_av(ud_sq_wqe, ah);
drivers/infiniband/hw/hns/hns_roce_hw_v2.c
497
qp->sl = to_hr_ah(ud_wr(wr)->ah)->av.sl;
drivers/infiniband/hw/ionic/ionic_controlpath.c
619
struct ionic_ah *ah,
drivers/infiniband/hw/ionic/ionic_controlpath.c
632
.id_ver = cpu_to_le32(ah->ahid),
drivers/infiniband/hw/ionic/ionic_controlpath.c
650
rc = ionic_build_hdr(dev, &ah->hdr, attr, IONIC_ROCE_UDP_SPORT, false);
drivers/infiniband/hw/ionic/ionic_controlpath.c
654
if (ah->hdr.eth.type == cpu_to_be16(ETH_P_8021Q)) {
drivers/infiniband/hw/ionic/ionic_controlpath.c
655
if (ah->hdr.vlan.type == cpu_to_be16(ETH_P_IP))
drivers/infiniband/hw/ionic/ionic_controlpath.c
662
if (ah->hdr.eth.type == cpu_to_be16(ETH_P_IP))
drivers/infiniband/hw/ionic/ionic_controlpath.c
670
ah->sgid_index = rdma_ah_read_grh(attr)->sgid_index;
drivers/infiniband/hw/ionic/ionic_controlpath.c
676
hdr_len = ib_ud_header_pack(&ah->hdr, hdr_buf);
drivers/infiniband/hw/ionic/ionic_controlpath.c
739
struct ionic_ah *ah = to_ionic_ah(ibah);
drivers/infiniband/hw/ionic/ionic_controlpath.c
744
rc = ionic_get_ahid(dev, &ah->ahid);
drivers/infiniband/hw/ionic/ionic_controlpath.c
748
rc = ionic_create_ah_cmd(dev, ah, pd, attr, flags);
drivers/infiniband/hw/ionic/ionic_controlpath.c
753
resp.ahid = ah->ahid;
drivers/infiniband/hw/ionic/ionic_controlpath.c
763
ionic_destroy_ah_cmd(dev, ah->ahid, flags);
drivers/infiniband/hw/ionic/ionic_controlpath.c
765
ionic_put_ahid(dev, ah->ahid);
drivers/infiniband/hw/ionic/ionic_controlpath.c
772
struct ionic_ah *ah = to_ionic_ah(ibah);
drivers/infiniband/hw/ionic/ionic_controlpath.c
774
ionic_set_ah_attr(dev, ah_attr, &ah->hdr, ah->sgid_index);
drivers/infiniband/hw/ionic/ionic_controlpath.c
782
struct ionic_ah *ah = to_ionic_ah(ibah);
drivers/infiniband/hw/ionic/ionic_controlpath.c
785
rc = ionic_destroy_ah_cmd(dev, ah->ahid, flags);
drivers/infiniband/hw/ionic/ionic_controlpath.c
789
ionic_put_ahid(dev, ah->ahid);
drivers/infiniband/hw/ionic/ionic_datapath.c
926
struct ionic_ah *ah;
drivers/infiniband/hw/ionic/ionic_datapath.c
928
if (unlikely(!wr->ah))
drivers/infiniband/hw/ionic/ionic_datapath.c
931
ah = to_ionic_ah(wr->ah);
drivers/infiniband/hw/ionic/ionic_datapath.c
938
wqe->common.send.ah_id = cpu_to_be32(ah->ahid);
drivers/infiniband/hw/irdma/cm.c
2208
&cm_node->ah))
drivers/infiniband/hw/irdma/cm.c
2224
irdma_puda_free_ah(&iwdev->rf->sc_dev, cm_node->ah);
drivers/infiniband/hw/irdma/cm.c
2225
cm_node->ah = NULL;
drivers/infiniband/hw/irdma/cm.c
316
if (!cm_node->ah || !cm_node->ah->ah_info.ah_valid) {
drivers/infiniband/hw/irdma/cm.c
327
sqbuf->ah_id = cm_node->ah->ah_info.ah_idx;
drivers/infiniband/hw/irdma/cm.h
290
struct irdma_sc_ah *ah;
drivers/infiniband/hw/irdma/puda.c
1403
txbuf->ah_id = pfpdu->ah->ah_info.ah_idx;
drivers/infiniband/hw/irdma/puda.c
1491
txbuf->ah_id = pfpdu->ah->ah_info.ah_idx;
drivers/infiniband/hw/irdma/puda.c
1576
&qp->pfpdu.ah);
drivers/infiniband/hw/irdma/puda.c
1647
if (hw_rev >= IRDMA_GEN_2 && !pfpdu->ah) {
drivers/infiniband/hw/irdma/puda.c
1649
if (!pfpdu->ah)
drivers/infiniband/hw/irdma/puda.c
1655
else if (pfpdu->ah && pfpdu->ah->ah_info.ah_valid)
drivers/infiniband/hw/irdma/puda.c
1719
if (qp->pfpdu.ah) {
drivers/infiniband/hw/irdma/puda.c
1720
irdma_puda_free_ah(ieq->dev, qp->pfpdu.ah);
drivers/infiniband/hw/irdma/puda.c
1721
qp->pfpdu.ah = NULL;
drivers/infiniband/hw/irdma/puda.h
177
struct irdma_sc_ah **ah);
drivers/infiniband/hw/irdma/puda.h
178
void irdma_puda_free_ah(struct irdma_sc_dev *dev, struct irdma_sc_ah *ah);
drivers/infiniband/hw/irdma/trace_cm.h
405
__field(struct irdma_sc_ah *, ah)
drivers/infiniband/hw/irdma/trace_cm.h
418
__entry->ah = cm_node->ah;
drivers/infiniband/hw/irdma/trace_cm.h
434
__entry->ah,
drivers/infiniband/hw/irdma/type.h
403
struct irdma_sc_ah *ah;
drivers/infiniband/hw/irdma/uda.h
45
static inline void irdma_sc_init_ah(struct irdma_sc_dev *dev, struct irdma_sc_ah *ah)
drivers/infiniband/hw/irdma/uda.h
47
ah->dev = dev;
drivers/infiniband/hw/irdma/utils.c
1982
struct irdma_sc_ah *sc_ah = qp->pfpdu.ah;
drivers/infiniband/hw/irdma/utils.c
2003
struct irdma_sc_ah *sc_ah = cm_node->ah;
drivers/infiniband/hw/irdma/utils.c
2024
struct irdma_sc_ah *ah;
drivers/infiniband/hw/irdma/utils.c
2028
ah = kzalloc_obj(*ah, GFP_ATOMIC);
drivers/infiniband/hw/irdma/utils.c
2029
*ah_ret = ah;
drivers/infiniband/hw/irdma/utils.c
2030
if (!ah)
drivers/infiniband/hw/irdma/utils.c
2038
ah->dev = dev;
drivers/infiniband/hw/irdma/utils.c
2039
ah->ah_info = *ah_info;
drivers/infiniband/hw/irdma/utils.c
2042
err = irdma_ah_cqp_op(rf, ah, IRDMA_OP_AH_CREATE, wait,
drivers/infiniband/hw/irdma/utils.c
2045
err = irdma_ah_cqp_op(rf, ah, IRDMA_OP_AH_CREATE, wait,
drivers/infiniband/hw/irdma/utils.c
2053
irdma_free_rsrc(rf, rf->allocated_ahs, ah->ah_info.ah_idx);
drivers/infiniband/hw/irdma/utils.c
2055
kfree(ah);
drivers/infiniband/hw/irdma/utils.c
2065
void irdma_puda_free_ah(struct irdma_sc_dev *dev, struct irdma_sc_ah *ah)
drivers/infiniband/hw/irdma/utils.c
2069
if (!ah)
drivers/infiniband/hw/irdma/utils.c
2072
if (ah->ah_info.ah_valid) {
drivers/infiniband/hw/irdma/utils.c
2073
irdma_ah_cqp_op(rf, ah, IRDMA_OP_AH_DESTROY, false, NULL, NULL);
drivers/infiniband/hw/irdma/utils.c
2074
irdma_free_rsrc(rf, rf->allocated_ahs, ah->ah_info.ah_idx);
drivers/infiniband/hw/irdma/utils.c
2077
kfree(ah);
drivers/infiniband/hw/irdma/verbs.c
3962
struct irdma_ah *ah;
drivers/infiniband/hw/irdma/verbs.c
4041
ah = to_iwah(ud_wr(ib_wr)->ah);
drivers/infiniband/hw/irdma/verbs.c
4042
info.op.send.ah_id = ah->sc_ah.ah_info.ah_idx;
drivers/infiniband/hw/irdma/verbs.c
5016
static int irdma_create_hw_ah(struct irdma_device *iwdev, struct irdma_ah *ah, bool sleep)
drivers/infiniband/hw/irdma/verbs.c
5021
err = irdma_alloc_rsrc(rf, rf->allocated_ahs, rf->max_ah, &ah->sc_ah.ah_info.ah_idx,
drivers/infiniband/hw/irdma/verbs.c
5026
err = irdma_ah_cqp_op(rf, &ah->sc_ah, IRDMA_OP_AH_CREATE, sleep,
drivers/infiniband/hw/irdma/verbs.c
5027
irdma_gsi_ud_qp_ah_cb, &ah->sc_ah);
drivers/infiniband/hw/irdma/verbs.c
5040
ah->sc_ah.ah_info.ah_valid, 1,
drivers/infiniband/hw/irdma/verbs.c
5051
irdma_free_rsrc(iwdev->rf, iwdev->rf->allocated_ahs, ah->sc_ah.ah_info.ah_idx);
drivers/infiniband/hw/irdma/verbs.c
5059
struct irdma_ah *ah = container_of(ibah, struct irdma_ah, ibah);
drivers/infiniband/hw/irdma/verbs.c
5070
ah->pd = pd;
drivers/infiniband/hw/irdma/verbs.c
5071
sc_ah = &ah->sc_ah;
drivers/infiniband/hw/irdma/verbs.c
5074
ah->sgid_index = ah_attr->grh.sgid_index;
drivers/infiniband/hw/irdma/verbs.c
5076
memcpy(&ah->dgid, &ah_attr->grh.dgid, sizeof(ah->dgid));
drivers/infiniband/hw/irdma/verbs.c
5079
ah->av.attrs = *ah_attr;
drivers/infiniband/hw/irdma/verbs.c
5080
ah->av.net_type = rdma_gid_attr_network_type(sgid_attr);
drivers/infiniband/hw/irdma/verbs.c
5090
if (ah->av.net_type == RDMA_NETWORK_IPV4) {
drivers/infiniband/hw/irdma/verbs.c
5151
struct irdma_ah *ah;
drivers/infiniband/hw/irdma/verbs.c
5157
hash_for_each_possible(iwdev->rf->ah_hash_tbl, ah, list, key) {
drivers/infiniband/hw/irdma/verbs.c
5159
new_ah->sc_ah.ah_info.ah_idx = ah->sc_ah.ah_info.ah_idx;
drivers/infiniband/hw/irdma/verbs.c
5160
new_ah->sc_ah.ah_info.ah_valid = ah->sc_ah.ah_info.ah_valid;
drivers/infiniband/hw/irdma/verbs.c
5161
if (!memcmp(&ah->sc_ah.ah_info, &new_ah->sc_ah.ah_info,
drivers/infiniband/hw/irdma/verbs.c
5162
sizeof(ah->sc_ah.ah_info))) {
drivers/infiniband/hw/irdma/verbs.c
5163
refcount_inc(&ah->refcnt);
drivers/infiniband/hw/irdma/verbs.c
5164
new_ah->parent_ah = ah;
drivers/infiniband/hw/irdma/verbs.c
5180
struct irdma_ah *ah = to_iwah(ibah);
drivers/infiniband/hw/irdma/verbs.c
5182
if ((ah_flags & RDMA_DESTROY_AH_SLEEPABLE) && ah->parent_ah) {
drivers/infiniband/hw/irdma/verbs.c
5184
if (!refcount_dec_and_test(&ah->parent_ah->refcnt)) {
drivers/infiniband/hw/irdma/verbs.c
5188
hash_del(&ah->parent_ah->list);
drivers/infiniband/hw/irdma/verbs.c
5189
kfree(ah->parent_ah);
drivers/infiniband/hw/irdma/verbs.c
5193
irdma_ah_cqp_op(iwdev->rf, &ah->sc_ah, IRDMA_OP_AH_DESTROY,
drivers/infiniband/hw/irdma/verbs.c
5194
false, NULL, ah);
drivers/infiniband/hw/irdma/verbs.c
5197
ah->sc_ah.ah_info.ah_idx);
drivers/infiniband/hw/irdma/verbs.c
5215
struct irdma_ah *ah = container_of(ibah, struct irdma_ah, ibah);
drivers/infiniband/hw/irdma/verbs.c
5228
if (!irdma_ah_exists(iwdev, ah)) {
drivers/infiniband/hw/irdma/verbs.c
5229
err = irdma_create_hw_ah(iwdev, ah, true);
drivers/infiniband/hw/irdma/verbs.c
5235
parent_ah = kmemdup(ah, sizeof(*ah), GFP_KERNEL);
drivers/infiniband/hw/irdma/verbs.c
5242
ah->parent_ah = parent_ah;
drivers/infiniband/hw/irdma/verbs.c
5249
uresp.ah_id = ah->sc_ah.ah_info.ah_idx;
drivers/infiniband/hw/irdma/verbs.c
5268
struct irdma_ah *ah = container_of(ibah, struct irdma_ah, ibah);
drivers/infiniband/hw/irdma/verbs.c
5275
err = irdma_create_hw_ah(iwdev, ah, attr->flags & RDMA_CREATE_AH_SLEEPABLE);
drivers/infiniband/hw/irdma/verbs.c
5287
struct irdma_ah *ah = to_iwah(ibah);
drivers/infiniband/hw/irdma/verbs.c
5290
if (ah->av.attrs.ah_flags & IB_AH_GRH) {
drivers/infiniband/hw/irdma/verbs.c
5292
ah_attr->grh.flow_label = ah->sc_ah.ah_info.flow_label;
drivers/infiniband/hw/irdma/verbs.c
5293
ah_attr->grh.traffic_class = ah->sc_ah.ah_info.tc_tos;
drivers/infiniband/hw/irdma/verbs.c
5294
ah_attr->grh.hop_limit = ah->sc_ah.ah_info.hop_ttl;
drivers/infiniband/hw/irdma/verbs.c
5295
ah_attr->grh.sgid_index = ah->sgid_index;
drivers/infiniband/hw/irdma/verbs.c
5296
memcpy(&ah_attr->grh.dgid, &ah->dgid,
drivers/infiniband/hw/mana/ah.c
12
struct mana_ib_ah *ah = container_of(ibah, struct mana_ib_ah, ibah);
drivers/infiniband/hw/mana/ah.c
24
ah->av = dma_pool_zalloc(mdev->av_pool, GFP_ATOMIC, &ah->dma_handle);
drivers/infiniband/hw/mana/ah.c
25
if (!ah->av)
drivers/infiniband/hw/mana/ah.c
31
copy_in_reverse(ah->av->dest_mac, ah_attr->roce.dmac, ETH_ALEN);
drivers/infiniband/hw/mana/ah.c
32
ah->av->udp_src_port = rdma_flow_label_to_udp_sport(grh->flow_label);
drivers/infiniband/hw/mana/ah.c
33
ah->av->hop_limit = grh->hop_limit;
drivers/infiniband/hw/mana/ah.c
34
ah->av->dscp = (grh->traffic_class >> 2) & 0x3f;
drivers/infiniband/hw/mana/ah.c
35
ah->av->is_ipv6 = (ntype == RDMA_NETWORK_IPV6);
drivers/infiniband/hw/mana/ah.c
37
if (ah->av->is_ipv6) {
drivers/infiniband/hw/mana/ah.c
38
copy_in_reverse(ah->av->dest_ip, grh->dgid.raw, 16);
drivers/infiniband/hw/mana/ah.c
39
copy_in_reverse(ah->av->src_ip, grh->sgid_attr->gid.raw, 16);
drivers/infiniband/hw/mana/ah.c
41
ah->av->dest_ip[10] = 0xFF;
drivers/infiniband/hw/mana/ah.c
42
ah->av->dest_ip[11] = 0xFF;
drivers/infiniband/hw/mana/ah.c
43
copy_in_reverse(&ah->av->dest_ip[12], &grh->dgid.raw[12], 4);
drivers/infiniband/hw/mana/ah.c
44
copy_in_reverse(&ah->av->src_ip[12], &grh->sgid_attr->gid.raw[12], 4);
drivers/infiniband/hw/mana/ah.c
53
struct mana_ib_ah *ah = container_of(ibah, struct mana_ib_ah, ibah);
drivers/infiniband/hw/mana/ah.c
55
dma_pool_free(mdev->av_pool, ah->av, ah->dma_handle);
drivers/infiniband/hw/mana/mana_ib.h
728
int mana_ib_destroy_ah(struct ib_ah *ah, u32 flags);
drivers/infiniband/hw/mana/wr.c
103
gdma_sgl[0].address = ah->dma_handle;
drivers/infiniband/hw/mana/wr.c
78
struct mana_ib_ah *ah = container_of(wr->ah, struct mana_ib_ah, ibah);
drivers/infiniband/hw/mlx4/ah.c
103
&ah->av.eth.s_mac[0]);
drivers/infiniband/hw/mlx4/ah.c
110
ah->av.eth.gid_index = ret;
drivers/infiniband/hw/mlx4/ah.c
113
ah->av.eth.gid_index = ah_attr->grh.sgid_index;
drivers/infiniband/hw/mlx4/ah.c
118
ah->av.eth.port_pd = cpu_to_be32(to_mpd(ib_ah->pd)->pdn |
drivers/infiniband/hw/mlx4/ah.c
120
ah->av.eth.vlan = cpu_to_be16(vlan_tag);
drivers/infiniband/hw/mlx4/ah.c
121
ah->av.eth.hop_limit = grh->hop_limit;
drivers/infiniband/hw/mlx4/ah.c
123
ah->av.eth.stat_rate = rdma_ah_get_static_rate(ah_attr) +
drivers/infiniband/hw/mlx4/ah.c
125
while (ah->av.eth.stat_rate > IB_RATE_2_5_GBPS + MLX4_STAT_RATE_OFFSET &&
drivers/infiniband/hw/mlx4/ah.c
126
!(1 << ah->av.eth.stat_rate & dev->caps.stat_rate_support))
drivers/infiniband/hw/mlx4/ah.c
127
--ah->av.eth.stat_rate;
drivers/infiniband/hw/mlx4/ah.c
129
ah->av.eth.sl_tclass_flowlabel |=
drivers/infiniband/hw/mlx4/ah.c
136
ah->av.ib.dlid = cpu_to_be16(0xc000);
drivers/infiniband/hw/mlx4/ah.c
138
memcpy(ah->av.eth.dgid, grh->dgid.raw, 16);
drivers/infiniband/hw/mlx4/ah.c
139
ah->av.eth.sl_tclass_flowlabel |= cpu_to_be32(rdma_ah_get_sl(ah_attr)
drivers/infiniband/hw/mlx4/ah.c
167
int mlx4_ib_create_ah_slave(struct ib_ah *ah, struct rdma_ah_attr *ah_attr,
drivers/infiniband/hw/mlx4/ah.c
172
struct mlx4_ib_ah *mah = to_mah(ah);
drivers/infiniband/hw/mlx4/ah.c
178
ret = mlx4_ib_create_ah(ah, &init_attr, NULL);
drivers/infiniband/hw/mlx4/ah.c
182
ah->type = ah_attr->type;
drivers/infiniband/hw/mlx4/ah.c
199
struct mlx4_ib_ah *ah = to_mah(ibah);
drivers/infiniband/hw/mlx4/ah.c
200
int port_num = be32_to_cpu(ah->av.ib.port_pd) >> 24;
drivers/infiniband/hw/mlx4/ah.c
208
be32_to_cpu(ah->av.eth.sl_tclass_flowlabel)
drivers/infiniband/hw/mlx4/ah.c
211
rdma_ah_set_dlid(ah_attr, be16_to_cpu(ah->av.ib.dlid));
drivers/infiniband/hw/mlx4/ah.c
213
be32_to_cpu(ah->av.ib.sl_tclass_flowlabel)
drivers/infiniband/hw/mlx4/ah.c
218
if (ah->av.ib.stat_rate)
drivers/infiniband/hw/mlx4/ah.c
220
ah->av.ib.stat_rate -
drivers/infiniband/hw/mlx4/ah.c
222
rdma_ah_set_path_bits(ah_attr, ah->av.ib.g_slid & 0x7F);
drivers/infiniband/hw/mlx4/ah.c
223
if (mlx4_ib_ah_grh_present(ah)) {
drivers/infiniband/hw/mlx4/ah.c
224
u32 tc_fl = be32_to_cpu(ah->av.ib.sl_tclass_flowlabel);
drivers/infiniband/hw/mlx4/ah.c
227
tc_fl & 0xfffff, ah->av.ib.gid_index,
drivers/infiniband/hw/mlx4/ah.c
228
ah->av.ib.hop_limit,
drivers/infiniband/hw/mlx4/ah.c
230
rdma_ah_set_dgid_raw(ah_attr, ah->av.ib.dgid);
drivers/infiniband/hw/mlx4/ah.c
45
struct mlx4_ib_ah *ah = to_mah(ib_ah);
drivers/infiniband/hw/mlx4/ah.c
48
ah->av.ib.port_pd = cpu_to_be32(to_mpd(ib_ah->pd)->pdn |
drivers/infiniband/hw/mlx4/ah.c
50
ah->av.ib.g_slid = rdma_ah_get_path_bits(ah_attr);
drivers/infiniband/hw/mlx4/ah.c
51
ah->av.ib.sl_tclass_flowlabel =
drivers/infiniband/hw/mlx4/ah.c
56
ah->av.ib.g_slid |= 0x80;
drivers/infiniband/hw/mlx4/ah.c
57
ah->av.ib.gid_index = grh->sgid_index;
drivers/infiniband/hw/mlx4/ah.c
58
ah->av.ib.hop_limit = grh->hop_limit;
drivers/infiniband/hw/mlx4/ah.c
59
ah->av.ib.sl_tclass_flowlabel |=
drivers/infiniband/hw/mlx4/ah.c
62
memcpy(ah->av.ib.dgid, grh->dgid.raw, 16);
drivers/infiniband/hw/mlx4/ah.c
65
ah->av.ib.dlid = cpu_to_be16(rdma_ah_get_dlid(ah_attr));
drivers/infiniband/hw/mlx4/ah.c
73
ah->av.ib.stat_rate = static_rate;
drivers/infiniband/hw/mlx4/ah.c
80
struct mlx4_ib_ah *ah = to_mah(ib_ah);
drivers/infiniband/hw/mlx4/ah.c
93
memcpy(ah->av.eth.mac, ah_attr->roce.dmac, ETH_ALEN);
drivers/infiniband/hw/mlx4/ah.c
94
eth_zero_addr(ah->av.eth.s_mac);
drivers/infiniband/hw/mlx4/mad.c
1367
struct ib_ah *ah;
drivers/infiniband/hw/mlx4/mad.c
1392
ah = rdma_zalloc_drv_obj(sqp_ctx->pd->device, ib_ah);
drivers/infiniband/hw/mlx4/mad.c
1393
if (!ah)
drivers/infiniband/hw/mlx4/mad.c
1396
ah->device = sqp_ctx->pd->device;
drivers/infiniband/hw/mlx4/mad.c
1397
ah->pd = sqp_ctx->pd;
drivers/infiniband/hw/mlx4/mad.c
1400
ret = mlx4_ib_create_ah_slave(ah, attr,
drivers/infiniband/hw/mlx4/mad.c
1417
kfree(sqp->tx_ring[wire_tx_ix].ah);
drivers/infiniband/hw/mlx4/mad.c
1418
sqp->tx_ring[wire_tx_ix].ah = ah;
drivers/infiniband/hw/mlx4/mad.c
1435
wr.ah = ah;
drivers/infiniband/hw/mlx4/mad.c
1454
sqp->tx_ring[wire_tx_ix].ah = NULL;
drivers/infiniband/hw/mlx4/mad.c
1456
kfree(ah);
drivers/infiniband/hw/mlx4/mad.c
1483
struct mlx4_ib_ah ah;
drivers/infiniband/hw/mlx4/mad.c
1567
memcpy(&ah.av, &tunnel->hdr.av, sizeof (struct mlx4_av));
drivers/infiniband/hw/mlx4/mad.c
1568
ah.ibah.device = ctx->ib_dev;
drivers/infiniband/hw/mlx4/mad.c
1570
port = be32_to_cpu(ah.av.ib.port_pd) >> 24;
drivers/infiniband/hw/mlx4/mad.c
1574
ah.av.ib.port_pd = cpu_to_be32(port << 24 | (be32_to_cpu(ah.av.ib.port_pd) & 0xffffff));
drivers/infiniband/hw/mlx4/mad.c
1575
ah.ibah.type = rdma_ah_find_type(&dev->ib_dev, port);
drivers/infiniband/hw/mlx4/mad.c
1577
mlx4_ib_query_ah(&ah.ibah, &ah_attr);
drivers/infiniband/hw/mlx4/mad.c
1663
tun_qp->tx_ring[i].ah = NULL;
drivers/infiniband/hw/mlx4/mad.c
1725
if (tun_qp->tx_ring[i].ah)
drivers/infiniband/hw/mlx4/mad.c
1726
rdma_destroy_ah(tun_qp->tx_ring[i].ah, 0);
drivers/infiniband/hw/mlx4/mad.c
1756
(MLX4_NUM_TUNNEL_BUFS - 1)].ah, 0);
drivers/infiniband/hw/mlx4/mad.c
1757
tun_qp->tx_ring[wc.wr_id & (MLX4_NUM_TUNNEL_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
1773
(MLX4_NUM_TUNNEL_BUFS - 1)].ah, 0);
drivers/infiniband/hw/mlx4/mad.c
1774
tun_qp->tx_ring[wc.wr_id & (MLX4_NUM_TUNNEL_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
1911
(MLX4_NUM_WIRE_BUFS - 1)].ah);
drivers/infiniband/hw/mlx4/mad.c
1912
sqp->tx_ring[wc.wr_id & (MLX4_NUM_WIRE_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
1940
(MLX4_NUM_WIRE_BUFS - 1)].ah);
drivers/infiniband/hw/mlx4/mad.c
1941
sqp->tx_ring[wc.wr_id & (MLX4_NUM_WIRE_BUFS - 1)].ah
drivers/infiniband/hw/mlx4/mad.c
406
if ((send_buf->ah = dev->sm_ah[port_num - 1]))
drivers/infiniband/hw/mlx4/mad.c
522
struct ib_ah *ah;
drivers/infiniband/hw/mlx4/mad.c
588
ah = rdma_create_ah(tun_ctx->pd, &attr, 0);
drivers/infiniband/hw/mlx4/mad.c
589
if (IS_ERR(ah))
drivers/infiniband/hw/mlx4/mad.c
604
if (tun_qp->tx_ring[tun_tx_ix].ah)
drivers/infiniband/hw/mlx4/mad.c
605
rdma_destroy_ah(tun_qp->tx_ring[tun_tx_ix].ah, 0);
drivers/infiniband/hw/mlx4/mad.c
606
tun_qp->tx_ring[tun_tx_ix].ah = ah;
drivers/infiniband/hw/mlx4/mad.c
658
wr.ah = ah;
drivers/infiniband/hw/mlx4/mad.c
676
tun_qp->tx_ring[tun_tx_ix].ah = NULL;
drivers/infiniband/hw/mlx4/mad.c
678
rdma_destroy_ah(ah, 0);
drivers/infiniband/hw/mlx4/mlx4_ib.h
456
struct ib_ah *ah;
drivers/infiniband/hw/mlx4/mlx4_ib.h
781
int mlx4_ib_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
drivers/infiniband/hw/mlx4/mlx4_ib.h
783
int mlx4_ib_create_ah_slave(struct ib_ah *ah, struct rdma_ah_attr *ah_attr,
drivers/infiniband/hw/mlx4/mlx4_ib.h
786
static inline int mlx4_ib_destroy_ah(struct ib_ah *ah, u32 flags)
drivers/infiniband/hw/mlx4/mlx4_ib.h
833
static inline bool mlx4_ib_ah_grh_present(struct mlx4_ib_ah *ah)
drivers/infiniband/hw/mlx4/mlx4_ib.h
835
u32 port = be32_to_cpu(ah->av.ib.port_pd) >> 24 & 3;
drivers/infiniband/hw/mlx4/mlx4_ib.h
837
if (rdma_port_get_link_layer(ah->ibah.device, port) == IB_LINK_LAYER_ETHERNET)
drivers/infiniband/hw/mlx4/mlx4_ib.h
840
return !!(ah->av.ib.g_slid & 0x80);
drivers/infiniband/hw/mlx4/qp.c
1780
const struct rdma_ah_attr *ah,
drivers/infiniband/hw/mlx4/qp.c
1788
path->grh_mylmc = rdma_ah_get_path_bits(ah) & 0x7f;
drivers/infiniband/hw/mlx4/qp.c
1789
path->rlid = cpu_to_be16(rdma_ah_get_dlid(ah));
drivers/infiniband/hw/mlx4/qp.c
1790
if (rdma_ah_get_static_rate(ah)) {
drivers/infiniband/hw/mlx4/qp.c
1791
path->static_rate = rdma_ah_get_static_rate(ah) +
drivers/infiniband/hw/mlx4/qp.c
1799
if (rdma_ah_get_ah_flags(ah) & IB_AH_GRH) {
drivers/infiniband/hw/mlx4/qp.c
1800
const struct ib_global_route *grh = rdma_ah_read_grh(ah);
drivers/infiniband/hw/mlx4/qp.c
1821
if (ah->type == RDMA_AH_ATTR_TYPE_ROCE) {
drivers/infiniband/hw/mlx4/qp.c
1822
if (!(rdma_ah_get_ah_flags(ah) & IB_AH_GRH))
drivers/infiniband/hw/mlx4/qp.c
1826
((port - 1) << 6) | ((rdma_ah_get_sl(ah) & 7) << 3);
drivers/infiniband/hw/mlx4/qp.c
1885
memcpy(path->dmac, ah->roce.dmac, 6);
drivers/infiniband/hw/mlx4/qp.c
1891
((port - 1) << 6) | ((rdma_ah_get_sl(ah) & 0xf) << 2);
drivers/infiniband/hw/mlx4/qp.c
2876
struct mlx4_ib_ah *ah = to_mah(wr->ah);
drivers/infiniband/hw/mlx4/qp.c
2902
be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 28;
drivers/infiniband/hw/mlx4/qp.c
2904
cpu_to_be16(ah->av.ib.g_slid & 0x7f);
drivers/infiniband/hw/mlx4/qp.c
2906
cpu_to_be16(ah->av.ib.g_slid & 0x7f);
drivers/infiniband/hw/mlx4/qp.c
3029
struct mlx4_ib_ah *ah = to_mah(wr->ah);
drivers/infiniband/hw/mlx4/qp.c
3049
is_grh = mlx4_ib_ah_grh_present(ah);
drivers/infiniband/hw/mlx4/qp.c
3057
be32_to_cpu(ah->av.ib.port_pd) >> 24,
drivers/infiniband/hw/mlx4/qp.c
3058
ah->av.ib.gid_index, &sgid.raw[0]);
drivers/infiniband/hw/mlx4/qp.c
3063
ah->av.ib.gid_index, &sgid,
drivers/infiniband/hw/mlx4/qp.c
3078
if (ah->av.eth.vlan != cpu_to_be16(0xffff)) {
drivers/infiniband/hw/mlx4/qp.c
3079
vlan = be16_to_cpu(ah->av.eth.vlan) & 0x0fff;
drivers/infiniband/hw/mlx4/qp.c
3090
be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 28;
drivers/infiniband/hw/mlx4/qp.c
3091
sqp->ud_header.lrh.destination_lid = ah->av.ib.dlid;
drivers/infiniband/hw/mlx4/qp.c
3092
sqp->ud_header.lrh.source_lid = cpu_to_be16(ah->av.ib.g_slid & 0x7f);
drivers/infiniband/hw/mlx4/qp.c
3097
(be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 20) & 0xff;
drivers/infiniband/hw/mlx4/qp.c
3099
ah->av.ib.sl_tclass_flowlabel & cpu_to_be32(0xfffff);
drivers/infiniband/hw/mlx4/qp.c
3100
sqp->ud_header.grh.hop_limit = ah->av.ib.hop_limit;
drivers/infiniband/hw/mlx4/qp.c
3120
.guid_cache[ah->av.ib.gid_index];
drivers/infiniband/hw/mlx4/qp.c
3123
ah->ibah.sgid_attr->gid;
drivers/infiniband/hw/mlx4/qp.c
3127
ah->av.ib.dgid, 16);
drivers/infiniband/hw/mlx4/qp.c
3132
(be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 20) & 0xff;
drivers/infiniband/hw/mlx4/qp.c
3135
sqp->ud_header.ip4.ttl = ah->av.eth.hop_limit;
drivers/infiniband/hw/mlx4/qp.c
3139
memcpy(&sqp->ud_header.ip4.daddr, ah->av.ib.dgid + 12, 4);
drivers/infiniband/hw/mlx4/qp.c
3159
if (ah->av.ib.port_pd & cpu_to_be32(0x80000000))
drivers/infiniband/hw/mlx4/qp.c
3180
u16 pcp = (be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 29) << 13;
drivers/infiniband/hw/mlx4/qp.c
3187
ether_addr_copy(sqp->ud_header.eth.smac_h, ah->av.eth.s_mac);
drivers/infiniband/hw/mlx4/qp.c
3188
ether_addr_copy(sqp->ud_header.eth.dmac_h, ah->av.eth.mac);
drivers/infiniband/hw/mlx4/qp.c
3189
memcpy(&ctrl->srcrb_flags16[0], ah->av.eth.mac, 2);
drivers/infiniband/hw/mlx4/qp.c
3190
memcpy(&ctrl->imm, ah->av.eth.mac + 2, 4);
drivers/infiniband/hw/mlx4/qp.c
3372
memcpy(dseg->av, &to_mah(wr->ah)->av, sizeof (struct mlx4_av));
drivers/infiniband/hw/mlx4/qp.c
3375
dseg->vlan = to_mah(wr->ah)->av.eth.vlan;
drivers/infiniband/hw/mlx4/qp.c
3376
memcpy(dseg->mac, to_mah(wr->ah)->av.eth.mac, 6);
drivers/infiniband/hw/mlx4/qp.c
3384
union mlx4_ext_av *av = &to_mah(wr->ah)->av;
drivers/infiniband/hw/mlx4/qp.c
3408
struct mlx4_ib_ah *ah = to_mah(wr->ah);
drivers/infiniband/hw/mlx4/qp.c
3412
memcpy(&hdr.av, &ah->av, sizeof hdr.av);
drivers/infiniband/hw/mlx4/qp.c
3416
memcpy(hdr.mac, ah->av.eth.mac, 6);
drivers/infiniband/hw/mlx4/qp.c
3417
hdr.vlan = ah->av.eth.vlan;
drivers/infiniband/hw/mlx4/qp.c
3553
struct mlx4_ib_ah *ah = to_mah(ud_wr(wr)->ah);
drivers/infiniband/hw/mlx4/qp.c
3558
ah->av.ib.gid_index,
drivers/infiniband/hw/mlx4/qp.c
3564
ah->av.ib.gid_index);
drivers/infiniband/hw/mlx5/ah.c
104
struct mlx5_ib_ah *ah = to_mah(ibah);
drivers/infiniband/hw/mlx5/ah.c
129
return create_ib_ah(dev, ah, init_attr);
drivers/infiniband/hw/mlx5/ah.c
134
struct mlx5_ib_ah *ah = to_mah(ibah);
drivers/infiniband/hw/mlx5/ah.c
140
tmp = be32_to_cpu(ah->av.grh_gid_fl);
drivers/infiniband/hw/mlx5/ah.c
145
ah->av.hop_limit,
drivers/infiniband/hw/mlx5/ah.c
146
ah->av.tclass);
drivers/infiniband/hw/mlx5/ah.c
147
rdma_ah_set_dgid_raw(ah_attr, ah->av.rgid);
drivers/infiniband/hw/mlx5/ah.c
149
rdma_ah_set_dlid(ah_attr, be16_to_cpu(ah->av.rlid));
drivers/infiniband/hw/mlx5/ah.c
150
rdma_ah_set_static_rate(ah_attr, ah->av.stat_rate_sl >> 4);
drivers/infiniband/hw/mlx5/ah.c
151
rdma_ah_set_sl(ah_attr, ah->av.stat_rate_sl & 0xf);
drivers/infiniband/hw/mlx5/ah.c
53
static int create_ib_ah(struct mlx5_ib_dev *dev, struct mlx5_ib_ah *ah,
drivers/infiniband/hw/mlx5/ah.c
63
memcpy(ah->av.rgid, &grh->dgid, 16);
drivers/infiniband/hw/mlx5/ah.c
64
ah->av.grh_gid_fl = cpu_to_be32(grh->flow_label |
drivers/infiniband/hw/mlx5/ah.c
67
ah->av.hop_limit = grh->hop_limit;
drivers/infiniband/hw/mlx5/ah.c
68
ah->av.tclass = grh->traffic_class;
drivers/infiniband/hw/mlx5/ah.c
74
ah->av.stat_rate_sl = rate_val << 4;
drivers/infiniband/hw/mlx5/ah.c
78
ah->xmit_port =
drivers/infiniband/hw/mlx5/ah.c
83
memcpy(ah->av.rmac, ah_attr->roce.dmac,
drivers/infiniband/hw/mlx5/ah.c
85
ah->av.udp_sport = mlx5_ah_get_udp_sport(dev, ah_attr);
drivers/infiniband/hw/mlx5/ah.c
86
ah->av.stat_rate_sl |= (rdma_ah_get_sl(ah_attr) & 0x7) << 1;
drivers/infiniband/hw/mlx5/ah.c
89
ah->av.tclass |= MLX5_ECN_ENABLED;
drivers/infiniband/hw/mlx5/ah.c
91
ah->av.rlid = cpu_to_be16(rdma_ah_get_dlid(ah_attr));
drivers/infiniband/hw/mlx5/ah.c
92
ah->av.fl_mlid = rdma_ah_get_path_bits(ah_attr) & 0x7f;
drivers/infiniband/hw/mlx5/ah.c
93
ah->av.stat_rate_sl |= (rdma_ah_get_sl(ah_attr) & 0xf);
drivers/infiniband/hw/mlx5/gsi.c
416
struct mlx5_ib_ah *ah = to_mah(wr->ah);
drivers/infiniband/hw/mlx5/gsi.c
422
if (dev->lag_active && ah->xmit_port)
drivers/infiniband/hw/mlx5/gsi.c
423
qp_index = ah->xmit_port - 1;
drivers/infiniband/hw/mlx5/mlx5_ib.h
1340
int mlx5_ib_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
drivers/infiniband/hw/mlx5/mlx5_ib.h
1343
static inline int mlx5_ib_destroy_ah(struct ib_ah *ah, u32 flags)
drivers/infiniband/hw/mlx5/qp.c
3522
static void mlx5_set_path_udp_sport(void *path, const struct rdma_ah_attr *ah,
drivers/infiniband/hw/mlx5/qp.c
3526
u32 fl = ah->grh.flow_label;
drivers/infiniband/hw/mlx5/qp.c
3535
const struct rdma_ah_attr *ah, void *path, u8 port,
drivers/infiniband/hw/mlx5/qp.c
3539
const struct ib_global_route *grh = rdma_ah_read_grh(ah);
drivers/infiniband/hw/mlx5/qp.c
3542
u8 ah_flags = rdma_ah_get_ah_flags(ah);
drivers/infiniband/hw/mlx5/qp.c
3543
u8 sl = rdma_ah_get_sl(ah);
drivers/infiniband/hw/mlx5/qp.c
3561
if (ah->type == RDMA_AH_ATTR_TYPE_ROCE) {
drivers/infiniband/hw/mlx5/qp.c
3566
ah->roce.dmac);
drivers/infiniband/hw/mlx5/qp.c
3573
mlx5_set_path_udp_sport(path, ah,
drivers/infiniband/hw/mlx5/qp.c
3577
gid_type = ah->grh.sgid_attr->gid_type;
drivers/infiniband/hw/mlx5/qp.c
3584
MLX5_SET(ads, path, rlid, rdma_ah_get_dlid(ah));
drivers/infiniband/hw/mlx5/qp.c
3585
MLX5_SET(ads, path, mlid, rdma_ah_get_path_bits(ah));
drivers/infiniband/hw/mlx5/qp.c
3599
err = mlx5r_ib_rate(dev, rdma_ah_get_static_rate(ah));
drivers/infiniband/hw/mlx5/wr.c
105
memcpy(&dseg->av, &to_mah(ud_wr(wr)->ah)->av, sizeof(struct mlx5_av));
drivers/infiniband/hw/mthca/mthca_av.c
156
struct mthca_ah *ah)
drivers/infiniband/hw/mthca/mthca_av.c
161
ah->type = MTHCA_AH_PCI_POOL;
drivers/infiniband/hw/mthca/mthca_av.c
164
ah->av = kmalloc_obj(*ah->av, GFP_ATOMIC);
drivers/infiniband/hw/mthca/mthca_av.c
165
if (!ah->av)
drivers/infiniband/hw/mthca/mthca_av.c
168
ah->type = MTHCA_AH_KMALLOC;
drivers/infiniband/hw/mthca/mthca_av.c
169
av = ah->av;
drivers/infiniband/hw/mthca/mthca_av.c
182
ah->type = MTHCA_AH_ON_HCA;
drivers/infiniband/hw/mthca/mthca_av.c
183
ah->avdma = dev->av_table.ddr_av_base +
drivers/infiniband/hw/mthca/mthca_av.c
188
if (ah->type == MTHCA_AH_PCI_POOL) {
drivers/infiniband/hw/mthca/mthca_av.c
189
ah->av = dma_pool_zalloc(dev->av_table.pool,
drivers/infiniband/hw/mthca/mthca_av.c
190
GFP_ATOMIC, &ah->avdma);
drivers/infiniband/hw/mthca/mthca_av.c
191
if (!ah->av)
drivers/infiniband/hw/mthca/mthca_av.c
194
av = ah->av;
drivers/infiniband/hw/mthca/mthca_av.c
197
ah->key = pd->ntmr.ibmr.lkey;
drivers/infiniband/hw/mthca/mthca_av.c
228
av, (unsigned long) ah->avdma);
drivers/infiniband/hw/mthca/mthca_av.c
234
if (ah->type == MTHCA_AH_ON_HCA) {
drivers/infiniband/hw/mthca/mthca_av.c
243
int mthca_destroy_ah(struct mthca_dev *dev, struct mthca_ah *ah)
drivers/infiniband/hw/mthca/mthca_av.c
245
switch (ah->type) {
drivers/infiniband/hw/mthca/mthca_av.c
248
(ah->avdma - dev->av_table.ddr_av_base) /
drivers/infiniband/hw/mthca/mthca_av.c
253
dma_pool_free(dev->av_table.pool, ah->av, ah->avdma);
drivers/infiniband/hw/mthca/mthca_av.c
257
kfree(ah->av);
drivers/infiniband/hw/mthca/mthca_av.c
264
int mthca_ah_grh_present(struct mthca_ah *ah)
drivers/infiniband/hw/mthca/mthca_av.c
266
return !!(ah->av->g_slid & 0x80);
drivers/infiniband/hw/mthca/mthca_av.c
269
int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
drivers/infiniband/hw/mthca/mthca_av.c
272
if (ah->type == MTHCA_AH_ON_HCA)
drivers/infiniband/hw/mthca/mthca_av.c
275
header->lrh.service_level = be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28;
drivers/infiniband/hw/mthca/mthca_av.c
276
header->lrh.destination_lid = ah->av->dlid;
drivers/infiniband/hw/mthca/mthca_av.c
277
header->lrh.source_lid = cpu_to_be16(ah->av->g_slid & 0x7f);
drivers/infiniband/hw/mthca/mthca_av.c
278
if (mthca_ah_grh_present(ah)) {
drivers/infiniband/hw/mthca/mthca_av.c
280
(be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 20) & 0xff;
drivers/infiniband/hw/mthca/mthca_av.c
282
ah->av->sl_tclass_flowlabel & cpu_to_be32(0xfffff);
drivers/infiniband/hw/mthca/mthca_av.c
283
header->grh.hop_limit = ah->av->hop_limit;
drivers/infiniband/hw/mthca/mthca_av.c
284
header->grh.source_gid = ah->ibah.sgid_attr->gid;
drivers/infiniband/hw/mthca/mthca_av.c
286
ah->av->dgid, 16);
drivers/infiniband/hw/mthca/mthca_av.c
294
struct mthca_ah *ah = to_mah(ibah);
drivers/infiniband/hw/mthca/mthca_av.c
296
u32 port_num = be32_to_cpu(ah->av->port_pd) >> 24;
drivers/infiniband/hw/mthca/mthca_av.c
299
if (ah->type == MTHCA_AH_ON_HCA)
drivers/infiniband/hw/mthca/mthca_av.c
304
rdma_ah_set_dlid(attr, be16_to_cpu(ah->av->dlid));
drivers/infiniband/hw/mthca/mthca_av.c
305
rdma_ah_set_sl(attr, be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28);
drivers/infiniband/hw/mthca/mthca_av.c
308
mthca_rate_to_ib(dev, ah->av->msg_sr & 0x7,
drivers/infiniband/hw/mthca/mthca_av.c
310
rdma_ah_set_path_bits(attr, ah->av->g_slid & 0x7F);
drivers/infiniband/hw/mthca/mthca_av.c
311
if (mthca_ah_grh_present(ah)) {
drivers/infiniband/hw/mthca/mthca_av.c
312
u32 tc_fl = be32_to_cpu(ah->av->sl_tclass_flowlabel);
drivers/infiniband/hw/mthca/mthca_av.c
316
ah->av->gid_index &
drivers/infiniband/hw/mthca/mthca_av.c
318
ah->av->hop_limit,
drivers/infiniband/hw/mthca/mthca_av.c
320
rdma_ah_set_dgid_raw(attr, ah->av->dgid);
drivers/infiniband/hw/mthca/mthca_dev.h
556
struct mthca_ah *ah);
drivers/infiniband/hw/mthca/mthca_dev.h
557
int mthca_destroy_ah(struct mthca_dev *dev, struct mthca_ah *ah);
drivers/infiniband/hw/mthca/mthca_dev.h
558
int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
drivers/infiniband/hw/mthca/mthca_dev.h
561
int mthca_ah_grh_present(struct mthca_ah *ah);
drivers/infiniband/hw/mthca/mthca_mad.c
188
if ((send_buf->ah = dev->sm_ah[port_num - 1]))
drivers/infiniband/hw/mthca/mthca_provider.c
379
struct mthca_ah *ah = to_mah(ibah);
drivers/infiniband/hw/mthca/mthca_provider.c
382
init_attr->ah_attr, ah);
drivers/infiniband/hw/mthca/mthca_provider.c
385
static int mthca_ah_destroy(struct ib_ah *ah, u32 flags)
drivers/infiniband/hw/mthca/mthca_provider.c
387
mthca_destroy_ah(to_mdev(ah->device), to_mah(ah));
drivers/infiniband/hw/mthca/mthca_qp.c
1511
mthca_ah_grh_present(to_mah(wr->ah)), 0, 0, 0,
drivers/infiniband/hw/mthca/mthca_qp.c
1514
err = mthca_read_ah(dev, to_mah(wr->ah), &sqp->ud_header);
drivers/infiniband/hw/mthca/mthca_qp.c
1610
useg->lkey = cpu_to_be32(to_mah(wr->ah)->key);
drivers/infiniband/hw/mthca/mthca_qp.c
1611
useg->av_addr = cpu_to_be64(to_mah(wr->ah)->avdma);
drivers/infiniband/hw/mthca/mthca_qp.c
1620
memcpy(useg->av, to_mah(wr->ah)->av, MTHCA_AV_SIZE);
drivers/infiniband/hw/mthca/mthca_qp.c
522
static int mthca_path_set(struct mthca_dev *dev, const struct rdma_ah_attr *ah,
drivers/infiniband/hw/mthca/mthca_qp.c
525
path->g_mylmc = rdma_ah_get_path_bits(ah) & 0x7f;
drivers/infiniband/hw/mthca/mthca_qp.c
526
path->rlid = cpu_to_be16(rdma_ah_get_dlid(ah));
drivers/infiniband/hw/mthca/mthca_qp.c
527
path->static_rate = mthca_get_rate(dev, rdma_ah_get_static_rate(ah),
drivers/infiniband/hw/mthca/mthca_qp.c
530
if (rdma_ah_get_ah_flags(ah) & IB_AH_GRH) {
drivers/infiniband/hw/mthca/mthca_qp.c
531
const struct ib_global_route *grh = rdma_ah_read_grh(ah);
drivers/infiniband/hw/mthca/mthca_qp.c
544
cpu_to_be32((rdma_ah_get_sl(ah) << 28) |
drivers/infiniband/hw/mthca/mthca_qp.c
549
path->sl_tclass_flowlabel = cpu_to_be32(rdma_ah_get_sl(ah) <<
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
124
ah->sgid_index = ib_grh->sgid_index;
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
126
memcpy(&ah->av->eth_hdr, ð, eth_sz);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
127
if (ah->hdr_type == RDMA_NETWORK_IPV4) {
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
139
memcpy((u8 *)ah->av + eth_sz, &ipv4, sizeof(struct iphdr));
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
150
memcpy((u8 *)ah->av + eth_sz, &grh, sizeof(struct ocrdma_grh));
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
153
ah->av->valid |= OCRDMA_AV_VLAN_VALID;
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
154
ah->av->valid = cpu_to_le32(ah->av->valid);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
163
struct ocrdma_ah *ah = get_ocrdma_ah(ibah);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
183
status = ocrdma_alloc_av(dev, ah);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
188
ah->hdr_type = rdma_gid_attr_network_type(sgid_attr);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
190
status = set_av_attr(dev, ah, attr, &sgid_attr->gid, pd->id,
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
199
*ahid_addr |= ah->id & OCRDMA_AH_ID_MASK;
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
201
*ahid_addr |= ((u32)ah->hdr_type &
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
213
ocrdma_free_av(dev, ah);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
220
struct ocrdma_ah *ah = get_ocrdma_ah(ibah);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
223
ocrdma_free_av(dev, ah);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
229
struct ocrdma_ah *ah = get_ocrdma_ah(ibah);
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
230
struct ocrdma_av *av = ah->av;
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
234
if (ah->av->valid & OCRDMA_AV_VALID) {
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
235
grh = (struct ocrdma_grh *)((u8 *)ah->av +
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
239
grh = (struct ocrdma_grh *)((u8 *)ah->av +
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
245
ah->sgid_index,
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
73
static inline int set_av_attr(struct ocrdma_dev *dev, struct ocrdma_ah *ah,
drivers/infiniband/hw/ocrdma/ocrdma_ah.c
94
proto_num = ocrdma_hdr_type_to_proto_num(dev->id, ah->hdr_type);
drivers/infiniband/hw/ocrdma/ocrdma_ah.h
54
int ocrdma_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
drivers/infiniband/hw/ocrdma/ocrdma_ah.h
56
int ocrdma_destroy_ah(struct ib_ah *ah, u32 flags);
drivers/infiniband/hw/ocrdma/ocrdma_ah.h
57
int ocrdma_query_ah(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
drivers/infiniband/hw/ocrdma/ocrdma_hw.c
3033
int ocrdma_alloc_av(struct ocrdma_dev *dev, struct ocrdma_ah *ah)
drivers/infiniband/hw/ocrdma/ocrdma_hw.c
3045
ah->av = av;
drivers/infiniband/hw/ocrdma/ocrdma_hw.c
3046
ah->id = i;
drivers/infiniband/hw/ocrdma/ocrdma_hw.c
3058
void ocrdma_free_av(struct ocrdma_dev *dev, struct ocrdma_ah *ah)
drivers/infiniband/hw/ocrdma/ocrdma_hw.c
3062
ah->av->valid = 0;
drivers/infiniband/hw/ocrdma/ocrdma_hw.h
142
int ocrdma_alloc_av(struct ocrdma_dev *dev, struct ocrdma_ah *ah);
drivers/infiniband/hw/ocrdma/ocrdma_hw.h
143
void ocrdma_free_av(struct ocrdma_dev *dev, struct ocrdma_ah *ah);
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
1881
struct ocrdma_ah *ah = get_ocrdma_ah(ud_wr(wr)->ah);
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
1888
ud_hdr->rsvd_ahid = ah->id;
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
1889
ud_hdr->hdr_type = ah->hdr_type;
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
1890
if (ah->av->valid & OCRDMA_AV_VLAN_VALID)
drivers/infiniband/hw/qedr/qedr_roce_cm.c
384
struct rdma_ah_attr *ah_attr = &get_qedr_ah(ud_wr(swr)->ah)->attr;
drivers/infiniband/hw/qedr/verbs.c
2878
struct qedr_ah *ah = get_qedr_ah(ibah);
drivers/infiniband/hw/qedr/verbs.c
2880
rdma_copy_ah_attr(&ah->attr, init_attr->ah_attr);
drivers/infiniband/hw/qedr/verbs.c
2887
struct qedr_ah *ah = get_qedr_ah(ibah);
drivers/infiniband/hw/qedr/verbs.c
2889
rdma_destroy_ah_attr(&ah->attr);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c
769
if (unlikely(!ud_wr(wr)->ah)) {
drivers/infiniband/hw/vmw_pvrdma/pvrdma_qp.c
785
wqe_hdr->wr.ud.av = to_vah(ud_wr(wr)->ah)->av;
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
489
struct pvrdma_ah *ah = to_vah(ibah);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
504
ah->av.port_pd = to_vpd(ibah->pd)->pd_handle | (port_num << 24);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
505
ah->av.src_path_bits = rdma_ah_get_path_bits(ah_attr);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
506
ah->av.src_path_bits |= 0x80;
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
507
ah->av.gid_index = grh->sgid_index;
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
508
ah->av.hop_limit = grh->hop_limit;
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
509
ah->av.sl_tclass_flowlabel = (grh->traffic_class << 20) |
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
511
memcpy(ah->av.dgid, grh->dgid.raw, 16);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
512
memcpy(ah->av.dmac, ah_attr->roce.dmac, ETH_ALEN);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
523
int pvrdma_destroy_ah(struct ib_ah *ah, u32 flags)
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c
525
struct pvrdma_dev *dev = to_vdev(ah->device);
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h
381
int pvrdma_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h
383
int pvrdma_destroy_ah(struct ib_ah *ah, u32 flags);
drivers/infiniband/sw/rdmavt/ah.c
102
rdma_destroy_ah_attr(&ah->attr);
drivers/infiniband/sw/rdmavt/ah.c
115
struct rvt_ah *ah = ibah_to_rvtah(ibah);
drivers/infiniband/sw/rdmavt/ah.c
120
ah->attr = *ah_attr;
drivers/infiniband/sw/rdmavt/ah.c
134
struct rvt_ah *ah = ibah_to_rvtah(ibah);
drivers/infiniband/sw/rdmavt/ah.c
136
*ah_attr = ah->attr;
drivers/infiniband/sw/rdmavt/ah.c
61
struct rvt_ah *ah = ibah_to_rvtah(ibah);
drivers/infiniband/sw/rdmavt/ah.c
77
rdma_copy_ah_attr(&ah->attr, init_attr->ah_attr);
drivers/infiniband/sw/rdmavt/ah.c
81
init_attr->ah_attr, ah);
drivers/infiniband/sw/rdmavt/ah.c
95
struct rvt_ah *ah = ibah_to_rvtah(ibah);
drivers/infiniband/sw/rdmavt/ah.h
11
int rvt_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
drivers/infiniband/sw/rdmavt/qp.c
1886
if (qp->ibqp.pd != ud_wr(wr)->ah->pd)
drivers/infiniband/sw/rdmavt/qp.c
2072
struct rvt_ah *ah = rvt_get_swqe_ah(wqe);
drivers/infiniband/sw/rdmavt/qp.c
2074
log_pmtu = ah->log_pmtu;
drivers/infiniband/sw/rdmavt/qp.c
2075
rdma_copy_ah_attr(wqe->ud_wr.attr, &ah->attr);
drivers/infiniband/sw/rxe/rxe.h
47
#define rxe_dbg_ah(ah, fmt, ...) ibdev_dbg((ah)->ibah.device, \
drivers/infiniband/sw/rxe/rxe.h
48
"ah#%d %s: " fmt, (ah)->elem.index, __func__, ##__VA_ARGS__)
drivers/infiniband/sw/rxe/rxe.h
68
#define rxe_err_ah(ah, fmt, ...) ibdev_err_ratelimited((ah)->ibah.device, \
drivers/infiniband/sw/rxe/rxe.h
69
"ah#%d %s: " fmt, (ah)->elem.index, __func__, ##__VA_ARGS__)
drivers/infiniband/sw/rxe/rxe.h
89
#define rxe_info_ah(ah, fmt, ...) ibdev_info_ratelimited((ah)->ibah.device, \
drivers/infiniband/sw/rxe/rxe.h
90
"ah#%d %s: " fmt, (ah)->elem.index, __func__, ##__VA_ARGS__)
drivers/infiniband/sw/rxe/rxe_av.c
133
struct rxe_ah *ah;
drivers/infiniband/sw/rxe/rxe_av.c
151
ah = rxe_pool_get_index(&pkt->rxe->ah_pool, ah_num);
drivers/infiniband/sw/rxe/rxe_av.c
152
if (!ah) {
drivers/infiniband/sw/rxe/rxe_av.c
157
if (rxe_ah_pd(ah) != pkt->qp->pd) {
drivers/infiniband/sw/rxe/rxe_av.c
159
rxe_put(ah);
drivers/infiniband/sw/rxe/rxe_av.c
164
*ahp = ah;
drivers/infiniband/sw/rxe/rxe_av.c
166
rxe_put(ah);
drivers/infiniband/sw/rxe/rxe_av.c
168
return &ah->av;
drivers/infiniband/sw/rxe/rxe_av.c
23
struct rxe_ah *ah;
drivers/infiniband/sw/rxe/rxe_av.c
27
ah = obj;
drivers/infiniband/sw/rxe/rxe_av.c
28
rxe = to_rdev(ah->ibah.device);
drivers/infiniband/sw/rxe/rxe_av.c
39
rxe_dbg_ah(ah, "invalid sgid index = %d\n",
drivers/infiniband/sw/rxe/rxe_av.c
51
rxe_dbg_ah(ah, "invalid network type for rdma_rxe = %d\n",
drivers/infiniband/sw/rxe/rxe_av.c
68
int rxe_ah_chk_attr(struct rxe_ah *ah, struct rdma_ah_attr *attr)
drivers/infiniband/sw/rxe/rxe_av.c
70
return chk_attr(ah, attr, true);
drivers/infiniband/sw/rxe/rxe_loc.h
13
int rxe_ah_chk_attr(struct rxe_ah *ah, struct rdma_ah_attr *attr);
drivers/infiniband/sw/rxe/rxe_req.c
655
struct rxe_ah *ah;
drivers/infiniband/sw/rxe/rxe_req.c
776
av = rxe_get_av(&pkt, &ah);
drivers/infiniband/sw/rxe/rxe_req.c
787
if (ah)
drivers/infiniband/sw/rxe/rxe_req.c
788
rxe_put(ah);
drivers/infiniband/sw/rxe/rxe_req.c
800
if (ah)
drivers/infiniband/sw/rxe/rxe_req.c
801
rxe_put(ah);
drivers/infiniband/sw/rxe/rxe_req.c
805
if (ah)
drivers/infiniband/sw/rxe/rxe_req.c
806
rxe_put(ah);
drivers/infiniband/sw/rxe/rxe_verbs.c
287
struct rxe_ah *ah = to_rah(ibah);
drivers/infiniband/sw/rxe/rxe_verbs.c
295
ah->is_user = true;
drivers/infiniband/sw/rxe/rxe_verbs.c
297
ah->is_user = false;
drivers/infiniband/sw/rxe/rxe_verbs.c
300
err = rxe_add_to_pool_ah(&rxe->ah_pool, ah,
drivers/infiniband/sw/rxe/rxe_verbs.c
308
ah->ah_num = ah->elem.index;
drivers/infiniband/sw/rxe/rxe_verbs.c
310
err = rxe_ah_chk_attr(ah, init_attr->ah_attr);
drivers/infiniband/sw/rxe/rxe_verbs.c
312
rxe_dbg_ah(ah, "bad attr\n");
drivers/infiniband/sw/rxe/rxe_verbs.c
318
err = copy_to_user(&uresp->ah_num, &ah->ah_num,
drivers/infiniband/sw/rxe/rxe_verbs.c
322
rxe_dbg_ah(ah, "unable to copy to user\n");
drivers/infiniband/sw/rxe/rxe_verbs.c
325
} else if (ah->is_user) {
drivers/infiniband/sw/rxe/rxe_verbs.c
327
ah->ah_num = 0;
drivers/infiniband/sw/rxe/rxe_verbs.c
330
rxe_init_av(init_attr->ah_attr, &ah->av);
drivers/infiniband/sw/rxe/rxe_verbs.c
331
rxe_finalize(ah);
drivers/infiniband/sw/rxe/rxe_verbs.c
336
cleanup_err = rxe_cleanup(ah);
drivers/infiniband/sw/rxe/rxe_verbs.c
338
rxe_err_ah(ah, "cleanup failed, err = %d\n", cleanup_err);
drivers/infiniband/sw/rxe/rxe_verbs.c
340
rxe_err_ah(ah, "returned err = %d\n", err);
drivers/infiniband/sw/rxe/rxe_verbs.c
346
struct rxe_ah *ah = to_rah(ibah);
drivers/infiniband/sw/rxe/rxe_verbs.c
349
err = rxe_ah_chk_attr(ah, attr);
drivers/infiniband/sw/rxe/rxe_verbs.c
351
rxe_dbg_ah(ah, "bad attr\n");
drivers/infiniband/sw/rxe/rxe_verbs.c
355
rxe_init_av(attr, &ah->av);
drivers/infiniband/sw/rxe/rxe_verbs.c
360
rxe_err_ah(ah, "returned err = %d\n", err);
drivers/infiniband/sw/rxe/rxe_verbs.c
366
struct rxe_ah *ah = to_rah(ibah);
drivers/infiniband/sw/rxe/rxe_verbs.c
370
rxe_av_to_attr(&ah->av, attr);
drivers/infiniband/sw/rxe/rxe_verbs.c
377
struct rxe_ah *ah = to_rah(ibah);
drivers/infiniband/sw/rxe/rxe_verbs.c
380
err = rxe_cleanup_ah(ah, flags & RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/sw/rxe/rxe_verbs.c
382
rxe_err_ah(ah, "cleanup failed, err = %d\n", err);
drivers/infiniband/sw/rxe/rxe_verbs.c
756
struct ib_ah *ibah = ud_wr(ibwr)->ah;
drivers/infiniband/sw/rxe/rxe_verbs.h
478
static inline struct rxe_ah *to_rah(struct ib_ah *ah)
drivers/infiniband/sw/rxe/rxe_verbs.h
480
return ah ? container_of(ah, struct rxe_ah, ibah) : NULL;
drivers/infiniband/sw/rxe/rxe_verbs.h
508
static inline struct rxe_pd *rxe_ah_pd(struct rxe_ah *ah)
drivers/infiniband/sw/rxe/rxe_verbs.h
510
return to_rpd(ah->ibah.pd);
drivers/infiniband/ulp/ipoib/ipoib.h
164
struct ipoib_ah *ah;
drivers/infiniband/ulp/ipoib/ipoib.h
419
struct ib_ah *ah;
drivers/infiniband/ulp/ipoib/ipoib.h
429
struct ipoib_ah *ah;
drivers/infiniband/ulp/ipoib/ipoib.h
443
struct ipoib_ah *ah;
drivers/infiniband/ulp/ipoib/ipoib.h
486
static inline void ipoib_put_ah(struct ipoib_ah *ah)
drivers/infiniband/ulp/ipoib/ipoib.h
488
kref_put(&ah->ref, ipoib_free_ah);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
578
priv->tx_wr.ah = address;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
59
struct ipoib_ah *ah;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
62
ah = kmalloc_obj(*ah);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
63
if (!ah)
drivers/infiniband/ulp/ipoib/ipoib_ib.c
66
ah->dev = dev;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
67
ah->last_send = 0;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
68
kref_init(&ah->ref);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
700
struct ipoib_ah *ah, *tah;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
706
list_for_each_entry_safe(ah, tah, &priv->dead_ahs, list)
drivers/infiniband/ulp/ipoib/ipoib_ib.c
707
if ((int) priv->tx_tail - (int) ah->last_send >= 0) {
drivers/infiniband/ulp/ipoib/ipoib_ib.c
708
list_del(&ah->list);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
709
rdma_destroy_ah(ah->ah, 0);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
710
kfree(ah);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
72
kfree(ah);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
73
ah = (struct ipoib_ah *)vah;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
75
ah->ah = vah;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
76
ipoib_dbg(ipoib_priv(dev), "Created ah %p\n", ah->ah);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
79
return ah;
drivers/infiniband/ulp/ipoib/ipoib_ib.c
84
struct ipoib_ah *ah = container_of(kref, struct ipoib_ah, ref);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
85
struct ipoib_dev_priv *priv = ipoib_priv(ah->dev);
drivers/infiniband/ulp/ipoib/ipoib_ib.c
90
list_add_tail(&ah->list, &priv->dead_ahs);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1026
if (path->ah && path->ah->valid) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
1027
kref_get(&path->ah->ref);
drivers/infiniband/ulp/ipoib/ipoib_main.c
1028
neigh->ah = path->ah;
drivers/infiniband/ulp/ipoib/ipoib_main.c
1048
path->ah->last_send = rn->send(dev, skb, path->ah->ah,
drivers/infiniband/ulp/ipoib/ipoib_main.c
1054
neigh->ah = NULL;
drivers/infiniband/ulp/ipoib/ipoib_main.c
1097
if (!path || !path->ah || !path->ah->valid) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
1126
path->ah->last_send = rn->send(dev, skb, path->ah->ah,
drivers/infiniband/ulp/ipoib/ipoib_main.c
1204
} else if (neigh->ah && neigh->ah->valid) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
1205
neigh->ah->last_send = rn->send(dev, skb, neigh->ah->ah,
drivers/infiniband/ulp/ipoib/ipoib_main.c
1208
} else if (neigh->ah) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
1523
if (neigh->ah)
drivers/infiniband/ulp/ipoib/ipoib_main.c
1524
ipoib_put_ah(neigh->ah);
drivers/infiniband/ulp/ipoib/ipoib_main.c
664
if (path->ah)
drivers/infiniband/ulp/ipoib/ipoib_main.c
665
ipoib_put_ah(path->ah);
drivers/infiniband/ulp/ipoib/ipoib_main.c
739
if (path->ah)
drivers/infiniband/ulp/ipoib/ipoib_main.c
740
path->ah->valid = 0;
drivers/infiniband/ulp/ipoib/ipoib_main.c
791
struct ipoib_ah *ah = NULL;
drivers/infiniband/ulp/ipoib/ipoib_main.c
813
ah = ipoib_create_ah(dev, priv->pd, &av);
drivers/infiniband/ulp/ipoib/ipoib_main.c
820
if (!IS_ERR_OR_NULL(ah)) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
839
old_ah = path->ah;
drivers/infiniband/ulp/ipoib/ipoib_main.c
840
path->ah = ah;
drivers/infiniband/ulp/ipoib/ipoib_main.c
843
ah, be32_to_cpu(sa_path_get_dlid(pathrec)),
drivers/infiniband/ulp/ipoib/ipoib_main.c
850
if (neigh->ah) {
drivers/infiniband/ulp/ipoib/ipoib_main.c
851
WARN_ON(neigh->ah != old_ah);
drivers/infiniband/ulp/ipoib/ipoib_main.c
859
ipoib_put_ah(neigh->ah);
drivers/infiniband/ulp/ipoib/ipoib_main.c
861
kref_get(&path->ah->ref);
drivers/infiniband/ulp/ipoib/ipoib_main.c
862
neigh->ah = path->ah;
drivers/infiniband/ulp/ipoib/ipoib_main.c
878
path->ah->valid = 1;
drivers/infiniband/ulp/ipoib/ipoib_main.c
886
if (IS_ERR_OR_NULL(ah))
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
1017
iter->complete = !!mcast->ah;
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
123
if (mcast->ah)
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
124
ipoib_put_ah(mcast->ah);
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
216
struct ipoib_ah *ah;
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
288
ah = ipoib_create_ah(dev, priv->pd, &av);
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
289
if (IS_ERR(ah)) {
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
290
ipoib_warn(priv, "ib_address_create failed %pe\n", ah);
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
292
return PTR_ERR(ah);
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
295
mcast->ah = ah;
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
300
mcast->ah->ah,
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
761
if (!mcast || !mcast->ah) {
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
805
kref_get(&mcast->ah->ref);
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
806
neigh->ah = mcast->ah;
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
807
neigh->ah->valid = 1;
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
812
mcast->ah->last_send = rn->send(dev, skb, mcast->ah->ah,
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
607
rdma_destroy_ah(mad_wc->send_buf->ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
626
struct ib_ah *ah;
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
634
ah = ib_create_ah_from_wc(mad_agent->qp->pd, mad_wc->wc,
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
636
if (IS_ERR(ah))
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
646
rsp->ah = ah;
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
681
rdma_destroy_ah(ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
735
struct ib_ah *ah;
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
778
ah = rdma_create_ah(port->mad_agent->qp->pd, &ah_attr, 0);
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
779
if (IS_ERR(ah)) {
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
780
c_err("%s:Couldn't create new AH = %p\n", __func__, ah);
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
804
send_buf->ah = ah;
drivers/infiniband/ulp/opa_vnic/opa_vnic_vema.c
849
rdma_destroy_ah(ah, 0);
drivers/infiniband/ulp/srpt/ib_srpt.c
525
rdma_destroy_ah(mad_wc->send_buf->ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/infiniband/ulp/srpt/ib_srpt.c
540
struct ib_ah *ah;
drivers/infiniband/ulp/srpt/ib_srpt.c
547
ah = ib_create_ah_from_wc(mad_agent->qp->pd, mad_wc->wc,
drivers/infiniband/ulp/srpt/ib_srpt.c
549
if (IS_ERR(ah))
drivers/infiniband/ulp/srpt/ib_srpt.c
562
rsp->ah = ah;
drivers/infiniband/ulp/srpt/ib_srpt.c
592
rdma_destroy_ah(ah, RDMA_DESTROY_AH_SLEEPABLE);
drivers/mtd/nand/raw/cafe_nand.c
571
u8 ah, al, bh, bl, ch, cl;
drivers/mtd/nand/raw/cafe_nand.c
573
ah = a >> 6;
drivers/mtd/nand/raw/cafe_nand.c
578
ch = gf64_mul(ah ^ al, bh ^ bl) ^ gf64_mul(al, bl);
drivers/mtd/nand/raw/cafe_nand.c
579
cl = gf64_mul(gf64_mul(ah, bh), 0x21) ^ gf64_mul(al, bl);
drivers/net/ethernet/intel/iavf/iavf_fdir.c
489
struct ip_auth_hdr *ah = (struct ip_auth_hdr *)hdr->buffer;
drivers/net/ethernet/intel/iavf/iavf_fdir.c
494
ah->spi = fltr->ip_data.spi;
drivers/net/ethernet/intel/ice/virt/fdir.c
1081
ah = (struct ip_auth_hdr *)hdr->buffer;
drivers/net/ethernet/intel/ice/virt/fdir.c
1089
input->ip.v4.sec_parm_idx = ah->spi;
drivers/net/ethernet/intel/ice/virt/fdir.c
1091
input->ip.v6.sec_parm_idx = ah->spi;
drivers/net/ethernet/intel/ice/virt/fdir.c
944
struct ip_auth_hdr *ah;
drivers/net/ethernet/qlogic/qed/qed_l2.c
1837
struct qed_eth_stats_ah *p_ah = &p_stats->ah;
drivers/net/ethernet/qlogic/qede/qede.h
115
struct qede_stats_ah ah;
drivers/net/ethernet/qlogic/qede/qede_ethtool.c
75
offsetof(struct qede_stats, ah), \
drivers/net/ethernet/qlogic/qede/qede_main.c
412
struct qede_stats_ah *p_ah = &edev->stats.ah;
drivers/net/ethernet/qlogic/qede/qede_main.c
415
stats.ah.rx_1519_to_max_byte_packets;
drivers/net/ethernet/qlogic/qede/qede_main.c
417
stats.ah.tx_1519_to_max_byte_packets;
drivers/net/hyperv/hyperv_net.h
1494
u8 ah;
drivers/net/wireless/ath/ath.h
148
void *ah;
drivers/net/wireless/ath/ath12k/core.c
1072
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/core.c
1078
ah = ag->ah[i];
drivers/net/wireless/ath/ath12k/core.c
1079
if (!ah)
drivers/net/wireless/ath/ath12k/core.c
1082
for_each_ar(ah, ar, j) {
drivers/net/wireless/ath/ath12k/core.c
1083
ar = &ah->radio[j];
drivers/net/wireless/ath/ath12k/core.c
113
if (!ar || !ar->ah || ar->ah->state != ATH12K_HW_STATE_OFF)
drivers/net/wireless/ath/ath12k/core.c
1399
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/core.c
1409
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/core.c
1410
if (!ah)
drivers/net/wireless/ath/ath12k/core.c
1413
for (j = 0; j < ah->num_radio; j++) {
drivers/net/wireless/ath/ath12k/core.c
1414
ar = &ah->radio[j];
drivers/net/wireless/ath/ath12k/core.c
1421
hw = ah->hw;
drivers/net/wireless/ath/ath12k/core.c
1459
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/core.c
1470
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/core.c
1471
if (!ah || ah->state == ATH12K_HW_STATE_OFF ||
drivers/net/wireless/ath/ath12k/core.c
1472
ah->state == ATH12K_HW_STATE_TM)
drivers/net/wireless/ath/ath12k/core.c
1475
wiphy_lock(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/core.c
1482
if (ieee80211_queue_stopped(ah->hw, 0)) {
drivers/net/wireless/ath/ath12k/core.c
1483
wiphy_unlock(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/core.c
1487
ieee80211_stop_queues(ah->hw);
drivers/net/wireless/ath/ath12k/core.c
1489
for (j = 0; j < ah->num_radio; j++) {
drivers/net/wireless/ath/ath12k/core.c
1490
ar = &ah->radio[j];
drivers/net/wireless/ath/ath12k/core.c
1517
wiphy_unlock(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/core.c
1558
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/core.c
1563
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/core.c
1564
if (!ah || ah->state == ATH12K_HW_STATE_OFF)
drivers/net/wireless/ath/ath12k/core.c
1567
wiphy_lock(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/core.c
1568
mutex_lock(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/core.c
1570
switch (ah->state) {
drivers/net/wireless/ath/ath12k/core.c
1572
ah->state = ATH12K_HW_STATE_RESTARTING;
drivers/net/wireless/ath/ath12k/core.c
1574
for (j = 0; j < ah->num_radio; j++) {
drivers/net/wireless/ath/ath12k/core.c
1575
ar = &ah->radio[j];
drivers/net/wireless/ath/ath12k/core.c
1579
ath12k_mac_dp_peer_cleanup(ah);
drivers/net/wireless/ath/ath12k/core.c
1589
ah->state = ATH12K_HW_STATE_WEDGED;
drivers/net/wireless/ath/ath12k/core.c
1600
mutex_unlock(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/core.c
1601
wiphy_unlock(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/core.c
1611
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/core.c
1637
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/core.c
1638
ieee80211_restart_hw(ah->hw);
drivers/net/wireless/ath/ath12k/core.h
1366
static inline struct ath12k *ath12k_ah_to_ar(struct ath12k_hw *ah, u8 hw_link_id)
drivers/net/wireless/ath/ath12k/core.h
1368
if (WARN(hw_link_id >= ah->num_radio,
drivers/net/wireless/ath/ath12k/core.h
1372
return &ah->radio[hw_link_id];
drivers/net/wireless/ath/ath12k/core.h
1377
return ar->ah;
drivers/net/wireless/ath/ath12k/core.h
1382
return ar->ah->hw;
drivers/net/wireless/ath/ath12k/core.h
1385
#define for_each_ar(ah, ar, index) \
drivers/net/wireless/ath/ath12k/core.h
1386
for ((index) = 0; ((index) < (ah)->num_radio && \
drivers/net/wireless/ath/ath12k/core.h
1387
((ar) = &(ah)->radio[(index)])); (index)++)
drivers/net/wireless/ath/ath12k/core.h
1391
return ag->ah[idx];
drivers/net/wireless/ath/ath12k/core.h
1395
struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/core.h
1397
ag->ah[idx] = ah;
drivers/net/wireless/ath/ath12k/core.h
362
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/core.h
614
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/core.h
894
struct ath12k_hw *ah[ATH12K_GROUP_MAX_RADIO];
drivers/net/wireless/ath/ath12k/debug.h
38
#define ath12k_hw_warn(ah, fmt, ...) __ath12k_warn((ah)->dev, fmt, ##__VA_ARGS__)
drivers/net/wireless/ath/ath12k/debugfs.c
1265
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/debugfs.c
1270
if (!ah)
drivers/net/wireless/ath/ath12k/debugfs.c
1273
if (ah->state != ATH12K_HW_STATE_ON)
drivers/net/wireless/ath/ath12k/debugfs.c
1330
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/debugfs.c
1335
if (ah && ah->state != ATH12K_HW_STATE_ON)
drivers/net/wireless/ath/ath12k/debugfs.c
1395
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/debugfs.c
1402
if (ah && ah->state != ATH12K_HW_STATE_ON)
drivers/net/wireless/ath/ath12k/debugfs.c
1475
struct ieee80211_hw *hw = ar->ah->hw;
drivers/net/wireless/ath/ath12k/debugfs.c
744
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/debugfs.c
749
if (ah->state != ATH12K_HW_STATE_ON) {
drivers/net/wireless/ath/ath12k/debugfs.c
834
if (ar->ah->state != ATH12K_HW_STATE_ON) {
drivers/net/wireless/ath/ath12k/debugfs.c
924
wiphy = ahvif->ah->hw->wiphy;
drivers/net/wireless/ath/ath12k/debugfs_htt_stats.c
6213
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/debugfs_htt_stats.c
6221
if (ah->state != ATH12K_HW_STATE_ON) {
drivers/net/wireless/ath/ath12k/debugfs_sta.c
146
struct ath12k_hw *ah = ahsta->ahvif->ah;
drivers/net/wireless/ath/ath12k/debugfs_sta.c
156
guard(wiphy)(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/debugfs_sta.c
161
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/debugfs_sta.c
259
struct ath12k_hw *ah = ahsta->ahvif->ah;
drivers/net/wireless/ath/ath12k/debugfs_sta.c
273
wiphy_lock(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/debugfs_sta.c
280
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/debugfs_sta.c
292
wiphy_unlock(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/dp.c
884
dp_pdev->hw = ar->ah->hw;
drivers/net/wireless/ath/ath12k/dp.c
887
dp_pdev->dp_hw = &ar->ah->dp_hw;
drivers/net/wireless/ath/ath12k/mac.c
10199
struct ath12k_hw *ah = ar->ah;
drivers/net/wireless/ath/ath12k/mac.c
10201
struct ieee80211_hw *hw = ah->hw;
drivers/net/wireless/ath/ath12k/mac.c
10307
ret = ath12k_dp_peer_create(&ah->dp_hw, arvif->bssid, ¶ms);
drivers/net/wireless/ath/ath12k/mac.c
10431
ath12k_dp_peer_delete(&ah->dp_hw, arvif->bssid, NULL);
drivers/net/wireless/ath/ath12k/mac.c
10459
struct ath12k_hw *ah = ahvif->ah;
drivers/net/wireless/ath/ath12k/mac.c
10465
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
10471
arsta = wiphy_dereference(ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/mac.c
10537
struct ath12k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath12k/mac.c
10546
if (ah->num_radio == 1)
drivers/net/wireless/ath/ath12k/mac.c
10547
ar = ah->radio;
drivers/net/wireless/ath/ath12k/mac.c
10580
if (ah->num_radio == 1)
drivers/net/wireless/ath/ath12k/mac.c
10601
arvif = ath12k_mac_assign_link_vif(ah, vif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
10630
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
10642
ahvif->ah = ah;
drivers/net/wireless/ath/ath12k/mac.c
10657
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
10664
ah->regd_updated = false;
drivers/net/wireless/ath/ath12k/mac.c
10832
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
10837
ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath12k/mac.c
10847
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
10854
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
10869
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
10876
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
11083
lockdep_assert_wiphy(ahvif->ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
11105
arvif_p = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11116
link_conf = wiphy_dereference(ahvif->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/mac.c
11299
lockdep_assert_wiphy(ahvif->ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
11303
arvif = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11310
link_conf = wiphy_dereference(ahvif->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/mac.c
11334
lockdep_assert_wiphy(ahvif->ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
11338
arvif = wiphy_dereference(ahvif->ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
11345
link_conf = wiphy_dereference(ahvif->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/mac.c
11755
*temp_chan = ieee80211_get_channel(ar->ah->hw->wiphy, *center_freq);
drivers/net/wireless/ath/ath12k/mac.c
11786
*temp_chan = ieee80211_get_channel(ar->ah->hw->wiphy, *center_freq);
drivers/net/wireless/ath/ath12k/mac.c
12046
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
12059
arvif = ath12k_mac_assign_link_vif(ah, vif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
12067
ath12k_hw_warn(ah, "failed to assign chanctx for vif %pM link id %u link vif is already started",
drivers/net/wireless/ath/ath12k/mac.c
1212
struct ath12k_dp_hw *dp_hw = &ar->ah->dp_hw;
drivers/net/wireless/ath/ath12k/mac.c
12253
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
12266
ar = ath12k_ah_to_ar(ah, radio_idx);
drivers/net/wireless/ath/ath12k/mac.c
12280
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
12292
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
12299
ar = ath12k_ah_to_ar(ah, i);
drivers/net/wireless/ath/ath12k/mac.c
12371
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
12384
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
12389
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
1251
ieee80211_iterate_stations_mtx(ar->ah->hw, ath12k_mac_link_sta_rhash_cleanup,
drivers/net/wireless/ath/ath12k/mac.c
1264
void ath12k_mac_dp_peer_cleanup(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
1268
struct ath12k_dp_hw *dp_hw = &ah->dp_hw;
drivers/net/wireless/ath/ath12k/mac.c
1276
clear_bit(dp_peer->peer_id, ah->free_ml_peer_id_map);
drivers/net/wireless/ath/ath12k/mac.c
13212
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
13224
guard(mutex)(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.c
13226
if (ah->state != ATH12K_HW_STATE_RESTARTED)
drivers/net/wireless/ath/ath12k/mac.c
13229
ah->state = ATH12K_HW_STATE_ON;
drivers/net/wireless/ath/ath12k/mac.c
13232
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
13604
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
13607
ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath12k/mac.c
13631
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
13651
arvif = ath12k_mac_assign_link_vif(ah, vif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
13677
arvif = ath12k_mac_assign_link_vif(ah, vif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
13771
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
13772
struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath12k/mac.c
13890
struct ath12k_hw *ah = ar->ah;
drivers/net/wireless/ath/ath12k/mac.c
13975
ah->use_6ghz_regd = true;
drivers/net/wireless/ath/ath12k/mac.c
14058
static u16 ath12k_mac_get_ifmodes(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
14064
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
14070
static bool ath12k_mac_is_iface_mode_enable(struct ath12k_hw *ah,
drivers/net/wireless/ath/ath12k/mac.c
14085
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
14165
ath12k_mac_setup_global_iface_comb(struct ath12k_hw *ah,
drivers/net/wireless/ath/ath12k/mac.c
14178
ap = ath12k_mac_is_iface_mode_enable(ah, NL80211_IFTYPE_AP);
drivers/net/wireless/ath/ath12k/mac.c
14179
p2p = ath12k_mac_is_iface_mode_enable(ah, NL80211_IFTYPE_P2P_DEVICE);
drivers/net/wireless/ath/ath12k/mac.c
14180
mesh = ath12k_mac_is_iface_mode_enable(ah, NL80211_IFTYPE_MESH_POINT);
drivers/net/wireless/ath/ath12k/mac.c
14220
static void ath12k_mac_cleanup_iface_combinations(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
14222
struct wiphy *wiphy = ah->hw->wiphy;
drivers/net/wireless/ath/ath12k/mac.c
14237
static int ath12k_mac_setup_iface_combinations(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
14240
struct wiphy *wiphy = ah->hw->wiphy;
drivers/net/wireless/ath/ath12k/mac.c
14246
if (ah->num_radio == 1) {
drivers/net/wireless/ath/ath12k/mac.c
14247
ar = &ah->radio[0];
drivers/net/wireless/ath/ath12k/mac.c
14258
ath12k_hw_warn(ah, "failed to setup radio interface combinations for one radio: %d",
drivers/net/wireless/ath/ath12k/mac.c
14279
radio = kzalloc_objs(*radio, ah->num_radio);
drivers/net/wireless/ath/ath12k/mac.c
14285
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
14294
ath12k_hw_warn(ah, "failed to setup radio interface combinations for radio %d: %d",
drivers/net/wireless/ath/ath12k/mac.c
14307
ret = ath12k_mac_setup_global_iface_comb(ah, radio, ah->num_radio, combinations);
drivers/net/wireless/ath/ath12k/mac.c
14309
ath12k_hw_warn(ah, "failed to setup global interface combinations: %d",
drivers/net/wireless/ath/ath12k/mac.c
14315
wiphy->n_radio = ah->num_radio;
drivers/net/wireless/ath/ath12k/mac.c
14324
i = ah->num_radio;
drivers/net/wireless/ath/ath12k/mac.c
14391
static void ath12k_mac_hw_unregister(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
14393
struct ieee80211_hw *hw = ah->hw;
drivers/net/wireless/ath/ath12k/mac.c
14397
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
14406
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
14409
ath12k_mac_cleanup_iface_combinations(ah);
drivers/net/wireless/ath/ath12k/mac.c
14446
static int ath12k_mac_hw_register(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
14448
struct ieee80211_hw *hw = ah->hw;
drivers/net/wireless/ath/ath12k/mac.c
14450
struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath12k/mac.c
14473
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
14526
ret = ath12k_mac_setup_iface_combinations(ah);
drivers/net/wireless/ath/ath12k/mac.c
14532
wiphy->interface_modes = ath12k_mac_get_ifmodes(ah);
drivers/net/wireless/ath/ath12k/mac.c
14534
if (ah->num_radio == 1 &&
drivers/net/wireless/ath/ath12k/mac.c
14687
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
14704
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
14734
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
14740
ath12k_mac_cleanup_iface_combinations(ah);
drivers/net/wireless/ath/ath12k/mac.c
14743
i = ah->num_radio;
drivers/net/wireless/ath/ath12k/mac.c
14747
ar = ath12k_ah_to_ar(ah, j);
drivers/net/wireless/ath/ath12k/mac.c
14897
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/mac.c
14903
ah = ag->ah[i];
drivers/net/wireless/ath/ath12k/mac.c
14904
if (!ah)
drivers/net/wireless/ath/ath12k/mac.c
14907
for_each_ar(ah, ar, j) {
drivers/net/wireless/ath/ath12k/mac.c
14908
ar = &ah->radio[j];
drivers/net/wireless/ath/ath12k/mac.c
14921
ah = ag->ah[i];
drivers/net/wireless/ath/ath12k/mac.c
14922
if (!ah)
drivers/net/wireless/ath/ath12k/mac.c
14926
ar = &ah->radio[j];
drivers/net/wireless/ath/ath12k/mac.c
14939
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/mac.c
14944
ah = ag->ah[i];
drivers/net/wireless/ath/ath12k/mac.c
14945
if (!ah)
drivers/net/wireless/ath/ath12k/mac.c
14948
for_each_ar(ah, ar, j) {
drivers/net/wireless/ath/ath12k/mac.c
14949
ar = &ah->radio[j];
drivers/net/wireless/ath/ath12k/mac.c
14961
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/mac.c
14966
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/mac.c
14968
ret = ath12k_mac_hw_register(ah);
drivers/net/wireless/ath/ath12k/mac.c
14977
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/mac.c
14978
if (!ah)
drivers/net/wireless/ath/ath12k/mac.c
14981
ath12k_mac_hw_unregister(ah);
drivers/net/wireless/ath/ath12k/mac.c
14989
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/mac.c
14993
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/mac.c
14994
if (!ah)
drivers/net/wireless/ath/ath12k/mac.c
14997
ath12k_mac_hw_unregister(ah);
drivers/net/wireless/ath/ath12k/mac.c
15001
static void ath12k_mac_hw_destroy(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
15003
ieee80211_free_hw(ah->hw);
drivers/net/wireless/ath/ath12k/mac.c
15014
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/mac.c
15018
hw = ieee80211_alloc_hw(struct_size(ah, radio, num_pdev_map),
drivers/net/wireless/ath/ath12k/mac.c
15023
ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
15024
ah->hw = hw;
drivers/net/wireless/ath/ath12k/mac.c
15025
ah->num_radio = num_pdev_map;
drivers/net/wireless/ath/ath12k/mac.c
15027
mutex_init(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.c
15029
spin_lock_init(&ah->dp_hw.peer_lock);
drivers/net/wireless/ath/ath12k/mac.c
15030
INIT_LIST_HEAD(&ah->dp_hw.dp_peers_list);
drivers/net/wireless/ath/ath12k/mac.c
15037
ar = ath12k_ah_to_ar(ah, i);
drivers/net/wireless/ath/ath12k/mac.c
15038
ar->ah = ah;
drivers/net/wireless/ath/ath12k/mac.c
15052
return ah;
drivers/net/wireless/ath/ath12k/mac.c
15060
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/mac.c
15076
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/mac.c
15077
if (!ah)
drivers/net/wireless/ath/ath12k/mac.c
15080
ath12k_mac_hw_destroy(ah);
drivers/net/wireless/ath/ath12k/mac.c
15100
struct ath12k_hw *ah;
drivers/net/wireless/ath/ath12k/mac.c
15158
ah = ath12k_mac_hw_allocate(ag, pdev_map, radio_per_hw);
drivers/net/wireless/ath/ath12k/mac.c
15159
if (!ah) {
drivers/net/wireless/ath/ath12k/mac.c
15166
ah->dev = ab->dev;
drivers/net/wireless/ath/ath12k/mac.c
15168
ag->ah[i] = ah;
drivers/net/wireless/ath/ath12k/mac.c
15176
ah = ath12k_ag_to_ah(ag, i);
drivers/net/wireless/ath/ath12k/mac.c
15177
if (!ah)
drivers/net/wireless/ath/ath12k/mac.c
15180
ath12k_mac_hw_destroy(ah);
drivers/net/wireless/ath/ath12k/mac.c
4110
struct ath12k_hw *ah = ahvif->ah;
drivers/net/wireless/ath/ath12k/mac.c
4114
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
4169
struct ath12k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath12k/mac.c
4173
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
4193
ath12k_dp_peer_delete(&ah->dp_hw, arvif->bssid, NULL);
drivers/net/wireless/ath/ath12k/mac.c
4198
static struct ath12k_link_vif *ath12k_mac_assign_link_vif(struct ath12k_hw *ah,
drivers/net/wireless/ath/ath12k/mac.c
4205
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
4207
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
4233
struct ath12k_hw *ah = ahvif->ah;
drivers/net/wireless/ath/ath12k/mac.c
4235
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
4256
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
4274
arvif = ath12k_mac_assign_link_vif(ah, vif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
5097
struct ath12k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath12k/mac.c
5102
if (ah->num_radio == 1)
drivers/net/wireless/ath/ath12k/mac.c
5103
return ah->radio;
drivers/net/wireless/ath/ath12k/mac.c
5119
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
5146
wiphy_work_queue(ar->ah->hw->wiphy, &ar->scan.vdev_clean_wk);
drivers/net/wireless/ath/ath12k/mac.c
5249
struct ath12k_hw *ah = ar->ah;
drivers/net/wireless/ath/ath12k/mac.c
5253
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
5255
for_each_ar(ah, partner_ar, i)
drivers/net/wireless/ath/ath12k/mac.c
5260
ieee80211_scan_completed(ah->hw, info);
drivers/net/wireless/ath/ath12k/mac.c
5267
struct ath12k_hw *ah = ar->ah;
drivers/net/wireless/ath/ath12k/mac.c
5287
ath12k_mac_remove_link_interface(ah->hw, arvif);
drivers/net/wireless/ath/ath12k/mac.c
5348
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/mac.c
5352
guard(mutex)(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.c
5354
if (ah->state != ATH12K_HW_STATE_ON)
drivers/net/wireless/ath/ath12k/mac.c
5400
struct ath12k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath12k/mac.c
5414
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5420
if (ah->state != ATH12K_HW_STATE_ON)
drivers/net/wireless/ath/ath12k/mac.c
5475
struct ath12k_hw *ah = ahvif->ah;
drivers/net/wireless/ath/ath12k/mac.c
5480
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
5483
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
5515
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
5541
arvif = ath12k_mac_assign_link_vif(ah, vif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
5574
arvif = ath12k_mac_assign_link_vif(ah, vif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
5687
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
5704
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
5712
ath12k_hw_warn(ah, "unable to select scan device for freq %d\n",
drivers/net/wireless/ath/ath12k/mac.c
5735
ath12k_hw_warn(ah, "Scan failed %d , cleanup all scan vdevs\n", ret);
drivers/net/wireless/ath/ath12k/mac.c
641
return wiphy_dereference(tx_ahvif->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/mac.c
6771
static void ath12k_mac_free_unassign_link_sta(struct ath12k_hw *ah,
drivers/net/wireless/ath/ath12k/mac.c
6777
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
6782
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
6959
wiphy_work_cancel(ar->ah->hw->wiphy, &arsta->update_wk);
drivers/net/wireless/ath/ath12k/mac.c
699
lockdep_assert_wiphy(ahsta->ahvif->ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
6994
ath12k_mac_free_unassign_link_sta(ahvif->ah,
drivers/net/wireless/ath/ath12k/mac.c
704
link_sta = wiphy_dereference(ahsta->ahvif->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/mac.c
7096
static int ath12k_mac_assign_link_sta(struct ath12k_hw *ah,
drivers/net/wireless/ath/ath12k/mac.c
7106
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
7111
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7117
link_sta = wiphy_dereference(ah->hw->wiphy, sta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7143
struct ath12k_hw *ah = ahvif->ah;
drivers/net/wireless/ath/ath12k/mac.c
7150
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
7157
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7158
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7170
ath12k_mac_free_unassign_link_sta(ah, ahsta, link_id);
drivers/net/wireless/ath/ath12k/mac.c
7174
clear_bit(ahsta->ml_peer_id, ah->free_ml_peer_id_map);
drivers/net/wireless/ath/ath12k/mac.c
7607
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
7639
ahsta->ml_peer_id = ath12k_peer_ml_alloc(ah);
drivers/net/wireless/ath/ath12k/mac.c
7641
ath12k_hw_warn(ah, "unable to allocate ML peer id for sta %pM",
drivers/net/wireless/ath/ath12k/mac.c
7655
ret = ath12k_dp_peer_create(&ah->dp_hw, sta->addr, &dp_params);
drivers/net/wireless/ath/ath12k/mac.c
7657
ath12k_hw_warn(ah, "unable to create ath12k_dp_peer for sta %pM, ret: %d",
drivers/net/wireless/ath/ath12k/mac.c
7663
ret = ath12k_mac_assign_link_sta(ah, ahsta, arsta, ahvif,
drivers/net/wireless/ath/ath12k/mac.c
7666
ath12k_hw_warn(ah, "unable assign link %d for sta %pM",
drivers/net/wireless/ath/ath12k/mac.c
7680
ath12k_hw_warn(ah, "failed to verify assoc link setting with link id %u\n",
drivers/net/wireless/ath/ath12k/mac.c
7705
ab = ah->radio[0].ab;
drivers/net/wireless/ath/ath12k/mac.c
7736
ath12k_hw_warn(ah, "unable to move link sta %d of sta %pM from state %d to %d",
drivers/net/wireless/ath/ath12k/mac.c
7749
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
7775
ath12k_dp_peer_delete(&ah->dp_hw, sta->addr, sta);
drivers/net/wireless/ath/ath12k/mac.c
7782
ath12k_dp_peer_delete(&ah->dp_hw, sta->addr, sta);
drivers/net/wireless/ath/ath12k/mac.c
7785
clear_bit(ahsta->ml_peer_id, ah->free_ml_peer_id_map);
drivers/net/wireless/ath/ath12k/mac.c
7857
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
7867
ath12k_hw_warn(ah, "mac sta rc update failed to fetch link vif on link id %u for peer %pM\n",
drivers/net/wireless/ath/ath12k/mac.c
7960
static struct ath12k_link_sta *ath12k_mac_alloc_assign_link_sta(struct ath12k_hw *ah,
drivers/net/wireless/ath/ath12k/mac.c
7968
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
7973
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/mac.c
7981
ret = ath12k_mac_assign_link_sta(ah, ahsta, arsta, ahvif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
7997
struct ath12k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath12k/mac.c
8018
ath12k_hw_warn(ah, "unable to add link for ml sta %pM", sta->addr);
drivers/net/wireless/ath/ath12k/mac.c
8032
arsta = ath12k_mac_alloc_assign_link_sta(ah, ahsta, ahvif, link_id);
drivers/net/wireless/ath/ath12k/mac.c
8035
ath12k_hw_warn(ah, "Failed to alloc/assign link sta");
drivers/net/wireless/ath/ath12k/mac.c
8047
ath12k_mac_free_unassign_link_sta(ah, ahsta, link_id);
drivers/net/wireless/ath/ath12k/mac.c
867
lockdep_assert_wiphy(ahvif->ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
878
struct ath12k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath12k/mac.c
882
ar = ah->radio;
drivers/net/wireless/ath/ath12k/mac.c
884
if (ah->num_radio == 1)
drivers/net/wireless/ath/ath12k/mac.c
887
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
8918
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/mac.c
8939
if (ah->state != ATH12K_HW_STATE_ON &&
drivers/net/wireless/ath/ath12k/mac.c
8940
ah->state != ATH12K_HW_STATE_RESTARTED)
drivers/net/wireless/ath/ath12k/mac.c
909
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
917
if (ah->num_radio == 1)
drivers/net/wireless/ath/ath12k/mac.c
918
return ah->radio;
drivers/net/wireless/ath/ath12k/mac.c
9272
struct ath12k_hw *ah = ar->ah;
drivers/net/wireless/ath/ath12k/mac.c
9298
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[skb_cb->link_id]);
drivers/net/wireless/ath/ath12k/mac.c
9553
struct ath12k_hw *ah = ar->ah;
drivers/net/wireless/ath/ath12k/mac.c
9558
lockdep_assert_held(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.c
9664
static void ath12k_drain_tx(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/mac.c
9669
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/mac.c
9671
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
9677
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
9686
ath12k_drain_tx(ah);
drivers/net/wireless/ath/ath12k/mac.c
9688
guard(mutex)(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.c
9690
switch (ah->state) {
drivers/net/wireless/ath/ath12k/mac.c
9692
ah->state = ATH12K_HW_STATE_ON;
drivers/net/wireless/ath/ath12k/mac.c
9695
ah->state = ATH12K_HW_STATE_RESTARTED;
drivers/net/wireless/ath/ath12k/mac.c
9701
ah->state = ATH12K_HW_STATE_OFF;
drivers/net/wireless/ath/ath12k/mac.c
9707
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/mac.c
9710
ah->state = ATH12K_HW_STATE_OFF;
drivers/net/wireless/ath/ath12k/mac.c
9722
ar = ath12k_ah_to_ar(ah, i - 1);
drivers/net/wireless/ath/ath12k/mac.c
9790
struct ath12k_hw *ah = ar->ah;
drivers/net/wireless/ath/ath12k/mac.c
9795
lockdep_assert_held(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.c
9839
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/mac.c
9845
ath12k_drain_tx(ah);
drivers/net/wireless/ath/ath12k/mac.c
9847
mutex_lock(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.c
9849
ah->state = ATH12K_HW_STATE_OFF;
drivers/net/wireless/ath/ath12k/mac.c
9851
for_each_ar(ah, ar, i)
drivers/net/wireless/ath/ath12k/mac.c
9854
mutex_unlock(&ah->hw_mutex);
drivers/net/wireless/ath/ath12k/mac.h
175
void ath12k_mac_dp_peer_cleanup(struct ath12k_hw *ah);
drivers/net/wireless/ath/ath12k/peer.c
255
u16 ath12k_peer_ml_alloc(struct ath12k_hw *ah)
drivers/net/wireless/ath/ath12k/peer.c
259
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/peer.c
262
if (test_bit(ml_peer_id, ah->free_ml_peer_id_map))
drivers/net/wireless/ath/ath12k/peer.c
265
set_bit(ml_peer_id, ah->free_ml_peer_id_map);
drivers/net/wireless/ath/ath12k/peer.c
278
struct ath12k_hw *ah = ahvif->ah;
drivers/net/wireless/ath/ath12k/peer.c
286
lockdep_assert_wiphy(ah->hw->wiphy);
drivers/net/wireless/ath/ath12k/peer.c
296
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
297
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
325
arvif = wiphy_dereference(ah->hw->wiphy, ahvif->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.c
326
arsta = wiphy_dereference(ah->hw->wiphy, ahsta->link[link_id]);
drivers/net/wireless/ath/ath12k/peer.h
20
struct ath12k_ml_peer *ath12k_peer_ml_find(struct ath12k_hw *ah,
drivers/net/wireless/ath/ath12k/peer.h
28
u16 ath12k_peer_ml_alloc(struct ath12k_hw *ah);
drivers/net/wireless/ath/ath12k/reg.c
101
ah->regd_updated = false;
drivers/net/wireless/ath/ath12k/reg.c
104
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/reg.c
144
if (ar->ah->state == ATH12K_HW_STATE_RESTARTING)
drivers/net/wireless/ath/ath12k/reg.c
273
struct ath12k_hw *ah = ath12k_ar_to_ah(ar);
drivers/net/wireless/ath/ath12k/reg.c
274
struct ieee80211_hw *hw = ah->hw;
drivers/net/wireless/ath/ath12k/reg.c
335
if (ah->regd_updated)
drivers/net/wireless/ath/ath12k/reg.c
348
if (ah->use_6ghz_regd && !ar->supports_6ghz)
drivers/net/wireless/ath/ath12k/reg.c
399
if (ah->state != ATH12K_HW_STATE_ON)
drivers/net/wireless/ath/ath12k/reg.c
402
ah->regd_updated = true;
drivers/net/wireless/ath/ath12k/reg.c
53
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/reg.c
54
struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath12k/reg.c
63
if (ah->state != ATH12K_HW_STATE_ON)
drivers/net/wireless/ath/ath12k/reg.c
66
for_each_ar(ah, ar, i) {
drivers/net/wireless/ath/ath12k/testmode.c
154
nl_skb = cfg80211_testmode_alloc_event_skb(ar->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/testmode.c
189
skb = cfg80211_testmode_alloc_reply_skb(ar->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/testmode.c
219
ath12k_dbg(ar->ab, ATH12K_DBG_TESTMODE, "ah->state %d\n", ar->ah->state);
drivers/net/wireless/ath/ath12k/testmode.c
220
if (ar->ah->state != ATH12K_HW_STATE_TM)
drivers/net/wireless/ath/ath12k/testmode.c
283
if (ar->ah->state == ATH12K_HW_STATE_TM)
drivers/net/wireless/ath/ath12k/testmode.c
286
if (ar->ah->state != ATH12K_HW_STATE_OFF)
drivers/net/wireless/ath/ath12k/testmode.c
295
ar->ah->state = ATH12K_HW_STATE_TM;
drivers/net/wireless/ath/ath12k/testmode.c
357
struct ath12k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath12k/testmode.c
375
if (ah->num_radio)
drivers/net/wireless/ath/ath12k/testmode.c
376
ar = ah->radio;
drivers/net/wireless/ath/ath12k/testmode.c
38
if (ar && ar->ah->state == ATH12K_HW_STATE_TM)
drivers/net/wireless/ath/ath12k/testmode.c
65
nl_skb = cfg80211_testmode_alloc_event_skb(ar->ah->hw->wiphy,
drivers/net/wireless/ath/ath12k/wifi7/hw.c
118
struct ath12k_hw *ah = ath12k_ar_to_ah(arvif->ar);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
126
spin_lock_bh(&ah->dp_hw.peer_lock);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
127
peer = ath12k_dp_peer_find_by_addr(&ah->dp_hw, mgmt->da);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
129
spin_unlock_bh(&ah->dp_hw.peer_lock);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
133
spin_unlock_bh(&ah->dp_hw.peer_lock);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
817
ath12k_warn(ahvif->ah, "failed to find arvif link id %u for frame transmission",
drivers/net/wireless/ath/ath12k/wifi7/hw.c
876
ieee80211_free_txskb(ar->ah->hw, skb);
drivers/net/wireless/ath/ath12k/wifi7/hw.c
962
ieee80211_free_txskb(ar->ah->hw, skb);
drivers/net/wireless/ath/ath12k/wmi.c
6848
ar->ah->regd_updated = false;
drivers/net/wireless/ath/ath12k/wow.c
1003
switch (ah->state) {
drivers/net/wireless/ath/ath12k/wow.c
1005
ah->state = ATH12K_HW_STATE_RESTARTING;
drivers/net/wireless/ath/ath12k/wow.c
1014
ah->state);
drivers/net/wireless/ath/ath12k/wow.c
1043
ar->ah->hw->wiphy->wowlan = &ar->wow.wowlan_support;
drivers/net/wireless/ath/ath12k/wow.c
864
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/wow.c
865
struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath12k/wow.c
942
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/wow.c
943
struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath12k/wow.c
953
struct ath12k_hw *ah = ath12k_hw_to_ah(hw);
drivers/net/wireless/ath/ath12k/wow.c
954
struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
drivers/net/wireless/ath/ath5k/ahb.c
129
ah = hw->priv;
drivers/net/wireless/ath/ath5k/ahb.c
130
ah->hw = hw;
drivers/net/wireless/ath/ath5k/ahb.c
131
ah->dev = &pdev->dev;
drivers/net/wireless/ath/ath5k/ahb.c
132
ah->iobase = mem;
drivers/net/wireless/ath/ath5k/ahb.c
133
ah->irq = irq;
drivers/net/wireless/ath/ath5k/ahb.c
134
ah->devid = bcfg->devid;
drivers/net/wireless/ath/ath5k/ahb.c
150
if (to_platform_device(ah->dev)->id == 0)
drivers/net/wireless/ath/ath5k/ahb.c
161
if (to_platform_device(ah->dev)->id == 0 &&
drivers/net/wireless/ath/ath5k/ahb.c
164
ah->ah_capabilities.cap_needs_2GHz_ovr = true;
drivers/net/wireless/ath/ath5k/ahb.c
166
ah->ah_capabilities.cap_needs_2GHz_ovr = false;
drivers/net/wireless/ath/ath5k/ahb.c
169
ret = ath5k_init_ah(ah, &ath_ahb_bus_ops);
drivers/net/wireless/ath/ath5k/ahb.c
192
struct ath5k_hw *ah;
drivers/net/wireless/ath/ath5k/ahb.c
198
ah = hw->priv;
drivers/net/wireless/ath/ath5k/ahb.c
208
if (to_platform_device(ah->dev)->id == 0)
drivers/net/wireless/ath/ath5k/ahb.c
215
ath5k_deinit_ah(ah);
drivers/net/wireless/ath/ath5k/ahb.c
216
iounmap(ah->iobase);
drivers/net/wireless/ath/ath5k/ahb.c
38
struct ath5k_hw *ah = common->priv;
drivers/net/wireless/ath/ath5k/ahb.c
39
struct platform_device *pdev = to_platform_device(ah->dev);
drivers/net/wireless/ath/ath5k/ahb.c
54
int ath5k_hw_read_srev(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ahb.c
56
struct platform_device *pdev = to_platform_device(ah->dev);
drivers/net/wireless/ath/ath5k/ahb.c
58
ah->ah_mac_srev = bcfg->devid;
drivers/net/wireless/ath/ath5k/ahb.c
62
static int ath5k_ahb_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
drivers/net/wireless/ath/ath5k/ahb.c
64
struct platform_device *pdev = to_platform_device(ah->dev);
drivers/net/wireless/ath/ath5k/ahb.c
68
if (to_platform_device(ah->dev)->id == 0)
drivers/net/wireless/ath/ath5k/ahb.c
88
struct ath5k_hw *ah;
drivers/net/wireless/ath/ath5k/ani.c
100
ah->ani_state.noise_imm_level = level;
drivers/net/wireless/ath/ath5k/ani.c
101
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level);
drivers/net/wireless/ath/ath5k/ani.c
111
ath5k_ani_set_spur_immunity_level(struct ath5k_hw *ah, int level)
drivers/net/wireless/ath/ath5k/ani.c
116
level > ah->ani_state.max_spur_level) {
drivers/net/wireless/ath/ath5k/ani.c
117
ATH5K_ERR(ah, "spur immunity level %d out of range",
drivers/net/wireless/ath/ath5k/ani.c
122
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_OFDM_SELFCORR,
drivers/net/wireless/ath/ath5k/ani.c
125
ah->ani_state.spur_level = level;
drivers/net/wireless/ath/ath5k/ani.c
126
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level);
drivers/net/wireless/ath/ath5k/ani.c
135
ath5k_ani_set_firstep_level(struct ath5k_hw *ah, int level)
drivers/net/wireless/ath/ath5k/ani.c
140
ATH5K_ERR(ah, "firstep level %d out of range", level);
drivers/net/wireless/ath/ath5k/ani.c
144
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_SIG,
drivers/net/wireless/ath/ath5k/ani.c
147
ah->ani_state.firstep_level = level;
drivers/net/wireless/ath/ath5k/ani.c
148
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "new level %d", level);
drivers/net/wireless/ath/ath5k/ani.c
157
ath5k_ani_set_ofdm_weak_signal_detection(struct ath5k_hw *ah, bool on)
drivers/net/wireless/ath/ath5k/ani.c
166
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_WEAK_OFDM_LOW_THR,
drivers/net/wireless/ath/ath5k/ani.c
168
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_WEAK_OFDM_LOW_THR,
drivers/net/wireless/ath/ath5k/ani.c
170
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_WEAK_OFDM_HIGH_THR,
drivers/net/wireless/ath/ath5k/ani.c
172
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_WEAK_OFDM_HIGH_THR,
drivers/net/wireless/ath/ath5k/ani.c
174
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_WEAK_OFDM_HIGH_THR,
drivers/net/wireless/ath/ath5k/ani.c
176
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_WEAK_OFDM_LOW_THR,
drivers/net/wireless/ath/ath5k/ani.c
180
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_WEAK_OFDM_LOW_THR,
drivers/net/wireless/ath/ath5k/ani.c
183
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_WEAK_OFDM_LOW_THR,
drivers/net/wireless/ath/ath5k/ani.c
186
ah->ani_state.ofdm_weak_sig = on;
drivers/net/wireless/ath/ath5k/ani.c
187
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "turned %s",
drivers/net/wireless/ath/ath5k/ani.c
197
ath5k_ani_set_cck_weak_signal_detection(struct ath5k_hw *ah, bool on)
drivers/net/wireless/ath/ath5k/ani.c
200
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_CCK_CROSSCORR,
drivers/net/wireless/ath/ath5k/ani.c
202
ah->ani_state.cck_weak_sig = on;
drivers/net/wireless/ath/ath5k/ani.c
203
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "turned %s",
drivers/net/wireless/ath/ath5k/ani.c
223
ath5k_ani_raise_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as,
drivers/net/wireless/ath/ath5k/ani.c
226
int rssi = ewma_beacon_rssi_read(&ah->ah_beacon_rssi_avg);
drivers/net/wireless/ath/ath5k/ani.c
228
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "raise immunity (%s)",
drivers/net/wireless/ath/ath5k/ani.c
233
ath5k_ani_set_noise_immunity_level(ah, as->noise_imm_level + 1);
drivers/net/wireless/ath/ath5k/ani.c
239
as->spur_level < ah->ani_state.max_spur_level) {
drivers/net/wireless/ath/ath5k/ani.c
240
ath5k_ani_set_spur_immunity_level(ah, as->spur_level + 1);
drivers/net/wireless/ath/ath5k/ani.c
245
if (ah->opmode == NL80211_IFTYPE_AP) {
drivers/net/wireless/ath/ath5k/ani.c
247
ath5k_ani_set_firstep_level(ah, as->firstep_level + 1);
drivers/net/wireless/ath/ath5k/ani.c
258
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
263
ath5k_ani_set_ofdm_weak_signal_detection(ah, false);
drivers/net/wireless/ath/ath5k/ani.c
264
ath5k_ani_set_spur_immunity_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
269
ath5k_ani_set_firstep_level(ah, as->firstep_level + 1);
drivers/net/wireless/ath/ath5k/ani.c
275
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
278
ath5k_ani_set_ofdm_weak_signal_detection(ah, true);
drivers/net/wireless/ath/ath5k/ani.c
280
ath5k_ani_set_firstep_level(ah, as->firstep_level + 1);
drivers/net/wireless/ath/ath5k/ani.c
282
} else if (ah->ah_current_channel->band == NL80211_BAND_2GHZ) {
drivers/net/wireless/ath/ath5k/ani.c
285
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
288
ath5k_ani_set_ofdm_weak_signal_detection(ah, false);
drivers/net/wireless/ath/ath5k/ani.c
290
ath5k_ani_set_firstep_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
310
ath5k_ani_lower_immunity(struct ath5k_hw *ah, struct ath5k_ani_state *as)
drivers/net/wireless/ath/ath5k/ani.c
312
int rssi = ewma_beacon_rssi_read(&ah->ah_beacon_rssi_avg);
drivers/net/wireless/ath/ath5k/ani.c
314
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "lower immunity");
drivers/net/wireless/ath/ath5k/ani.c
316
if (ah->opmode == NL80211_IFTYPE_AP) {
drivers/net/wireless/ath/ath5k/ani.c
319
ath5k_ani_set_firstep_level(ah, as->firstep_level - 1);
drivers/net/wireless/ath/ath5k/ani.c
332
ath5k_ani_set_ofdm_weak_signal_detection(ah,
drivers/net/wireless/ath/ath5k/ani.c
337
ath5k_ani_set_firstep_level(ah,
drivers/net/wireless/ath/ath5k/ani.c
344
ath5k_ani_set_firstep_level(ah,
drivers/net/wireless/ath/ath5k/ani.c
353
ath5k_ani_set_spur_immunity_level(ah, as->spur_level - 1);
drivers/net/wireless/ath/ath5k/ani.c
359
ath5k_ani_set_noise_immunity_level(ah, as->noise_imm_level - 1);
drivers/net/wireless/ath/ath5k/ani.c
374
ath5k_hw_ani_get_listen_time(struct ath5k_hw *ah, struct ath5k_ani_state *as)
drivers/net/wireless/ath/ath5k/ani.c
376
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/ani.c
406
ath5k_ani_save_and_clear_phy_errors(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ani.c
411
if (!ah->ah_capabilities.cap_has_phyerr_counters)
drivers/net/wireless/ath/ath5k/ani.c
414
ofdm_err = ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT1);
drivers/net/wireless/ath/ath5k/ani.c
415
cck_err = ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT2);
drivers/net/wireless/ath/ath5k/ani.c
418
ath5k_hw_reg_write(ah, ATH5K_PHYERR_CNT_MAX - ATH5K_ANI_OFDM_TRIG_HIGH,
drivers/net/wireless/ath/ath5k/ani.c
420
ath5k_hw_reg_write(ah, ATH5K_PHYERR_CNT_MAX - ATH5K_ANI_CCK_TRIG_HIGH,
drivers/net/wireless/ath/ath5k/ani.c
475
ath5k_ani_calibration(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ani.c
477
struct ath5k_ani_state *as = &ah->ani_state;
drivers/net/wireless/ath/ath5k/ani.c
483
listen = ath5k_hw_ani_get_listen_time(ah, as);
drivers/net/wireless/ath/ath5k/ani.c
489
ath5k_ani_save_and_clear_phy_errors(ah, as);
drivers/net/wireless/ath/ath5k/ani.c
496
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
498
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
505
ath5k_ani_raise_immunity(ah, as, ofdm_flag);
drivers/net/wireless/ath/ath5k/ani.c
511
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
516
ath5k_ani_lower_immunity(ah, as);
drivers/net/wireless/ath/ath5k/ani.c
539
ath5k_ani_mib_intr(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ani.c
541
struct ath5k_ani_state *as = &ah->ani_state;
drivers/net/wireless/ath/ath5k/ani.c
545
if (!ah->ah_capabilities.cap_has_phyerr_counters)
drivers/net/wireless/ath/ath5k/ani.c
549
ath5k_hw_reg_write(ah, 0, AR5K_OFDM_FIL_CNT);
drivers/net/wireless/ath/ath5k/ani.c
550
ath5k_hw_reg_write(ah, 0, AR5K_CCK_FIL_CNT);
drivers/net/wireless/ath/ath5k/ani.c
552
if (ah->ani_state.ani_mode != ATH5K_ANI_MODE_AUTO)
drivers/net/wireless/ath/ath5k/ani.c
558
if (ath5k_ani_save_and_clear_phy_errors(ah, as) == 0)
drivers/net/wireless/ath/ath5k/ani.c
563
tasklet_schedule(&ah->ani_tasklet);
drivers/net/wireless/ath/ath5k/ani.c
576
ath5k_ani_phy_error_report(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ani.c
579
struct ath5k_ani_state *as = &ah->ani_state;
drivers/net/wireless/ath/ath5k/ani.c
584
tasklet_schedule(&ah->ani_tasklet);
drivers/net/wireless/ath/ath5k/ani.c
588
tasklet_schedule(&ah->ani_tasklet);
drivers/net/wireless/ath/ath5k/ani.c
604
ath5k_enable_phy_err_counters(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ani.c
606
ath5k_hw_reg_write(ah, ATH5K_PHYERR_CNT_MAX - ATH5K_ANI_OFDM_TRIG_HIGH,
drivers/net/wireless/ath/ath5k/ani.c
608
ath5k_hw_reg_write(ah, ATH5K_PHYERR_CNT_MAX - ATH5K_ANI_CCK_TRIG_HIGH,
drivers/net/wireless/ath/ath5k/ani.c
610
ath5k_hw_reg_write(ah, AR5K_PHY_ERR_FIL_OFDM, AR5K_PHYERR_CNT1_MASK);
drivers/net/wireless/ath/ath5k/ani.c
611
ath5k_hw_reg_write(ah, AR5K_PHY_ERR_FIL_CCK, AR5K_PHYERR_CNT2_MASK);
drivers/net/wireless/ath/ath5k/ani.c
614
ath5k_hw_reg_write(ah, 0, AR5K_OFDM_FIL_CNT);
drivers/net/wireless/ath/ath5k/ani.c
615
ath5k_hw_reg_write(ah, 0, AR5K_CCK_FIL_CNT);
drivers/net/wireless/ath/ath5k/ani.c
625
ath5k_disable_phy_err_counters(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ani.c
627
ath5k_hw_reg_write(ah, 0, AR5K_PHYERR_CNT1);
drivers/net/wireless/ath/ath5k/ani.c
628
ath5k_hw_reg_write(ah, 0, AR5K_PHYERR_CNT2);
drivers/net/wireless/ath/ath5k/ani.c
629
ath5k_hw_reg_write(ah, 0, AR5K_PHYERR_CNT1_MASK);
drivers/net/wireless/ath/ath5k/ani.c
630
ath5k_hw_reg_write(ah, 0, AR5K_PHYERR_CNT2_MASK);
drivers/net/wireless/ath/ath5k/ani.c
633
ath5k_hw_reg_write(ah, 0, AR5K_OFDM_FIL_CNT);
drivers/net/wireless/ath/ath5k/ani.c
634
ath5k_hw_reg_write(ah, 0, AR5K_CCK_FIL_CNT);
drivers/net/wireless/ath/ath5k/ani.c
645
ath5k_ani_init(struct ath5k_hw *ah, enum ath5k_ani_mode mode)
drivers/net/wireless/ath/ath5k/ani.c
648
if (ah->ah_version < AR5K_AR5212)
drivers/net/wireless/ath/ath5k/ani.c
652
ATH5K_ERR(ah, "ANI mode %d out of range", mode);
drivers/net/wireless/ath/ath5k/ani.c
657
memset(&ah->ani_state, 0, sizeof(ah->ani_state));
drivers/net/wireless/ath/ath5k/ani.c
66
ath5k_ani_set_noise_immunity_level(struct ath5k_hw *ah, int level)
drivers/net/wireless/ath/ath5k/ani.c
660
if (ah->ah_mac_srev < AR5K_SREV_AR2414)
drivers/net/wireless/ath/ath5k/ani.c
661
ah->ani_state.max_spur_level = 7;
drivers/net/wireless/ath/ath5k/ani.c
663
ah->ani_state.max_spur_level = 2;
drivers/net/wireless/ath/ath5k/ani.c
667
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "ANI off\n");
drivers/net/wireless/ath/ath5k/ani.c
669
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
671
ath5k_ani_set_noise_immunity_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
672
ath5k_ani_set_spur_immunity_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
673
ath5k_ani_set_firstep_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
674
ath5k_ani_set_ofdm_weak_signal_detection(ah, true);
drivers/net/wireless/ath/ath5k/ani.c
675
ath5k_ani_set_cck_weak_signal_detection(ah, true);
drivers/net/wireless/ath/ath5k/ani.c
677
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI,
drivers/net/wireless/ath/ath5k/ani.c
679
ath5k_ani_set_noise_immunity_level(ah,
drivers/net/wireless/ath/ath5k/ani.c
681
ath5k_ani_set_spur_immunity_level(ah,
drivers/net/wireless/ath/ath5k/ani.c
682
ah->ani_state.max_spur_level);
drivers/net/wireless/ath/ath5k/ani.c
683
ath5k_ani_set_firstep_level(ah, ATH5K_ANI_MAX_FIRSTEP_LVL);
drivers/net/wireless/ath/ath5k/ani.c
684
ath5k_ani_set_ofdm_weak_signal_detection(ah, false);
drivers/net/wireless/ath/ath5k/ani.c
685
ath5k_ani_set_cck_weak_signal_detection(ah, false);
drivers/net/wireless/ath/ath5k/ani.c
687
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_ANI, "ANI auto\n");
drivers/net/wireless/ath/ath5k/ani.c
688
ath5k_ani_set_noise_immunity_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
689
ath5k_ani_set_spur_immunity_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
690
ath5k_ani_set_firstep_level(ah, 0);
drivers/net/wireless/ath/ath5k/ani.c
691
ath5k_ani_set_ofdm_weak_signal_detection(ah, true);
drivers/net/wireless/ath/ath5k/ani.c
692
ath5k_ani_set_cck_weak_signal_detection(ah, false);
drivers/net/wireless/ath/ath5k/ani.c
700
if (ah->ah_capabilities.cap_has_phyerr_counters)
drivers/net/wireless/ath/ath5k/ani.c
701
ath5k_enable_phy_err_counters(ah);
drivers/net/wireless/ath/ath5k/ani.c
703
ath5k_hw_set_rx_filter(ah, ath5k_hw_get_rx_filter(ah) |
drivers/net/wireless/ath/ath5k/ani.c
706
if (ah->ah_capabilities.cap_has_phyerr_counters)
drivers/net/wireless/ath/ath5k/ani.c
707
ath5k_disable_phy_err_counters(ah);
drivers/net/wireless/ath/ath5k/ani.c
709
ath5k_hw_set_rx_filter(ah, ath5k_hw_get_rx_filter(ah) &
drivers/net/wireless/ath/ath5k/ani.c
713
ah->ani_state.ani_mode = mode;
drivers/net/wireless/ath/ath5k/ani.c
730
ath5k_ani_print_counters(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ani.c
733
pr_notice("ACK fail\t%d\n", ath5k_hw_reg_read(ah, AR5K_ACK_FAIL));
drivers/net/wireless/ath/ath5k/ani.c
734
pr_notice("RTS fail\t%d\n", ath5k_hw_reg_read(ah, AR5K_RTS_FAIL));
drivers/net/wireless/ath/ath5k/ani.c
735
pr_notice("RTS success\t%d\n", ath5k_hw_reg_read(ah, AR5K_RTS_OK));
drivers/net/wireless/ath/ath5k/ani.c
736
pr_notice("FCS error\t%d\n", ath5k_hw_reg_read(ah, AR5K_FCS_FAIL));
drivers/net/wireless/ath/ath5k/ani.c
739
pr_notice("tx\t%d\n", ath5k_hw_reg_read(ah, AR5K_PROFCNT_TX));
drivers/net/wireless/ath/ath5k/ani.c
740
pr_notice("rx\t%d\n", ath5k_hw_reg_read(ah, AR5K_PROFCNT_RX));
drivers/net/wireless/ath/ath5k/ani.c
741
pr_notice("busy\t%d\n", ath5k_hw_reg_read(ah, AR5K_PROFCNT_RXCLR));
drivers/net/wireless/ath/ath5k/ani.c
742
pr_notice("cycles\t%d\n", ath5k_hw_reg_read(ah, AR5K_PROFCNT_CYCLE));
drivers/net/wireless/ath/ath5k/ani.c
745
ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT1));
drivers/net/wireless/ath/ath5k/ani.c
747
ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT2));
drivers/net/wireless/ath/ath5k/ani.c
749
ath5k_hw_reg_read(ah, AR5K_OFDM_FIL_CNT));
drivers/net/wireless/ath/ath5k/ani.c
751
ath5k_hw_reg_read(ah, AR5K_CCK_FIL_CNT));
drivers/net/wireless/ath/ath5k/ani.c
86
ATH5K_ERR(ah, "noise immunity level %d out of range",
drivers/net/wireless/ath/ath5k/ani.c
91
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_DESIRED_SIZE,
drivers/net/wireless/ath/ath5k/ani.c
93
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_AGCCOARSE,
drivers/net/wireless/ath/ath5k/ani.c
95
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_AGCCOARSE,
drivers/net/wireless/ath/ath5k/ani.c
97
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_SIG,
drivers/net/wireless/ath/ath5k/ani.h
104
void ath5k_ani_init(struct ath5k_hw *ah, enum ath5k_ani_mode mode);
drivers/net/wireless/ath/ath5k/ani.h
105
void ath5k_ani_mib_intr(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ani.h
106
void ath5k_ani_calibration(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ani.h
107
void ath5k_ani_phy_error_report(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ani.h
111
void ath5k_ani_set_noise_immunity_level(struct ath5k_hw *ah, int level);
drivers/net/wireless/ath/ath5k/ani.h
112
void ath5k_ani_set_spur_immunity_level(struct ath5k_hw *ah, int level);
drivers/net/wireless/ath/ath5k/ani.h
113
void ath5k_ani_set_firstep_level(struct ath5k_hw *ah, int level);
drivers/net/wireless/ath/ath5k/ani.h
114
void ath5k_ani_set_ofdm_weak_signal_detection(struct ath5k_hw *ah, bool on);
drivers/net/wireless/ath/ath5k/ani.h
115
void ath5k_ani_set_cck_weak_signal_detection(struct ath5k_hw *ah, bool on);
drivers/net/wireless/ath/ath5k/ani.h
117
void ath5k_ani_print_counters(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1182
struct ath5k_hw *ah; /* driver state */
drivers/net/wireless/ath/ath5k/ath5k.h
124
#define AR5K_REG_WRITE_BITS(ah, _reg, _flags, _val) \
drivers/net/wireless/ath/ath5k/ath5k.h
125
ath5k_hw_reg_write(ah, (ath5k_hw_reg_read(ah, _reg) & ~(_flags)) | \
drivers/net/wireless/ath/ath5k/ath5k.h
128
#define AR5K_REG_MASKED_BITS(ah, _reg, _flags, _mask) \
drivers/net/wireless/ath/ath5k/ath5k.h
129
ath5k_hw_reg_write(ah, (ath5k_hw_reg_read(ah, _reg) & \
drivers/net/wireless/ath/ath5k/ath5k.h
132
#define AR5K_REG_ENABLE_BITS(ah, _reg, _flags) \
drivers/net/wireless/ath/ath5k/ath5k.h
133
ath5k_hw_reg_write(ah, ath5k_hw_reg_read(ah, _reg) | (_flags), _reg)
drivers/net/wireless/ath/ath5k/ath5k.h
135
#define AR5K_REG_DISABLE_BITS(ah, _reg, _flags) \
drivers/net/wireless/ath/ath5k/ath5k.h
136
ath5k_hw_reg_write(ah, ath5k_hw_reg_read(ah, _reg) & ~(_flags), _reg)
drivers/net/wireless/ath/ath5k/ath5k.h
139
#define AR5K_REG_READ_Q(ah, _reg, _queue) \
drivers/net/wireless/ath/ath5k/ath5k.h
140
(ath5k_hw_reg_read(ah, _reg) & (1 << _queue)) \
drivers/net/wireless/ath/ath5k/ath5k.h
142
#define AR5K_REG_WRITE_Q(ah, _reg, _queue) \
drivers/net/wireless/ath/ath5k/ath5k.h
143
ath5k_hw_reg_write(ah, (1 << _queue), _reg)
drivers/net/wireless/ath/ath5k/ath5k.h
1463
int (*eeprom_read_mac)(struct ath5k_hw *ah, u8 *mac);
drivers/net/wireless/ath/ath5k/ath5k.h
1472
int ath5k_hw_init(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1473
void ath5k_hw_deinit(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1475
int ath5k_sysfs_register(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1476
void ath5k_sysfs_unregister(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1479
int ath5k_hw_read_srev(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1482
int ath5k_init_leds(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1483
void ath5k_led_enable(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1484
void ath5k_led_off(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1485
void ath5k_unregister_leds(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1489
int ath5k_hw_nic_wakeup(struct ath5k_hw *ah, struct ieee80211_channel *channel);
drivers/net/wireless/ath/ath5k/ath5k.h
1490
int ath5k_hw_on_hold(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1491
int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
drivers/net/wireless/ath/ath5k/ath5k.h
1493
int ath5k_hw_register_timeout(struct ath5k_hw *ah, u32 reg, u32 flag, u32 val,
drivers/net/wireless/ath/ath5k/ath5k.h
1499
unsigned int ath5k_hw_htoclock(struct ath5k_hw *ah, unsigned int usec);
drivers/net/wireless/ath/ath5k/ath5k.h
1500
unsigned int ath5k_hw_clocktoh(struct ath5k_hw *ah, unsigned int clock);
drivers/net/wireless/ath/ath5k/ath5k.h
1501
void ath5k_hw_set_clockrate(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1505
void ath5k_hw_start_rx_dma(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1506
u32 ath5k_hw_get_rxdp(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1507
int ath5k_hw_set_rxdp(struct ath5k_hw *ah, u32 phys_addr);
drivers/net/wireless/ath/ath5k/ath5k.h
1508
int ath5k_hw_start_tx_dma(struct ath5k_hw *ah, unsigned int queue);
drivers/net/wireless/ath/ath5k/ath5k.h
1509
int ath5k_hw_stop_beacon_queue(struct ath5k_hw *ah, unsigned int queue);
drivers/net/wireless/ath/ath5k/ath5k.h
1510
u32 ath5k_hw_get_txdp(struct ath5k_hw *ah, unsigned int queue);
drivers/net/wireless/ath/ath5k/ath5k.h
1511
int ath5k_hw_set_txdp(struct ath5k_hw *ah, unsigned int queue,
drivers/net/wireless/ath/ath5k/ath5k.h
1513
int ath5k_hw_update_tx_triglevel(struct ath5k_hw *ah, bool increase);
drivers/net/wireless/ath/ath5k/ath5k.h
1515
bool ath5k_hw_is_intr_pending(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1516
int ath5k_hw_get_isr(struct ath5k_hw *ah, enum ath5k_int *interrupt_mask);
drivers/net/wireless/ath/ath5k/ath5k.h
1517
enum ath5k_int ath5k_hw_set_imr(struct ath5k_hw *ah, enum ath5k_int new_mask);
drivers/net/wireless/ath/ath5k/ath5k.h
1518
void ath5k_hw_update_mib_counters(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1520
void ath5k_hw_dma_init(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1521
int ath5k_hw_dma_stop(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1524
int ath5k_eeprom_init(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1525
void ath5k_eeprom_detach(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1526
int ath5k_eeprom_mode_from_channel(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ath5k.h
1531
int ath5k_hw_get_frame_duration(struct ath5k_hw *ah, enum nl80211_band band,
drivers/net/wireless/ath/ath5k/ath5k.h
1533
unsigned int ath5k_hw_get_default_slottime(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1534
unsigned int ath5k_hw_get_default_sifs(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1535
int ath5k_hw_set_opmode(struct ath5k_hw *ah, enum nl80211_iftype opmode);
drivers/net/wireless/ath/ath5k/ath5k.h
1536
void ath5k_hw_set_coverage_class(struct ath5k_hw *ah, u8 coverage_class);
drivers/net/wireless/ath/ath5k/ath5k.h
1538
int ath5k_hw_set_lladdr(struct ath5k_hw *ah, const u8 *mac);
drivers/net/wireless/ath/ath5k/ath5k.h
1539
void ath5k_hw_set_bssid(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1540
void ath5k_hw_set_bssid_mask(struct ath5k_hw *ah, const u8 *mask);
drivers/net/wireless/ath/ath5k/ath5k.h
1541
void ath5k_hw_set_mcast_filter(struct ath5k_hw *ah, u32 filter0, u32 filter1);
drivers/net/wireless/ath/ath5k/ath5k.h
1542
u32 ath5k_hw_get_rx_filter(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1543
void ath5k_hw_set_rx_filter(struct ath5k_hw *ah, u32 filter);
drivers/net/wireless/ath/ath5k/ath5k.h
1545
void ath5k_hw_start_rx_pcu(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1546
void ath5k_hw_stop_rx_pcu(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1548
u64 ath5k_hw_get_tsf64(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1549
void ath5k_hw_set_tsf64(struct ath5k_hw *ah, u64 tsf64);
drivers/net/wireless/ath/ath5k/ath5k.h
1550
void ath5k_hw_reset_tsf(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1551
void ath5k_hw_init_beacon_timers(struct ath5k_hw *ah, u32 next_beacon,
drivers/net/wireless/ath/ath5k/ath5k.h
1553
bool ath5k_hw_check_beacon_timers(struct ath5k_hw *ah, int intval);
drivers/net/wireless/ath/ath5k/ath5k.h
1555
void ath5k_hw_pcu_init(struct ath5k_hw *ah, enum nl80211_iftype op_mode);
drivers/net/wireless/ath/ath5k/ath5k.h
1558
int ath5k_hw_get_tx_queueprops(struct ath5k_hw *ah, int queue,
drivers/net/wireless/ath/ath5k/ath5k.h
1560
int ath5k_hw_set_tx_queueprops(struct ath5k_hw *ah, int queue,
drivers/net/wireless/ath/ath5k/ath5k.h
1562
int ath5k_hw_setup_tx_queue(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ath5k.h
1565
void ath5k_hw_set_tx_retry_limits(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ath5k.h
1567
u32 ath5k_hw_num_tx_pending(struct ath5k_hw *ah, unsigned int queue);
drivers/net/wireless/ath/ath5k/ath5k.h
1568
void ath5k_hw_release_tx_queue(struct ath5k_hw *ah, unsigned int queue);
drivers/net/wireless/ath/ath5k/ath5k.h
1569
int ath5k_hw_reset_tx_queue(struct ath5k_hw *ah, unsigned int queue);
drivers/net/wireless/ath/ath5k/ath5k.h
1570
int ath5k_hw_set_ifs_intervals(struct ath5k_hw *ah, unsigned int slot_time);
drivers/net/wireless/ath/ath5k/ath5k.h
1572
int ath5k_hw_init_queues(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1575
int ath5k_hw_init_desc_functions(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1576
int ath5k_hw_setup_rx_desc(struct ath5k_hw *ah, struct ath5k_desc *desc,
drivers/net/wireless/ath/ath5k/ath5k.h
1578
int ath5k_hw_setup_mrr_tx_desc(struct ath5k_hw *ah, struct ath5k_desc *desc,
drivers/net/wireless/ath/ath5k/ath5k.h
1584
void ath5k_hw_set_ledstate(struct ath5k_hw *ah, unsigned int state);
drivers/net/wireless/ath/ath5k/ath5k.h
1585
int ath5k_hw_set_gpio_input(struct ath5k_hw *ah, u32 gpio);
drivers/net/wireless/ath/ath5k/ath5k.h
1586
int ath5k_hw_set_gpio_output(struct ath5k_hw *ah, u32 gpio);
drivers/net/wireless/ath/ath5k/ath5k.h
1587
u32 ath5k_hw_get_gpio(struct ath5k_hw *ah, u32 gpio);
drivers/net/wireless/ath/ath5k/ath5k.h
1588
int ath5k_hw_set_gpio(struct ath5k_hw *ah, u32 gpio, u32 val);
drivers/net/wireless/ath/ath5k/ath5k.h
1589
void ath5k_hw_set_gpio_intr(struct ath5k_hw *ah, unsigned int gpio,
drivers/net/wireless/ath/ath5k/ath5k.h
1594
void ath5k_rfkill_hw_start(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1595
void ath5k_rfkill_hw_stop(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1599
int ath5k_hw_set_capabilities(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1600
int ath5k_hw_enable_pspoll(struct ath5k_hw *ah, u8 *bssid, u16 assoc_id);
drivers/net/wireless/ath/ath5k/ath5k.h
1601
int ath5k_hw_disable_pspoll(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1605
int ath5k_hw_write_initvals(struct ath5k_hw *ah, u8 mode, bool change_channel);
drivers/net/wireless/ath/ath5k/ath5k.h
1610
u16 ath5k_hw_radio_revision(struct ath5k_hw *ah, enum nl80211_band band);
drivers/net/wireless/ath/ath5k/ath5k.h
1611
int ath5k_hw_phy_disable(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1613
enum ath5k_rfgain ath5k_hw_gainf_calibrate(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1614
int ath5k_hw_rfgain_opt_init(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1616
bool ath5k_channel_ok(struct ath5k_hw *ah, struct ieee80211_channel *channel);
drivers/net/wireless/ath/ath5k/ath5k.h
1618
void ath5k_hw_init_nfcal_hist(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1619
int ath5k_hw_phy_calibrate(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ath5k.h
1621
void ath5k_hw_update_noise_floor(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/ath5k.h
1623
bool ath5k_hw_chan_has_spur_noise(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/ath5k.h
1626
void ath5k_hw_set_antenna_mode(struct ath5k_hw *ah, u8 ant_mode);
drivers/net/wireless/ath/ath5k/ath5k.h
1627
void ath5k_hw_set_antenna_switch(struct ath5k_hw *ah, u8 ee_mode);
drivers/net/wireless/ath/ath5k/ath5k.h
1629
int ath5k_hw_set_txpower_limit(struct ath5k_hw *ah, u8 txpower);
drivers/net/wireless/ath/ath5k/ath5k.h
1631
int ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
drivers/net/wireless/ath/ath5k/ath5k.h
1638
static inline struct ath_common *ath5k_hw_common(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ath5k.h
1640
return &ah->common;
drivers/net/wireless/ath/ath5k/ath5k.h
1643
static inline struct ath_regulatory *ath5k_hw_regulatory(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ath5k.h
1645
return &(ath5k_hw_common(ah)->regulatory);
drivers/net/wireless/ath/ath5k/ath5k.h
1651
static inline void __iomem *ath5k_ahb_reg(struct ath5k_hw *ah, u16 reg)
drivers/net/wireless/ath/ath5k/ath5k.h
1656
(ah->ah_mac_srev >= AR5K_SREV_AR2315_R6)))
drivers/net/wireless/ath/ath5k/ath5k.h
1659
return ah->iobase + reg;
drivers/net/wireless/ath/ath5k/ath5k.h
1662
static inline u32 ath5k_hw_reg_read(struct ath5k_hw *ah, u16 reg)
drivers/net/wireless/ath/ath5k/ath5k.h
1664
return ioread32(ath5k_ahb_reg(ah, reg));
drivers/net/wireless/ath/ath5k/ath5k.h
1667
static inline void ath5k_hw_reg_write(struct ath5k_hw *ah, u32 val, u16 reg)
drivers/net/wireless/ath/ath5k/ath5k.h
1669
iowrite32(val, ath5k_ahb_reg(ah, reg));
drivers/net/wireless/ath/ath5k/ath5k.h
1674
static inline u32 ath5k_hw_reg_read(struct ath5k_hw *ah, u16 reg)
drivers/net/wireless/ath/ath5k/ath5k.h
1676
return ioread32(ah->iobase + reg);
drivers/net/wireless/ath/ath5k/ath5k.h
1679
static inline void ath5k_hw_reg_write(struct ath5k_hw *ah, u32 val, u16 reg)
drivers/net/wireless/ath/ath5k/ath5k.h
1681
iowrite32(val, ah->iobase + reg);
drivers/net/wireless/ath/ath5k/ath5k.h
1686
static inline enum ath_bus_type ath5k_get_bus_type(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/ath5k.h
1688
return ath5k_hw_common(ah)->bus_ops->ath_bus_type;
drivers/net/wireless/ath/ath5k/ath5k.h
1696
static inline bool ath5k_hw_nvram_read(struct ath5k_hw *ah, u32 off, u16 *data)
drivers/net/wireless/ath/ath5k/ath5k.h
1698
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/ath5k.h
689
(((ah->ah_txpower.txp_rates_power_table[(_r)]) & 0x3f) << (_v)) \
drivers/net/wireless/ath/ath5k/ath5k.h
693
(ah->ah_txpower.txp_rates_power_table[(_r)] & 0x3f) << (_v) \
drivers/net/wireless/ath/ath5k/ath5k.h
84
_ath5k_printk(const struct ath5k_hw *ah, const char *level,
drivers/net/wireless/ath/ath5k/attach.c
104
int ath5k_hw_init(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/attach.c
107
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/attach.c
108
struct pci_dev *pdev = ah->pdev;
drivers/net/wireless/ath/ath5k/attach.c
116
ah->ah_bwmode = AR5K_BWMODE_DEFAULT;
drivers/net/wireless/ath/ath5k/attach.c
117
ah->ah_txpower.txp_tpc = AR5K_TUNE_TPC_TXPOWER;
drivers/net/wireless/ath/ath5k/attach.c
118
ah->ah_imr = 0;
drivers/net/wireless/ath/ath5k/attach.c
119
ah->ah_retry_short = AR5K_INIT_RETRY_SHORT;
drivers/net/wireless/ath/ath5k/attach.c
120
ah->ah_retry_long = AR5K_INIT_RETRY_LONG;
drivers/net/wireless/ath/ath5k/attach.c
121
ah->ah_ant_mode = AR5K_ANTMODE_DEFAULT;
drivers/net/wireless/ath/ath5k/attach.c
122
ah->ah_noise_floor = -95; /* until first NF calibration is run */
drivers/net/wireless/ath/ath5k/attach.c
123
ah->ani_state.ani_mode = ATH5K_ANI_MODE_AUTO;
drivers/net/wireless/ath/ath5k/attach.c
124
ah->ah_current_channel = &ah->channels[0];
drivers/net/wireless/ath/ath5k/attach.c
129
ath5k_hw_read_srev(ah);
drivers/net/wireless/ath/ath5k/attach.c
130
srev = ah->ah_mac_srev;
drivers/net/wireless/ath/ath5k/attach.c
132
ah->ah_version = AR5K_AR5210;
drivers/net/wireless/ath/ath5k/attach.c
134
ah->ah_version = AR5K_AR5211;
drivers/net/wireless/ath/ath5k/attach.c
136
ah->ah_version = AR5K_AR5212;
drivers/net/wireless/ath/ath5k/attach.c
139
ah->ah_mac_version = AR5K_REG_MS(srev, AR5K_SREV_VER);
drivers/net/wireless/ath/ath5k/attach.c
142
ret = ath5k_hw_init_desc_functions(ah);
drivers/net/wireless/ath/ath5k/attach.c
147
ret = ath5k_hw_nic_wakeup(ah, NULL);
drivers/net/wireless/ath/ath5k/attach.c
152
ah->ah_phy_revision = ath5k_hw_reg_read(ah, AR5K_PHY_CHIP_ID) &
drivers/net/wireless/ath/ath5k/attach.c
154
ah->ah_radio_5ghz_revision = ath5k_hw_radio_revision(ah,
drivers/net/wireless/ath/ath5k/attach.c
158
switch (ah->ah_radio_5ghz_revision & 0xf0) {
drivers/net/wireless/ath/ath5k/attach.c
160
ah->ah_radio = AR5K_RF5111;
drivers/net/wireless/ath/ath5k/attach.c
161
ah->ah_single_chip = false;
drivers/net/wireless/ath/ath5k/attach.c
162
ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah,
drivers/net/wireless/ath/ath5k/attach.c
167
ah->ah_radio = AR5K_RF5112;
drivers/net/wireless/ath/ath5k/attach.c
168
ah->ah_single_chip = false;
drivers/net/wireless/ath/ath5k/attach.c
169
ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah,
drivers/net/wireless/ath/ath5k/attach.c
173
ah->ah_radio = AR5K_RF2413;
drivers/net/wireless/ath/ath5k/attach.c
174
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
177
ah->ah_radio = AR5K_RF5413;
drivers/net/wireless/ath/ath5k/attach.c
178
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
181
ah->ah_radio = AR5K_RF2316;
drivers/net/wireless/ath/ath5k/attach.c
182
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
185
ah->ah_radio = AR5K_RF2317;
drivers/net/wireless/ath/ath5k/attach.c
186
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
189
if (ah->ah_mac_version == AR5K_SREV_AR2425 ||
drivers/net/wireless/ath/ath5k/attach.c
190
ah->ah_mac_version == AR5K_SREV_AR2417) {
drivers/net/wireless/ath/ath5k/attach.c
191
ah->ah_radio = AR5K_RF2425;
drivers/net/wireless/ath/ath5k/attach.c
192
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
194
ah->ah_radio = AR5K_RF5413;
drivers/net/wireless/ath/ath5k/attach.c
195
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
200
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/attach.c
201
ah->ah_radio = AR5K_RF5110;
drivers/net/wireless/ath/ath5k/attach.c
202
ah->ah_single_chip = false;
drivers/net/wireless/ath/ath5k/attach.c
203
} else if (ah->ah_version == AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/attach.c
204
ah->ah_radio = AR5K_RF5111;
drivers/net/wireless/ath/ath5k/attach.c
205
ah->ah_single_chip = false;
drivers/net/wireless/ath/ath5k/attach.c
206
ah->ah_radio_2ghz_revision = ath5k_hw_radio_revision(ah,
drivers/net/wireless/ath/ath5k/attach.c
208
} else if (ah->ah_mac_version == (AR5K_SREV_AR2425 >> 4) ||
drivers/net/wireless/ath/ath5k/attach.c
209
ah->ah_mac_version == (AR5K_SREV_AR2417 >> 4) ||
drivers/net/wireless/ath/ath5k/attach.c
210
ah->ah_phy_revision == AR5K_SREV_PHY_2425) {
drivers/net/wireless/ath/ath5k/attach.c
211
ah->ah_radio = AR5K_RF2425;
drivers/net/wireless/ath/ath5k/attach.c
212
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
213
ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2425;
drivers/net/wireless/ath/ath5k/attach.c
215
ah->ah_phy_revision == AR5K_SREV_PHY_5212B) {
drivers/net/wireless/ath/ath5k/attach.c
216
ah->ah_radio = AR5K_RF5112;
drivers/net/wireless/ath/ath5k/attach.c
217
ah->ah_single_chip = false;
drivers/net/wireless/ath/ath5k/attach.c
218
ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_5112B;
drivers/net/wireless/ath/ath5k/attach.c
219
} else if (ah->ah_mac_version == (AR5K_SREV_AR2415 >> 4) ||
drivers/net/wireless/ath/ath5k/attach.c
220
ah->ah_mac_version == (AR5K_SREV_AR2315_R6 >> 4)) {
drivers/net/wireless/ath/ath5k/attach.c
221
ah->ah_radio = AR5K_RF2316;
drivers/net/wireless/ath/ath5k/attach.c
222
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
223
ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2316;
drivers/net/wireless/ath/ath5k/attach.c
224
} else if (ah->ah_mac_version == (AR5K_SREV_AR5414 >> 4) ||
drivers/net/wireless/ath/ath5k/attach.c
225
ah->ah_phy_revision == AR5K_SREV_PHY_5413) {
drivers/net/wireless/ath/ath5k/attach.c
226
ah->ah_radio = AR5K_RF5413;
drivers/net/wireless/ath/ath5k/attach.c
227
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
228
ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_5413;
drivers/net/wireless/ath/ath5k/attach.c
229
} else if (ah->ah_mac_version == (AR5K_SREV_AR2414 >> 4) ||
drivers/net/wireless/ath/ath5k/attach.c
230
ah->ah_phy_revision == AR5K_SREV_PHY_2413) {
drivers/net/wireless/ath/ath5k/attach.c
231
ah->ah_radio = AR5K_RF2413;
drivers/net/wireless/ath/ath5k/attach.c
232
ah->ah_single_chip = true;
drivers/net/wireless/ath/ath5k/attach.c
233
ah->ah_radio_5ghz_revision = AR5K_SREV_RAD_2413;
drivers/net/wireless/ath/ath5k/attach.c
235
ATH5K_ERR(ah, "Couldn't identify radio revision.\n");
drivers/net/wireless/ath/ath5k/attach.c
244
ATH5K_ERR(ah, "Device not yet supported.\n");
drivers/net/wireless/ath/ath5k/attach.c
252
ret = ath5k_hw_post(ah);
drivers/net/wireless/ath/ath5k/attach.c
258
AR5K_REG_ENABLE_BITS(ah, AR5K_PCICFG, AR5K_PCICFG_RETRY_FIX);
drivers/net/wireless/ath/ath5k/attach.c
264
ret = ath5k_eeprom_init(ah);
drivers/net/wireless/ath/ath5k/attach.c
266
ATH5K_ERR(ah, "unable to init EEPROM\n");
drivers/net/wireless/ath/ath5k/attach.c
270
ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/attach.c
275
if ((ah->ah_version == AR5K_AR5212) && pdev && (pci_is_pcie(pdev))) {
drivers/net/wireless/ath/ath5k/attach.c
276
ath5k_hw_reg_write(ah, 0x9248fc00, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
277
ath5k_hw_reg_write(ah, 0x24924924, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
280
ath5k_hw_reg_write(ah, 0x28000039, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
281
ath5k_hw_reg_write(ah, 0x53160824, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
287
ath5k_hw_reg_write(ah, 0xe5980579, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
289
ath5k_hw_reg_write(ah, 0xf6800579, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
292
ath5k_hw_reg_write(ah, 0x001defff, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
295
ath5k_hw_reg_write(ah, 0x1aaabe40, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
296
ath5k_hw_reg_write(ah, 0xbe105554, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
297
ath5k_hw_reg_write(ah, 0x000e3007, AR5K_PCIE_SERDES);
drivers/net/wireless/ath/ath5k/attach.c
300
ath5k_hw_reg_write(ah, 0x00000000, AR5K_PCIE_SERDES_RESET);
drivers/net/wireless/ath/ath5k/attach.c
305
ret = ath5k_hw_set_capabilities(ah);
drivers/net/wireless/ath/ath5k/attach.c
307
ATH5K_ERR(ah, "unable to get device capabilities\n");
drivers/net/wireless/ath/ath5k/attach.c
312
common->keymax = (ah->ah_version == AR5K_AR5210 ?
drivers/net/wireless/ath/ath5k/attach.c
322
AR5K_REG_ENABLE_BITS(ah, AR5K_MISC_MODE,
drivers/net/wireless/ath/ath5k/attach.c
327
ath5k_hw_set_lladdr(ah, zero_mac);
drivers/net/wireless/ath/ath5k/attach.c
331
ath5k_hw_set_bssid(ah);
drivers/net/wireless/ath/ath5k/attach.c
332
ath5k_hw_set_opmode(ah, ah->opmode);
drivers/net/wireless/ath/ath5k/attach.c
334
ath5k_hw_rfgain_opt_init(ah);
drivers/net/wireless/ath/ath5k/attach.c
336
ath5k_hw_init_nfcal_hist(ah);
drivers/net/wireless/ath/ath5k/attach.c
339
ath5k_hw_set_ledstate(ah, AR5K_LED_INIT);
drivers/net/wireless/ath/ath5k/attach.c
35
static int ath5k_hw_post(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/attach.c
350
void ath5k_hw_deinit(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/attach.c
352
__set_bit(ATH_STAT_INVALID, ah->status);
drivers/net/wireless/ath/ath5k/attach.c
354
kfree(ah->ah_rf_banks);
drivers/net/wireless/ath/ath5k/attach.c
356
ath5k_eeprom_detach(ah);
drivers/net/wireless/ath/ath5k/attach.c
54
init_val = ath5k_hw_reg_read(ah, cur_reg);
drivers/net/wireless/ath/ath5k/attach.c
58
ath5k_hw_reg_write(ah, var_pattern, cur_reg);
drivers/net/wireless/ath/ath5k/attach.c
59
cur_val = ath5k_hw_reg_read(ah, cur_reg);
drivers/net/wireless/ath/ath5k/attach.c
62
ATH5K_ERR(ah, "POST Failed !!!\n");
drivers/net/wireless/ath/ath5k/attach.c
68
ath5k_hw_reg_write(ah, var_pattern, cur_reg);
drivers/net/wireless/ath/ath5k/attach.c
73
ath5k_hw_reg_write(ah, var_pattern, cur_reg);
drivers/net/wireless/ath/ath5k/attach.c
74
cur_val = ath5k_hw_reg_read(ah, cur_reg);
drivers/net/wireless/ath/ath5k/attach.c
77
ATH5K_ERR(ah, "POST Failed !!!\n");
drivers/net/wireless/ath/ath5k/attach.c
83
ath5k_hw_reg_write(ah, var_pattern, cur_reg);
drivers/net/wireless/ath/ath5k/attach.c
87
ath5k_hw_reg_write(ah, init_val, cur_reg);
drivers/net/wireless/ath/ath5k/base.c
1000
ath5k_rxbuf_free_skb(ah, bf);
drivers/net/wireless/ath/ath5k/base.c
1001
list_for_each_entry(bf, &ah->bcbuf, list)
drivers/net/wireless/ath/ath5k/base.c
1002
ath5k_txbuf_free_skb(ah, bf);
drivers/net/wireless/ath/ath5k/base.c
1005
dma_free_coherent(ah->dev, ah->desc_len, ah->desc, ah->desc_daddr);
drivers/net/wireless/ath/ath5k/base.c
1006
ah->desc = NULL;
drivers/net/wireless/ath/ath5k/base.c
1007
ah->desc_daddr = 0;
drivers/net/wireless/ath/ath5k/base.c
1009
kfree(ah->bufptr);
drivers/net/wireless/ath/ath5k/base.c
1010
ah->bufptr = NULL;
drivers/net/wireless/ath/ath5k/base.c
1019
ath5k_txq_setup(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/base.c
1047
qnum = ath5k_hw_setup_tx_queue(ah, qtype, &qi);
drivers/net/wireless/ath/ath5k/base.c
1055
txq = &ah->txqs[qnum];
drivers/net/wireless/ath/ath5k/base.c
1067
return &ah->txqs[qnum];
drivers/net/wireless/ath/ath5k/base.c
1071
ath5k_beaconq_setup(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1083
return ath5k_hw_setup_tx_queue(ah, AR5K_TX_QUEUE_BEACON, &qi);
drivers/net/wireless/ath/ath5k/base.c
1087
ath5k_beaconq_config(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1092
ret = ath5k_hw_get_tx_queueprops(ah, ah->bhalq, &qi);
drivers/net/wireless/ath/ath5k/base.c
1096
if (ah->opmode == NL80211_IFTYPE_AP ||
drivers/net/wireless/ath/ath5k/base.c
1097
ah->opmode == NL80211_IFTYPE_MESH_POINT) {
drivers/net/wireless/ath/ath5k/base.c
1105
} else if (ah->opmode == NL80211_IFTYPE_ADHOC) {
drivers/net/wireless/ath/ath5k/base.c
1114
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
1118
ret = ath5k_hw_set_tx_queueprops(ah, ah->bhalq, &qi);
drivers/net/wireless/ath/ath5k/base.c
1120
ATH5K_ERR(ah, "%s: unable to update parameters for beacon "
drivers/net/wireless/ath/ath5k/base.c
1124
ret = ath5k_hw_reset_tx_queue(ah, ah->bhalq); /* push to h/w */
drivers/net/wireless/ath/ath5k/base.c
1129
ret = ath5k_hw_get_tx_queueprops(ah, AR5K_TX_QUEUE_ID_CAB, &qi);
drivers/net/wireless/ath/ath5k/base.c
1133
qi.tqi_ready_time = (ah->bintval * 80) / 100;
drivers/net/wireless/ath/ath5k/base.c
1134
ret = ath5k_hw_set_tx_queueprops(ah, AR5K_TX_QUEUE_ID_CAB, &qi);
drivers/net/wireless/ath/ath5k/base.c
1138
ret = ath5k_hw_reset_tx_queue(ah, AR5K_TX_QUEUE_ID_CAB);
drivers/net/wireless/ath/ath5k/base.c
1155
ath5k_drain_tx_buffs(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1161
for (i = 0; i < ARRAY_SIZE(ah->txqs); i++) {
drivers/net/wireless/ath/ath5k/base.c
1162
if (ah->txqs[i].setup) {
drivers/net/wireless/ath/ath5k/base.c
1163
txq = &ah->txqs[i];
drivers/net/wireless/ath/ath5k/base.c
1166
ath5k_debug_printtxbuf(ah, bf);
drivers/net/wireless/ath/ath5k/base.c
1168
ath5k_txbuf_free_skb(ah, bf);
drivers/net/wireless/ath/ath5k/base.c
1170
spin_lock(&ah->txbuflock);
drivers/net/wireless/ath/ath5k/base.c
1171
list_move_tail(&bf->list, &ah->txbuf);
drivers/net/wireless/ath/ath5k/base.c
1172
ah->txbuf_len++;
drivers/net/wireless/ath/ath5k/base.c
1174
spin_unlock(&ah->txbuflock);
drivers/net/wireless/ath/ath5k/base.c
1184
ath5k_txq_release(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1186
struct ath5k_txq *txq = ah->txqs;
drivers/net/wireless/ath/ath5k/base.c
1189
for (i = 0; i < ARRAY_SIZE(ah->txqs); i++, txq++)
drivers/net/wireless/ath/ath5k/base.c
1191
ath5k_hw_release_tx_queue(ah, txq->qnum);
drivers/net/wireless/ath/ath5k/base.c
1205
ath5k_rx_start(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1207
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
1213
ATH5K_DBG(ah, ATH5K_DEBUG_RESET, "cachelsz %u rx_bufsize %u\n",
drivers/net/wireless/ath/ath5k/base.c
1216
spin_lock_bh(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/base.c
1217
ah->rxlink = NULL;
drivers/net/wireless/ath/ath5k/base.c
1218
list_for_each_entry(bf, &ah->rxbuf, list) {
drivers/net/wireless/ath/ath5k/base.c
1219
ret = ath5k_rxbuf_setup(ah, bf);
drivers/net/wireless/ath/ath5k/base.c
1221
spin_unlock_bh(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/base.c
1225
bf = list_first_entry(&ah->rxbuf, struct ath5k_buf, list);
drivers/net/wireless/ath/ath5k/base.c
1226
ath5k_hw_set_rxdp(ah, bf->daddr);
drivers/net/wireless/ath/ath5k/base.c
1227
spin_unlock_bh(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/base.c
1229
ath5k_hw_start_rx_dma(ah); /* enable recv descriptors */
drivers/net/wireless/ath/ath5k/base.c
1230
ath5k_update_bssid_mask_and_opmode(ah, NULL); /* set filters, etc. */
drivers/net/wireless/ath/ath5k/base.c
1231
ath5k_hw_start_rx_pcu(ah); /* re-enable PCU/DMA engine */
drivers/net/wireless/ath/ath5k/base.c
1246
ath5k_rx_stop(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1249
ath5k_hw_set_rx_filter(ah, 0); /* clear recv filter */
drivers/net/wireless/ath/ath5k/base.c
1250
ath5k_hw_stop_rx_pcu(ah); /* disable PCU */
drivers/net/wireless/ath/ath5k/base.c
1252
ath5k_debug_printrxbuffs(ah);
drivers/net/wireless/ath/ath5k/base.c
1256
ath5k_rx_decrypted(struct ath5k_hw *ah, struct sk_buff *skb,
drivers/net/wireless/ath/ath5k/base.c
1259
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
1285
ath5k_check_ibss_tsf(struct ath5k_hw *ah, struct sk_buff *skb,
drivers/net/wireless/ath/ath5k/base.c
1298
tsf = ath5k_hw_get_tsf64(ah);
drivers/net/wireless/ath/ath5k/base.c
1302
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
1321
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
1334
if (hw_tu >= ah->nexttbtt)
drivers/net/wireless/ath/ath5k/base.c
1335
ath5k_beacon_update_timers(ah, bc_tstamp);
drivers/net/wireless/ath/ath5k/base.c
1340
if (!ath5k_hw_check_beacon_timers(ah, ah->bintval)) {
drivers/net/wireless/ath/ath5k/base.c
1341
ath5k_beacon_update_timers(ah, bc_tstamp);
drivers/net/wireless/ath/ath5k/base.c
1342
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
1416
ath5k_receive_frame(struct ath5k_hw *ah, struct sk_buff *skb,
drivers/net/wireless/ath/ath5k/base.c
1420
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
1442
rxs->mactime = ath5k_extend_tsf(ah, rs->rs_tstamp);
drivers/net/wireless/ath/ath5k/base.c
1445
rxs->freq = ah->curchan->center_freq;
drivers/net/wireless/ath/ath5k/base.c
1446
rxs->band = ah->curchan->band;
drivers/net/wireless/ath/ath5k/base.c
1448
rxs->signal = ah->ah_noise_floor + rs->rs_rssi;
drivers/net/wireless/ath/ath5k/base.c
1453
ah->stats.antenna_rx[rs->rs_antenna]++;
drivers/net/wireless/ath/ath5k/base.c
1455
ah->stats.antenna_rx[0]++; /* invalid */
drivers/net/wireless/ath/ath5k/base.c
1457
rxs->rate_idx = ath5k_hw_to_driver_rix(ah, rs->rs_rate);
drivers/net/wireless/ath/ath5k/base.c
1458
rxs->flag |= ath5k_rx_decrypted(ah, skb, rs);
drivers/net/wireless/ath/ath5k/base.c
1459
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/base.c
1471
ah->sbands[ah->curchan->band].bitrates[rxs->rate_idx].hw_value_short)
drivers/net/wireless/ath/ath5k/base.c
1474
trace_ath5k_rx(ah, skb);
drivers/net/wireless/ath/ath5k/base.c
1477
ewma_beacon_rssi_add(&ah->ah_beacon_rssi_avg, rs->rs_rssi);
drivers/net/wireless/ath/ath5k/base.c
1480
if (ah->opmode == NL80211_IFTYPE_ADHOC)
drivers/net/wireless/ath/ath5k/base.c
1481
ath5k_check_ibss_tsf(ah, skb, rxs);
drivers/net/wireless/ath/ath5k/base.c
1484
ieee80211_rx(ah->hw, skb);
drivers/net/wireless/ath/ath5k/base.c
1493
ath5k_receive_frame_ok(struct ath5k_hw *ah, struct ath5k_rx_status *rs)
drivers/net/wireless/ath/ath5k/base.c
1495
ah->stats.rx_all_count++;
drivers/net/wireless/ath/ath5k/base.c
1496
ah->stats.rx_bytes_count += rs->rs_datalen;
drivers/net/wireless/ath/ath5k/base.c
1502
ah->stats.rxerr_crc++;
drivers/net/wireless/ath/ath5k/base.c
1504
ah->stats.rxerr_fifo++;
drivers/net/wireless/ath/ath5k/base.c
1506
ah->stats.rxerr_phy++;
drivers/net/wireless/ath/ath5k/base.c
1508
ah->stats.rxerr_phy_code[rs->rs_phyerr]++;
drivers/net/wireless/ath/ath5k/base.c
1535
ah->stats.rxerr_decrypt++;
drivers/net/wireless/ath/ath5k/base.c
1541
ah->stats.rxerr_mic++;
drivers/net/wireless/ath/ath5k/base.c
1550
if (ah->fif_filter_flags & FIF_FCSFAIL)
drivers/net/wireless/ath/ath5k/base.c
1558
ah->stats.rxerr_jumbo++;
drivers/net/wireless/ath/ath5k/base.c
1565
ath5k_set_current_imask(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1570
if (test_bit(ATH_STAT_RESET, ah->status))
drivers/net/wireless/ath/ath5k/base.c
1573
spin_lock_irqsave(&ah->irqlock, flags);
drivers/net/wireless/ath/ath5k/base.c
1574
imask = ah->imask;
drivers/net/wireless/ath/ath5k/base.c
1575
if (ah->rx_pending)
drivers/net/wireless/ath/ath5k/base.c
1577
if (ah->tx_pending)
drivers/net/wireless/ath/ath5k/base.c
1579
ath5k_hw_set_imr(ah, imask);
drivers/net/wireless/ath/ath5k/base.c
1580
spin_unlock_irqrestore(&ah->irqlock, flags);
drivers/net/wireless/ath/ath5k/base.c
1589
struct ath5k_hw *ah = from_tasklet(ah, t, rxtq);
drivers/net/wireless/ath/ath5k/base.c
1590
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
1595
spin_lock(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/base.c
1596
if (list_empty(&ah->rxbuf)) {
drivers/net/wireless/ath/ath5k/base.c
1597
ATH5K_WARN(ah, "empty rx buf pool\n");
drivers/net/wireless/ath/ath5k/base.c
1601
bf = list_first_entry(&ah->rxbuf, struct ath5k_buf, list);
drivers/net/wireless/ath/ath5k/base.c
1607
if (ath5k_hw_get_rxdp(ah) == bf->daddr)
drivers/net/wireless/ath/ath5k/base.c
1610
ret = ah->ah_proc_rx_desc(ah, ds, &rs);
drivers/net/wireless/ath/ath5k/base.c
1614
ATH5K_ERR(ah, "error in processing rx descriptor\n");
drivers/net/wireless/ath/ath5k/base.c
1615
ah->stats.rxerr_proc++;
drivers/net/wireless/ath/ath5k/base.c
1619
if (ath5k_receive_frame_ok(ah, &rs)) {
drivers/net/wireless/ath/ath5k/base.c
1620
next_skb = ath5k_rx_skb_alloc(ah, &next_skb_addr);
drivers/net/wireless/ath/ath5k/base.c
1629
dma_unmap_single(ah->dev, bf->skbaddr,
drivers/net/wireless/ath/ath5k/base.c
1635
ath5k_receive_frame(ah, skb, &rs);
drivers/net/wireless/ath/ath5k/base.c
1641
list_move_tail(&bf->list, &ah->rxbuf);
drivers/net/wireless/ath/ath5k/base.c
1642
} while (ath5k_rxbuf_setup(ah, bf) == 0);
drivers/net/wireless/ath/ath5k/base.c
1644
spin_unlock(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/base.c
1645
ah->rx_pending = false;
drivers/net/wireless/ath/ath5k/base.c
1646
ath5k_set_current_imask(ah);
drivers/net/wireless/ath/ath5k/base.c
1658
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
1663
trace_ath5k_tx(ah, skb, txq);
drivers/net/wireless/ath/ath5k/base.c
1671
ATH5K_ERR(ah, "tx hdrlen not %%4: not enough"
drivers/net/wireless/ath/ath5k/base.c
1680
spin_lock_irqsave(&ah->txbuflock, flags);
drivers/net/wireless/ath/ath5k/base.c
1681
if (list_empty(&ah->txbuf)) {
drivers/net/wireless/ath/ath5k/base.c
1682
ATH5K_ERR(ah, "no further txbuf available, dropping packet\n");
drivers/net/wireless/ath/ath5k/base.c
1683
spin_unlock_irqrestore(&ah->txbuflock, flags);
drivers/net/wireless/ath/ath5k/base.c
1687
bf = list_first_entry(&ah->txbuf, struct ath5k_buf, list);
drivers/net/wireless/ath/ath5k/base.c
1689
ah->txbuf_len--;
drivers/net/wireless/ath/ath5k/base.c
1690
if (list_empty(&ah->txbuf))
drivers/net/wireless/ath/ath5k/base.c
1692
spin_unlock_irqrestore(&ah->txbuflock, flags);
drivers/net/wireless/ath/ath5k/base.c
1696
if (ath5k_txbuf_setup(ah, bf, txq, padsize, control)) {
drivers/net/wireless/ath/ath5k/base.c
1698
spin_lock_irqsave(&ah->txbuflock, flags);
drivers/net/wireless/ath/ath5k/base.c
1699
list_add_tail(&bf->list, &ah->txbuf);
drivers/net/wireless/ath/ath5k/base.c
1700
ah->txbuf_len++;
drivers/net/wireless/ath/ath5k/base.c
1701
spin_unlock_irqrestore(&ah->txbuflock, flags);
drivers/net/wireless/ath/ath5k/base.c
1711
ath5k_tx_frame_completed(struct ath5k_hw *ah, struct sk_buff *skb,
drivers/net/wireless/ath/ath5k/base.c
1720
ah->stats.tx_all_count++;
drivers/net/wireless/ath/ath5k/base.c
1721
ah->stats.tx_bytes_count += skb->len;
drivers/net/wireless/ath/ath5k/base.c
1744
ah->stats.ack_fail++;
drivers/net/wireless/ath/ath5k/base.c
1747
ah->stats.txerr_filt++;
drivers/net/wireless/ath/ath5k/base.c
1750
ah->stats.txerr_retry++;
drivers/net/wireless/ath/ath5k/base.c
1752
ah->stats.txerr_fifo++;
drivers/net/wireless/ath/ath5k/base.c
1768
ah->stats.antenna_tx[ts->ts_antenna]++;
drivers/net/wireless/ath/ath5k/base.c
1770
ah->stats.antenna_tx[0]++; /* invalid */
drivers/net/wireless/ath/ath5k/base.c
1772
trace_ath5k_tx_complete(ah, skb, txq, ts);
drivers/net/wireless/ath/ath5k/base.c
1773
ieee80211_tx_status_skb(ah->hw, skb);
drivers/net/wireless/ath/ath5k/base.c
1777
ath5k_tx_processq(struct ath5k_hw *ah, struct ath5k_txq *txq)
drivers/net/wireless/ath/ath5k/base.c
1794
ret = ah->ah_proc_tx_desc(ah, ds, &ts);
drivers/net/wireless/ath/ath5k/base.c
1798
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/base.c
1807
dma_unmap_single(ah->dev, bf->skbaddr, skb->len,
drivers/net/wireless/ath/ath5k/base.c
1809
ath5k_tx_frame_completed(ah, skb, txq, &ts, bf);
drivers/net/wireless/ath/ath5k/base.c
1818
if (ath5k_hw_get_txdp(ah, txq->qnum) != bf->daddr) {
drivers/net/wireless/ath/ath5k/base.c
1819
spin_lock(&ah->txbuflock);
drivers/net/wireless/ath/ath5k/base.c
1820
list_move_tail(&bf->list, &ah->txbuf);
drivers/net/wireless/ath/ath5k/base.c
1821
ah->txbuf_len++;
drivers/net/wireless/ath/ath5k/base.c
1823
spin_unlock(&ah->txbuflock);
drivers/net/wireless/ath/ath5k/base.c
1828
ieee80211_wake_queue(ah->hw, txq->qnum);
drivers/net/wireless/ath/ath5k/base.c
1835
struct ath5k_hw *ah = from_tasklet(ah, t, txtq);
drivers/net/wireless/ath/ath5k/base.c
1838
if (ah->txqs[i].setup && (ah->ah_txq_isr_txok_all & BIT(i)))
drivers/net/wireless/ath/ath5k/base.c
1839
ath5k_tx_processq(ah, &ah->txqs[i]);
drivers/net/wireless/ath/ath5k/base.c
1841
ah->tx_pending = false;
drivers/net/wireless/ath/ath5k/base.c
1842
ath5k_set_current_imask(ah);
drivers/net/wireless/ath/ath5k/base.c
1854
ath5k_beacon_setup(struct ath5k_hw *ah, struct ath5k_buf *bf)
drivers/net/wireless/ath/ath5k/base.c
1864
bf->skbaddr = dma_map_single(ah->dev, skb->data, skb->len,
drivers/net/wireless/ath/ath5k/base.c
1866
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON, "skb %p [data %p len %u] "
drivers/net/wireless/ath/ath5k/base.c
1870
if (dma_mapping_error(ah->dev, bf->skbaddr)) {
drivers/net/wireless/ath/ath5k/base.c
1871
ATH5K_ERR(ah, "beacon DMA mapping failed\n");
drivers/net/wireless/ath/ath5k/base.c
1878
antenna = ah->ah_tx_ant;
drivers/net/wireless/ath/ath5k/base.c
1881
if (ah->opmode == NL80211_IFTYPE_ADHOC && ath5k_hw_hasveol(ah)) {
drivers/net/wireless/ath/ath5k/base.c
1905
if (ah->ah_ant_mode == AR5K_ANTMODE_SECTOR_AP)
drivers/net/wireless/ath/ath5k/base.c
1906
antenna = ah->bsent & 4 ? 2 : 1;
drivers/net/wireless/ath/ath5k/base.c
1913
ret = ah->ah_setup_tx_desc(ah, ds, skb->len,
drivers/net/wireless/ath/ath5k/base.c
1916
(ah->ah_txpower.txp_requested * 2),
drivers/net/wireless/ath/ath5k/base.c
1917
ieee80211_get_tx_rate(ah->hw, info)->hw_value,
drivers/net/wireless/ath/ath5k/base.c
1925
dma_unmap_single(ah->dev, bf->skbaddr, skb->len, DMA_TO_DEVICE);
drivers/net/wireless/ath/ath5k/base.c
1940
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
1957
ath5k_txbuf_free_skb(ah, avf->bbuf);
drivers/net/wireless/ath/ath5k/base.c
1959
ret = ath5k_beacon_setup(ah, avf->bbuf);
drivers/net/wireless/ath/ath5k/base.c
1973
ath5k_beacon_send(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
1981
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON, "in beacon_send\n");
drivers/net/wireless/ath/ath5k/base.c
1990
if (unlikely(ath5k_hw_num_tx_pending(ah, ah->bhalq) != 0)) {
drivers/net/wireless/ath/ath5k/base.c
1991
ah->bmisscount++;
drivers/net/wireless/ath/ath5k/base.c
1992
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
1993
"missed %u consecutive beacons\n", ah->bmisscount);
drivers/net/wireless/ath/ath5k/base.c
1994
if (ah->bmisscount > 10) { /* NB: 10 is a guess */
drivers/net/wireless/ath/ath5k/base.c
1995
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
1997
ah->bmisscount);
drivers/net/wireless/ath/ath5k/base.c
1998
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
200
static inline u64 ath5k_extend_tsf(struct ath5k_hw *ah, u32 rstamp)
drivers/net/wireless/ath/ath5k/base.c
2000
ieee80211_queue_work(ah->hw, &ah->reset_work);
drivers/net/wireless/ath/ath5k/base.c
2004
if (unlikely(ah->bmisscount != 0)) {
drivers/net/wireless/ath/ath5k/base.c
2005
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
2007
ah->bmisscount);
drivers/net/wireless/ath/ath5k/base.c
2008
ah->bmisscount = 0;
drivers/net/wireless/ath/ath5k/base.c
2011
if ((ah->opmode == NL80211_IFTYPE_AP && ah->num_ap_vifs +
drivers/net/wireless/ath/ath5k/base.c
2012
ah->num_mesh_vifs > 1) ||
drivers/net/wireless/ath/ath5k/base.c
2013
ah->opmode == NL80211_IFTYPE_MESH_POINT) {
drivers/net/wireless/ath/ath5k/base.c
2014
u64 tsf = ath5k_hw_get_tsf64(ah);
drivers/net/wireless/ath/ath5k/base.c
2016
int slot = ((tsftu % ah->bintval) * ATH_BCBUF) / ah->bintval;
drivers/net/wireless/ath/ath5k/base.c
2017
vif = ah->bslot[(slot + 1) % ATH_BCBUF];
drivers/net/wireless/ath/ath5k/base.c
2018
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
202
u64 tsf = ath5k_hw_get_tsf64(ah);
drivers/net/wireless/ath/ath5k/base.c
2020
(unsigned long long)tsf, tsftu, ah->bintval, slot, vif);
drivers/net/wireless/ath/ath5k/base.c
2022
vif = ah->bslot[0];
drivers/net/wireless/ath/ath5k/base.c
2035
if (unlikely(ath5k_hw_stop_beacon_queue(ah, ah->bhalq))) {
drivers/net/wireless/ath/ath5k/base.c
2036
ATH5K_WARN(ah, "beacon queue %u didn't start/stop ?\n", ah->bhalq);
drivers/net/wireless/ath/ath5k/base.c
2041
if (ah->opmode == NL80211_IFTYPE_AP ||
drivers/net/wireless/ath/ath5k/base.c
2042
ah->opmode == NL80211_IFTYPE_MESH_POINT) {
drivers/net/wireless/ath/ath5k/base.c
2043
err = ath5k_beacon_update(ah->hw, vif);
drivers/net/wireless/ath/ath5k/base.c
2048
if (unlikely(bf->skb == NULL || ah->opmode == NL80211_IFTYPE_STATION ||
drivers/net/wireless/ath/ath5k/base.c
2049
ah->opmode == NL80211_IFTYPE_MONITOR)) {
drivers/net/wireless/ath/ath5k/base.c
2050
ATH5K_WARN(ah, "bf=%p bf_skb=%p\n", bf, bf->skb);
drivers/net/wireless/ath/ath5k/base.c
2054
trace_ath5k_tx(ah, bf->skb, &ah->txqs[ah->bhalq]);
drivers/net/wireless/ath/ath5k/base.c
2056
ath5k_hw_set_txdp(ah, ah->bhalq, bf->daddr);
drivers/net/wireless/ath/ath5k/base.c
2057
ath5k_hw_start_tx_dma(ah, ah->bhalq);
drivers/net/wireless/ath/ath5k/base.c
2058
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON, "TXDP[%u] = %llx (%p)\n",
drivers/net/wireless/ath/ath5k/base.c
2059
ah->bhalq, (unsigned long long)bf->daddr, bf->desc);
drivers/net/wireless/ath/ath5k/base.c
2061
skb = ieee80211_get_buffered_bc(ah->hw, vif);
drivers/net/wireless/ath/ath5k/base.c
2063
ath5k_tx_queue(ah->hw, skb, ah->cabq, NULL);
drivers/net/wireless/ath/ath5k/base.c
2065
if (ah->cabq->txq_len >= ah->cabq->txq_max)
drivers/net/wireless/ath/ath5k/base.c
2068
skb = ieee80211_get_buffered_bc(ah->hw, vif);
drivers/net/wireless/ath/ath5k/base.c
2071
ah->bsent++;
drivers/net/wireless/ath/ath5k/base.c
2091
ath5k_beacon_update_timers(struct ath5k_hw *ah, u64 bc_tsf)
drivers/net/wireless/ath/ath5k/base.c
2096
intval = ah->bintval & AR5K_BEACON_PERIOD;
drivers/net/wireless/ath/ath5k/base.c
2097
if (ah->opmode == NL80211_IFTYPE_AP && ah->num_ap_vifs
drivers/net/wireless/ath/ath5k/base.c
2098
+ ah->num_mesh_vifs > 1) {
drivers/net/wireless/ath/ath5k/base.c
2101
ATH5K_WARN(ah, "intval %u is too low, min 15\n",
drivers/net/wireless/ath/ath5k/base.c
2111
hw_tsf = ath5k_hw_get_tsf64(ah);
drivers/net/wireless/ath/ath5k/base.c
2140
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
2155
ah->nexttbtt = nexttbtt;
drivers/net/wireless/ath/ath5k/base.c
2158
ath5k_hw_init_beacon_timers(ah, nexttbtt, intval);
drivers/net/wireless/ath/ath5k/base.c
2165
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
2168
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
2171
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
2174
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
2178
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_BEACON, "intval %u %s %s\n",
drivers/net/wireless/ath/ath5k/base.c
2193
ath5k_beacon_config(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
2195
spin_lock_bh(&ah->block);
drivers/net/wireless/ath/ath5k/base.c
2196
ah->bmisscount = 0;
drivers/net/wireless/ath/ath5k/base.c
2197
ah->imask &= ~(AR5K_INT_BMISS | AR5K_INT_SWBA);
drivers/net/wireless/ath/ath5k/base.c
2199
if (ah->enable_beacon) {
drivers/net/wireless/ath/ath5k/base.c
2207
ath5k_beaconq_config(ah);
drivers/net/wireless/ath/ath5k/base.c
2209
ah->imask |= AR5K_INT_SWBA;
drivers/net/wireless/ath/ath5k/base.c
2211
if (ah->opmode == NL80211_IFTYPE_ADHOC) {
drivers/net/wireless/ath/ath5k/base.c
2212
if (ath5k_hw_hasveol(ah))
drivers/net/wireless/ath/ath5k/base.c
2213
ath5k_beacon_send(ah);
drivers/net/wireless/ath/ath5k/base.c
2215
ath5k_beacon_update_timers(ah, -1);
drivers/net/wireless/ath/ath5k/base.c
2217
ath5k_hw_stop_beacon_queue(ah, ah->bhalq);
drivers/net/wireless/ath/ath5k/base.c
2220
ath5k_hw_set_imr(ah, ah->imask);
drivers/net/wireless/ath/ath5k/base.c
2221
spin_unlock_bh(&ah->block);
drivers/net/wireless/ath/ath5k/base.c
2226
struct ath5k_hw *ah = from_tasklet(ah, t, beacontq);
drivers/net/wireless/ath/ath5k/base.c
2236
if (ah->opmode == NL80211_IFTYPE_ADHOC) {
drivers/net/wireless/ath/ath5k/base.c
2238
u64 tsf = ath5k_hw_get_tsf64(ah);
drivers/net/wireless/ath/ath5k/base.c
2239
ah->nexttbtt += ah->bintval;
drivers/net/wireless/ath/ath5k/base.c
2240
ATH5K_DBG(ah, ATH5K_DEBUG_BEACON,
drivers/net/wireless/ath/ath5k/base.c
2243
ah->nexttbtt,
drivers/net/wireless/ath/ath5k/base.c
2247
spin_lock(&ah->block);
drivers/net/wireless/ath/ath5k/base.c
2248
ath5k_beacon_send(ah);
drivers/net/wireless/ath/ath5k/base.c
2249
spin_unlock(&ah->block);
drivers/net/wireless/ath/ath5k/base.c
2259
ath5k_intr_calibration_poll(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
2261
if (time_is_before_eq_jiffies(ah->ah_cal_next_ani) &&
drivers/net/wireless/ath/ath5k/base.c
2262
!(ah->ah_cal_mask & AR5K_CALIBRATION_FULL) &&
drivers/net/wireless/ath/ath5k/base.c
2263
!(ah->ah_cal_mask & AR5K_CALIBRATION_SHORT)) {
drivers/net/wireless/ath/ath5k/base.c
2267
ah->ah_cal_next_ani = jiffies +
drivers/net/wireless/ath/ath5k/base.c
2269
tasklet_schedule(&ah->ani_tasklet);
drivers/net/wireless/ath/ath5k/base.c
2271
} else if (time_is_before_eq_jiffies(ah->ah_cal_next_short) &&
drivers/net/wireless/ath/ath5k/base.c
2272
!(ah->ah_cal_mask & AR5K_CALIBRATION_FULL) &&
drivers/net/wireless/ath/ath5k/base.c
2273
!(ah->ah_cal_mask & AR5K_CALIBRATION_SHORT)) {
drivers/net/wireless/ath/ath5k/base.c
2282
ah->ah_cal_next_short = jiffies +
drivers/net/wireless/ath/ath5k/base.c
2284
ieee80211_queue_work(ah->hw, &ah->calib_work);
drivers/net/wireless/ath/ath5k/base.c
2292
ath5k_schedule_rx(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
2294
ah->rx_pending = true;
drivers/net/wireless/ath/ath5k/base.c
2295
tasklet_schedule(&ah->rxtq);
drivers/net/wireless/ath/ath5k/base.c
2299
ath5k_schedule_tx(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
2301
ah->tx_pending = true;
drivers/net/wireless/ath/ath5k/base.c
2302
tasklet_schedule(&ah->txtq);
drivers/net/wireless/ath/ath5k/base.c
2308
struct ath5k_hw *ah = dev_id;
drivers/net/wireless/ath/ath5k/base.c
2323
if (unlikely(test_bit(ATH_STAT_INVALID, ah->status) ||
drivers/net/wireless/ath/ath5k/base.c
2324
((ath5k_get_bus_type(ah) != ATH_AHB) &&
drivers/net/wireless/ath/ath5k/base.c
2325
!ath5k_hw_is_intr_pending(ah))))
drivers/net/wireless/ath/ath5k/base.c
233
struct ath5k_hw *ah = hw_priv;
drivers/net/wireless/ath/ath5k/base.c
2330
ath5k_hw_get_isr(ah, &status); /* NB: clears IRQ too */
drivers/net/wireless/ath/ath5k/base.c
2332
ATH5K_DBG(ah, ATH5K_DEBUG_INTR, "status 0x%x/0x%x\n",
drivers/net/wireless/ath/ath5k/base.c
2333
status, ah->imask);
drivers/net/wireless/ath/ath5k/base.c
234
return ath5k_hw_reg_read(ah, reg_offset);
drivers/net/wireless/ath/ath5k/base.c
2344
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
2346
ieee80211_queue_work(ah->hw, &ah->reset_work);
drivers/net/wireless/ath/ath5k/base.c
2363
ah->stats.rxorn_intr++;
drivers/net/wireless/ath/ath5k/base.c
2365
if (ah->ah_mac_srev < AR5K_SREV_AR5212) {
drivers/net/wireless/ath/ath5k/base.c
2366
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
2368
ieee80211_queue_work(ah->hw, &ah->reset_work);
drivers/net/wireless/ath/ath5k/base.c
2370
ath5k_schedule_rx(ah);
drivers/net/wireless/ath/ath5k/base.c
2376
tasklet_hi_schedule(&ah->beacontq);
drivers/net/wireless/ath/ath5k/base.c
2386
ah->stats.rxeol_intr++;
drivers/net/wireless/ath/ath5k/base.c
239
struct ath5k_hw *ah = hw_priv;
drivers/net/wireless/ath/ath5k/base.c
2391
ath5k_hw_update_tx_triglevel(ah, true);
drivers/net/wireless/ath/ath5k/base.c
2395
ath5k_schedule_rx(ah);
drivers/net/wireless/ath/ath5k/base.c
240
ath5k_hw_reg_write(ah, val, reg_offset);
drivers/net/wireless/ath/ath5k/base.c
2402
ath5k_schedule_tx(ah);
drivers/net/wireless/ath/ath5k/base.c
2410
ah->stats.mib_intr++;
drivers/net/wireless/ath/ath5k/base.c
2411
ath5k_hw_update_mib_counters(ah);
drivers/net/wireless/ath/ath5k/base.c
2412
ath5k_ani_mib_intr(ah);
drivers/net/wireless/ath/ath5k/base.c
2417
tasklet_schedule(&ah->rf_kill.toggleq);
drivers/net/wireless/ath/ath5k/base.c
2421
if (ath5k_get_bus_type(ah) == ATH_AHB)
drivers/net/wireless/ath/ath5k/base.c
2424
} while (ath5k_hw_is_intr_pending(ah) && --counter > 0);
drivers/net/wireless/ath/ath5k/base.c
2432
if (ah->rx_pending || ah->tx_pending)
drivers/net/wireless/ath/ath5k/base.c
2433
ath5k_set_current_imask(ah);
drivers/net/wireless/ath/ath5k/base.c
2436
ATH5K_WARN(ah, "too many interrupts, giving up for now\n");
drivers/net/wireless/ath/ath5k/base.c
2439
ath5k_intr_calibration_poll(ah);
drivers/net/wireless/ath/ath5k/base.c
2451
struct ath5k_hw *ah = container_of(work, struct ath5k_hw,
drivers/net/wireless/ath/ath5k/base.c
2455
if (time_is_before_eq_jiffies(ah->ah_cal_next_full)) {
drivers/net/wireless/ath/ath5k/base.c
2457
ah->ah_cal_next_full = jiffies +
drivers/net/wireless/ath/ath5k/base.c
2459
ah->ah_cal_mask |= AR5K_CALIBRATION_FULL;
drivers/net/wireless/ath/ath5k/base.c
2461
ATH5K_DBG(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/base.c
2464
if (ath5k_hw_gainf_calibrate(ah) == AR5K_RFGAIN_NEED_CHANGE) {
drivers/net/wireless/ath/ath5k/base.c
2469
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
2471
ieee80211_queue_work(ah->hw, &ah->reset_work);
drivers/net/wireless/ath/ath5k/base.c
2474
ah->ah_cal_mask |= AR5K_CALIBRATION_SHORT;
drivers/net/wireless/ath/ath5k/base.c
2477
ATH5K_DBG(ah, ATH5K_DEBUG_CALIBRATE, "channel %u/%x\n",
drivers/net/wireless/ath/ath5k/base.c
2478
ieee80211_frequency_to_channel(ah->curchan->center_freq),
drivers/net/wireless/ath/ath5k/base.c
2479
ah->curchan->hw_value);
drivers/net/wireless/ath/ath5k/base.c
2481
if (ath5k_hw_phy_calibrate(ah, ah->curchan))
drivers/net/wireless/ath/ath5k/base.c
2482
ATH5K_ERR(ah, "calibration of channel %u failed\n",
drivers/net/wireless/ath/ath5k/base.c
2484
ah->curchan->center_freq));
drivers/net/wireless/ath/ath5k/base.c
2487
if (ah->ah_cal_mask & AR5K_CALIBRATION_FULL)
drivers/net/wireless/ath/ath5k/base.c
2488
ah->ah_cal_mask &= ~AR5K_CALIBRATION_FULL;
drivers/net/wireless/ath/ath5k/base.c
2489
else if (ah->ah_cal_mask & AR5K_CALIBRATION_SHORT)
drivers/net/wireless/ath/ath5k/base.c
2490
ah->ah_cal_mask &= ~AR5K_CALIBRATION_SHORT;
drivers/net/wireless/ath/ath5k/base.c
2497
struct ath5k_hw *ah = from_tasklet(ah, t, ani_tasklet);
drivers/net/wireless/ath/ath5k/base.c
2499
ah->ah_cal_mask |= AR5K_CALIBRATION_ANI;
drivers/net/wireless/ath/ath5k/base.c
2500
ath5k_ani_calibration(ah);
drivers/net/wireless/ath/ath5k/base.c
2501
ah->ah_cal_mask &= ~AR5K_CALIBRATION_ANI;
drivers/net/wireless/ath/ath5k/base.c
2508
struct ath5k_hw *ah = container_of(work, struct ath5k_hw,
drivers/net/wireless/ath/ath5k/base.c
2514
if (!test_bit(ATH_STAT_STARTED, ah->status))
drivers/net/wireless/ath/ath5k/base.c
2517
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
2519
for (i = 0; i < ARRAY_SIZE(ah->txqs); i++) {
drivers/net/wireless/ath/ath5k/base.c
2520
if (ah->txqs[i].setup) {
drivers/net/wireless/ath/ath5k/base.c
2521
txq = &ah->txqs[i];
drivers/net/wireless/ath/ath5k/base.c
2525
ATH5K_DBG(ah, ATH5K_DEBUG_XMIT,
drivers/net/wireless/ath/ath5k/base.c
2541
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
2543
ath5k_reset(ah, NULL, true);
drivers/net/wireless/ath/ath5k/base.c
2546
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
2548
ieee80211_queue_delayed_work(ah->hw, &ah->tx_complete_work,
drivers/net/wireless/ath/ath5k/base.c
256
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
257
struct ath_regulatory *regulatory = ath5k_hw_regulatory(ah);
drivers/net/wireless/ath/ath5k/base.c
2574
ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)
drivers/net/wireless/ath/ath5k/base.c
2576
struct ieee80211_hw *hw = ah->hw;
drivers/net/wireless/ath/ath5k/base.c
2582
SET_IEEE80211_DEV(hw, ah->dev);
drivers/net/wireless/ath/ath5k/base.c
2616
__set_bit(ATH_STAT_INVALID, ah->status);
drivers/net/wireless/ath/ath5k/base.c
2618
ah->opmode = NL80211_IFTYPE_STATION;
drivers/net/wireless/ath/ath5k/base.c
2619
ah->bintval = 1000;
drivers/net/wireless/ath/ath5k/base.c
2620
mutex_init(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
2621
spin_lock_init(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/base.c
2622
spin_lock_init(&ah->txbuflock);
drivers/net/wireless/ath/ath5k/base.c
2623
spin_lock_init(&ah->block);
drivers/net/wireless/ath/ath5k/base.c
2624
spin_lock_init(&ah->irqlock);
drivers/net/wireless/ath/ath5k/base.c
2627
ret = request_irq(ah->irq, ath5k_intr, IRQF_SHARED, "ath", ah);
drivers/net/wireless/ath/ath5k/base.c
2629
ATH5K_ERR(ah, "request_irq failed\n");
drivers/net/wireless/ath/ath5k/base.c
2633
common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
2636
common->ah = ah;
drivers/net/wireless/ath/ath5k/base.c
2638
common->priv = ah;
drivers/net/wireless/ath/ath5k/base.c
2651
ret = ath5k_hw_init(ah);
drivers/net/wireless/ath/ath5k/base.c
2656
if (ah->ah_capabilities.cap_has_mrr_support) {
drivers/net/wireless/ath/ath5k/base.c
2669
ATH5K_INFO(ah, "Atheros AR%s chip found (MAC: 0x%x, PHY: 0x%x)\n",
drivers/net/wireless/ath/ath5k/base.c
2670
ath5k_chip_name(AR5K_VERSION_MAC, ah->ah_mac_srev),
drivers/net/wireless/ath/ath5k/base.c
2671
ah->ah_mac_srev,
drivers/net/wireless/ath/ath5k/base.c
2672
ah->ah_phy_revision);
drivers/net/wireless/ath/ath5k/base.c
2674
if (!ah->ah_single_chip) {
drivers/net/wireless/ath/ath5k/base.c
2676
if (ah->ah_radio_5ghz_revision &&
drivers/net/wireless/ath/ath5k/base.c
2677
!ah->ah_radio_2ghz_revision) {
drivers/net/wireless/ath/ath5k/base.c
2680
ah->ah_capabilities.cap_mode)) {
drivers/net/wireless/ath/ath5k/base.c
2681
ATH5K_INFO(ah, "RF%s 2GHz radio found (0x%x)\n",
drivers/net/wireless/ath/ath5k/base.c
2683
ah->ah_radio_5ghz_revision),
drivers/net/wireless/ath/ath5k/base.c
2684
ah->ah_radio_5ghz_revision);
drivers/net/wireless/ath/ath5k/base.c
2688
ah->ah_capabilities.cap_mode)) {
drivers/net/wireless/ath/ath5k/base.c
2689
ATH5K_INFO(ah, "RF%s 5GHz radio found (0x%x)\n",
drivers/net/wireless/ath/ath5k/base.c
2691
ah->ah_radio_5ghz_revision),
drivers/net/wireless/ath/ath5k/base.c
2692
ah->ah_radio_5ghz_revision);
drivers/net/wireless/ath/ath5k/base.c
2695
ATH5K_INFO(ah, "RF%s multiband radio found"
drivers/net/wireless/ath/ath5k/base.c
2698
ah->ah_radio_5ghz_revision),
drivers/net/wireless/ath/ath5k/base.c
2699
ah->ah_radio_5ghz_revision);
drivers/net/wireless/ath/ath5k/base.c
2704
else if (ah->ah_radio_5ghz_revision &&
drivers/net/wireless/ath/ath5k/base.c
2705
ah->ah_radio_2ghz_revision) {
drivers/net/wireless/ath/ath5k/base.c
2706
ATH5K_INFO(ah, "RF%s 5GHz radio found (0x%x)\n",
drivers/net/wireless/ath/ath5k/base.c
2708
ah->ah_radio_5ghz_revision),
drivers/net/wireless/ath/ath5k/base.c
2709
ah->ah_radio_5ghz_revision);
drivers/net/wireless/ath/ath5k/base.c
2710
ATH5K_INFO(ah, "RF%s 2GHz radio found (0x%x)\n",
drivers/net/wireless/ath/ath5k/base.c
2712
ah->ah_radio_2ghz_revision),
drivers/net/wireless/ath/ath5k/base.c
2713
ah->ah_radio_2ghz_revision);
drivers/net/wireless/ath/ath5k/base.c
2717
ath5k_debug_init_device(ah);
drivers/net/wireless/ath/ath5k/base.c
2720
__clear_bit(ATH_STAT_INVALID, ah->status);
drivers/net/wireless/ath/ath5k/base.c
2724
ath5k_hw_deinit(ah);
drivers/net/wireless/ath/ath5k/base.c
2726
free_irq(ah->irq, ah);
drivers/net/wireless/ath/ath5k/base.c
2732
ath5k_stop_locked(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
2735
ATH5K_DBG(ah, ATH5K_DEBUG_RESET, "invalid %u\n",
drivers/net/wireless/ath/ath5k/base.c
2736
test_bit(ATH_STAT_INVALID, ah->status));
drivers/net/wireless/ath/ath5k/base.c
2753
ieee80211_stop_queues(ah->hw);
drivers/net/wireless/ath/ath5k/base.c
2755
if (!test_bit(ATH_STAT_INVALID, ah->status)) {
drivers/net/wireless/ath/ath5k/base.c
2756
ath5k_led_off(ah);
drivers/net/wireless/ath/ath5k/base.c
2757
ath5k_hw_set_imr(ah, 0);
drivers/net/wireless/ath/ath5k/base.c
2758
synchronize_irq(ah->irq);
drivers/net/wireless/ath/ath5k/base.c
2759
ath5k_rx_stop(ah);
drivers/net/wireless/ath/ath5k/base.c
2760
ath5k_hw_dma_stop(ah);
drivers/net/wireless/ath/ath5k/base.c
2761
ath5k_drain_tx_buffs(ah);
drivers/net/wireless/ath/ath5k/base.c
2762
ath5k_hw_phy_disable(ah);
drivers/net/wireless/ath/ath5k/base.c
2770
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
2771
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
2774
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
2776
ATH5K_DBG(ah, ATH5K_DEBUG_RESET, "mode %d\n", ah->opmode);
drivers/net/wireless/ath/ath5k/base.c
2782
ath5k_stop_locked(ah);
drivers/net/wireless/ath/ath5k/base.c
2791
ah->curchan = ah->hw->conf.chandef.chan;
drivers/net/wireless/ath/ath5k/base.c
2792
ah->imask = AR5K_INT_RXOK
drivers/net/wireless/ath/ath5k/base.c
2802
ret = ath5k_reset(ah, NULL, false);
drivers/net/wireless/ath/ath5k/base.c
2807
ath5k_rfkill_hw_start(ah);
drivers/net/wireless/ath/ath5k/base.c
2818
ah->ah_ack_bitrate_high = true;
drivers/net/wireless/ath/ath5k/base.c
2820
for (i = 0; i < ARRAY_SIZE(ah->bslot); i++)
drivers/net/wireless/ath/ath5k/base.c
2821
ah->bslot[i] = NULL;
drivers/net/wireless/ath/ath5k/base.c
2825
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
2827
set_bit(ATH_STAT_STARTED, ah->status);
drivers/net/wireless/ath/ath5k/base.c
2828
ieee80211_queue_delayed_work(ah->hw, &ah->tx_complete_work,
drivers/net/wireless/ath/ath5k/base.c
2834
static void ath5k_stop_tasklets(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
2836
ah->rx_pending = false;
drivers/net/wireless/ath/ath5k/base.c
2837
ah->tx_pending = false;
drivers/net/wireless/ath/ath5k/base.c
2838
tasklet_kill(&ah->rxtq);
drivers/net/wireless/ath/ath5k/base.c
2839
tasklet_kill(&ah->txtq);
drivers/net/wireless/ath/ath5k/base.c
2840
tasklet_kill(&ah->beacontq);
drivers/net/wireless/ath/ath5k/base.c
2841
tasklet_kill(&ah->ani_tasklet);
drivers/net/wireless/ath/ath5k/base.c
2852
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
2855
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
2856
ret = ath5k_stop_locked(ah);
drivers/net/wireless/ath/ath5k/base.c
2857
if (ret == 0 && !test_bit(ATH_STAT_INVALID, ah->status)) {
drivers/net/wireless/ath/ath5k/base.c
2878
ret = ath5k_hw_on_hold(ah);
drivers/net/wireless/ath/ath5k/base.c
2880
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
2884
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
2886
ath5k_stop_tasklets(ah);
drivers/net/wireless/ath/ath5k/base.c
2888
clear_bit(ATH_STAT_STARTED, ah->status);
drivers/net/wireless/ath/ath5k/base.c
2889
cancel_delayed_work_sync(&ah->tx_complete_work);
drivers/net/wireless/ath/ath5k/base.c
2892
ath5k_rfkill_hw_stop(ah);
drivers/net/wireless/ath/ath5k/base.c
2902
ath5k_reset(struct ath5k_hw *ah, struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath5k/base.c
2905
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
2909
ATH5K_DBG(ah, ATH5K_DEBUG_RESET, "resetting\n");
drivers/net/wireless/ath/ath5k/base.c
2911
__set_bit(ATH_STAT_RESET, ah->status);
drivers/net/wireless/ath/ath5k/base.c
2913
ath5k_hw_set_imr(ah, 0);
drivers/net/wireless/ath/ath5k/base.c
2914
synchronize_irq(ah->irq);
drivers/net/wireless/ath/ath5k/base.c
2915
ath5k_stop_tasklets(ah);
drivers/net/wireless/ath/ath5k/base.c
2920
ani_mode = ah->ani_state.ani_mode;
drivers/net/wireless/ath/ath5k/base.c
2921
ath5k_ani_init(ah, ATH5K_ANI_MODE_OFF);
drivers/net/wireless/ath/ath5k/base.c
2926
ath5k_drain_tx_buffs(ah);
drivers/net/wireless/ath/ath5k/base.c
2929
ath5k_hw_stop_rx_pcu(ah);
drivers/net/wireless/ath/ath5k/base.c
2936
ret = ath5k_hw_dma_stop(ah);
drivers/net/wireless/ath/ath5k/base.c
2942
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
2948
ah->curchan = chan;
drivers/net/wireless/ath/ath5k/base.c
295
ath5k_setup_channels(struct ath5k_hw *ah, struct ieee80211_channel *channels,
drivers/net/wireless/ath/ath5k/base.c
2950
ret = ath5k_hw_reset(ah, ah->opmode, ah->curchan, fast, skip_pcu);
drivers/net/wireless/ath/ath5k/base.c
2952
ATH5K_ERR(ah, "can't reset hardware (%d)\n", ret);
drivers/net/wireless/ath/ath5k/base.c
2956
ret = ath5k_rx_start(ah);
drivers/net/wireless/ath/ath5k/base.c
2958
ATH5K_ERR(ah, "can't start recv logic\n");
drivers/net/wireless/ath/ath5k/base.c
2962
ath5k_ani_init(ah, ani_mode);
drivers/net/wireless/ath/ath5k/base.c
2975
ah->ah_cal_next_full = jiffies +
drivers/net/wireless/ath/ath5k/base.c
2977
ah->ah_cal_next_ani = jiffies +
drivers/net/wireless/ath/ath5k/base.c
2979
ah->ah_cal_next_short = jiffies +
drivers/net/wireless/ath/ath5k/base.c
2982
ewma_beacon_rssi_init(&ah->ah_beacon_rssi_avg);
drivers/net/wireless/ath/ath5k/base.c
2985
memset(&ah->survey, 0, sizeof(ah->survey));
drivers/net/wireless/ath/ath5k/base.c
3003
__clear_bit(ATH_STAT_RESET, ah->status);
drivers/net/wireless/ath/ath5k/base.c
3005
ath5k_beacon_config(ah);
drivers/net/wireless/ath/ath5k/base.c
3008
ieee80211_wake_queues(ah->hw);
drivers/net/wireless/ath/ath5k/base.c
3017
struct ath5k_hw *ah = container_of(work, struct ath5k_hw,
drivers/net/wireless/ath/ath5k/base.c
3020
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
3021
ath5k_reset(ah, NULL, true);
drivers/net/wireless/ath/ath5k/base.c
3022
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/base.c
3029
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
3030
struct ath_regulatory *regulatory = ath5k_hw_regulatory(ah);
drivers/net/wireless/ath/ath5k/base.c
3044
ATH5K_ERR(ah, "can't get channels\n");
drivers/net/wireless/ath/ath5k/base.c
3051
ret = ath5k_desc_alloc(ah);
drivers/net/wireless/ath/ath5k/base.c
3053
ATH5K_ERR(ah, "can't allocate descriptors\n");
drivers/net/wireless/ath/ath5k/base.c
3063
ret = ath5k_beaconq_setup(ah);
drivers/net/wireless/ath/ath5k/base.c
3065
ATH5K_ERR(ah, "can't setup a beacon xmit queue\n");
drivers/net/wireless/ath/ath5k/base.c
3068
ah->bhalq = ret;
drivers/net/wireless/ath/ath5k/base.c
3069
ah->cabq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_CAB, 0);
drivers/net/wireless/ath/ath5k/base.c
3070
if (IS_ERR(ah->cabq)) {
drivers/net/wireless/ath/ath5k/base.c
3071
ATH5K_ERR(ah, "can't setup cab queue\n");
drivers/net/wireless/ath/ath5k/base.c
3072
ret = PTR_ERR(ah->cabq);
drivers/net/wireless/ath/ath5k/base.c
3078
if (ah->ah_capabilities.cap_queues.q_tx_num >= 6) {
drivers/net/wireless/ath/ath5k/base.c
3081
txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_VO);
drivers/net/wireless/ath/ath5k/base.c
3083
ATH5K_ERR(ah, "can't setup xmit queue\n");
drivers/net/wireless/ath/ath5k/base.c
3087
txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_VI);
drivers/net/wireless/ath/ath5k/base.c
3089
ATH5K_ERR(ah, "can't setup xmit queue\n");
drivers/net/wireless/ath/ath5k/base.c
3093
txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BE);
drivers/net/wireless/ath/ath5k/base.c
3095
ATH5K_ERR(ah, "can't setup xmit queue\n");
drivers/net/wireless/ath/ath5k/base.c
3099
txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BK);
drivers/net/wireless/ath/ath5k/base.c
3101
ATH5K_ERR(ah, "can't setup xmit queue\n");
drivers/net/wireless/ath/ath5k/base.c
3108
txq = ath5k_txq_setup(ah, AR5K_TX_QUEUE_DATA, AR5K_WME_AC_BE);
drivers/net/wireless/ath/ath5k/base.c
3110
ATH5K_ERR(ah, "can't setup xmit queue\n");
drivers/net/wireless/ath/ath5k/base.c
3117
tasklet_setup(&ah->rxtq, ath5k_tasklet_rx);
drivers/net/wireless/ath/ath5k/base.c
3118
tasklet_setup(&ah->txtq, ath5k_tasklet_tx);
drivers/net/wireless/ath/ath5k/base.c
3119
tasklet_setup(&ah->beacontq, ath5k_tasklet_beacon);
drivers/net/wireless/ath/ath5k/base.c
3120
tasklet_setup(&ah->ani_tasklet, ath5k_tasklet_ani);
drivers/net/wireless/ath/ath5k/base.c
3122
INIT_WORK(&ah->reset_work, ath5k_reset_work);
drivers/net/wireless/ath/ath5k/base.c
3123
INIT_WORK(&ah->calib_work, ath5k_calibrate_work);
drivers/net/wireless/ath/ath5k/base.c
3124
INIT_DELAYED_WORK(&ah->tx_complete_work, ath5k_tx_complete_poll_work);
drivers/net/wireless/ath/ath5k/base.c
3126
ret = ath5k_hw_common(ah)->bus_ops->eeprom_read_mac(ah, mac);
drivers/net/wireless/ath/ath5k/base.c
3128
ATH5K_ERR(ah, "unable to read address from EEPROM\n");
drivers/net/wireless/ath/ath5k/base.c
313
ATH5K_WARN(ah, "bad mode, not copying channels\n");
drivers/net/wireless/ath/ath5k/base.c
3134
ath5k_update_bssid_mask_and_opmode(ah, NULL);
drivers/net/wireless/ath/ath5k/base.c
3136
regulatory->current_rd = ah->ah_capabilities.cap_eeprom.ee_regdomain;
drivers/net/wireless/ath/ath5k/base.c
3139
ATH5K_ERR(ah, "can't initialize regulatory system\n");
drivers/net/wireless/ath/ath5k/base.c
3145
ATH5K_ERR(ah, "can't register ieee80211 hw\n");
drivers/net/wireless/ath/ath5k/base.c
3152
ath5k_init_leds(ah);
drivers/net/wireless/ath/ath5k/base.c
3154
ath5k_sysfs_register(ah);
drivers/net/wireless/ath/ath5k/base.c
3158
ath5k_txq_release(ah);
drivers/net/wireless/ath/ath5k/base.c
3160
ath5k_hw_release_tx_queue(ah, ah->bhalq);
drivers/net/wireless/ath/ath5k/base.c
3162
ath5k_desc_free(ah);
drivers/net/wireless/ath/ath5k/base.c
3168
ath5k_deinit_ah(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
3170
struct ieee80211_hw *hw = ah->hw;
drivers/net/wireless/ath/ath5k/base.c
3186
ath5k_desc_free(ah);
drivers/net/wireless/ath/ath5k/base.c
3187
ath5k_txq_release(ah);
drivers/net/wireless/ath/ath5k/base.c
3188
ath5k_hw_release_tx_queue(ah, ah->bhalq);
drivers/net/wireless/ath/ath5k/base.c
3189
ath5k_unregister_leds(ah);
drivers/net/wireless/ath/ath5k/base.c
3191
ath5k_sysfs_unregister(ah);
drivers/net/wireless/ath/ath5k/base.c
3197
ath5k_hw_deinit(ah);
drivers/net/wireless/ath/ath5k/base.c
3198
free_irq(ah->irq, ah);
drivers/net/wireless/ath/ath5k/base.c
3202
ath5k_any_vif_assoc(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
3211
ah->hw, IEEE80211_IFACE_ITER_RESUME_ALL,
drivers/net/wireless/ath/ath5k/base.c
3219
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
3221
rfilt = ath5k_hw_get_rx_filter(ah);
drivers/net/wireless/ath/ath5k/base.c
3226
ath5k_hw_set_rx_filter(ah, rfilt);
drivers/net/wireless/ath/ath5k/base.c
3227
ah->filter_flags = rfilt;
drivers/net/wireless/ath/ath5k/base.c
3230
void _ath5k_printk(const struct ath5k_hw *ah, const char *level,
drivers/net/wireless/ath/ath5k/base.c
3241
if (ah && ah->hw)
drivers/net/wireless/ath/ath5k/base.c
3243
level, wiphy_name(ah->hw->wiphy), &vaf);
drivers/net/wireless/ath/ath5k/base.c
330
if (!ath5k_channel_ok(ah, &channels[count]))
drivers/net/wireless/ath/ath5k/base.c
343
ath5k_setup_rate_idx(struct ath5k_hw *ah, struct ieee80211_supported_band *b)
drivers/net/wireless/ath/ath5k/base.c
348
ah->rate_idx[b->band][i] = -1;
drivers/net/wireless/ath/ath5k/base.c
351
ah->rate_idx[b->band][b->bitrates[i].hw_value] = i;
drivers/net/wireless/ath/ath5k/base.c
353
ah->rate_idx[b->band][b->bitrates[i].hw_value_short] = i;
drivers/net/wireless/ath/ath5k/base.c
360
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/base.c
365
BUILD_BUG_ON(ARRAY_SIZE(ah->sbands) < NUM_NL80211_BANDS);
drivers/net/wireless/ath/ath5k/base.c
366
max_c = ARRAY_SIZE(ah->channels);
drivers/net/wireless/ath/ath5k/base.c
369
sband = &ah->sbands[NL80211_BAND_2GHZ];
drivers/net/wireless/ath/ath5k/base.c
371
sband->bitrates = &ah->rates[NL80211_BAND_2GHZ][0];
drivers/net/wireless/ath/ath5k/base.c
373
if (test_bit(AR5K_MODE_11G, ah->ah_capabilities.cap_mode)) {
drivers/net/wireless/ath/ath5k/base.c
379
sband->channels = ah->channels;
drivers/net/wireless/ath/ath5k/base.c
380
sband->n_channels = ath5k_setup_channels(ah, sband->channels,
drivers/net/wireless/ath/ath5k/base.c
386
} else if (test_bit(AR5K_MODE_11B, ah->ah_capabilities.cap_mode)) {
drivers/net/wireless/ath/ath5k/base.c
396
if (ah->ah_version == AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/base.c
405
sband->channels = ah->channels;
drivers/net/wireless/ath/ath5k/base.c
406
sband->n_channels = ath5k_setup_channels(ah, sband->channels,
drivers/net/wireless/ath/ath5k/base.c
413
ath5k_setup_rate_idx(ah, sband);
drivers/net/wireless/ath/ath5k/base.c
416
if (test_bit(AR5K_MODE_11A, ah->ah_capabilities.cap_mode)) {
drivers/net/wireless/ath/ath5k/base.c
417
sband = &ah->sbands[NL80211_BAND_5GHZ];
drivers/net/wireless/ath/ath5k/base.c
419
sband->bitrates = &ah->rates[NL80211_BAND_5GHZ][0];
drivers/net/wireless/ath/ath5k/base.c
425
sband->channels = &ah->channels[count_c];
drivers/net/wireless/ath/ath5k/base.c
426
sband->n_channels = ath5k_setup_channels(ah, sband->channels,
drivers/net/wireless/ath/ath5k/base.c
431
ath5k_setup_rate_idx(ah, sband);
drivers/net/wireless/ath/ath5k/base.c
433
ath5k_debug_dump_bands(ah);
drivers/net/wireless/ath/ath5k/base.c
446
ath5k_chan_set(struct ath5k_hw *ah, struct cfg80211_chan_def *chandef)
drivers/net/wireless/ath/ath5k/base.c
448
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/base.c
450
ah->curchan->center_freq, chandef->chan->center_freq);
drivers/net/wireless/ath/ath5k/base.c
455
ah->ah_bwmode = AR5K_BWMODE_DEFAULT;
drivers/net/wireless/ath/ath5k/base.c
458
ah->ah_bwmode = AR5K_BWMODE_5MHZ;
drivers/net/wireless/ath/ath5k/base.c
461
ah->ah_bwmode = AR5K_BWMODE_10MHZ;
drivers/net/wireless/ath/ath5k/base.c
474
return ath5k_reset(ah, chandef->chan, true);
drivers/net/wireless/ath/ath5k/base.c
518
ath5k_update_bssid_mask_and_opmode(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/base.c
521
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
541
ah->hw, IEEE80211_IFACE_ITER_RESUME_ALL,
drivers/net/wireless/ath/ath5k/base.c
543
memcpy(ah->bssidmask, iter_data.mask, ETH_ALEN);
drivers/net/wireless/ath/ath5k/base.c
545
ah->opmode = iter_data.opmode;
drivers/net/wireless/ath/ath5k/base.c
546
if (ah->opmode == NL80211_IFTYPE_UNSPECIFIED)
drivers/net/wireless/ath/ath5k/base.c
548
ah->opmode = NL80211_IFTYPE_STATION;
drivers/net/wireless/ath/ath5k/base.c
550
ath5k_hw_set_opmode(ah, ah->opmode);
drivers/net/wireless/ath/ath5k/base.c
551
ATH5K_DBG(ah, ATH5K_DEBUG_MODE, "mode setup opmode %d (%s)\n",
drivers/net/wireless/ath/ath5k/base.c
552
ah->opmode, ath_opmode_to_string(ah->opmode));
drivers/net/wireless/ath/ath5k/base.c
555
ath5k_hw_set_lladdr(ah, iter_data.active_mac);
drivers/net/wireless/ath/ath5k/base.c
557
if (ath5k_hw_hasbssidmask(ah))
drivers/net/wireless/ath/ath5k/base.c
558
ath5k_hw_set_bssid_mask(ah, ah->bssidmask);
drivers/net/wireless/ath/ath5k/base.c
566
ah->filter_flags |= AR5K_RX_FILTER_PROM;
drivers/net/wireless/ath/ath5k/base.c
569
rfilt = ah->filter_flags;
drivers/net/wireless/ath/ath5k/base.c
570
ath5k_hw_set_rx_filter(ah, rfilt);
drivers/net/wireless/ath/ath5k/base.c
571
ATH5K_DBG(ah, ATH5K_DEBUG_MODE, "RX filter 0x%x\n", rfilt);
drivers/net/wireless/ath/ath5k/base.c
575
ath5k_hw_to_driver_rix(struct ath5k_hw *ah, int hw_rix)
drivers/net/wireless/ath/ath5k/base.c
584
rix = ah->rate_idx[ah->curchan->band][hw_rix];
drivers/net/wireless/ath/ath5k/base.c
596
struct sk_buff *ath5k_rx_skb_alloc(struct ath5k_hw *ah, dma_addr_t *skb_addr)
drivers/net/wireless/ath/ath5k/base.c
598
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
610
ATH5K_ERR(ah, "can't alloc skbuff of size %u\n",
drivers/net/wireless/ath/ath5k/base.c
615
*skb_addr = dma_map_single(ah->dev,
drivers/net/wireless/ath/ath5k/base.c
619
if (unlikely(dma_mapping_error(ah->dev, *skb_addr))) {
drivers/net/wireless/ath/ath5k/base.c
620
ATH5K_ERR(ah, "%s: DMA mapping failed\n", __func__);
drivers/net/wireless/ath/ath5k/base.c
628
ath5k_rxbuf_setup(struct ath5k_hw *ah, struct ath5k_buf *bf)
drivers/net/wireless/ath/ath5k/base.c
635
skb = ath5k_rx_skb_alloc(ah, &bf->skbaddr);
drivers/net/wireless/ath/ath5k/base.c
659
ret = ath5k_hw_setup_rx_desc(ah, ds, ah->common.rx_bufsize, 0);
drivers/net/wireless/ath/ath5k/base.c
661
ATH5K_ERR(ah, "%s: could not setup RX desc\n", __func__);
drivers/net/wireless/ath/ath5k/base.c
665
if (ah->rxlink != NULL)
drivers/net/wireless/ath/ath5k/base.c
666
*ah->rxlink = bf->daddr;
drivers/net/wireless/ath/ath5k/base.c
667
ah->rxlink = &ds->ds_link;
drivers/net/wireless/ath/ath5k/base.c
768
ath5k_txbuf_setup(struct ath5k_hw *ah, struct ath5k_buf *bf,
drivers/net/wireless/ath/ath5k/base.c
788
bf->skbaddr = dma_map_single(ah->dev, skb->data, skb->len,
drivers/net/wireless/ath/ath5k/base.c
791
if (dma_mapping_error(ah->dev, bf->skbaddr))
drivers/net/wireless/ath/ath5k/base.c
805
rate = ath5k_get_rate(ah->hw, info, bf, 0);
drivers/net/wireless/ath/ath5k/base.c
817
hw_rate = ath5k_get_rate_hw_value(ah->hw, info, bf, 0);
drivers/net/wireless/ath/ath5k/base.c
830
cts_rate = ieee80211_get_rts_cts_rate(ah->hw, info)->hw_value;
drivers/net/wireless/ath/ath5k/base.c
831
duration = le16_to_cpu(ieee80211_rts_duration(ah->hw,
drivers/net/wireless/ath/ath5k/base.c
836
cts_rate = ieee80211_get_rts_cts_rate(ah->hw, info)->hw_value;
drivers/net/wireless/ath/ath5k/base.c
837
duration = le16_to_cpu(ieee80211_ctstoself_duration(ah->hw,
drivers/net/wireless/ath/ath5k/base.c
841
ret = ah->ah_setup_tx_desc(ah, ds, pktlen,
drivers/net/wireless/ath/ath5k/base.c
844
(ah->ah_txpower.txp_requested * 2),
drivers/net/wireless/ath/ath5k/base.c
846
bf->rates[0].count, keyidx, ah->ah_tx_ant, flags,
drivers/net/wireless/ath/ath5k/base.c
852
if (ah->ah_capabilities.cap_has_mrr_support) {
drivers/net/wireless/ath/ath5k/base.c
858
rate = ath5k_get_rate(ah->hw, info, bf, i);
drivers/net/wireless/ath/ath5k/base.c
862
mrr_rate[i] = ath5k_get_rate_hw_value(ah->hw, info, bf, i);
drivers/net/wireless/ath/ath5k/base.c
866
ath5k_hw_setup_mrr_tx_desc(ah, ds,
drivers/net/wireless/ath/ath5k/base.c
879
ath5k_hw_set_txdp(ah, txq->qnum, bf->daddr);
drivers/net/wireless/ath/ath5k/base.c
884
ath5k_hw_start_tx_dma(ah, txq->qnum);
drivers/net/wireless/ath/ath5k/base.c
889
dma_unmap_single(ah->dev, bf->skbaddr, skb->len, DMA_TO_DEVICE);
drivers/net/wireless/ath/ath5k/base.c
898
ath5k_desc_alloc(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
907
ah->desc_len = sizeof(struct ath5k_desc) *
drivers/net/wireless/ath/ath5k/base.c
910
ah->desc = dma_alloc_coherent(ah->dev, ah->desc_len,
drivers/net/wireless/ath/ath5k/base.c
911
&ah->desc_daddr, GFP_KERNEL);
drivers/net/wireless/ath/ath5k/base.c
912
if (ah->desc == NULL) {
drivers/net/wireless/ath/ath5k/base.c
913
ATH5K_ERR(ah, "can't allocate descriptors\n");
drivers/net/wireless/ath/ath5k/base.c
917
ds = ah->desc;
drivers/net/wireless/ath/ath5k/base.c
918
da = ah->desc_daddr;
drivers/net/wireless/ath/ath5k/base.c
919
ATH5K_DBG(ah, ATH5K_DEBUG_ANY, "DMA map: %p (%zu) -> %llx\n",
drivers/net/wireless/ath/ath5k/base.c
920
ds, ah->desc_len, (unsigned long long)ah->desc_daddr);
drivers/net/wireless/ath/ath5k/base.c
925
ATH5K_ERR(ah, "can't allocate bufptr\n");
drivers/net/wireless/ath/ath5k/base.c
929
ah->bufptr = bf;
drivers/net/wireless/ath/ath5k/base.c
931
INIT_LIST_HEAD(&ah->rxbuf);
drivers/net/wireless/ath/ath5k/base.c
935
list_add_tail(&bf->list, &ah->rxbuf);
drivers/net/wireless/ath/ath5k/base.c
938
INIT_LIST_HEAD(&ah->txbuf);
drivers/net/wireless/ath/ath5k/base.c
939
ah->txbuf_len = ATH_TXBUF;
drivers/net/wireless/ath/ath5k/base.c
943
list_add_tail(&bf->list, &ah->txbuf);
drivers/net/wireless/ath/ath5k/base.c
947
INIT_LIST_HEAD(&ah->bcbuf);
drivers/net/wireless/ath/ath5k/base.c
951
list_add_tail(&bf->list, &ah->bcbuf);
drivers/net/wireless/ath/ath5k/base.c
956
dma_free_coherent(ah->dev, ah->desc_len, ah->desc, ah->desc_daddr);
drivers/net/wireless/ath/ath5k/base.c
958
ah->desc = NULL;
drivers/net/wireless/ath/ath5k/base.c
96
static int ath5k_reset(struct ath5k_hw *ah, struct ieee80211_channel *chan,
drivers/net/wireless/ath/ath5k/base.c
963
ath5k_txbuf_free_skb(struct ath5k_hw *ah, struct ath5k_buf *bf)
drivers/net/wireless/ath/ath5k/base.c
968
dma_unmap_single(ah->dev, bf->skbaddr, bf->skb->len,
drivers/net/wireless/ath/ath5k/base.c
970
ieee80211_free_txskb(ah->hw, bf->skb);
drivers/net/wireless/ath/ath5k/base.c
977
ath5k_rxbuf_free_skb(struct ath5k_hw *ah, struct ath5k_buf *bf)
drivers/net/wireless/ath/ath5k/base.c
979
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/base.c
984
dma_unmap_single(ah->dev, bf->skbaddr, common->rx_bufsize,
drivers/net/wireless/ath/ath5k/base.c
993
ath5k_desc_free(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/base.c
997
list_for_each_entry(bf, &ah->txbuf, list)
drivers/net/wireless/ath/ath5k/base.c
998
ath5k_txbuf_free_skb(ah, bf);
drivers/net/wireless/ath/ath5k/base.c
999
list_for_each_entry(bf, &ah->rxbuf, list)
drivers/net/wireless/ath/ath5k/base.h
102
void ath5k_update_bssid_mask_and_opmode(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/base.h
104
int ath5k_chan_set(struct ath5k_hw *ah, struct cfg80211_chan_def *chandef);
drivers/net/wireless/ath/ath5k/base.h
105
void ath5k_txbuf_free_skb(struct ath5k_hw *ah, struct ath5k_buf *bf);
drivers/net/wireless/ath/ath5k/base.h
106
void ath5k_rxbuf_free_skb(struct ath5k_hw *ah, struct ath5k_buf *bf);
drivers/net/wireless/ath/ath5k/base.h
112
int ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops);
drivers/net/wireless/ath/ath5k/base.h
113
void ath5k_deinit_ah(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/base.h
116
#define ath5k_hw_hasbssidmask(_ah) (ah->ah_version == AR5K_AR5212)
drivers/net/wireless/ath/ath5k/base.h
119
#define ath5k_hw_hasveol(_ah) (ah->ah_version != AR5K_AR5210)
drivers/net/wireless/ath/ath5k/base.h
92
bool ath5k_any_vif_assoc(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/base.h
97
void ath5k_beacon_update_timers(struct ath5k_hw *ah, u64 bc_tsf);
drivers/net/wireless/ath/ath5k/base.h
99
void ath5k_beacon_config(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/caps.c
104
if ((ah->ah_radio_5ghz_revision & 0xf0) == AR5K_SREV_RAD_2112)
drivers/net/wireless/ath/ath5k/caps.c
108
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/caps.c
114
if (ah->ah_mac_srev >= AR5K_SREV_AR5213A)
drivers/net/wireless/ath/ath5k/caps.c
120
if (ah->ah_version == AR5K_AR5212)
drivers/net/wireless/ath/ath5k/caps.c
133
int ath5k_hw_enable_pspoll(struct ath5k_hw *ah, u8 *bssid,
drivers/net/wireless/ath/ath5k/caps.c
136
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/caps.c
137
AR5K_REG_DISABLE_BITS(ah, AR5K_STA_ID1,
drivers/net/wireless/ath/ath5k/caps.c
145
int ath5k_hw_disable_pspoll(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/caps.c
147
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/caps.c
148
AR5K_REG_ENABLE_BITS(ah, AR5K_STA_ID1,
drivers/net/wireless/ath/ath5k/caps.c
33
int ath5k_hw_set_capabilities(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/caps.c
35
struct ath5k_capabilities *caps = &ah->ah_capabilities;
drivers/net/wireless/ath/ath5k/caps.c
41
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/caps.c
83
ah->ah_version != AR5K_AR5211)) {
drivers/net/wireless/ath/ath5k/caps.c
97
ah->ah_version != AR5K_AR5211)
drivers/net/wireless/ath/ath5k/debug.c
1003
ath5k_debug_dump_bands(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/debug.c
1007
if (likely(!(ah->debug.level & ATH5K_DEBUG_DUMPBANDS)))
drivers/net/wireless/ath/ath5k/debug.c
1011
struct ieee80211_supported_band *band = &ah->sbands[b];
drivers/net/wireless/ath/ath5k/debug.c
1061
ath5k_debug_printrxbuffs(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/debug.c
1068
if (likely(!(ah->debug.level & ATH5K_DEBUG_DESC)))
drivers/net/wireless/ath/ath5k/debug.c
1072
ath5k_hw_get_rxdp(ah), ah->rxlink);
drivers/net/wireless/ath/ath5k/debug.c
1074
spin_lock_bh(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/debug.c
1075
list_for_each_entry(bf, &ah->rxbuf, list) {
drivers/net/wireless/ath/ath5k/debug.c
1077
status = ah->ah_proc_rx_desc(ah, ds, &rs);
drivers/net/wireless/ath/ath5k/debug.c
1081
spin_unlock_bh(&ah->rxbuflock);
drivers/net/wireless/ath/ath5k/debug.c
1085
ath5k_debug_printtxbuf(struct ath5k_hw *ah, struct ath5k_buf *bf)
drivers/net/wireless/ath/ath5k/debug.c
1092
if (likely(!(ah->debug.level & ATH5K_DEBUG_DESC)))
drivers/net/wireless/ath/ath5k/debug.c
1095
done = ah->ah_proc_tx_desc(ah, bf->desc, &ts);
drivers/net/wireless/ath/ath5k/debug.c
157
struct ath5k_hw *ah = seq->private;
drivers/net/wireless/ath/ath5k/debug.c
160
ath5k_hw_reg_read(ah, r->addr));
drivers/net/wireless/ath/ath5k/debug.c
178
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
184
v = ath5k_hw_reg_read(ah, AR5K_BEACON);
drivers/net/wireless/ath/ath5k/debug.c
191
"AR5K_LAST_TSTP", ath5k_hw_reg_read(ah, AR5K_LAST_TSTP));
drivers/net/wireless/ath/ath5k/debug.c
194
"AR5K_BEACON_CNT", ath5k_hw_reg_read(ah, AR5K_BEACON_CNT));
drivers/net/wireless/ath/ath5k/debug.c
196
v = ath5k_hw_reg_read(ah, AR5K_TIMER0);
drivers/net/wireless/ath/ath5k/debug.c
200
v = ath5k_hw_reg_read(ah, AR5K_TIMER1);
drivers/net/wireless/ath/ath5k/debug.c
204
v = ath5k_hw_reg_read(ah, AR5K_TIMER2);
drivers/net/wireless/ath/ath5k/debug.c
208
v = ath5k_hw_reg_read(ah, AR5K_TIMER3);
drivers/net/wireless/ath/ath5k/debug.c
212
tsf = ath5k_hw_get_tsf64(ah);
drivers/net/wireless/ath/ath5k/debug.c
227
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
236
AR5K_REG_DISABLE_BITS(ah, AR5K_BEACON, AR5K_BEACON_ENABLE);
drivers/net/wireless/ath/ath5k/debug.c
239
AR5K_REG_ENABLE_BITS(ah, AR5K_BEACON, AR5K_BEACON_ENABLE);
drivers/net/wireless/ath/ath5k/debug.c
260
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
261
ATH5K_DBG(ah, ATH5K_DEBUG_RESET, "debug file triggered reset\n");
drivers/net/wireless/ath/ath5k/debug.c
262
ieee80211_queue_work(ah->hw, &ah->reset_work);
drivers/net/wireless/ath/ath5k/debug.c
299
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
305
"DEBUG LEVEL: 0x%08x\n\n", ah->debug.level);
drivers/net/wireless/ath/ath5k/debug.c
310
ah->debug.level & dbg_info[i].level ? '+' : ' ',
drivers/net/wireless/ath/ath5k/debug.c
315
ah->debug.level == dbg_info[i].level ? '+' : ' ',
drivers/net/wireless/ath/ath5k/debug.c
328
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
340
ah->debug.level ^= dbg_info[i].level; /* toggle bit */
drivers/net/wireless/ath/ath5k/debug.c
361
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
368
ah->ah_ant_mode);
drivers/net/wireless/ath/ath5k/debug.c
370
ah->ah_def_ant);
drivers/net/wireless/ath/ath5k/debug.c
372
ah->ah_tx_ant);
drivers/net/wireless/ath/ath5k/debug.c
375
for (i = 1; i < ARRAY_SIZE(ah->stats.antenna_rx); i++) {
drivers/net/wireless/ath/ath5k/debug.c
378
i, ah->stats.antenna_rx[i], ah->stats.antenna_tx[i]);
drivers/net/wireless/ath/ath5k/debug.c
381
ah->stats.antenna_rx[0], ah->stats.antenna_tx[0]);
drivers/net/wireless/ath/ath5k/debug.c
383
v = ath5k_hw_reg_read(ah, AR5K_DEFAULT_ANTENNA);
drivers/net/wireless/ath/ath5k/debug.c
387
v = ath5k_hw_reg_read(ah, AR5K_STA_ID1);
drivers/net/wireless/ath/ath5k/debug.c
401
v = ath5k_hw_reg_read(ah, AR5K_PHY_AGCCTL);
drivers/net/wireless/ath/ath5k/debug.c
406
v = ath5k_hw_reg_read(ah, AR5K_PHY_RESTART);
drivers/net/wireless/ath/ath5k/debug.c
411
v = ath5k_hw_reg_read(ah, AR5K_PHY_FAST_ANT_DIV);
drivers/net/wireless/ath/ath5k/debug.c
416
v = ath5k_hw_reg_read(ah, AR5K_PHY_ANT_SWITCH_TABLE_0);
drivers/net/wireless/ath/ath5k/debug.c
419
v = ath5k_hw_reg_read(ah, AR5K_PHY_ANT_SWITCH_TABLE_1);
drivers/net/wireless/ath/ath5k/debug.c
433
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
443
ath5k_hw_set_antenna_mode(ah, AR5K_ANTMODE_DEFAULT);
drivers/net/wireless/ath/ath5k/debug.c
446
ath5k_hw_set_antenna_mode(ah, AR5K_ANTMODE_FIXED_A);
drivers/net/wireless/ath/ath5k/debug.c
449
ath5k_hw_set_antenna_mode(ah, AR5K_ANTMODE_FIXED_B);
drivers/net/wireless/ath/ath5k/debug.c
452
for (i = 0; i < ARRAY_SIZE(ah->stats.antenna_rx); i++) {
drivers/net/wireless/ath/ath5k/debug.c
453
ah->stats.antenna_rx[i] = 0;
drivers/net/wireless/ath/ath5k/debug.c
454
ah->stats.antenna_tx[i] = 0;
drivers/net/wireless/ath/ath5k/debug.c
474
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
477
u32 filt = ath5k_hw_get_rx_filter(ah);
drivers/net/wireless/ath/ath5k/debug.c
480
ah->bssidmask);
drivers/net/wireless/ath/ath5k/debug.c
509
ath_opmode_to_string(ah->opmode), ah->opmode);
drivers/net/wireless/ath/ath5k/debug.c
529
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
530
struct ath5k_statistics *st = &ah->stats;
drivers/net/wireless/ath/ath5k/debug.c
606
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
607
struct ath5k_statistics *st = &ah->stats;
drivers/net/wireless/ath/ath5k/debug.c
647
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
648
struct ath5k_statistics *st = &ah->stats;
drivers/net/wireless/ath/ath5k/debug.c
649
struct ath5k_ani_state *as = &ah->ani_state;
drivers/net/wireless/ath/ath5k/debug.c
656
ah->ah_capabilities.cap_has_phyerr_counters ?
drivers/net/wireless/ath/ath5k/debug.c
705
(int)ewma_beacon_rssi_read(&ah->ah_beacon_rssi_avg));
drivers/net/wireless/ath/ath5k/debug.c
737
ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT1),
drivers/net/wireless/ath/ath5k/debug.c
739
ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT1)));
drivers/net/wireless/ath/ath5k/debug.c
742
ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT2),
drivers/net/wireless/ath/ath5k/debug.c
744
ath5k_hw_reg_read(ah, AR5K_PHYERR_CNT2)));
drivers/net/wireless/ath/ath5k/debug.c
756
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
765
ath5k_ani_init(ah, ATH5K_ANI_MODE_MANUAL_HIGH);
drivers/net/wireless/ath/ath5k/debug.c
767
ath5k_ani_init(ah, ATH5K_ANI_MODE_MANUAL_LOW);
drivers/net/wireless/ath/ath5k/debug.c
769
ath5k_ani_init(ah, ATH5K_ANI_MODE_OFF);
drivers/net/wireless/ath/ath5k/debug.c
771
ath5k_ani_init(ah, ATH5K_ANI_MODE_AUTO);
drivers/net/wireless/ath/ath5k/debug.c
773
ath5k_ani_set_noise_immunity_level(ah, 0);
drivers/net/wireless/ath/ath5k/debug.c
775
ath5k_ani_set_noise_immunity_level(ah,
drivers/net/wireless/ath/ath5k/debug.c
778
ath5k_ani_set_spur_immunity_level(ah, 0);
drivers/net/wireless/ath/ath5k/debug.c
780
ath5k_ani_set_spur_immunity_level(ah,
drivers/net/wireless/ath/ath5k/debug.c
781
ah->ani_state.max_spur_level);
drivers/net/wireless/ath/ath5k/debug.c
783
ath5k_ani_set_firstep_level(ah, 0);
drivers/net/wireless/ath/ath5k/debug.c
785
ath5k_ani_set_firstep_level(ah, ATH5K_ANI_MAX_FIRSTEP_LVL);
drivers/net/wireless/ath/ath5k/debug.c
787
ath5k_ani_set_ofdm_weak_signal_detection(ah, false);
drivers/net/wireless/ath/ath5k/debug.c
789
ath5k_ani_set_ofdm_weak_signal_detection(ah, true);
drivers/net/wireless/ath/ath5k/debug.c
791
ath5k_ani_set_cck_weak_signal_detection(ah, false);
drivers/net/wireless/ath/ath5k/debug.c
793
ath5k_ani_set_cck_weak_signal_detection(ah, true);
drivers/net/wireless/ath/ath5k/debug.c
812
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
821
"available txbuffers: %d\n", ah->txbuf_len);
drivers/net/wireless/ath/ath5k/debug.c
823
for (i = 0; i < ARRAY_SIZE(ah->txqs); i++) {
drivers/net/wireless/ath/ath5k/debug.c
824
txq = &ah->txqs[i];
drivers/net/wireless/ath/ath5k/debug.c
854
struct ath5k_hw *ah = file->private_data;
drivers/net/wireless/ath/ath5k/debug.c
863
ieee80211_wake_queues(ah->hw);
drivers/net/wireless/ath/ath5k/debug.c
865
ieee80211_stop_queues(ah->hw);
drivers/net/wireless/ath/ath5k/debug.c
889
struct ath5k_hw *ah = inode->i_private;
drivers/net/wireless/ath/ath5k/debug.c
897
res = ath5k_hw_nvram_read(ah, AR5K_EEPROM_SIZE_UPPER, &val);
drivers/net/wireless/ath/ath5k/debug.c
906
ath5k_hw_nvram_read(ah, AR5K_EEPROM_SIZE_LOWER, &val);
drivers/net/wireless/ath/ath5k/debug.c
922
if (!ath5k_hw_nvram_read(ah, i, &val)) {
drivers/net/wireless/ath/ath5k/debug.c
978
ath5k_debug_init_device(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/debug.c
982
ah->debug.level = ath5k_debug;
drivers/net/wireless/ath/ath5k/debug.c
984
phydir = debugfs_create_dir("ath5k", ah->hw->wiphy->debugfsdir);
drivers/net/wireless/ath/ath5k/debug.c
986
debugfs_create_file("debug", 0600, phydir, ah, &fops_debug);
drivers/net/wireless/ath/ath5k/debug.c
987
debugfs_create_file("registers", 0400, phydir, ah, ®isters_fops);
drivers/net/wireless/ath/ath5k/debug.c
988
debugfs_create_file("beacon", 0600, phydir, ah, &fops_beacon);
drivers/net/wireless/ath/ath5k/debug.c
989
debugfs_create_file("reset", 0200, phydir, ah, &fops_reset);
drivers/net/wireless/ath/ath5k/debug.c
990
debugfs_create_file("antenna", 0600, phydir, ah, &fops_antenna);
drivers/net/wireless/ath/ath5k/debug.c
991
debugfs_create_file("misc", 0400, phydir, ah, &fops_misc);
drivers/net/wireless/ath/ath5k/debug.c
992
debugfs_create_file("eeprom", 0400, phydir, ah, &fops_eeprom);
drivers/net/wireless/ath/ath5k/debug.c
993
debugfs_create_file("frameerrors", 0600, phydir, ah, &fops_frameerrors);
drivers/net/wireless/ath/ath5k/debug.c
994
debugfs_create_file("ani", 0600, phydir, ah, &fops_ani);
drivers/net/wireless/ath/ath5k/debug.c
995
debugfs_create_file("queue", 0600, phydir, ah, &fops_queue);
drivers/net/wireless/ath/ath5k/debug.c
997
&ah->ah_use_32khz_clock);
drivers/net/wireless/ath/ath5k/debug.h
127
ath5k_debug_init_device(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/debug.h
130
ath5k_debug_printrxbuffs(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/debug.h
133
ath5k_debug_dump_bands(struct ath5k_hw *ah);
drivers/net/wireless/ath/ath5k/debug.h
136
ath5k_debug_printtxbuf(struct ath5k_hw *ah, struct ath5k_buf *bf);
drivers/net/wireless/ath/ath5k/debug.h
143
ATH5K_DBG(struct ath5k_hw *ah, unsigned int m, const char *fmt, ...) {}
drivers/net/wireless/ath/ath5k/debug.h
146
ATH5K_DBG_UNLIMIT(struct ath5k_hw *ah, unsigned int m, const char *fmt, ...)
drivers/net/wireless/ath/ath5k/debug.h
150
ath5k_debug_init_device(struct ath5k_hw *ah) {}
drivers/net/wireless/ath/ath5k/debug.h
153
ath5k_debug_printrxbuffs(struct ath5k_hw *ah) {}
drivers/net/wireless/ath/ath5k/debug.h
156
ath5k_debug_dump_bands(struct ath5k_hw *ah) {}
drivers/net/wireless/ath/ath5k/debug.h
159
ath5k_debug_printtxbuf(struct ath5k_hw *ah, struct ath5k_buf *bf) {}
drivers/net/wireless/ath/ath5k/desc.c
100
ATH5K_ERR(ah, "zero retries\n");
drivers/net/wireless/ath/ath5k/desc.c
105
ATH5K_ERR(ah, "zero rate\n");
drivers/net/wireless/ath/ath5k/desc.c
139
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/desc.c
147
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/desc.c
188
if (ah->ah_version == AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/desc.c
210
if ((ah->ah_version == AR5K_AR5210) &&
drivers/net/wireless/ath/ath5k/desc.c
241
ath5k_hw_setup_4word_tx_desc(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
271
ATH5K_ERR(ah, "zero retries\n");
drivers/net/wireless/ath/ath5k/desc.c
276
ATH5K_ERR(ah, "zero rate\n");
drivers/net/wireless/ath/ath5k/desc.c
281
tx_power += ah->ah_txpower.txp_offset;
drivers/net/wireless/ath/ath5k/desc.c
379
ath5k_hw_setup_mrr_tx_desc(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
388
if (ah->ah_version < AR5K_AR5212)
drivers/net/wireless/ath/ath5k/desc.c
400
ATH5K_ERR(ah, "zero rate\n");
drivers/net/wireless/ath/ath5k/desc.c
405
if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/desc.c
442
ath5k_hw_proc_2word_tx_status(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
494
ath5k_hw_proc_4word_tx_status(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
559
ath5k_hw_setup_rx_desc(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
601
ath5k_hw_proc_5210_rx_status(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
635
if (ah->ah_version == AR5K_AR5211)
drivers/net/wireless/ath/ath5k/desc.c
662
if ((ah->ah_version == AR5K_AR5210) &&
drivers/net/wireless/ath/ath5k/desc.c
695
ath5k_hw_proc_5212_rx_status(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
746
if (!ah->ah_capabilities.cap_has_phyerr_counters)
drivers/net/wireless/ath/ath5k/desc.c
747
ath5k_ani_phy_error_report(ah, rs->rs_phyerr);
drivers/net/wireless/ath/ath5k/desc.c
75
ath5k_hw_setup_2word_tx_desc(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/desc.c
773
ath5k_hw_init_desc_functions(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/desc.c
775
if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/desc.c
776
ah->ah_setup_tx_desc = ath5k_hw_setup_4word_tx_desc;
drivers/net/wireless/ath/ath5k/desc.c
777
ah->ah_proc_tx_desc = ath5k_hw_proc_4word_tx_status;
drivers/net/wireless/ath/ath5k/desc.c
778
ah->ah_proc_rx_desc = ath5k_hw_proc_5212_rx_status;
drivers/net/wireless/ath/ath5k/desc.c
779
} else if (ah->ah_version <= AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/desc.c
780
ah->ah_setup_tx_desc = ath5k_hw_setup_2word_tx_desc;
drivers/net/wireless/ath/ath5k/desc.c
781
ah->ah_proc_tx_desc = ath5k_hw_proc_2word_tx_status;
drivers/net/wireless/ath/ath5k/desc.c
782
ah->ah_proc_rx_desc = ath5k_hw_proc_5210_rx_status;
drivers/net/wireless/ath/ath5k/desc.h
173
(ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/desc.h
188
(ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/dma.c
100
if (ath5k_hw_reg_read(ah, AR5K_CR) & AR5K_CR_RXE) {
drivers/net/wireless/ath/ath5k/dma.c
101
ATH5K_DBG(ah, ATH5K_DEBUG_DMA,
drivers/net/wireless/ath/ath5k/dma.c
106
ath5k_hw_reg_write(ah, phys_addr, AR5K_RXDP);
drivers/net/wireless/ath/ath5k/dma.c
130
ath5k_hw_start_tx_dma(struct ath5k_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath5k/dma.c
134
AR5K_ASSERT_ENTRY(queue, ah->ah_capabilities.cap_queues.q_tx_num);
drivers/net/wireless/ath/ath5k/dma.c
137
if (ah->ah_txq[queue].tqi_type == AR5K_TX_QUEUE_INACTIVE)
drivers/net/wireless/ath/ath5k/dma.c
140
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
141
tx_queue = ath5k_hw_reg_read(ah, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
146
switch (ah->ah_txq[queue].tqi_type) {
drivers/net/wireless/ath/ath5k/dma.c
152
ath5k_hw_reg_write(ah, AR5K_BCR_TQ1V | AR5K_BCR_BDMAE,
drivers/net/wireless/ath/ath5k/dma.c
157
ath5k_hw_reg_write(ah, AR5K_BCR_TQ1FV | AR5K_BCR_TQ1V |
drivers/net/wireless/ath/ath5k/dma.c
164
ath5k_hw_reg_write(ah, tx_queue, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
165
ath5k_hw_reg_read(ah, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
168
if (AR5K_REG_READ_Q(ah, AR5K_QCU_TXD, queue))
drivers/net/wireless/ath/ath5k/dma.c
172
AR5K_REG_WRITE_Q(ah, AR5K_QCU_TXE, queue);
drivers/net/wireless/ath/ath5k/dma.c
188
ath5k_hw_stop_tx_dma(struct ath5k_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath5k/dma.c
193
AR5K_ASSERT_ENTRY(queue, ah->ah_capabilities.cap_queues.q_tx_num);
drivers/net/wireless/ath/ath5k/dma.c
196
if (ah->ah_txq[queue].tqi_type == AR5K_TX_QUEUE_INACTIVE)
drivers/net/wireless/ath/ath5k/dma.c
199
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
200
tx_queue = ath5k_hw_reg_read(ah, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
205
switch (ah->ah_txq[queue].tqi_type) {
drivers/net/wireless/ath/ath5k/dma.c
213
ath5k_hw_reg_write(ah, 0, AR5K_BSR);
drivers/net/wireless/ath/ath5k/dma.c
220
ath5k_hw_reg_write(ah, tx_queue, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
221
ath5k_hw_reg_read(ah, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
228
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/dma.c
234
AR5K_REG_WRITE_Q(ah, AR5K_QCU_TXD, queue);
drivers/net/wireless/ath/ath5k/dma.c
238
(AR5K_REG_READ_Q(ah, AR5K_QCU_TXE, queue) != 0);
drivers/net/wireless/ath/ath5k/dma.c
242
if (AR5K_REG_READ_Q(ah, AR5K_QCU_TXE, queue))
drivers/net/wireless/ath/ath5k/dma.c
243
ATH5K_DBG(ah, ATH5K_DEBUG_DMA,
drivers/net/wireless/ath/ath5k/dma.c
249
pending = ath5k_hw_reg_read(ah,
drivers/net/wireless/ath/ath5k/dma.c
257
if (ah->ah_mac_version >= (AR5K_SREV_AR2414 >> 4) &&
drivers/net/wireless/ath/ath5k/dma.c
260
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/dma.c
266
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/dma.c
268
AR5K_REG_SM(ath5k_hw_reg_read(ah,
drivers/net/wireless/ath/ath5k/dma.c
274
AR5K_REG_ENABLE_BITS(ah, AR5K_DIAG_SW_5211,
drivers/net/wireless/ath/ath5k/dma.c
279
AR5K_REG_DISABLE_BITS(ah, AR5K_QUIET_CTL1,
drivers/net/wireless/ath/ath5k/dma.c
285
pending = ath5k_hw_reg_read(ah,
drivers/net/wireless/ath/ath5k/dma.c
291
AR5K_REG_DISABLE_BITS(ah, AR5K_DIAG_SW_5211,
drivers/net/wireless/ath/ath5k/dma.c
295
ATH5K_DBG(ah, ATH5K_DEBUG_DMA,
drivers/net/wireless/ath/ath5k/dma.c
303
AR5K_REG_DISABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/dma.c
307
ath5k_hw_reg_write(ah, 0, AR5K_QCU_TXD);
drivers/net/wireless/ath/ath5k/dma.c
309
ATH5K_DBG(ah, ATH5K_DEBUG_DMA,
drivers/net/wireless/ath/ath5k/dma.c
328
ath5k_hw_stop_beacon_queue(struct ath5k_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath5k/dma.c
331
ret = ath5k_hw_stop_tx_dma(ah, queue);
drivers/net/wireless/ath/ath5k/dma.c
333
ATH5K_DBG(ah, ATH5K_DEBUG_DMA,
drivers/net/wireless/ath/ath5k/dma.c
353
ath5k_hw_get_txdp(struct ath5k_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath5k/dma.c
357
AR5K_ASSERT_ENTRY(queue, ah->ah_capabilities.cap_queues.q_tx_num);
drivers/net/wireless/ath/ath5k/dma.c
363
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
364
switch (ah->ah_txq[queue].tqi_type) {
drivers/net/wireless/ath/ath5k/dma.c
379
return ath5k_hw_reg_read(ah, tx_reg);
drivers/net/wireless/ath/ath5k/dma.c
396
ath5k_hw_set_txdp(struct ath5k_hw *ah, unsigned int queue, u32 phys_addr)
drivers/net/wireless/ath/ath5k/dma.c
400
AR5K_ASSERT_ENTRY(queue, ah->ah_capabilities.cap_queues.q_tx_num);
drivers/net/wireless/ath/ath5k/dma.c
406
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
407
switch (ah->ah_txq[queue].tqi_type) {
drivers/net/wireless/ath/ath5k/dma.c
424
if (AR5K_REG_READ_Q(ah, AR5K_QCU_TXE, queue))
drivers/net/wireless/ath/ath5k/dma.c
431
ath5k_hw_reg_write(ah, phys_addr, tx_reg);
drivers/net/wireless/ath/ath5k/dma.c
453
ath5k_hw_update_tx_triglevel(struct ath5k_hw *ah, bool increase)
drivers/net/wireless/ath/ath5k/dma.c
461
imr = ath5k_hw_set_imr(ah, ah->ah_imr & ~AR5K_INT_GLOBAL);
drivers/net/wireless/ath/ath5k/dma.c
463
trigger_level = AR5K_REG_MS(ath5k_hw_reg_read(ah, AR5K_TXCFG),
drivers/net/wireless/ath/ath5k/dma.c
476
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/dma.c
477
ath5k_hw_reg_write(ah, trigger_level, AR5K_TRIG_LVL);
drivers/net/wireless/ath/ath5k/dma.c
479
AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
drivers/net/wireless/ath/ath5k/dma.c
48
ath5k_hw_start_rx_dma(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/dma.c
488
ath5k_hw_set_imr(ah, imr);
drivers/net/wireless/ath/ath5k/dma.c
50
ath5k_hw_reg_write(ah, AR5K_CR_RXE, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
506
ath5k_hw_is_intr_pending(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/dma.c
508
return ath5k_hw_reg_read(ah, AR5K_INTPEND) == 1 ? 1 : 0;
drivers/net/wireless/ath/ath5k/dma.c
51
ath5k_hw_reg_read(ah, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
527
ath5k_hw_get_isr(struct ath5k_hw *ah, enum ath5k_int *interrupt_mask)
drivers/net/wireless/ath/ath5k/dma.c
537
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
539
isr = ath5k_hw_reg_read(ah, AR5K_ISR);
drivers/net/wireless/ath/ath5k/dma.c
549
*interrupt_mask = (isr & AR5K_INT_COMMON) & ah->ah_imr;
drivers/net/wireless/ath/ath5k/dma.c
575
pisr = ath5k_hw_reg_read(ah, AR5K_PISR);
drivers/net/wireless/ath/ath5k/dma.c
581
sisr0 = ath5k_hw_reg_read(ah, AR5K_SISR0);
drivers/net/wireless/ath/ath5k/dma.c
582
sisr1 = ath5k_hw_reg_read(ah, AR5K_SISR1);
drivers/net/wireless/ath/ath5k/dma.c
583
sisr2 = ath5k_hw_reg_read(ah, AR5K_SISR2);
drivers/net/wireless/ath/ath5k/dma.c
584
sisr3 = ath5k_hw_reg_read(ah, AR5K_SISR3);
drivers/net/wireless/ath/ath5k/dma.c
585
sisr4 = ath5k_hw_reg_read(ah, AR5K_SISR4);
drivers/net/wireless/ath/ath5k/dma.c
59
ath5k_hw_stop_rx_dma(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/dma.c
63
ath5k_hw_reg_write(ah, AR5K_CR_RXD, AR5K_CR);
drivers/net/wireless/ath/ath5k/dma.c
638
ath5k_hw_reg_write(ah, sisr0, AR5K_SISR0);
drivers/net/wireless/ath/ath5k/dma.c
639
ath5k_hw_reg_write(ah, sisr1, AR5K_SISR1);
drivers/net/wireless/ath/ath5k/dma.c
640
ath5k_hw_reg_write(ah, sisr2, AR5K_SISR2);
drivers/net/wireless/ath/ath5k/dma.c
641
ath5k_hw_reg_write(ah, sisr3, AR5K_SISR3);
drivers/net/wireless/ath/ath5k/dma.c
642
ath5k_hw_reg_write(ah, sisr4, AR5K_SISR4);
drivers/net/wireless/ath/ath5k/dma.c
643
ath5k_hw_reg_write(ah, pisr_clear, AR5K_PISR);
drivers/net/wireless/ath/ath5k/dma.c
645
ath5k_hw_reg_read(ah, AR5K_PISR);
drivers/net/wireless/ath/ath5k/dma.c
651
*interrupt_mask = (pisr & AR5K_INT_COMMON) & ah->ah_imr;
drivers/net/wireless/ath/ath5k/dma.c
653
ah->ah_txq_isr_txok_all = 0;
drivers/net/wireless/ath/ath5k/dma.c
659
ah->ah_txq_isr_txok_all |= AR5K_REG_MS(sisr0,
drivers/net/wireless/ath/ath5k/dma.c
663
ah->ah_txq_isr_txok_all |= AR5K_REG_MS(sisr0,
drivers/net/wireless/ath/ath5k/dma.c
667
ah->ah_txq_isr_txok_all |= AR5K_REG_MS(sisr1,
drivers/net/wireless/ath/ath5k/dma.c
671
ah->ah_txq_isr_txok_all |= AR5K_REG_MS(sisr1,
drivers/net/wireless/ath/ath5k/dma.c
69
(ath5k_hw_reg_read(ah, AR5K_CR) & AR5K_CR_RXE) != 0;
drivers/net/wireless/ath/ath5k/dma.c
725
ATH5K_PRINTF("ISR: 0x%08x IMR: 0x%08x\n", data, ah->ah_imr);
drivers/net/wireless/ath/ath5k/dma.c
74
ATH5K_DBG(ah, ATH5K_DEBUG_DMA,
drivers/net/wireless/ath/ath5k/dma.c
740
ath5k_hw_set_imr(struct ath5k_hw *ah, enum ath5k_int new_mask)
drivers/net/wireless/ath/ath5k/dma.c
744
old_mask = ah->ah_imr;
drivers/net/wireless/ath/ath5k/dma.c
752
ath5k_hw_reg_write(ah, AR5K_IER_DISABLE, AR5K_IER);
drivers/net/wireless/ath/ath5k/dma.c
753
ath5k_hw_reg_read(ah, AR5K_IER);
drivers/net/wireless/ath/ath5k/dma.c
762
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
764
u32 simr2 = ath5k_hw_reg_read(ah, AR5K_SIMR2)
drivers/net/wireless/ath/ath5k/dma.c
795
ath5k_hw_reg_write(ah, int_mask, AR5K_PIMR);
drivers/net/wireless/ath/ath5k/dma.c
796
ath5k_hw_reg_write(ah, simr2, AR5K_SIMR2);
drivers/net/wireless/ath/ath5k/dma.c
805
ath5k_hw_reg_write(ah, int_mask, AR5K_IMR);
drivers/net/wireless/ath/ath5k/dma.c
811
ath5k_hw_reg_write(ah, 0, AR5K_RXNOFRM);
drivers/net/wireless/ath/ath5k/dma.c
814
ah->ah_imr = new_mask;
drivers/net/wireless/ath/ath5k/dma.c
818
ath5k_hw_reg_write(ah, AR5K_IER_ENABLE, AR5K_IER);
drivers/net/wireless/ath/ath5k/dma.c
819
ath5k_hw_reg_read(ah, AR5K_IER);
drivers/net/wireless/ath/ath5k/dma.c
841
ath5k_hw_dma_init(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/dma.c
85
ath5k_hw_get_rxdp(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/dma.c
856
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
857
AR5K_REG_WRITE_BITS(ah, AR5K_TXCFG,
drivers/net/wireless/ath/ath5k/dma.c
859
AR5K_REG_WRITE_BITS(ah, AR5K_RXCFG,
drivers/net/wireless/ath/ath5k/dma.c
864
if (ah->ah_version != AR5K_AR5210)
drivers/net/wireless/ath/ath5k/dma.c
865
ath5k_hw_set_imr(ah, ah->ah_imr);
drivers/net/wireless/ath/ath5k/dma.c
87
return ath5k_hw_reg_read(ah, AR5K_RXDP);
drivers/net/wireless/ath/ath5k/dma.c
881
ath5k_hw_dma_stop(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/dma.c
887
ath5k_hw_set_imr(ah, 0);
drivers/net/wireless/ath/ath5k/dma.c
890
err = ath5k_hw_stop_rx_dma(ah);
drivers/net/wireless/ath/ath5k/dma.c
896
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/dma.c
897
ath5k_hw_reg_write(ah, 0xffffffff, AR5K_PISR);
drivers/net/wireless/ath/ath5k/dma.c
901
ath5k_hw_reg_read(ah, AR5K_ISR);
drivers/net/wireless/ath/ath5k/dma.c
906
err = ath5k_hw_stop_tx_dma(ah, i);
drivers/net/wireless/ath/ath5k/dma.c
98
ath5k_hw_set_rxdp(struct ath5k_hw *ah, u32 phys_addr)
drivers/net/wireless/ath/ath5k/eeprom.c
1008
ath5k_eeprom_free_pcal_info(ah, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
1014
ath5k_eeprom_read_pcal_info_5112(struct ath5k_hw *ah, int mode)
drivers/net/wireless/ath/ath5k/eeprom.c
1016
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
1046
ath5k_eeprom_init_11a_pcal_freq(ah, offset);
drivers/net/wireless/ath/ath5k/eeprom.c
109
ATH5K_ERR(ah, "Invalid max custom EEPROM size: "
drivers/net/wireless/ath/ath5k/eeprom.c
1122
return ath5k_eeprom_convert_pcal_info_5112(ah, mode, gen_chan_info);
drivers/net/wireless/ath/ath5k/eeprom.c
1192
ath5k_eeprom_convert_pcal_info_2413(struct ath5k_hw *ah, int mode,
drivers/net/wireless/ath/ath5k/eeprom.c
1195
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
123
ATH5K_ERR(ah, "Invalid EEPROM "
drivers/net/wireless/ath/ath5k/eeprom.c
1269
ath5k_eeprom_free_pcal_info(ah, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
1275
ath5k_eeprom_read_pcal_info_2413(struct ath5k_hw *ah, int mode)
drivers/net/wireless/ath/ath5k/eeprom.c
1277
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
1308
ath5k_eeprom_init_11a_pcal_freq(ah, offset);
drivers/net/wireless/ath/ath5k/eeprom.c
131
AR5K_EEPROM_READ_HDR(AR5K_EEPROM_ANT_GAIN(ah->ah_ee_version),
drivers/net/wireless/ath/ath5k/eeprom.c
1316
ath5k_eeprom_init_11bg_2413(ah, mode, offset);
drivers/net/wireless/ath/ath5k/eeprom.c
1324
ath5k_eeprom_init_11bg_2413(ah, mode, offset);
drivers/net/wireless/ath/ath5k/eeprom.c
134
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_0) {
drivers/net/wireless/ath/ath5k/eeprom.c
1454
return ath5k_eeprom_convert_pcal_info_2413(ah, mode, chinfo);
drivers/net/wireless/ath/ath5k/eeprom.c
1466
ath5k_eeprom_read_target_rate_pwr_info(struct ath5k_hw *ah, unsigned int mode)
drivers/net/wireless/ath/ath5k/eeprom.c
1468
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
151
if (ah->ah_ee_version < AR5K_EEPROM_VERSION_3_3) {
drivers/net/wireless/ath/ath5k/eeprom.c
1561
ath5k_eeprom_read_pcal_info(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/eeprom.c
1563
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
1568
if ((ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_0) &&
drivers/net/wireless/ath/ath5k/eeprom.c
1571
else if ((ah->ah_ee_version >= AR5K_EEPROM_VERSION_5_0) &&
drivers/net/wireless/ath/ath5k/eeprom.c
1580
err = read_pcal(ah, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
1584
err = ath5k_eeprom_read_target_rate_pwr_info(ah, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
1594
ath5k_eeprom_read_ctl_info(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/eeprom.c
1596
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
163
if ((ah->ah_mac_version == (AR5K_SREV_AR2425 >> 4)) && val)
drivers/net/wireless/ath/ath5k/eeprom.c
1701
ath5k_eeprom_read_spur_chans(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/eeprom.c
1703
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
1741
ath5k_eeprom_init(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/eeprom.c
1745
err = ath5k_eeprom_init_header(ah);
drivers/net/wireless/ath/ath5k/eeprom.c
1749
err = ath5k_eeprom_init_modes(ah);
drivers/net/wireless/ath/ath5k/eeprom.c
1753
err = ath5k_eeprom_read_pcal_info(ah);
drivers/net/wireless/ath/ath5k/eeprom.c
1757
err = ath5k_eeprom_read_ctl_info(ah);
drivers/net/wireless/ath/ath5k/eeprom.c
1761
err = ath5k_eeprom_read_spur_chans(ah);
drivers/net/wireless/ath/ath5k/eeprom.c
1769
ath5k_eeprom_detach(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/eeprom.c
1774
ath5k_eeprom_free_pcal_info(ah, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
1778
ath5k_eeprom_mode_from_channel(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/eeprom.c
1789
ATH5K_WARN(ah, "channel is not A/B/G!");
drivers/net/wireless/ath/ath5k/eeprom.c
189
static int ath5k_eeprom_read_ants(struct ath5k_hw *ah, u32 *offset,
drivers/net/wireless/ath/ath5k/eeprom.c
192
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
224
ah->ah_ant_ctl[mode][AR5K_ANT_CTL] =
drivers/net/wireless/ath/ath5k/eeprom.c
226
ah->ah_ant_ctl[mode][AR5K_ANT_SWTABLE_A] =
drivers/net/wireless/ath/ath5k/eeprom.c
232
ah->ah_ant_ctl[mode][AR5K_ANT_SWTABLE_B] =
drivers/net/wireless/ath/ath5k/eeprom.c
249
static int ath5k_eeprom_read_modes(struct ath5k_hw *ah, u32 *offset,
drivers/net/wireless/ath/ath5k/eeprom.c
252
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
284
if (ah->ah_ee_version <= AR5K_EEPROM_VERSION_3_2)
drivers/net/wireless/ath/ath5k/eeprom.c
299
if (ah->ah_ee_version <= AR5K_EEPROM_VERSION_3_2)
drivers/net/wireless/ath/ath5k/eeprom.c
308
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_0 &&
drivers/net/wireless/ath/ath5k/eeprom.c
312
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_3_3) {
drivers/net/wireless/ath/ath5k/eeprom.c
325
if (ah->ah_ee_version < AR5K_EEPROM_VERSION_3_4) {
drivers/net/wireless/ath/ath5k/eeprom.c
336
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_6)
drivers/net/wireless/ath/ath5k/eeprom.c
341
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_0 &&
drivers/net/wireless/ath/ath5k/eeprom.c
347
if (ah->ah_ee_version < AR5K_EEPROM_VERSION_4_0)
drivers/net/wireless/ath/ath5k/eeprom.c
355
if (ah->ah_ee_version < AR5K_EEPROM_VERSION_4_1)
drivers/net/wireless/ath/ath5k/eeprom.c
380
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_1)
drivers/net/wireless/ath/ath5k/eeprom.c
406
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_1)
drivers/net/wireless/ath/ath5k/eeprom.c
413
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_2) {
drivers/net/wireless/ath/ath5k/eeprom.c
467
ath5k_eeprom_init_modes(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/eeprom.c
469
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
478
mode_offset[AR5K_EEPROM_MODE_11A] = AR5K_EEPROM_MODES_11A(ah->ah_ee_version);
drivers/net/wireless/ath/ath5k/eeprom.c
479
mode_offset[AR5K_EEPROM_MODE_11B] = AR5K_EEPROM_MODES_11B(ah->ah_ee_version);
drivers/net/wireless/ath/ath5k/eeprom.c
480
mode_offset[AR5K_EEPROM_MODE_11G] = AR5K_EEPROM_MODES_11G(ah->ah_ee_version);
drivers/net/wireless/ath/ath5k/eeprom.c
488
ret = ath5k_eeprom_read_ants(ah, &offset, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
492
ret = ath5k_eeprom_read_modes(ah, &offset, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
498
if (ah->ah_ee_version <= AR5K_EEPROM_VERSION_3_2) {
drivers/net/wireless/ath/ath5k/eeprom.c
510
ath5k_eeprom_read_freq_list(struct ath5k_hw *ah, int *offset, int max,
drivers/net/wireless/ath/ath5k/eeprom.c
513
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
548
ath5k_eeprom_init_11a_pcal_freq(struct ath5k_hw *ah, int offset)
drivers/net/wireless/ath/ath5k/eeprom.c
550
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
557
ath5k_eeprom_read_freq_list(ah, &offset,
drivers/net/wireless/ath/ath5k/eeprom.c
561
mask = AR5K_EEPROM_FREQ_M(ah->ah_ee_version);
drivers/net/wireless/ath/ath5k/eeprom.c
601
ath5k_eeprom_init_11bg_2413(struct ath5k_hw *ah, unsigned int mode, int offset)
drivers/net/wireless/ath/ath5k/eeprom.c
603
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
617
ath5k_eeprom_read_freq_list(ah, &offset,
drivers/net/wireless/ath/ath5k/eeprom.c
646
ath5k_get_pcdac_intercepts(struct ath5k_hw *ah, u8 min, u8 max, u8 *vp)
drivers/net/wireless/ath/ath5k/eeprom.c
657
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_3_2)
drivers/net/wireless/ath/ath5k/eeprom.c
667
ath5k_eeprom_free_pcal_info(struct ath5k_hw *ah, int mode)
drivers/net/wireless/ath/ath5k/eeprom.c
669
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
714
ath5k_eeprom_convert_pcal_info_5111(struct ath5k_hw *ah, int mode,
drivers/net/wireless/ath/ath5k/eeprom.c
717
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
73
ath5k_eeprom_init_header(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/eeprom.c
75
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
788
ath5k_eeprom_free_pcal_info(ah, mode);
drivers/net/wireless/ath/ath5k/eeprom.c
794
ath5k_eeprom_read_pcal_info_5111(struct ath5k_hw *ah, int mode)
drivers/net/wireless/ath/ath5k/eeprom.c
796
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.c
808
ret = ath5k_eeprom_init_11a_pcal_freq(ah,
drivers/net/wireless/ath/ath5k/eeprom.c
877
ath5k_get_pcdac_intercepts(ah, cdata->pcdac_min,
drivers/net/wireless/ath/ath5k/eeprom.c
881
return ath5k_eeprom_convert_pcal_info_5111(ah, mode, pcal);
drivers/net/wireless/ath/ath5k/eeprom.c
89
if (ah->ah_ee_version < AR5K_EEPROM_VERSION_3_0)
drivers/net/wireless/ath/ath5k/eeprom.c
903
ath5k_eeprom_convert_pcal_info_5112(struct ath5k_hw *ah, int mode,
drivers/net/wireless/ath/ath5k/eeprom.c
906
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/eeprom.h
245
if (!ath5k_hw_nvram_read(ah, (_o), &(_v))) \
drivers/net/wireless/ath/ath5k/eeprom.h
250
AR5K_EEPROM_READ(_o, ah->ah_capabilities.cap_eeprom._v); \
drivers/net/wireless/ath/ath5k/gpio.c
106
ath5k_hw_set_gpio_input(struct ath5k_hw *ah, u32 gpio)
drivers/net/wireless/ath/ath5k/gpio.c
111
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/gpio.c
112
(ath5k_hw_reg_read(ah, AR5K_GPIOCR) & ~AR5K_GPIOCR_OUT(gpio))
drivers/net/wireless/ath/ath5k/gpio.c
124
ath5k_hw_set_gpio_output(struct ath5k_hw *ah, u32 gpio)
drivers/net/wireless/ath/ath5k/gpio.c
129
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/gpio.c
130
(ath5k_hw_reg_read(ah, AR5K_GPIOCR) & ~AR5K_GPIOCR_OUT(gpio))
drivers/net/wireless/ath/ath5k/gpio.c
142
ath5k_hw_get_gpio(struct ath5k_hw *ah, u32 gpio)
drivers/net/wireless/ath/ath5k/gpio.c
148
return ((ath5k_hw_reg_read(ah, AR5K_GPIODI) & AR5K_GPIODI_M) >> gpio) &
drivers/net/wireless/ath/ath5k/gpio.c
159
ath5k_hw_set_gpio(struct ath5k_hw *ah, u32 gpio, u32 val)
drivers/net/wireless/ath/ath5k/gpio.c
167
data = ath5k_hw_reg_read(ah, AR5K_GPIODO);
drivers/net/wireless/ath/ath5k/gpio.c
172
ath5k_hw_reg_write(ah, data, AR5K_GPIODO);
drivers/net/wireless/ath/ath5k/gpio.c
189
ath5k_hw_set_gpio_intr(struct ath5k_hw *ah, unsigned int gpio,
drivers/net/wireless/ath/ath5k/gpio.c
200
data = (ath5k_hw_reg_read(ah, AR5K_GPIOCR) &
drivers/net/wireless/ath/ath5k/gpio.c
205
ath5k_hw_reg_write(ah, interrupt_level ? data :
drivers/net/wireless/ath/ath5k/gpio.c
208
ah->ah_imr |= AR5K_IMR_GPIO;
drivers/net/wireless/ath/ath5k/gpio.c
211
AR5K_REG_ENABLE_BITS(ah, AR5K_PIMR, AR5K_IMR_GPIO);
drivers/net/wireless/ath/ath5k/gpio.c
53
ath5k_hw_set_ledstate(struct ath5k_hw *ah, unsigned int state)
drivers/net/wireless/ath/ath5k/gpio.c
60
if (ah->ah_version != AR5K_AR5210)
drivers/net/wireless/ath/ath5k/gpio.c
61
AR5K_REG_DISABLE_BITS(ah, AR5K_PCICFG,
drivers/net/wireless/ath/ath5k/gpio.c
64
AR5K_REG_DISABLE_BITS(ah, AR5K_PCICFG, AR5K_PCICFG_LED);
drivers/net/wireless/ath/ath5k/gpio.c
94
if (ah->ah_version != AR5K_AR5210)
drivers/net/wireless/ath/ath5k/gpio.c
95
AR5K_REG_ENABLE_BITS(ah, AR5K_PCICFG, led);
drivers/net/wireless/ath/ath5k/gpio.c
97
AR5K_REG_ENABLE_BITS(ah, AR5K_PCICFG, led_5210);
drivers/net/wireless/ath/ath5k/initvals.c
1380
ath5k_hw_ini_registers(struct ath5k_hw *ah, unsigned int size,
drivers/net/wireless/ath/ath5k/initvals.c
1397
ath5k_hw_reg_read(ah, ini_regs[i].ini_register);
drivers/net/wireless/ath/ath5k/initvals.c
1402
ath5k_hw_reg_write(ah, ini_regs[i].ini_value,
drivers/net/wireless/ath/ath5k/initvals.c
1416
ath5k_hw_ini_mode_registers(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/initvals.c
1424
ath5k_hw_reg_write(ah, ini_mode[i].mode_value[mode],
drivers/net/wireless/ath/ath5k/initvals.c
1440
ath5k_hw_write_initvals(struct ath5k_hw *ah, u8 mode, bool skip_pcu)
drivers/net/wireless/ath/ath5k/initvals.c
1447
if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/initvals.c
1450
ath5k_hw_ini_mode_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1457
ath5k_hw_ini_registers(ah, ARRAY_SIZE(ar5212_ini_common_start),
drivers/net/wireless/ath/ath5k/initvals.c
1461
switch (ah->ah_radio) {
drivers/net/wireless/ath/ath5k/initvals.c
1464
ath5k_hw_ini_mode_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1468
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1473
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1480
ath5k_hw_ini_mode_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1484
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1488
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1495
ath5k_hw_ini_mode_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1499
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1503
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1511
ath5k_hw_ini_mode_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1515
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1520
if (ah->ah_radio == AR5K_RF2316) {
drivers/net/wireless/ath/ath5k/initvals.c
1521
ath5k_hw_reg_write(ah, 0x00004000,
drivers/net/wireless/ath/ath5k/initvals.c
1523
ath5k_hw_reg_write(ah, 0x081b7caa,
drivers/net/wireless/ath/ath5k/initvals.c
1527
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1533
ath5k_hw_ini_mode_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1537
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1542
ath5k_hw_reg_write(ah, 0x00180a65, AR5K_PHY_GAIN);
drivers/net/wireless/ath/ath5k/initvals.c
1545
ath5k_hw_reg_write(ah, 0x00004000, AR5K_PHY_AGC);
drivers/net/wireless/ath/ath5k/initvals.c
1546
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_TPC_RG5,
drivers/net/wireless/ath/ath5k/initvals.c
1548
ath5k_hw_reg_write(ah, 0x800000a8, 0x8140);
drivers/net/wireless/ath/ath5k/initvals.c
1549
ath5k_hw_reg_write(ah, 0x000000ff, 0x9958);
drivers/net/wireless/ath/ath5k/initvals.c
1551
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1557
ath5k_hw_ini_mode_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1561
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1565
ath5k_hw_ini_registers(ah,
drivers/net/wireless/ath/ath5k/initvals.c
1575
} else if (ah->ah_version == AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/initvals.c
1579
ATH5K_ERR(ah, "unsupported channel mode: %d\n", mode);
drivers/net/wireless/ath/ath5k/initvals.c
1584
ath5k_hw_ini_mode_registers(ah, ARRAY_SIZE(ar5211_ini_mode),
drivers/net/wireless/ath/ath5k/initvals.c
1590
ath5k_hw_ini_registers(ah, ARRAY_SIZE(ar5211_ini),
drivers/net/wireless/ath/ath5k/initvals.c
1596
ath5k_hw_ini_registers(ah, ARRAY_SIZE(rf5111_ini_bbgain),
drivers/net/wireless/ath/ath5k/initvals.c
1599
} else if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/initvals.c
1600
ath5k_hw_ini_registers(ah, ARRAY_SIZE(ar5210_ini),
drivers/net/wireless/ath/ath5k/led.c
101
if (!test_bit(ATH_STAT_LEDSOFT, ah->status))
drivers/net/wireless/ath/ath5k/led.c
103
ath5k_hw_set_gpio(ah, ah->led_pin, ah->led_on);
drivers/net/wireless/ath/ath5k/led.c
106
void ath5k_led_off(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/led.c
109
!test_bit(ATH_STAT_LEDSOFT, ah->status))
drivers/net/wireless/ath/ath5k/led.c
111
ath5k_hw_set_gpio(ah, ah->led_pin, !ah->led_on);
drivers/net/wireless/ath/ath5k/led.c
122
ath5k_led_off(led->ah);
drivers/net/wireless/ath/ath5k/led.c
124
ath5k_led_on(led->ah);
drivers/net/wireless/ath/ath5k/led.c
128
ath5k_register_led(struct ath5k_hw *ah, struct ath5k_led *led,
drivers/net/wireless/ath/ath5k/led.c
133
led->ah = ah;
drivers/net/wireless/ath/ath5k/led.c
139
err = led_classdev_register(ah->dev, &led->led_dev);
drivers/net/wireless/ath/ath5k/led.c
141
ATH5K_WARN(ah, "could not register LED %s\n", name);
drivers/net/wireless/ath/ath5k/led.c
142
led->ah = NULL;
drivers/net/wireless/ath/ath5k/led.c
150
if (!IS_ENABLED(CONFIG_MAC80211_LEDS) || !led->ah)
drivers/net/wireless/ath/ath5k/led.c
153
ath5k_led_off(led->ah);
drivers/net/wireless/ath/ath5k/led.c
154
led->ah = NULL;
drivers/net/wireless/ath/ath5k/led.c
157
void ath5k_unregister_leds(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/led.c
159
ath5k_unregister_led(&ah->rx_led);
drivers/net/wireless/ath/ath5k/led.c
160
ath5k_unregister_led(&ah->tx_led);
drivers/net/wireless/ath/ath5k/led.c
163
int ath5k_init_leds(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/led.c
166
struct ieee80211_hw *hw = ah->hw;
drivers/net/wireless/ath/ath5k/led.c
168
struct pci_dev *pdev = ah->pdev;
drivers/net/wireless/ath/ath5k/led.c
173
if (!IS_ENABLED(CONFIG_MAC80211_LEDS) || !ah->pdev)
drivers/net/wireless/ath/ath5k/led.c
182
__set_bit(ATH_STAT_LEDSOFT, ah->status);
drivers/net/wireless/ath/ath5k/led.c
183
ah->led_pin = ATH_PIN(match->driver_data);
drivers/net/wireless/ath/ath5k/led.c
184
ah->led_on = ATH_POLARITY(match->driver_data);
drivers/net/wireless/ath/ath5k/led.c
187
if (!test_bit(ATH_STAT_LEDSOFT, ah->status))
drivers/net/wireless/ath/ath5k/led.c
190
ath5k_led_enable(ah);
drivers/net/wireless/ath/ath5k/led.c
193
ret = ath5k_register_led(ah, &ah->rx_led, name,
drivers/net/wireless/ath/ath5k/led.c
199
ret = ath5k_register_led(ah, &ah->tx_led, name,
drivers/net/wireless/ath/ath5k/led.c
90
void ath5k_led_enable(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/led.c
93
test_bit(ATH_STAT_LEDSOFT, ah->status)) {
drivers/net/wireless/ath/ath5k/led.c
94
ath5k_hw_set_gpio_output(ah, ah->led_pin);
drivers/net/wireless/ath/ath5k/led.c
95
ath5k_led_off(ah);
drivers/net/wireless/ath/ath5k/led.c
99
static void ath5k_led_on(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
113
ah->nvifs++;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
114
ATH5K_DBG(ah, ATH5K_DEBUG_MODE, "add interface mode %d\n", avf->opmode);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
122
WARN_ON(list_empty(&ah->bcbuf));
drivers/net/wireless/ath/ath5k/mac80211-ops.c
123
avf->bbuf = list_first_entry(&ah->bcbuf, struct ath5k_buf,
drivers/net/wireless/ath/ath5k/mac80211-ops.c
129
if (!ah->bslot[slot]) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
134
BUG_ON(ah->bslot[avf->bslot] != NULL);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
135
ah->bslot[avf->bslot] = vif;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
137
ah->num_ap_vifs++;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
139
ah->num_adhoc_vifs++;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
141
ah->num_mesh_vifs++;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
147
ath5k_hw_set_lladdr(ah, vif->addr);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
149
ath5k_update_bssid_mask_and_opmode(ah, vif);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
152
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
161
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
165
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
166
ah->nvifs--;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
169
ath5k_txbuf_free_skb(ah, avf->bbuf);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
170
list_add_tail(&avf->bbuf->list, &ah->bcbuf);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
172
if (ah->bslot[i] == vif) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
173
ah->bslot[i] = NULL;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
180
ah->num_ap_vifs--;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
182
ah->num_adhoc_vifs--;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
184
ah->num_mesh_vifs--;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
186
ath5k_update_bssid_mask_and_opmode(ah, NULL);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
187
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
197
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
202
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
205
ret = ath5k_chan_set(ah, &conf->chandef);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
211
(ah->ah_txpower.txp_requested != conf->power_level)) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
212
ah->ah_txpower.txp_requested = conf->power_level;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
215
ath5k_hw_set_txpower_limit(ah, (conf->power_level * 2));
drivers/net/wireless/ath/ath5k/mac80211-ops.c
219
ah->ah_retry_long = conf->long_frame_max_tx_count;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
220
ah->ah_retry_short = conf->short_frame_max_tx_count;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
222
for (i = 0; i < ah->ah_capabilities.cap_queues.q_tx_num; i++)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
223
ath5k_hw_set_tx_retry_limits(ah, i);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
243
ath5k_hw_set_antenna_mode(ah, ah->ah_ant_mode);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
246
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
256
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
257
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
259
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
265
ath5k_hw_set_bssid(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
269
ah->bintval = bss_conf->beacon_int;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
274
ah->ah_short_slot = bss_conf->use_short_slot;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
275
slot_time = ath5k_hw_get_default_slottime(ah) +
drivers/net/wireless/ath/ath5k/mac80211-ops.c
276
3 * ah->ah_coverage_class;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
277
ath5k_hw_set_ifs_intervals(ah, slot_time);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
283
ah->assoc = vif->cfg.assoc;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
285
ah->assoc = ath5k_any_vif_assoc(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
287
if (ah->opmode == NL80211_IFTYPE_STATION)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
288
ath5k_set_beacon_filter(hw, ah->assoc);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
289
ath5k_hw_set_ledstate(ah, ah->assoc ?
drivers/net/wireless/ath/ath5k/mac80211-ops.c
292
ATH5K_DBG(ah, ATH5K_DEBUG_ANY,
drivers/net/wireless/ath/ath5k/mac80211-ops.c
296
ath5k_hw_set_bssid(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
302
spin_lock_bh(&ah->block);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
304
spin_unlock_bh(&ah->block);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
308
ah->enable_beacon = bss_conf->enable_beacon;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
312
ath5k_beacon_config(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
314
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
375
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
379
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
390
rfilt = (ath5k_hw_get_rx_filter(ah) & (AR5K_RX_FILTER_PHYERR)) |
drivers/net/wireless/ath/ath5k/mac80211-ops.c
406
if ((*new_flags & FIF_BCN_PRBRESP_PROMISC) || (ah->nvifs > 1))
drivers/net/wireless/ath/ath5k/mac80211-ops.c
420
switch (ah->opmode) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
433
if (ah->assoc)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
444
ah->hw, IEEE80211_IFACE_ITER_RESUME_ALL,
drivers/net/wireless/ath/ath5k/mac80211-ops.c
457
ath5k_hw_set_rx_filter(ah, rfilt);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
460
ath5k_hw_set_mcast_filter(ah, mfilt[0], mfilt[1]);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
463
ah->filter_flags = rfilt;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
465
ah->fif_filter_flags = *new_flags;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
467
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
476
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
477
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
507
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
530
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
540
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
541
if (!ah->assoc)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
542
ath5k_hw_set_ledstate(ah, AR5K_LED_SCAN);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
549
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
550
ath5k_hw_set_ledstate(ah, ah->assoc ?
drivers/net/wireless/ath/ath5k/mac80211-ops.c
559
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
562
ath5k_hw_update_mib_counters(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
564
stats->dot11ACKFailureCount = ah->stats.ack_fail;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
565
stats->dot11RTSFailureCount = ah->stats.rts_fail;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
566
stats->dot11RTSSuccessCount = ah->stats.rts_ok;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
567
stats->dot11FCSErrorCount = ah->stats.fcs_error;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
578
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
582
if (queue >= ah->ah_capabilities.cap_queues.q_tx_num)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
585
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
587
ath5k_hw_get_tx_queueprops(ah, queue, &qi);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
594
ATH5K_DBG(ah, ATH5K_DEBUG_ANY,
drivers/net/wireless/ath/ath5k/mac80211-ops.c
600
if (ath5k_hw_set_tx_queueprops(ah, queue, &qi)) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
601
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/mac80211-ops.c
605
ath5k_hw_reset_tx_queue(ah, queue);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
607
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
61
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
616
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
618
return ath5k_hw_get_tsf64(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
625
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
627
ath5k_hw_set_tsf64(ah, tsf);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
634
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
64
if (WARN_ON(qnum >= ah->ah_capabilities.cap_queues.q_tx_num)) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
640
if (ah->opmode == NL80211_IFTYPE_ADHOC)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
641
ath5k_beacon_update_timers(ah, 0);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
643
ath5k_hw_reset_tsf(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
650
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
652
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
662
ah->survey.time += cc->cycles / div;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
663
ah->survey.time_busy += cc->rx_busy / div;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
664
ah->survey.time_rx += cc->rx_frame / div;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
665
ah->survey.time_tx += cc->tx_frame / div;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
670
memcpy(survey, &ah->survey, sizeof(*survey));
drivers/net/wireless/ath/ath5k/mac80211-ops.c
673
survey->noise = ah->ah_noise_floor;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
69
ath5k_tx_queue(hw, skb, &ah->txqs[qnum], control);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
700
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
702
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
703
ath5k_hw_set_coverage_class(ah, coverage_class);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
704
mutex_unlock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
712
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
715
ath5k_hw_set_antenna_mode(ah, AR5K_ANTMODE_FIXED_A);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
717
ath5k_hw_set_antenna_mode(ah, AR5K_ANTMODE_FIXED_B);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
719
ath5k_hw_set_antenna_mode(ah, AR5K_ANTMODE_DEFAULT);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
730
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
732
switch (ah->ah_ant_mode) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
747
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
749
*tx = ah->txqs[AR5K_TX_QUEUE_ID_DATA_MIN].txq_max;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
758
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
76
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
769
for (qnum = 0; qnum < ARRAY_SIZE(ah->txqs); qnum++) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
770
if (!ah->txqs[qnum].setup)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
772
if (ah->txqs[qnum].qnum < AR5K_TX_QUEUE_ID_DATA_MIN ||
drivers/net/wireless/ath/ath5k/mac80211-ops.c
773
ah->txqs[qnum].qnum > AR5K_TX_QUEUE_ID_DATA_MAX)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
776
ah->txqs[qnum].txq_max = tx;
drivers/net/wireless/ath/ath5k/mac80211-ops.c
777
if (ah->txqs[qnum].txq_len >= ah->txqs[qnum].txq_max)
drivers/net/wireless/ath/ath5k/mac80211-ops.c
778
ieee80211_stop_queue(hw, ah->txqs[qnum].qnum);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
80
mutex_lock(&ah->lock);
drivers/net/wireless/ath/ath5k/mac80211-ops.c
84
&& (ah->num_ap_vifs + ah->num_adhoc_vifs) >= ATH_BCBUF) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
94
if (ah->num_adhoc_vifs ||
drivers/net/wireless/ath/ath5k/mac80211-ops.c
95
(ah->nvifs && vif->type == NL80211_IFTYPE_ADHOC)) {
drivers/net/wireless/ath/ath5k/mac80211-ops.c
96
ATH5K_ERR(ah, "Only one single ad-hoc interface is allowed.\n");
drivers/net/wireless/ath/ath5k/pci.c
101
*data = (u16)(ath5k_hw_reg_read(ah, AR5K_EEPROM_DATA) &
drivers/net/wireless/ath/ath5k/pci.c
111
int ath5k_hw_read_srev(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pci.c
113
ah->ah_mac_srev = ath5k_hw_reg_read(ah, AR5K_SREV);
drivers/net/wireless/ath/ath5k/pci.c
120
static int ath5k_pci_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
drivers/net/wireless/ath/ath5k/pci.c
164
struct ath5k_hw *ah;
drivers/net/wireless/ath/ath5k/pci.c
251
hw = ieee80211_alloc_hw(sizeof(*ah), &ath5k_hw_ops);
drivers/net/wireless/ath/ath5k/pci.c
260
ah = hw->priv;
drivers/net/wireless/ath/ath5k/pci.c
261
ah->hw = hw;
drivers/net/wireless/ath/ath5k/pci.c
262
ah->pdev = pdev;
drivers/net/wireless/ath/ath5k/pci.c
263
ah->dev = &pdev->dev;
drivers/net/wireless/ath/ath5k/pci.c
264
ah->irq = pdev->irq;
drivers/net/wireless/ath/ath5k/pci.c
265
ah->devid = id->device;
drivers/net/wireless/ath/ath5k/pci.c
266
ah->iobase = mem; /* So we can unmap it on detach */
drivers/net/wireless/ath/ath5k/pci.c
269
ret = ath5k_init_ah(ah, &ath_pci_bus_ops);
drivers/net/wireless/ath/ath5k/pci.c
293
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/pci.c
295
ath5k_deinit_ah(ah);
drivers/net/wireless/ath/ath5k/pci.c
296
pci_iounmap(pdev, ah->iobase);
drivers/net/wireless/ath/ath5k/pci.c
306
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/pci.c
308
ath5k_led_off(ah);
drivers/net/wireless/ath/ath5k/pci.c
316
struct ath5k_hw *ah = hw->priv;
drivers/net/wireless/ath/ath5k/pci.c
325
ath5k_led_enable(ah);
drivers/net/wireless/ath/ath5k/pci.c
59
struct ath5k_hw *ah = common->priv;
drivers/net/wireless/ath/ath5k/pci.c
62
pci_read_config_byte(ah->pdev, PCI_CACHE_LINE_SIZE, &u8tmp);
drivers/net/wireless/ath/ath5k/pci.c
81
struct ath5k_hw *ah = common->ah;
drivers/net/wireless/ath/ath5k/pci.c
87
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/pci.c
88
AR5K_REG_ENABLE_BITS(ah, AR5K_PCICFG, AR5K_PCICFG_EEAE);
drivers/net/wireless/ath/ath5k/pci.c
89
(void)ath5k_hw_reg_read(ah, AR5K_EEPROM_BASE + (4 * offset));
drivers/net/wireless/ath/ath5k/pci.c
91
ath5k_hw_reg_write(ah, offset, AR5K_EEPROM_BASE);
drivers/net/wireless/ath/ath5k/pci.c
92
AR5K_REG_ENABLE_BITS(ah, AR5K_EEPROM_CMD,
drivers/net/wireless/ath/ath5k/pci.c
97
status = ath5k_hw_reg_read(ah, AR5K_EEPROM_STATUS);
drivers/net/wireless/ath/ath5k/pcu.c
1000
ath5k_hw_set_coverage_class(ah, ah->ah_coverage_class);
drivers/net/wireless/ath/ath5k/pcu.c
1003
if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/pcu.c
1005
if (ah->ah_ack_bitrate_high)
drivers/net/wireless/ath/ath5k/pcu.c
1006
AR5K_REG_DISABLE_BITS(ah, AR5K_STA_ID1, val);
drivers/net/wireless/ath/ath5k/pcu.c
1008
AR5K_REG_ENABLE_BITS(ah, AR5K_STA_ID1, val);
drivers/net/wireless/ath/ath5k/pcu.c
114
ath5k_hw_get_frame_duration(struct ath5k_hw *ah, enum nl80211_band band,
drivers/net/wireless/ath/ath5k/pcu.c
122
if (!ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/pcu.c
123
__le16 raw_dur = ieee80211_generic_frame_duration(ah->hw,
drivers/net/wireless/ath/ath5k/pcu.c
139
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/pcu.c
176
ath5k_hw_get_default_slottime(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
178
struct ieee80211_channel *channel = ah->ah_current_channel;
drivers/net/wireless/ath/ath5k/pcu.c
181
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/pcu.c
194
if ((channel->hw_value == AR5K_MODE_11B) && !ah->ah_short_slot)
drivers/net/wireless/ath/ath5k/pcu.c
207
ath5k_hw_get_default_sifs(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
209
struct ieee80211_channel *channel = ah->ah_current_channel;
drivers/net/wireless/ath/ath5k/pcu.c
212
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/pcu.c
244
ath5k_hw_update_mib_counters(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
246
struct ath5k_statistics *stats = &ah->stats;
drivers/net/wireless/ath/ath5k/pcu.c
249
stats->ack_fail += ath5k_hw_reg_read(ah, AR5K_ACK_FAIL);
drivers/net/wireless/ath/ath5k/pcu.c
250
stats->rts_fail += ath5k_hw_reg_read(ah, AR5K_RTS_FAIL);
drivers/net/wireless/ath/ath5k/pcu.c
251
stats->rts_ok += ath5k_hw_reg_read(ah, AR5K_RTS_OK);
drivers/net/wireless/ath/ath5k/pcu.c
252
stats->fcs_error += ath5k_hw_reg_read(ah, AR5K_FCS_FAIL);
drivers/net/wireless/ath/ath5k/pcu.c
253
stats->beacons += ath5k_hw_reg_read(ah, AR5K_BEACON_CNT);
drivers/net/wireless/ath/ath5k/pcu.c
278
ath5k_hw_write_rate_duration(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
286
for (i = 0; i < ah->sbands[band].n_bitrates; i++) {
drivers/net/wireless/ath/ath5k/pcu.c
290
if (ah->ah_ack_bitrate_high)
drivers/net/wireless/ath/ath5k/pcu.c
291
rate = &ah->sbands[band].bitrates[ack_rates_high[i]];
drivers/net/wireless/ath/ath5k/pcu.c
294
rate = &ah->sbands[band].bitrates[0];
drivers/net/wireless/ath/ath5k/pcu.c
297
rate = &ah->sbands[band].bitrates[4];
drivers/net/wireless/ath/ath5k/pcu.c
308
tx_time = ath5k_hw_get_frame_duration(ah, band, 10,
drivers/net/wireless/ath/ath5k/pcu.c
311
ath5k_hw_reg_write(ah, tx_time, reg);
drivers/net/wireless/ath/ath5k/pcu.c
316
tx_time = ath5k_hw_get_frame_duration(ah, band, 10, rate, true);
drivers/net/wireless/ath/ath5k/pcu.c
317
ath5k_hw_reg_write(ah, tx_time,
drivers/net/wireless/ath/ath5k/pcu.c
328
ath5k_hw_set_ack_timeout(struct ath5k_hw *ah, unsigned int timeout)
drivers/net/wireless/ath/ath5k/pcu.c
330
if (ath5k_hw_clocktoh(ah, AR5K_REG_MS(0xffffffff, AR5K_TIME_OUT_ACK))
drivers/net/wireless/ath/ath5k/pcu.c
334
AR5K_REG_WRITE_BITS(ah, AR5K_TIME_OUT, AR5K_TIME_OUT_ACK,
drivers/net/wireless/ath/ath5k/pcu.c
335
ath5k_hw_htoclock(ah, timeout));
drivers/net/wireless/ath/ath5k/pcu.c
346
ath5k_hw_set_cts_timeout(struct ath5k_hw *ah, unsigned int timeout)
drivers/net/wireless/ath/ath5k/pcu.c
348
if (ath5k_hw_clocktoh(ah, AR5K_REG_MS(0xffffffff, AR5K_TIME_OUT_CTS))
drivers/net/wireless/ath/ath5k/pcu.c
352
AR5K_REG_WRITE_BITS(ah, AR5K_TIME_OUT, AR5K_TIME_OUT_CTS,
drivers/net/wireless/ath/ath5k/pcu.c
353
ath5k_hw_htoclock(ah, timeout));
drivers/net/wireless/ath/ath5k/pcu.c
371
ath5k_hw_set_lladdr(struct ath5k_hw *ah, const u8 *mac)
drivers/net/wireless/ath/ath5k/pcu.c
373
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/pcu.c
380
pcu_reg = ath5k_hw_reg_read(ah, AR5K_STA_ID1) & 0xffff0000;
drivers/net/wireless/ath/ath5k/pcu.c
385
ath5k_hw_reg_write(ah, low_id, AR5K_STA_ID0);
drivers/net/wireless/ath/ath5k/pcu.c
386
ath5k_hw_reg_write(ah, pcu_reg | high_id, AR5K_STA_ID1);
drivers/net/wireless/ath/ath5k/pcu.c
399
ath5k_hw_set_bssid(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
401
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/pcu.c
407
if (ah->ah_version == AR5K_AR5212)
drivers/net/wireless/ath/ath5k/pcu.c
413
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/pcu.c
416
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/pcu.c
422
ath5k_hw_disable_pspoll(ah);
drivers/net/wireless/ath/ath5k/pcu.c
426
AR5K_REG_WRITE_BITS(ah, AR5K_BEACON, AR5K_BEACON_TIM,
drivers/net/wireless/ath/ath5k/pcu.c
429
ath5k_hw_enable_pspoll(ah, NULL, 0);
drivers/net/wireless/ath/ath5k/pcu.c
448
ath5k_hw_set_bssid_mask(struct ath5k_hw *ah, const u8 *mask)
drivers/net/wireless/ath/ath5k/pcu.c
450
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/pcu.c
455
if (ah->ah_version == AR5K_AR5212)
drivers/net/wireless/ath/ath5k/pcu.c
466
ath5k_hw_set_mcast_filter(struct ath5k_hw *ah, u32 filter0, u32 filter1)
drivers/net/wireless/ath/ath5k/pcu.c
468
ath5k_hw_reg_write(ah, filter0, AR5K_MCAST_FILTER0);
drivers/net/wireless/ath/ath5k/pcu.c
469
ath5k_hw_reg_write(ah, filter1, AR5K_MCAST_FILTER1);
drivers/net/wireless/ath/ath5k/pcu.c
483
ath5k_hw_get_rx_filter(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
487
filter = ath5k_hw_reg_read(ah, AR5K_RX_FILTER);
drivers/net/wireless/ath/ath5k/pcu.c
490
if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/pcu.c
491
data = ath5k_hw_reg_read(ah, AR5K_PHY_ERR_FIL);
drivers/net/wireless/ath/ath5k/pcu.c
512
ath5k_hw_set_rx_filter(struct ath5k_hw *ah, u32 filter)
drivers/net/wireless/ath/ath5k/pcu.c
517
if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/pcu.c
527
if (ah->ah_version == AR5K_AR5210 &&
drivers/net/wireless/ath/ath5k/pcu.c
535
AR5K_REG_ENABLE_BITS(ah, AR5K_RXCFG, AR5K_RXCFG_ZLFDMA);
drivers/net/wireless/ath/ath5k/pcu.c
537
AR5K_REG_DISABLE_BITS(ah, AR5K_RXCFG, AR5K_RXCFG_ZLFDMA);
drivers/net/wireless/ath/ath5k/pcu.c
540
ath5k_hw_reg_write(ah, filter & 0xff, AR5K_RX_FILTER);
drivers/net/wireless/ath/ath5k/pcu.c
543
if (ah->ah_version == AR5K_AR5212)
drivers/net/wireless/ath/ath5k/pcu.c
544
ath5k_hw_reg_write(ah, data, AR5K_PHY_ERR_FIL);
drivers/net/wireless/ath/ath5k/pcu.c
562
ath5k_hw_get_tsf64(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
583
tsf_upper1 = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
drivers/net/wireless/ath/ath5k/pcu.c
585
tsf_lower = ath5k_hw_reg_read(ah, AR5K_TSF_L32);
drivers/net/wireless/ath/ath5k/pcu.c
586
tsf_upper2 = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
drivers/net/wireless/ath/ath5k/pcu.c
609
ath5k_hw_set_tsf64(struct ath5k_hw *ah, u64 tsf64)
drivers/net/wireless/ath/ath5k/pcu.c
611
ath5k_hw_reg_write(ah, tsf64 & 0xffffffff, AR5K_TSF_L32);
drivers/net/wireless/ath/ath5k/pcu.c
612
ath5k_hw_reg_write(ah, (tsf64 >> 32) & 0xffffffff, AR5K_TSF_U32);
drivers/net/wireless/ath/ath5k/pcu.c
622
ath5k_hw_reset_tsf(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
626
val = ath5k_hw_reg_read(ah, AR5K_BEACON) | AR5K_BEACON_RESET_TSF;
drivers/net/wireless/ath/ath5k/pcu.c
634
ath5k_hw_reg_write(ah, val, AR5K_BEACON);
drivers/net/wireless/ath/ath5k/pcu.c
635
ath5k_hw_reg_write(ah, val, AR5K_BEACON);
drivers/net/wireless/ath/ath5k/pcu.c
648
ath5k_hw_init_beacon_timers(struct ath5k_hw *ah, u32 next_beacon, u32 interval)
drivers/net/wireless/ath/ath5k/pcu.c
655
switch (ah->opmode) {
drivers/net/wireless/ath/ath5k/pcu.c
662
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/pcu.c
670
AR5K_REG_DISABLE_BITS(ah, AR5K_STA_ID1, AR5K_STA_ID1_PCF);
drivers/net/wireless/ath/ath5k/pcu.c
673
AR5K_REG_ENABLE_BITS(ah, AR5K_TXCFG, AR5K_TXCFG_ADHOC_BCN_ATIM);
drivers/net/wireless/ath/ath5k/pcu.c
693
if (ah->opmode == NL80211_IFTYPE_AP ||
drivers/net/wireless/ath/ath5k/pcu.c
694
ah->opmode == NL80211_IFTYPE_MESH_POINT)
drivers/net/wireless/ath/ath5k/pcu.c
695
ath5k_hw_reg_write(ah, 0, AR5K_TIMER0);
drivers/net/wireless/ath/ath5k/pcu.c
697
ath5k_hw_reg_write(ah, next_beacon, AR5K_TIMER0);
drivers/net/wireless/ath/ath5k/pcu.c
698
ath5k_hw_reg_write(ah, timer1, AR5K_TIMER1);
drivers/net/wireless/ath/ath5k/pcu.c
699
ath5k_hw_reg_write(ah, timer2, AR5K_TIMER2);
drivers/net/wireless/ath/ath5k/pcu.c
700
ath5k_hw_reg_write(ah, timer3, AR5K_TIMER3);
drivers/net/wireless/ath/ath5k/pcu.c
704
ath5k_hw_reset_tsf(ah);
drivers/net/wireless/ath/ath5k/pcu.c
706
ath5k_hw_reg_write(ah, interval & (AR5K_BEACON_PERIOD |
drivers/net/wireless/ath/ath5k/pcu.c
715
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/pcu.c
716
ath5k_hw_reg_write(ah, AR5K_ISR_BMISS, AR5K_ISR);
drivers/net/wireless/ath/ath5k/pcu.c
718
ath5k_hw_reg_write(ah, AR5K_ISR_BMISS, AR5K_PISR);
drivers/net/wireless/ath/ath5k/pcu.c
723
AR5K_REG_DISABLE_BITS(ah, AR5K_STA_ID1, AR5K_STA_ID1_PWR_SV);
drivers/net/wireless/ath/ath5k/pcu.c
797
ath5k_hw_check_beacon_timers(struct ath5k_hw *ah, int intval)
drivers/net/wireless/ath/ath5k/pcu.c
801
nbtt = ath5k_hw_reg_read(ah, AR5K_TIMER0);
drivers/net/wireless/ath/ath5k/pcu.c
802
atim = ath5k_hw_reg_read(ah, AR5K_TIMER3);
drivers/net/wireless/ath/ath5k/pcu.c
803
dma = ath5k_hw_reg_read(ah, AR5K_TIMER1) >> 3;
drivers/net/wireless/ath/ath5k/pcu.c
824
ath5k_hw_set_coverage_class(struct ath5k_hw *ah, u8 coverage_class)
drivers/net/wireless/ath/ath5k/pcu.c
827
int slot_time = ath5k_hw_get_default_slottime(ah) + 3 * coverage_class;
drivers/net/wireless/ath/ath5k/pcu.c
828
int ack_timeout = ath5k_hw_get_default_sifs(ah) + slot_time;
drivers/net/wireless/ath/ath5k/pcu.c
831
ath5k_hw_set_ifs_intervals(ah, slot_time);
drivers/net/wireless/ath/ath5k/pcu.c
832
ath5k_hw_set_ack_timeout(ah, ack_timeout);
drivers/net/wireless/ath/ath5k/pcu.c
833
ath5k_hw_set_cts_timeout(ah, cts_timeout);
drivers/net/wireless/ath/ath5k/pcu.c
835
ah->ah_coverage_class = coverage_class;
drivers/net/wireless/ath/ath5k/pcu.c
852
ath5k_hw_start_rx_pcu(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
854
AR5K_REG_DISABLE_BITS(ah, AR5K_DIAG_SW, AR5K_DIAG_SW_DIS_RX);
drivers/net/wireless/ath/ath5k/pcu.c
864
ath5k_hw_stop_rx_pcu(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/pcu.c
866
AR5K_REG_ENABLE_BITS(ah, AR5K_DIAG_SW, AR5K_DIAG_SW_DIS_RX);
drivers/net/wireless/ath/ath5k/pcu.c
877
ath5k_hw_set_opmode(struct ath5k_hw *ah, enum nl80211_iftype op_mode)
drivers/net/wireless/ath/ath5k/pcu.c
879
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/pcu.c
882
ATH5K_DBG(ah, ATH5K_DEBUG_MODE, "mode %d\n", op_mode);
drivers/net/wireless/ath/ath5k/pcu.c
885
pcu_reg = ath5k_hw_reg_read(ah, AR5K_STA_ID1) & 0xffff0000;
drivers/net/wireless/ath/ath5k/pcu.c
888
| (ah->ah_version == AR5K_AR5210 ?
drivers/net/wireless/ath/ath5k/pcu.c
897
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/pcu.c
900
AR5K_REG_ENABLE_BITS(ah, AR5K_CFG, AR5K_CFG_IBSS);
drivers/net/wireless/ath/ath5k/pcu.c
907
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/pcu.c
910
AR5K_REG_DISABLE_BITS(ah, AR5K_CFG, AR5K_CFG_IBSS);
drivers/net/wireless/ath/ath5k/pcu.c
915
| (ah->ah_version == AR5K_AR5210 ?
drivers/net/wireless/ath/ath5k/pcu.c
920
| (ah->ah_version == AR5K_AR5210 ?
drivers/net/wireless/ath/ath5k/pcu.c
933
ath5k_hw_reg_write(ah, low_id, AR5K_STA_ID0);
drivers/net/wireless/ath/ath5k/pcu.c
934
ath5k_hw_reg_write(ah, pcu_reg | high_id, AR5K_STA_ID1);
drivers/net/wireless/ath/ath5k/pcu.c
939
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/pcu.c
940
ath5k_hw_reg_write(ah, beacon_reg, AR5K_BCR);
drivers/net/wireless/ath/ath5k/pcu.c
954
ath5k_hw_pcu_init(struct ath5k_hw *ah, enum nl80211_iftype op_mode)
drivers/net/wireless/ath/ath5k/pcu.c
957
ath5k_hw_set_bssid(ah);
drivers/net/wireless/ath/ath5k/pcu.c
960
ath5k_hw_set_opmode(ah, op_mode);
drivers/net/wireless/ath/ath5k/pcu.c
966
if (ah->ah_version == AR5K_AR5212 &&
drivers/net/wireless/ath/ath5k/pcu.c
967
ah->nvifs)
drivers/net/wireless/ath/ath5k/pcu.c
968
ath5k_hw_write_rate_duration(ah);
drivers/net/wireless/ath/ath5k/pcu.c
978
ath5k_hw_reg_write(ah, (AR5K_TUNE_RSSI_THRES |
drivers/net/wireless/ath/ath5k/pcu.c
984
if (ah->ah_mac_srev >= AR5K_SREV_AR2413) {
drivers/net/wireless/ath/ath5k/pcu.c
985
ath5k_hw_reg_write(ah, 0x000100aa, AR5K_MIC_QOS_CTL);
drivers/net/wireless/ath/ath5k/pcu.c
986
ath5k_hw_reg_write(ah, 0x00003210, AR5K_MIC_QOS_SEL);
drivers/net/wireless/ath/ath5k/pcu.c
990
if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/pcu.c
991
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/pcu.c
999
if (ah->ah_coverage_class > 0)
drivers/net/wireless/ath/ath5k/phy.c
1002
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_x_gain[ee_mode],
drivers/net/wireless/ath/ath5k/phy.c
1005
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_i_gain[ee_mode],
drivers/net/wireless/ath/ath5k/phy.c
1008
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_xpd[ee_mode],
drivers/net/wireless/ath/ath5k/phy.c
1012
if (ah->ah_bwmode == AR5K_BWMODE_5MHZ ||
drivers/net/wireless/ath/ath5k/phy.c
1013
ah->ah_bwmode == AR5K_BWMODE_10MHZ) {
drivers/net/wireless/ath/ath5k/phy.c
1016
ath5k_hw_rfb_op(ah, rf_regs, 0x1f,
drivers/net/wireless/ath/ath5k/phy.c
1019
wait_i = (ah->ah_bwmode == AR5K_BWMODE_5MHZ) ?
drivers/net/wireless/ath/ath5k/phy.c
1022
ath5k_hw_rfb_op(ah, rf_regs, wait_i,
drivers/net/wireless/ath/ath5k/phy.c
1024
ath5k_hw_rfb_op(ah, rf_regs, 3,
drivers/net/wireless/ath/ath5k/phy.c
1030
if (ah->ah_radio == AR5K_RF5112) {
drivers/net/wireless/ath/ath5k/phy.c
1035
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[0],
drivers/net/wireless/ath/ath5k/phy.c
1038
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[1],
drivers/net/wireless/ath/ath5k/phy.c
1041
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[2],
drivers/net/wireless/ath/ath5k/phy.c
1044
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[3],
drivers/net/wireless/ath/ath5k/phy.c
1047
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[4],
drivers/net/wireless/ath/ath5k/phy.c
1050
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[5],
drivers/net/wireless/ath/ath5k/phy.c
1053
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[6],
drivers/net/wireless/ath/ath5k/phy.c
1058
ah->ah_gain.g_state = AR5K_RFGAIN_ACTIVE;
drivers/net/wireless/ath/ath5k/phy.c
1063
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_xpd[ee_mode],
drivers/net/wireless/ath/ath5k/phy.c
1066
if (ah->ah_radio_5ghz_revision < AR5K_SREV_RAD_5112A) {
drivers/net/wireless/ath/ath5k/phy.c
1068
ath5k_hw_rfb_op(ah, rf_regs,
drivers/net/wireless/ath/ath5k/phy.c
1075
ath5k_hw_rfb_op(ah, rf_regs,
drivers/net/wireless/ath/ath5k/phy.c
1078
ath5k_hw_rfb_op(ah, rf_regs,
drivers/net/wireless/ath/ath5k/phy.c
108
ath5k_hw_reg_write(ah, 0x00001c16, AR5K_PHY(0x34));
drivers/net/wireless/ath/ath5k/phy.c
1082
ath5k_hw_rfb_op(ah, rf_regs,
drivers/net/wireless/ath/ath5k/phy.c
1085
ath5k_hw_rfb_op(ah, rf_regs,
drivers/net/wireless/ath/ath5k/phy.c
1091
if (ah->ah_radio == AR5K_RF5112 &&
drivers/net/wireless/ath/ath5k/phy.c
1092
(ah->ah_radio_5ghz_revision & AR5K_SREV_REV) > 0) {
drivers/net/wireless/ath/ath5k/phy.c
1093
ath5k_hw_rfb_op(ah, rf_regs, 2,
drivers/net/wireless/ath/ath5k/phy.c
1096
ath5k_hw_rfb_op(ah, rf_regs, 2,
drivers/net/wireless/ath/ath5k/phy.c
1099
ath5k_hw_rfb_op(ah, rf_regs, 2,
drivers/net/wireless/ath/ath5k/phy.c
1102
ath5k_hw_rfb_op(ah, rf_regs, 2,
drivers/net/wireless/ath/ath5k/phy.c
1107
if (ah->ah_phy_revision >= AR5K_SREV_PHY_5212A) {
drivers/net/wireless/ath/ath5k/phy.c
1108
ath5k_hw_rfb_op(ah, rf_regs, 1,
drivers/net/wireless/ath/ath5k/phy.c
111
ath5k_hw_reg_write(ah, 0x00010000, AR5K_PHY(0x20));
drivers/net/wireless/ath/ath5k/phy.c
1111
ath5k_hw_rfb_op(ah, rf_regs, 1,
drivers/net/wireless/ath/ath5k/phy.c
1114
ath5k_hw_rfb_op(ah, rf_regs, 1,
drivers/net/wireless/ath/ath5k/phy.c
1117
ath5k_hw_rfb_op(ah, rf_regs, 1,
drivers/net/wireless/ath/ath5k/phy.c
1120
ath5k_hw_rfb_op(ah, rf_regs, 1,
drivers/net/wireless/ath/ath5k/phy.c
1125
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_i_gain[ee_mode],
drivers/net/wireless/ath/ath5k/phy.c
1129
if (ah->ah_bwmode == AR5K_BWMODE_5MHZ ||
drivers/net/wireless/ath/ath5k/phy.c
113
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/phy.c
1130
ah->ah_bwmode == AR5K_BWMODE_10MHZ) {
drivers/net/wireless/ath/ath5k/phy.c
1133
pd_delay = (ah->ah_bwmode == AR5K_BWMODE_5MHZ) ?
drivers/net/wireless/ath/ath5k/phy.c
1136
ath5k_hw_rfb_op(ah, rf_regs, pd_delay,
drivers/net/wireless/ath/ath5k/phy.c
1138
ath5k_hw_rfb_op(ah, rf_regs, 0xf,
drivers/net/wireless/ath/ath5k/phy.c
114
srev = (ath5k_hw_reg_read(ah, AR5K_PHY(256)) >> 28) & 0xf;
drivers/net/wireless/ath/ath5k/phy.c
1144
if (ah->ah_radio == AR5K_RF5413 &&
drivers/net/wireless/ath/ath5k/phy.c
1147
ath5k_hw_rfb_op(ah, rf_regs, 1, AR5K_RF_DERBY_CHAN_SEL_MODE,
drivers/net/wireless/ath/ath5k/phy.c
1151
if (ah->ah_mac_srev >= AR5K_SREV_AR5424 &&
drivers/net/wireless/ath/ath5k/phy.c
1152
ah->ah_mac_srev < AR5K_SREV_AR5413)
drivers/net/wireless/ath/ath5k/phy.c
1153
ath5k_hw_rfb_op(ah, rf_regs, ath5k_hw_bitswap(6, 3),
drivers/net/wireless/ath/ath5k/phy.c
1159
for (i = 0; i < ah->ah_rf_banks_size; i++) {
drivers/net/wireless/ath/ath5k/phy.c
1161
ath5k_hw_reg_write(ah, rfb[i], ini_rfb[i].rfb_ctrl_register);
drivers/net/wireless/ath/ath5k/phy.c
117
srev = (ath5k_hw_reg_read(ah, AR5K_PHY(0x100)) >> 24) & 0xff;
drivers/net/wireless/ath/ath5k/phy.c
1197
ath5k_hw_rf5110_channel(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
1206
ath5k_hw_reg_write(ah, data, AR5K_RF_BUFFER);
drivers/net/wireless/ath/ath5k/phy.c
1207
ath5k_hw_reg_write(ah, 0, AR5K_RF_BUFFER_CONTROL_0);
drivers/net/wireless/ath/ath5k/phy.c
123
ath5k_hw_reg_write(ah, AR5K_PHY_SHIFT_5GHZ, AR5K_PHY(0));
drivers/net/wireless/ath/ath5k/phy.c
1256
ath5k_hw_rf5111_channel(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
1293
ath5k_hw_reg_write(ah, (data1 & 0xff) | ((data0 & 0xff) << 8),
drivers/net/wireless/ath/ath5k/phy.c
1295
ath5k_hw_reg_write(ah, ((data1 >> 8) & 0xff) | (data0 & 0xff00),
drivers/net/wireless/ath/ath5k/phy.c
1314
ath5k_hw_rf5112_channel(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
137
ath5k_channel_ok(struct ath5k_hw *ah, struct ieee80211_channel *channel)
drivers/net/wireless/ath/ath5k/phy.c
1373
ath5k_hw_reg_write(ah, data & 0xff, AR5K_RF_BUFFER);
drivers/net/wireless/ath/ath5k/phy.c
1374
ath5k_hw_reg_write(ah, (data >> 8) & 0x7f, AR5K_RF_BUFFER_CONTROL_5);
drivers/net/wireless/ath/ath5k/phy.c
1388
ath5k_hw_rf2425_channel(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
1418
ath5k_hw_reg_write(ah, data & 0xff, AR5K_RF_BUFFER);
drivers/net/wireless/ath/ath5k/phy.c
1419
ath5k_hw_reg_write(ah, (data >> 8) & 0x7f, AR5K_RF_BUFFER_CONTROL_5);
drivers/net/wireless/ath/ath5k/phy.c
143
if ((freq >= ah->ah_capabilities.cap_range.range_2ghz_min) &&
drivers/net/wireless/ath/ath5k/phy.c
1433
ath5k_hw_channel(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
144
(freq <= ah->ah_capabilities.cap_range.range_2ghz_max))
drivers/net/wireless/ath/ath5k/phy.c
1441
if (!ath5k_channel_ok(ah, channel)) {
drivers/net/wireless/ath/ath5k/phy.c
1442
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/phy.c
1452
switch (ah->ah_radio) {
drivers/net/wireless/ath/ath5k/phy.c
1454
ret = ath5k_hw_rf5110_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
1457
ret = ath5k_hw_rf5111_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
1461
ret = ath5k_hw_rf2425_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
1464
ret = ath5k_hw_rf5112_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
147
if ((freq >= ah->ah_capabilities.cap_range.range_5ghz_min) &&
drivers/net/wireless/ath/ath5k/phy.c
1473
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_CCKTXCTL,
drivers/net/wireless/ath/ath5k/phy.c
1476
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_CCKTXCTL,
drivers/net/wireless/ath/ath5k/phy.c
148
(freq <= ah->ah_capabilities.cap_range.range_5ghz_max))
drivers/net/wireless/ath/ath5k/phy.c
1480
ah->ah_current_channel = channel;
drivers/net/wireless/ath/ath5k/phy.c
1524
ath5k_hw_read_measured_noise_floor(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
1528
val = ath5k_hw_reg_read(ah, AR5K_PHY_NF);
drivers/net/wireless/ath/ath5k/phy.c
1537
ath5k_hw_init_nfcal_hist(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
1541
ah->ah_nfcal_hist.index = 0;
drivers/net/wireless/ath/ath5k/phy.c
1543
ah->ah_nfcal_hist.nfval[i] = AR5K_TUNE_CCA_MAX_GOOD_VALUE;
drivers/net/wireless/ath/ath5k/phy.c
1551
static void ath5k_hw_update_nfcal_hist(struct ath5k_hw *ah, s16 noise_floor)
drivers/net/wireless/ath/ath5k/phy.c
1553
struct ath5k_nfcal_hist *hist = &ah->ah_nfcal_hist;
drivers/net/wireless/ath/ath5k/phy.c
1568
ath5k_hw_get_median_noise_floor(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
1573
memcpy(sorted_nfval, ah->ah_nfcal_hist.nfval, sizeof(sorted_nfval));
drivers/net/wireless/ath/ath5k/phy.c
1576
ATH5K_DBG(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
1591
ath5k_hw_update_noise_floor(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
1593
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
1599
if (ath5k_hw_reg_read(ah, AR5K_PHY_AGCCTL) & AR5K_PHY_AGCCTL_NF) {
drivers/net/wireless/ath/ath5k/phy.c
160
ath5k_hw_chan_has_spur_noise(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
1600
ATH5K_DBG(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
1606
ah->ah_cal_mask |= AR5K_CALIBRATION_NF;
drivers/net/wireless/ath/ath5k/phy.c
1608
ee_mode = ath5k_eeprom_mode_from_channel(ah, ah->ah_current_channel);
drivers/net/wireless/ath/ath5k/phy.c
1611
nf = ath5k_hw_read_measured_noise_floor(ah);
drivers/net/wireless/ath/ath5k/phy.c
1615
ATH5K_DBG(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
1623
ath5k_hw_update_nfcal_hist(ah, nf);
drivers/net/wireless/ath/ath5k/phy.c
1624
nf = ath5k_hw_get_median_noise_floor(ah);
drivers/net/wireless/ath/ath5k/phy.c
1627
val = ath5k_hw_reg_read(ah, AR5K_PHY_NF) & ~AR5K_PHY_NF_M;
drivers/net/wireless/ath/ath5k/phy.c
1629
ath5k_hw_reg_write(ah, val, AR5K_PHY_NF);
drivers/net/wireless/ath/ath5k/phy.c
1631
AR5K_REG_MASKED_BITS(ah, AR5K_PHY_AGCCTL, AR5K_PHY_AGCCTL_NF,
drivers/net/wireless/ath/ath5k/phy.c
1634
ath5k_hw_register_timeout(ah, AR5K_PHY_AGCCTL, AR5K_PHY_AGCCTL_NF,
drivers/net/wireless/ath/ath5k/phy.c
1644
ath5k_hw_reg_write(ah, val, AR5K_PHY_NF);
drivers/net/wireless/ath/ath5k/phy.c
1645
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
165
if ((ah->ah_radio == AR5K_RF5112) ||
drivers/net/wireless/ath/ath5k/phy.c
1650
ah->ah_noise_floor = nf;
drivers/net/wireless/ath/ath5k/phy.c
1652
ah->ah_cal_mask &= ~AR5K_CALIBRATION_NF;
drivers/net/wireless/ath/ath5k/phy.c
1654
ATH5K_DBG(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
166
(ah->ah_radio == AR5K_RF5413) ||
drivers/net/wireless/ath/ath5k/phy.c
1666
ath5k_hw_rf5110_calibrate(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
167
(ah->ah_radio == AR5K_RF2413) ||
drivers/net/wireless/ath/ath5k/phy.c
1672
if (!(ah->ah_cal_mask & AR5K_CALIBRATION_FULL))
drivers/net/wireless/ath/ath5k/phy.c
1678
AR5K_REG_ENABLE_BITS(ah, AR5K_DIAG_SW_5210,
drivers/net/wireless/ath/ath5k/phy.c
168
(ah->ah_mac_version == (AR5K_SREV_AR2417 >> 4)))
drivers/net/wireless/ath/ath5k/phy.c
1680
beacon = ath5k_hw_reg_read(ah, AR5K_BEACON_5210);
drivers/net/wireless/ath/ath5k/phy.c
1681
ath5k_hw_reg_write(ah, beacon & ~AR5K_BEACON_ENABLE, AR5K_BEACON_5210);
drivers/net/wireless/ath/ath5k/phy.c
1688
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE);
drivers/net/wireless/ath/ath5k/phy.c
1690
ret = ath5k_hw_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
1695
ath5k_hw_reg_write(ah, AR5K_PHY_ACT_ENABLE, AR5K_PHY_ACT);
drivers/net/wireless/ath/ath5k/phy.c
1698
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE);
drivers/net/wireless/ath/ath5k/phy.c
1708
phy_sig = ath5k_hw_reg_read(ah, AR5K_PHY_SIG);
drivers/net/wireless/ath/ath5k/phy.c
1709
phy_agc = ath5k_hw_reg_read(ah, AR5K_PHY_AGCCOARSE);
drivers/net/wireless/ath/ath5k/phy.c
1710
phy_sat = ath5k_hw_reg_read(ah, AR5K_PHY_ADCSAT);
drivers/net/wireless/ath/ath5k/phy.c
1713
ath5k_hw_reg_write(ah, (phy_sig & ~(AR5K_PHY_SIG_FIRPWR)) |
drivers/net/wireless/ath/ath5k/phy.c
1716
ath5k_hw_reg_write(ah, (phy_agc & ~(AR5K_PHY_AGCCOARSE_HI |
drivers/net/wireless/ath/ath5k/phy.c
1721
ath5k_hw_reg_write(ah, (phy_sat & ~(AR5K_PHY_ADCSAT_ICNT |
drivers/net/wireless/ath/ath5k/phy.c
1728
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE);
drivers/net/wireless/ath/ath5k/phy.c
1730
ath5k_hw_reg_write(ah, AR5K_PHY_RFSTG_DISABLE, AR5K_PHY_RFSTG);
drivers/net/wireless/ath/ath5k/phy.c
1731
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_AGC, AR5K_PHY_AGC_DISABLE);
drivers/net/wireless/ath/ath5k/phy.c
1738
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL, AR5K_PHY_AGCCTL_CAL);
drivers/net/wireless/ath/ath5k/phy.c
1740
ret = ath5k_hw_register_timeout(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
1744
ath5k_hw_reg_write(ah, phy_sig, AR5K_PHY_SIG);
drivers/net/wireless/ath/ath5k/phy.c
1745
ath5k_hw_reg_write(ah, phy_agc, AR5K_PHY_AGCCOARSE);
drivers/net/wireless/ath/ath5k/phy.c
1746
ath5k_hw_reg_write(ah, phy_sat, AR5K_PHY_ADCSAT);
drivers/net/wireless/ath/ath5k/phy.c
1749
ATH5K_ERR(ah, "calibration timeout (%uMHz)\n",
drivers/net/wireless/ath/ath5k/phy.c
1757
AR5K_REG_DISABLE_BITS(ah, AR5K_DIAG_SW_5210,
drivers/net/wireless/ath/ath5k/phy.c
1759
ath5k_hw_reg_write(ah, beacon, AR5K_BEACON_5210);
drivers/net/wireless/ath/ath5k/phy.c
1769
ath5k_hw_rf511x_iq_calibrate(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
1776
if (!ah->ah_iq_cal_needed)
drivers/net/wireless/ath/ath5k/phy.c
1778
else if (ath5k_hw_reg_read(ah, AR5K_PHY_IQ) & AR5K_PHY_IQ_RUN) {
drivers/net/wireless/ath/ath5k/phy.c
1779
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
1789
iq_corr = ath5k_hw_reg_read(ah, AR5K_PHY_IQRES_CAL_CORR);
drivers/net/wireless/ath/ath5k/phy.c
1790
i_pwr = ath5k_hw_reg_read(ah, AR5K_PHY_IQRES_CAL_PWR_I);
drivers/net/wireless/ath/ath5k/phy.c
1791
q_pwr = ath5k_hw_reg_read(ah, AR5K_PHY_IQRES_CAL_PWR_Q);
drivers/net/wireless/ath/ath5k/phy.c
1792
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
1800
if (ah->ah_version == AR5K_AR5211)
drivers/net/wireless/ath/ath5k/phy.c
1816
if (ah->ah_version == AR5K_AR5211)
drivers/net/wireless/ath/ath5k/phy.c
1822
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
1827
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_IQ, AR5K_PHY_IQ_CORR_Q_I_COFF, i_coff);
drivers/net/wireless/ath/ath5k/phy.c
1828
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_IQ, AR5K_PHY_IQ_CORR_Q_Q_COFF, q_coff);
drivers/net/wireless/ath/ath5k/phy.c
1829
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_IQ, AR5K_PHY_IQ_CORR_ENABLE);
drivers/net/wireless/ath/ath5k/phy.c
1833
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_IQ,
drivers/net/wireless/ath/ath5k/phy.c
1835
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_IQ, AR5K_PHY_IQ_RUN);
drivers/net/wireless/ath/ath5k/phy.c
1850
ath5k_hw_phy_calibrate(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
1855
if (ah->ah_radio == AR5K_RF5110)
drivers/net/wireless/ath/ath5k/phy.c
1856
return ath5k_hw_rf5110_calibrate(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
1858
ret = ath5k_hw_rf511x_iq_calibrate(ah);
drivers/net/wireless/ath/ath5k/phy.c
1860
ATH5K_DBG_UNLIMIT(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
1871
if ((ah->ah_cal_mask & AR5K_CALIBRATION_FULL) &&
drivers/net/wireless/ath/ath5k/phy.c
1872
(ah->ah_radio == AR5K_RF5111 ||
drivers/net/wireless/ath/ath5k/phy.c
1873
ah->ah_radio == AR5K_RF5112) &&
drivers/net/wireless/ath/ath5k/phy.c
1875
ath5k_hw_request_rfgain_probe(ah);
drivers/net/wireless/ath/ath5k/phy.c
1878
if (!(ah->ah_cal_mask & AR5K_CALIBRATION_NF))
drivers/net/wireless/ath/ath5k/phy.c
1879
ath5k_hw_update_noise_floor(ah);
drivers/net/wireless/ath/ath5k/phy.c
1900
ath5k_hw_set_spur_mitigation_filter(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
1903
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
1928
if (ah->ah_bwmode == AR5K_BWMODE_40MHZ)
drivers/net/wireless/ath/ath5k/phy.c
194
ath5k_hw_rfb_op(struct ath5k_hw *ah, const struct ath5k_rf_reg *rf_regs,
drivers/net/wireless/ath/ath5k/phy.c
1959
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/phy.c
2053
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_BIN_MASK_CTL,
drivers/net/wireless/ath/ath5k/phy.c
2056
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_IQ,
drivers/net/wireless/ath/ath5k/phy.c
206
rfb = ah->ah_rf_banks;
drivers/net/wireless/ath/ath5k/phy.c
2062
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/phy.c
2071
ath5k_hw_reg_write(ah, pilot_mask[0], AR5K_PHY_TIMING_7);
drivers/net/wireless/ath/ath5k/phy.c
2072
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_TIMING_8,
drivers/net/wireless/ath/ath5k/phy.c
2076
ath5k_hw_reg_write(ah, pilot_mask[0], AR5K_PHY_TIMING_9);
drivers/net/wireless/ath/ath5k/phy.c
2077
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_TIMING_10,
drivers/net/wireless/ath/ath5k/phy.c
208
for (i = 0; i < ah->ah_rf_regs_count; i++) {
drivers/net/wireless/ath/ath5k/phy.c
2082
ath5k_hw_reg_write(ah, mag_mask[0], AR5K_PHY_BIN_MASK_1);
drivers/net/wireless/ath/ath5k/phy.c
2083
ath5k_hw_reg_write(ah, mag_mask[1], AR5K_PHY_BIN_MASK_2);
drivers/net/wireless/ath/ath5k/phy.c
2084
ath5k_hw_reg_write(ah, mag_mask[2], AR5K_PHY_BIN_MASK_3);
drivers/net/wireless/ath/ath5k/phy.c
2085
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_BIN_MASK_CTL,
drivers/net/wireless/ath/ath5k/phy.c
2089
ath5k_hw_reg_write(ah, mag_mask[0], AR5K_PHY_BIN_MASK2_1);
drivers/net/wireless/ath/ath5k/phy.c
2090
ath5k_hw_reg_write(ah, mag_mask[1], AR5K_PHY_BIN_MASK2_2);
drivers/net/wireless/ath/ath5k/phy.c
2091
ath5k_hw_reg_write(ah, mag_mask[2], AR5K_PHY_BIN_MASK2_3);
drivers/net/wireless/ath/ath5k/phy.c
2092
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_BIN_MASK2_4,
drivers/net/wireless/ath/ath5k/phy.c
2096
} else if (ath5k_hw_reg_read(ah, AR5K_PHY_IQ) &
drivers/net/wireless/ath/ath5k/phy.c
2099
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_BIN_MASK_CTL,
drivers/net/wireless/ath/ath5k/phy.c
2101
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_IQ,
drivers/net/wireless/ath/ath5k/phy.c
2105
ath5k_hw_reg_write(ah, 0, AR5K_PHY_TIMING_11);
drivers/net/wireless/ath/ath5k/phy.c
2108
ath5k_hw_reg_write(ah, 0, AR5K_PHY_TIMING_7);
drivers/net/wireless/ath/ath5k/phy.c
2109
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_TIMING_8,
drivers/net/wireless/ath/ath5k/phy.c
2113
ath5k_hw_reg_write(ah, 0, AR5K_PHY_TIMING_9);
drivers/net/wireless/ath/ath5k/phy.c
2114
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_TIMING_10,
drivers/net/wireless/ath/ath5k/phy.c
2119
ath5k_hw_reg_write(ah, 0, AR5K_PHY_BIN_MASK_1);
drivers/net/wireless/ath/ath5k/phy.c
2120
ath5k_hw_reg_write(ah, 0, AR5K_PHY_BIN_MASK_2);
drivers/net/wireless/ath/ath5k/phy.c
2121
ath5k_hw_reg_write(ah, 0, AR5K_PHY_BIN_MASK_3);
drivers/net/wireless/ath/ath5k/phy.c
2122
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_BIN_MASK_CTL,
drivers/net/wireless/ath/ath5k/phy.c
2126
ath5k_hw_reg_write(ah, 0, AR5K_PHY_BIN_MASK2_1);
drivers/net/wireless/ath/ath5k/phy.c
2127
ath5k_hw_reg_write(ah, 0, AR5K_PHY_BIN_MASK2_2);
drivers/net/wireless/ath/ath5k/phy.c
2128
ath5k_hw_reg_write(ah, 0, AR5K_PHY_BIN_MASK2_3);
drivers/net/wireless/ath/ath5k/phy.c
2129
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_BIN_MASK2_4,
drivers/net/wireless/ath/ath5k/phy.c
2196
ath5k_hw_set_def_antenna(struct ath5k_hw *ah, u8 ant)
drivers/net/wireless/ath/ath5k/phy.c
2198
if (ah->ah_version != AR5K_AR5210)
drivers/net/wireless/ath/ath5k/phy.c
2199
ath5k_hw_reg_write(ah, ant & 0x7, AR5K_DEFAULT_ANTENNA);
drivers/net/wireless/ath/ath5k/phy.c
2209
ath5k_hw_set_fast_div(struct ath5k_hw *ah, u8 ee_mode, bool enable)
drivers/net/wireless/ath/ath5k/phy.c
2217
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
2220
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
2224
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
2232
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_RESTART,
drivers/net/wireless/ath/ath5k/phy.c
2235
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_FAST_ANT_DIV,
drivers/net/wireless/ath/ath5k/phy.c
2238
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_RESTART,
drivers/net/wireless/ath/ath5k/phy.c
2241
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_FAST_ANT_DIV,
drivers/net/wireless/ath/ath5k/phy.c
2255
ath5k_hw_set_antenna_switch(struct ath5k_hw *ah, u8 ee_mode)
drivers/net/wireless/ath/ath5k/phy.c
2263
if (ah->ah_ant_mode == AR5K_ANTMODE_FIXED_A)
drivers/net/wireless/ath/ath5k/phy.c
2265
else if (ah->ah_ant_mode == AR5K_ANTMODE_FIXED_B)
drivers/net/wireless/ath/ath5k/phy.c
2273
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_ANT_CTL,
drivers/net/wireless/ath/ath5k/phy.c
2275
(ah->ah_ant_ctl[ee_mode][AR5K_ANT_CTL] |
drivers/net/wireless/ath/ath5k/phy.c
2279
ath5k_hw_reg_write(ah, ah->ah_ant_ctl[ee_mode][ant0],
drivers/net/wireless/ath/ath5k/phy.c
2281
ath5k_hw_reg_write(ah, ah->ah_ant_ctl[ee_mode][ant1],
drivers/net/wireless/ath/ath5k/phy.c
2291
ath5k_hw_set_antenna_mode(struct ath5k_hw *ah, u8 ant_mode)
drivers/net/wireless/ath/ath5k/phy.c
2293
struct ieee80211_channel *channel = ah->ah_current_channel;
drivers/net/wireless/ath/ath5k/phy.c
230
offset = ah->ah_offset[bank];
drivers/net/wireless/ath/ath5k/phy.c
2303
ah->ah_ant_mode = ant_mode;
drivers/net/wireless/ath/ath5k/phy.c
2307
def_ant = ah->ah_def_ant;
drivers/net/wireless/ath/ath5k/phy.c
2309
ee_mode = ath5k_eeprom_mode_from_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
2376
ah->ah_tx_ant = tx_ant;
drivers/net/wireless/ath/ath5k/phy.c
2377
ah->ah_ant_mode = ant_mode;
drivers/net/wireless/ath/ath5k/phy.c
2378
ah->ah_def_ant = def_ant;
drivers/net/wireless/ath/ath5k/phy.c
2385
AR5K_REG_DISABLE_BITS(ah, AR5K_STA_ID1, AR5K_STA_ID1_ANTENNA_SETTINGS);
drivers/net/wireless/ath/ath5k/phy.c
2388
AR5K_REG_ENABLE_BITS(ah, AR5K_STA_ID1, sta_id1);
drivers/net/wireless/ath/ath5k/phy.c
2390
ath5k_hw_set_antenna_switch(ah, ee_mode);
drivers/net/wireless/ath/ath5k/phy.c
2393
ath5k_hw_set_fast_div(ah, ee_mode, fast_div);
drivers/net/wireless/ath/ath5k/phy.c
2394
ath5k_hw_set_def_antenna(ah, def_ant);
drivers/net/wireless/ath/ath5k/phy.c
2577
ath5k_get_chan_pcal_surrounding_piers(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
2582
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
2666
ath5k_get_rate_pcal_data(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
2670
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
2761
ath5k_get_max_ctl_power(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
2764
struct ath_regulatory *regulatory = ath5k_hw_regulatory(ah);
drivers/net/wireless/ath/ath5k/phy.c
2765
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
2768
s16 max_chan_pwr = ah->ah_txpower.txp_max_pwr / 4;
drivers/net/wireless/ath/ath5k/phy.c
2779
if (ah->ah_bwmode == AR5K_BWMODE_40MHZ)
drivers/net/wireless/ath/ath5k/phy.c
2785
if (ah->ah_bwmode == AR5K_BWMODE_40MHZ)
drivers/net/wireless/ath/ath5k/phy.c
2827
ah->ah_txpower.txp_max_pwr = 4 * min(edge_pwr, max_chan_pwr);
drivers/net/wireless/ath/ath5k/phy.c
286
ath5k_hw_write_ofdm_timings(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
2874
ath5k_fill_pwr_to_pcdac_table(struct ath5k_hw *ah, s16* table_min,
drivers/net/wireless/ath/ath5k/phy.c
2877
u8 *pcdac_out = ah->ah_txpower.txp_pd_table;
drivers/net/wireless/ath/ath5k/phy.c
2878
u8 *pcdac_tmp = ah->ah_txpower.tmpL[0];
drivers/net/wireless/ath/ath5k/phy.c
2924
ath5k_combine_linear_pcdac_curves(struct ath5k_hw *ah, s16* table_min,
drivers/net/wireless/ath/ath5k/phy.c
2927
u8 *pcdac_out = ah->ah_txpower.txp_pd_table;
drivers/net/wireless/ath/ath5k/phy.c
293
BUG_ON(!(ah->ah_version == AR5K_AR5212) ||
drivers/net/wireless/ath/ath5k/phy.c
2949
pcdac_low_pwr = ah->ah_txpower.tmpL[1];
drivers/net/wireless/ath/ath5k/phy.c
2950
pcdac_high_pwr = ah->ah_txpower.tmpL[0];
drivers/net/wireless/ath/ath5k/phy.c
2968
pcdac_low_pwr = ah->ah_txpower.tmpL[1]; /* Zeroed */
drivers/net/wireless/ath/ath5k/phy.c
2969
pcdac_high_pwr = ah->ah_txpower.tmpL[0];
drivers/net/wireless/ath/ath5k/phy.c
2977
ah->ah_txpower.txp_min_idx = min_pwr_idx / 2;
drivers/net/wireless/ath/ath5k/phy.c
300
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/phy.c
3022
ath5k_write_pcdac_table(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
3024
u8 *pcdac_out = ah->ah_txpower.txp_pd_table;
drivers/net/wireless/ath/ath5k/phy.c
3031
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/phy.c
3074
ath5k_combine_pwr_to_pdadc_curves(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
3078
u8 *pdadc_out = ah->ah_txpower.txp_pd_table;
drivers/net/wireless/ath/ath5k/phy.c
3087
pd_gain_overlap = (u8) ath5k_hw_reg_read(ah, AR5K_PHY_TPC_RG5) &
drivers/net/wireless/ath/ath5k/phy.c
3092
pdadc_tmp = ah->ah_txpower.tmpL[pdg];
drivers/net/wireless/ath/ath5k/phy.c
3168
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/phy.c
3182
ah->ah_txpower.txp_min_idx = pwr_min[0];
drivers/net/wireless/ath/ath5k/phy.c
3192
ath5k_write_pwr_to_pdadc_table(struct ath5k_hw *ah, u8 ee_mode)
drivers/net/wireless/ath/ath5k/phy.c
3194
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
3195
u8 *pdadc_out = ah->ah_txpower.txp_pd_table;
drivers/net/wireless/ath/ath5k/phy.c
3204
reg = ath5k_hw_reg_read(ah, AR5K_PHY_TPC_RG1);
drivers/net/wireless/ath/ath5k/phy.c
3231
ath5k_hw_reg_write(ah, reg, AR5K_PHY_TPC_RG1);
drivers/net/wireless/ath/ath5k/phy.c
3238
ath5k_hw_reg_write(ah, val, AR5K_PHY_PDADC_TXPOWER(i));
drivers/net/wireless/ath/ath5k/phy.c
3261
ath5k_setup_channel_powertable(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
3268
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
3278
ath5k_get_chan_pcal_surrounding_piers(ah, channel,
drivers/net/wireless/ath/ath5k/phy.c
3297
tmpL = ah->ah_txpower.tmpL[pdg];
drivers/net/wireless/ath/ath5k/phy.c
3298
tmpR = ah->ah_txpower.tmpR[pdg];
drivers/net/wireless/ath/ath5k/phy.c
338
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_TIMING_3,
drivers/net/wireless/ath/ath5k/phy.c
3399
ah->ah_txpower.txp_min_pwr = ath5k_get_interpolated_value(target,
drivers/net/wireless/ath/ath5k/phy.c
340
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_TIMING_3,
drivers/net/wireless/ath/ath5k/phy.c
3404
ah->ah_txpower.txp_max_pwr = ath5k_get_interpolated_value(target,
drivers/net/wireless/ath/ath5k/phy.c
3415
ath5k_combine_linear_pcdac_curves(ah, table_min, table_max,
drivers/net/wireless/ath/ath5k/phy.c
3421
ah->ah_txpower.txp_offset = 64 - (table_max[0] / 2);
drivers/net/wireless/ath/ath5k/phy.c
3426
ath5k_fill_pwr_to_pcdac_table(ah, table_min, table_max);
drivers/net/wireless/ath/ath5k/phy.c
3429
ah->ah_txpower.txp_min_idx = 0;
drivers/net/wireless/ath/ath5k/phy.c
3430
ah->ah_txpower.txp_offset = 0;
drivers/net/wireless/ath/ath5k/phy.c
3435
ath5k_combine_pwr_to_pdadc_curves(ah, table_min, table_max,
drivers/net/wireless/ath/ath5k/phy.c
3440
ah->ah_txpower.txp_offset = table_min[0];
drivers/net/wireless/ath/ath5k/phy.c
3446
ah->ah_txpower.txp_setup = true;
drivers/net/wireless/ath/ath5k/phy.c
3458
ath5k_write_channel_powertable(struct ath5k_hw *ah, u8 ee_mode, u8 type)
drivers/net/wireless/ath/ath5k/phy.c
3461
ath5k_write_pwr_to_pdadc_table(ah, ee_mode);
drivers/net/wireless/ath/ath5k/phy.c
3463
ath5k_write_pcdac_table(ah);
drivers/net/wireless/ath/ath5k/phy.c
3497
ath5k_setup_rate_powertable(struct ath5k_hw *ah, u16 max_pwr,
drivers/net/wireless/ath/ath5k/phy.c
350
int ath5k_hw_phy_disable(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
3508
max_pwr = min(max_pwr, (u16) ah->ah_txpower.txp_max_pwr) / 2;
drivers/net/wireless/ath/ath5k/phy.c
3511
rates = ah->ah_txpower.txp_rates_power_table;
drivers/net/wireless/ath/ath5k/phy.c
353
ath5k_hw_reg_write(ah, AR5K_PHY_ACT_DISABLE, AR5K_PHY_ACT);
drivers/net/wireless/ath/ath5k/phy.c
3546
(ah->ah_phy_revision < AR5K_SREV_PHY_5212A))
drivers/net/wireless/ath/ath5k/phy.c
3548
rates[i] -= ah->ah_txpower.txp_cck_ofdm_gainf_delta;
drivers/net/wireless/ath/ath5k/phy.c
3556
ah->ah_txpower.txp_min_pwr = 2 * rates[7];
drivers/net/wireless/ath/ath5k/phy.c
3557
ah->ah_txpower.txp_cur_pwr = 2 * rates[0];
drivers/net/wireless/ath/ath5k/phy.c
3562
ah->ah_txpower.txp_ofdm = rates[7];
drivers/net/wireless/ath/ath5k/phy.c
3568
rate_idx_scaled = rates[i] + ah->ah_txpower.txp_offset;
drivers/net/wireless/ath/ath5k/phy.c
3589
ath5k_hw_txpower(struct ath5k_hw *ah, struct ieee80211_channel *channel,
drivers/net/wireless/ath/ath5k/phy.c
3593
struct ieee80211_channel *curr_channel = ah->ah_current_channel;
drivers/net/wireless/ath/ath5k/phy.c
3599
ATH5K_ERR(ah, "invalid tx power: %u\n", txpower);
drivers/net/wireless/ath/ath5k/phy.c
3603
ee_mode = ath5k_eeprom_mode_from_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
3606
switch (ah->ah_radio) {
drivers/net/wireless/ath/ath5k/phy.c
3631
if (!ah->ah_txpower.txp_setup ||
drivers/net/wireless/ath/ath5k/phy.c
3636
int requested_txpower = ah->ah_txpower.txp_requested;
drivers/net/wireless/ath/ath5k/phy.c
3638
memset(&ah->ah_txpower, 0, sizeof(ah->ah_txpower));
drivers/net/wireless/ath/ath5k/phy.c
364
ath5k_hw_wait_for_synth(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
3641
ah->ah_txpower.txp_tpc = AR5K_TUNE_TPC_TXPOWER;
drivers/net/wireless/ath/ath5k/phy.c
3643
ah->ah_txpower.txp_requested = requested_txpower;
drivers/net/wireless/ath/ath5k/phy.c
3646
ret = ath5k_setup_channel_powertable(ah, channel,
drivers/net/wireless/ath/ath5k/phy.c
3653
ath5k_write_channel_powertable(ah, ee_mode, type);
drivers/net/wireless/ath/ath5k/phy.c
3656
ath5k_get_max_ctl_power(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
3666
ath5k_get_rate_pcal_data(ah, channel, &rate_info);
drivers/net/wireless/ath/ath5k/phy.c
3669
ath5k_setup_rate_powertable(ah, txpower, &rate_info, ee_mode);
drivers/net/wireless/ath/ath5k/phy.c
3672
ath5k_hw_reg_write(ah, AR5K_TXPOWER_OFDM(3, 24) |
drivers/net/wireless/ath/ath5k/phy.c
3676
ath5k_hw_reg_write(ah, AR5K_TXPOWER_OFDM(7, 24) |
drivers/net/wireless/ath/ath5k/phy.c
3680
ath5k_hw_reg_write(ah, AR5K_TXPOWER_CCK(10, 24) |
drivers/net/wireless/ath/ath5k/phy.c
3684
ath5k_hw_reg_write(ah, AR5K_TXPOWER_CCK(14, 24) |
drivers/net/wireless/ath/ath5k/phy.c
3689
if (ah->ah_txpower.txp_tpc) {
drivers/net/wireless/ath/ath5k/phy.c
3690
ath5k_hw_reg_write(ah, AR5K_PHY_TXPOWER_RATE_MAX_TPC_ENABLE |
drivers/net/wireless/ath/ath5k/phy.c
3693
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/phy.c
3699
ath5k_hw_reg_write(ah, AR5K_TUNE_MAX_TXPOWER,
drivers/net/wireless/ath/ath5k/phy.c
371
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/phy.c
3715
ath5k_hw_set_txpower_limit(struct ath5k_hw *ah, u8 txpower)
drivers/net/wireless/ath/ath5k/phy.c
3717
ATH5K_DBG(ah, ATH5K_DEBUG_TXPOWER,
drivers/net/wireless/ath/ath5k/phy.c
3720
return ath5k_hw_txpower(ah, ah->ah_current_channel, txpower);
drivers/net/wireless/ath/ath5k/phy.c
373
delay = ath5k_hw_reg_read(ah, AR5K_PHY_RX_DELAY) &
drivers/net/wireless/ath/ath5k/phy.c
3742
ath5k_hw_phy_init(struct ath5k_hw *ah, struct ieee80211_channel *channel,
drivers/net/wireless/ath/ath5k/phy.c
3756
curr_channel = ah->ah_current_channel;
drivers/net/wireless/ath/ath5k/phy.c
3765
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_RFBUS_REQ,
drivers/net/wireless/ath/ath5k/phy.c
3768
if (ath5k_hw_reg_read(ah, AR5K_PHY_RFBUS_GRANT))
drivers/net/wireless/ath/ath5k/phy.c
377
if (ah->ah_bwmode == AR5K_BWMODE_10MHZ)
drivers/net/wireless/ath/ath5k/phy.c
3777
ret = ath5k_hw_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
3781
ath5k_hw_wait_for_synth(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
379
if (ah->ah_bwmode == AR5K_BWMODE_5MHZ)
drivers/net/wireless/ath/ath5k/phy.c
3791
ret = ath5k_hw_txpower(ah, channel, ah->ah_txpower.txp_requested ?
drivers/net/wireless/ath/ath5k/phy.c
3792
ah->ah_txpower.txp_requested * 2 :
drivers/net/wireless/ath/ath5k/phy.c
3798
if (ah->ah_version == AR5K_AR5212 &&
drivers/net/wireless/ath/ath5k/phy.c
3801
ret = ath5k_hw_write_ofdm_timings(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
3808
if (ah->ah_mac_srev >= AR5K_SREV_AR5424)
drivers/net/wireless/ath/ath5k/phy.c
3809
ath5k_hw_set_spur_mitigation_filter(ah,
drivers/net/wireless/ath/ath5k/phy.c
3825
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_RFBUS_REQ,
drivers/net/wireless/ath/ath5k/phy.c
3831
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
3843
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/phy.c
3849
ret = ath5k_hw_rfgain_init(ah, channel->band);
drivers/net/wireless/ath/ath5k/phy.c
3858
ret = ath5k_hw_rfregs_init(ah, channel, mode);
drivers/net/wireless/ath/ath5k/phy.c
3864
if (ah->ah_radio == AR5K_RF5111) {
drivers/net/wireless/ath/ath5k/phy.c
3866
AR5K_REG_ENABLE_BITS(ah, AR5K_TXCFG,
drivers/net/wireless/ath/ath5k/phy.c
3869
AR5K_REG_DISABLE_BITS(ah, AR5K_TXCFG,
drivers/net/wireless/ath/ath5k/phy.c
3873
} else if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/phy.c
3876
ath5k_hw_reg_write(ah, AR5K_PHY_ACT_DISABLE, AR5K_PHY_ACT);
drivers/net/wireless/ath/ath5k/phy.c
3881
ret = ath5k_hw_channel(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
3890
ath5k_hw_reg_write(ah, AR5K_PHY_ACT_ENABLE, AR5K_PHY_ACT);
drivers/net/wireless/ath/ath5k/phy.c
3892
ath5k_hw_wait_for_synth(ah, channel);
drivers/net/wireless/ath/ath5k/phy.c
3898
phy_tst1 = ath5k_hw_reg_read(ah, AR5K_PHY_TST1);
drivers/net/wireless/ath/ath5k/phy.c
3899
ath5k_hw_reg_write(ah, AR5K_PHY_TST1_TXHOLD, AR5K_PHY_TST1);
drivers/net/wireless/ath/ath5k/phy.c
3901
if (!(ath5k_hw_reg_read(ah, AR5K_PHY_ADC_TEST) & 0x10))
drivers/net/wireless/ath/ath5k/phy.c
3905
ath5k_hw_reg_write(ah, phy_tst1, AR5K_PHY_TST1);
drivers/net/wireless/ath/ath5k/phy.c
3926
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
3931
ah->ah_iq_cal_needed = false;
drivers/net/wireless/ath/ath5k/phy.c
3933
ah->ah_iq_cal_needed = true;
drivers/net/wireless/ath/ath5k/phy.c
3934
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_IQ,
drivers/net/wireless/ath/ath5k/phy.c
3936
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_IQ,
drivers/net/wireless/ath/ath5k/phy.c
3942
if (ath5k_hw_register_timeout(ah, AR5K_PHY_AGCCTL,
drivers/net/wireless/ath/ath5k/phy.c
3944
ATH5K_ERR(ah, "gain calibration timeout (%uMHz)\n",
drivers/net/wireless/ath/ath5k/phy.c
3949
ath5k_hw_set_antenna_mode(ah, ah->ah_ant_mode);
drivers/net/wireless/ath/ath5k/phy.c
421
int ath5k_hw_rfgain_opt_init(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
424
switch (ah->ah_radio) {
drivers/net/wireless/ath/ath5k/phy.c
426
ah->ah_gain.g_step_idx = rfgain_opt_5111.go_default;
drivers/net/wireless/ath/ath5k/phy.c
427
ah->ah_gain.g_low = 20;
drivers/net/wireless/ath/ath5k/phy.c
428
ah->ah_gain.g_high = 35;
drivers/net/wireless/ath/ath5k/phy.c
429
ah->ah_gain.g_state = AR5K_RFGAIN_ACTIVE;
drivers/net/wireless/ath/ath5k/phy.c
432
ah->ah_gain.g_step_idx = rfgain_opt_5112.go_default;
drivers/net/wireless/ath/ath5k/phy.c
433
ah->ah_gain.g_low = 20;
drivers/net/wireless/ath/ath5k/phy.c
434
ah->ah_gain.g_high = 85;
drivers/net/wireless/ath/ath5k/phy.c
435
ah->ah_gain.g_state = AR5K_RFGAIN_ACTIVE;
drivers/net/wireless/ath/ath5k/phy.c
458
ath5k_hw_request_rfgain_probe(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
463
if (ah->ah_gain.g_state != AR5K_RFGAIN_ACTIVE)
drivers/net/wireless/ath/ath5k/phy.c
468
ath5k_hw_reg_write(ah, AR5K_REG_SM(ah->ah_txpower.txp_ofdm - 4,
drivers/net/wireless/ath/ath5k/phy.c
472
ah->ah_gain.g_state = AR5K_RFGAIN_READ_REQUESTED;
drivers/net/wireless/ath/ath5k/phy.c
484
ath5k_hw_rf_gainf_corr(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
492
if ((ah->ah_radio != AR5K_RF5112) ||
drivers/net/wireless/ath/ath5k/phy.c
493
(ah->ah_radio_5ghz_revision <= AR5K_SREV_RAD_5112A))
drivers/net/wireless/ath/ath5k/phy.c
498
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_5112a);
drivers/net/wireless/ath/ath5k/phy.c
500
g_step = &go->go_step[ah->ah_gain.g_step_idx];
drivers/net/wireless/ath/ath5k/phy.c
502
if (ah->ah_rf_banks == NULL)
drivers/net/wireless/ath/ath5k/phy.c
505
ah->ah_gain.g_f_corr = 0;
drivers/net/wireless/ath/ath5k/phy.c
508
if (ath5k_hw_rfb_op(ah, rf_regs, 0, AR5K_RF_MIXVGA_OVR, false) != 1)
drivers/net/wireless/ath/ath5k/phy.c
512
step = ath5k_hw_rfb_op(ah, rf_regs, 0, AR5K_RF_MIXGAIN_STEP, false);
drivers/net/wireless/ath/ath5k/phy.c
519
ah->ah_gain.g_f_corr = step * 2;
drivers/net/wireless/ath/ath5k/phy.c
522
ah->ah_gain.g_f_corr = (step - 5) * 2;
drivers/net/wireless/ath/ath5k/phy.c
525
ah->ah_gain.g_f_corr = step;
drivers/net/wireless/ath/ath5k/phy.c
528
ah->ah_gain.g_f_corr = 0;
drivers/net/wireless/ath/ath5k/phy.c
532
return ah->ah_gain.g_f_corr;
drivers/net/wireless/ath/ath5k/phy.c
547
ath5k_hw_rf_check_gainf_readback(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
552
if (ah->ah_rf_banks == NULL)
drivers/net/wireless/ath/ath5k/phy.c
555
if (ah->ah_radio == AR5K_RF5111) {
drivers/net/wireless/ath/ath5k/phy.c
558
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_5111);
drivers/net/wireless/ath/ath5k/phy.c
560
step = ath5k_hw_rfb_op(ah, rf_regs, 0, AR5K_RF_RFGAIN_STEP,
drivers/net/wireless/ath/ath5k/phy.c
568
ah->ah_gain.g_high = level[3] -
drivers/net/wireless/ath/ath5k/phy.c
570
ah->ah_gain.g_low = level[0] +
drivers/net/wireless/ath/ath5k/phy.c
575
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_5112);
drivers/net/wireless/ath/ath5k/phy.c
577
mix_ovr = ath5k_hw_rfb_op(ah, rf_regs, 0, AR5K_RF_MIXVGA_OVR,
drivers/net/wireless/ath/ath5k/phy.c
586
ah->ah_gain.g_high = 55;
drivers/net/wireless/ath/ath5k/phy.c
590
return (ah->ah_gain.g_current >= level[0] &&
drivers/net/wireless/ath/ath5k/phy.c
591
ah->ah_gain.g_current <= level[1]) ||
drivers/net/wireless/ath/ath5k/phy.c
592
(ah->ah_gain.g_current >= level[2] &&
drivers/net/wireless/ath/ath5k/phy.c
593
ah->ah_gain.g_current <= level[3]);
drivers/net/wireless/ath/ath5k/phy.c
604
ath5k_hw_rf_gainf_adjust(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
610
switch (ah->ah_radio) {
drivers/net/wireless/ath/ath5k/phy.c
621
g_step = &go->go_step[ah->ah_gain.g_step_idx];
drivers/net/wireless/ath/ath5k/phy.c
623
if (ah->ah_gain.g_current >= ah->ah_gain.g_high) {
drivers/net/wireless/ath/ath5k/phy.c
626
if (ah->ah_gain.g_step_idx == 0)
drivers/net/wireless/ath/ath5k/phy.c
629
for (ah->ah_gain.g_target = ah->ah_gain.g_current;
drivers/net/wireless/ath/ath5k/phy.c
630
ah->ah_gain.g_target >= ah->ah_gain.g_high &&
drivers/net/wireless/ath/ath5k/phy.c
631
ah->ah_gain.g_step_idx > 0;
drivers/net/wireless/ath/ath5k/phy.c
632
g_step = &go->go_step[ah->ah_gain.g_step_idx])
drivers/net/wireless/ath/ath5k/phy.c
633
ah->ah_gain.g_target -= 2 *
drivers/net/wireless/ath/ath5k/phy.c
634
(go->go_step[--(ah->ah_gain.g_step_idx)].gos_gain -
drivers/net/wireless/ath/ath5k/phy.c
641
if (ah->ah_gain.g_current <= ah->ah_gain.g_low) {
drivers/net/wireless/ath/ath5k/phy.c
644
if (ah->ah_gain.g_step_idx == (go->go_steps_count - 1))
drivers/net/wireless/ath/ath5k/phy.c
647
for (ah->ah_gain.g_target = ah->ah_gain.g_current;
drivers/net/wireless/ath/ath5k/phy.c
648
ah->ah_gain.g_target <= ah->ah_gain.g_low &&
drivers/net/wireless/ath/ath5k/phy.c
649
ah->ah_gain.g_step_idx < go->go_steps_count - 1;
drivers/net/wireless/ath/ath5k/phy.c
650
g_step = &go->go_step[ah->ah_gain.g_step_idx])
drivers/net/wireless/ath/ath5k/phy.c
651
ah->ah_gain.g_target -= 2 *
drivers/net/wireless/ath/ath5k/phy.c
652
(go->go_step[++ah->ah_gain.g_step_idx].gos_gain -
drivers/net/wireless/ath/ath5k/phy.c
660
ATH5K_DBG(ah, ATH5K_DEBUG_CALIBRATE,
drivers/net/wireless/ath/ath5k/phy.c
662
ret, ah->ah_gain.g_step_idx, ah->ah_gain.g_current,
drivers/net/wireless/ath/ath5k/phy.c
663
ah->ah_gain.g_target);
drivers/net/wireless/ath/ath5k/phy.c
679
ath5k_hw_gainf_calibrate(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/phy.c
682
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
684
if (ah->ah_rf_banks == NULL ||
drivers/net/wireless/ath/ath5k/phy.c
685
ah->ah_gain.g_state == AR5K_RFGAIN_INACTIVE)
drivers/net/wireless/ath/ath5k/phy.c
690
if (ah->ah_gain.g_state != AR5K_RFGAIN_READ_REQUESTED)
drivers/net/wireless/ath/ath5k/phy.c
695
data = ath5k_hw_reg_read(ah, AR5K_PHY_PAPD_PROBE);
drivers/net/wireless/ath/ath5k/phy.c
699
ah->ah_gain.g_current = data >> AR5K_PHY_PAPD_PROBE_GAINF_S;
drivers/net/wireless/ath/ath5k/phy.c
705
if (ah->ah_radio_5ghz_revision >= AR5K_SREV_RAD_5112A)
drivers/net/wireless/ath/ath5k/phy.c
706
ah->ah_gain.g_current +=
drivers/net/wireless/ath/ath5k/phy.c
709
ah->ah_gain.g_current +=
drivers/net/wireless/ath/ath5k/phy.c
715
if (ah->ah_radio_5ghz_revision >= AR5K_SREV_RAD_5112A) {
drivers/net/wireless/ath/ath5k/phy.c
716
ath5k_hw_rf_gainf_corr(ah);
drivers/net/wireless/ath/ath5k/phy.c
717
ah->ah_gain.g_current =
drivers/net/wireless/ath/ath5k/phy.c
718
ah->ah_gain.g_current >= ah->ah_gain.g_f_corr ?
drivers/net/wireless/ath/ath5k/phy.c
719
(ah->ah_gain.g_current - ah->ah_gain.g_f_corr) :
drivers/net/wireless/ath/ath5k/phy.c
726
if (ath5k_hw_rf_check_gainf_readback(ah) &&
drivers/net/wireless/ath/ath5k/phy.c
727
AR5K_GAIN_CHECK_ADJUST(&ah->ah_gain) &&
drivers/net/wireless/ath/ath5k/phy.c
728
ath5k_hw_rf_gainf_adjust(ah)) {
drivers/net/wireless/ath/ath5k/phy.c
729
ah->ah_gain.g_state = AR5K_RFGAIN_NEED_CHANGE;
drivers/net/wireless/ath/ath5k/phy.c
731
ah->ah_gain.g_state = AR5K_RFGAIN_ACTIVE;
drivers/net/wireless/ath/ath5k/phy.c
736
return ah->ah_gain.g_state;
drivers/net/wireless/ath/ath5k/phy.c
750
ath5k_hw_rfgain_init(struct ath5k_hw *ah, enum nl80211_band band)
drivers/net/wireless/ath/ath5k/phy.c
755
switch (ah->ah_radio) {
drivers/net/wireless/ath/ath5k/phy.c
789
ath5k_hw_reg_write(ah, ath5k_rfg[i].rfg_value[index],
drivers/net/wireless/ath/ath5k/phy.c
811
ath5k_hw_rfregs_init(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/phy.c
819
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/phy.c
824
switch (ah->ah_radio) {
drivers/net/wireless/ath/ath5k/phy.c
827
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_5111);
drivers/net/wireless/ath/ath5k/phy.c
829
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_5111);
drivers/net/wireless/ath/ath5k/phy.c
833
if (ah->ah_radio_5ghz_revision >= AR5K_SREV_RAD_5112A) {
drivers/net/wireless/ath/ath5k/phy.c
835
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_5112a);
drivers/net/wireless/ath/ath5k/phy.c
837
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_5112a);
drivers/net/wireless/ath/ath5k/phy.c
840
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_5112);
drivers/net/wireless/ath/ath5k/phy.c
842
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_5112);
drivers/net/wireless/ath/ath5k/phy.c
848
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_2413);
drivers/net/wireless/ath/ath5k/phy.c
85
ath5k_hw_radio_revision(struct ath5k_hw *ah, enum nl80211_band band)
drivers/net/wireless/ath/ath5k/phy.c
850
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_2413);
drivers/net/wireless/ath/ath5k/phy.c
854
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_2316);
drivers/net/wireless/ath/ath5k/phy.c
856
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_2316);
drivers/net/wireless/ath/ath5k/phy.c
860
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_5413);
drivers/net/wireless/ath/ath5k/phy.c
862
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_5413);
drivers/net/wireless/ath/ath5k/phy.c
866
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_2425);
drivers/net/wireless/ath/ath5k/phy.c
868
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_2317);
drivers/net/wireless/ath/ath5k/phy.c
872
ah->ah_rf_regs_count = ARRAY_SIZE(rf_regs_2425);
drivers/net/wireless/ath/ath5k/phy.c
873
if (ah->ah_mac_srev < AR5K_SREV_AR2417) {
drivers/net/wireless/ath/ath5k/phy.c
875
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_2425);
drivers/net/wireless/ath/ath5k/phy.c
878
ah->ah_rf_banks_size = ARRAY_SIZE(rfb_2417);
drivers/net/wireless/ath/ath5k/phy.c
888
if (ah->ah_rf_banks == NULL) {
drivers/net/wireless/ath/ath5k/phy.c
889
ah->ah_rf_banks = kmalloc_array(ah->ah_rf_banks_size,
drivers/net/wireless/ath/ath5k/phy.c
892
if (ah->ah_rf_banks == NULL) {
drivers/net/wireless/ath/ath5k/phy.c
893
ATH5K_ERR(ah, "out of memory\n");
drivers/net/wireless/ath/ath5k/phy.c
899
rfb = ah->ah_rf_banks;
drivers/net/wireless/ath/ath5k/phy.c
901
for (i = 0; i < ah->ah_rf_banks_size; i++) {
drivers/net/wireless/ath/ath5k/phy.c
903
ATH5K_ERR(ah, "invalid bank\n");
drivers/net/wireless/ath/ath5k/phy.c
910
ah->ah_offset[bank] = i;
drivers/net/wireless/ath/ath5k/phy.c
931
if ((ah->ah_radio == AR5K_RF5111) ||
drivers/net/wireless/ath/ath5k/phy.c
932
(ah->ah_radio == AR5K_RF5112))
drivers/net/wireless/ath/ath5k/phy.c
937
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_ob[ee_mode][obdb],
drivers/net/wireless/ath/ath5k/phy.c
940
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_db[ee_mode][obdb],
drivers/net/wireless/ath/ath5k/phy.c
945
(ah->ah_radio == AR5K_RF5111)) {
drivers/net/wireless/ath/ath5k/phy.c
958
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_ob[ee_mode][obdb],
drivers/net/wireless/ath/ath5k/phy.c
96
ath5k_hw_reg_write(ah, AR5K_PHY_SHIFT_2GHZ, AR5K_PHY(0));
drivers/net/wireless/ath/ath5k/phy.c
961
ath5k_hw_rfb_op(ah, rf_regs, ee->ee_db[ee_mode][obdb],
drivers/net/wireless/ath/ath5k/phy.c
965
g_step = &go->go_step[ah->ah_gain.g_step_idx];
drivers/net/wireless/ath/ath5k/phy.c
968
if ((ah->ah_bwmode == AR5K_BWMODE_40MHZ) &&
drivers/net/wireless/ath/ath5k/phy.c
969
(ah->ah_radio != AR5K_RF5413))
drivers/net/wireless/ath/ath5k/phy.c
970
ath5k_hw_rfb_op(ah, rf_regs, 1, AR5K_RF_TURBO, false);
drivers/net/wireless/ath/ath5k/phy.c
973
if (ah->ah_radio == AR5K_RF5111) {
drivers/net/wireless/ath/ath5k/phy.c
978
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_FRAME_CTL,
drivers/net/wireless/ath/ath5k/phy.c
982
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[1],
drivers/net/wireless/ath/ath5k/phy.c
985
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[2],
drivers/net/wireless/ath/ath5k/phy.c
988
ath5k_hw_rfb_op(ah, rf_regs, g_step->gos_param[3],
drivers/net/wireless/ath/ath5k/phy.c
99
ath5k_hw_reg_write(ah, AR5K_PHY_SHIFT_5GHZ, AR5K_PHY(0));
drivers/net/wireless/ath/ath5k/phy.c
993
ah->ah_gain.g_state = AR5K_RFGAIN_ACTIVE;
drivers/net/wireless/ath/ath5k/phy.c
999
ath5k_hw_rfb_op(ah, rf_regs, !ee->ee_xpd[ee_mode],
drivers/net/wireless/ath/ath5k/qcu.c
100
ah->ah_txq[queue].tqi_type = AR5K_TX_QUEUE_INACTIVE;
drivers/net/wireless/ath/ath5k/qcu.c
102
AR5K_Q_DISABLE_BITS(ah->ah_txq_status, queue);
drivers/net/wireless/ath/ath5k/qcu.c
138
ath5k_hw_get_tx_queueprops(struct ath5k_hw *ah, int queue,
drivers/net/wireless/ath/ath5k/qcu.c
141
memcpy(queue_info, &ah->ah_txq[queue], sizeof(struct ath5k_txq_info));
drivers/net/wireless/ath/ath5k/qcu.c
154
ath5k_hw_set_tx_queueprops(struct ath5k_hw *ah, int queue,
drivers/net/wireless/ath/ath5k/qcu.c
159
AR5K_ASSERT_ENTRY(queue, ah->ah_capabilities.cap_queues.q_tx_num);
drivers/net/wireless/ath/ath5k/qcu.c
161
qi = &ah->ah_txq[queue];
drivers/net/wireless/ath/ath5k/qcu.c
203
ath5k_hw_setup_tx_queue(struct ath5k_hw *ah, enum ath5k_tx_queue queue_type,
drivers/net/wireless/ath/ath5k/qcu.c
213
if (ah->ah_capabilities.cap_queues.q_tx_num == 2) {
drivers/net/wireless/ath/ath5k/qcu.c
247
memset(&ah->ah_txq[queue], 0, sizeof(struct ath5k_txq_info));
drivers/net/wireless/ath/ath5k/qcu.c
248
ah->ah_txq[queue].tqi_type = queue_type;
drivers/net/wireless/ath/ath5k/qcu.c
252
ret = ath5k_hw_set_tx_queueprops(ah, queue, queue_info);
drivers/net/wireless/ath/ath5k/qcu.c
262
AR5K_Q_ENABLE_BITS(ah->ah_txq_status, queue);
drivers/net/wireless/ath/ath5k/qcu.c
281
ath5k_hw_set_tx_retry_limits(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/qcu.c
285
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/qcu.c
286
struct ath5k_txq_info *tq = &ah->ah_txq[queue];
drivers/net/wireless/ath/ath5k/qcu.c
291
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/qcu.c
293
| AR5K_REG_SM(ah->ah_retry_long,
drivers/net/wireless/ath/ath5k/qcu.c
295
| AR5K_REG_SM(ah->ah_retry_short,
drivers/net/wireless/ath/ath5k/qcu.c
297
| AR5K_REG_SM(ah->ah_retry_long,
drivers/net/wireless/ath/ath5k/qcu.c
299
| AR5K_REG_SM(ah->ah_retry_short,
drivers/net/wireless/ath/ath5k/qcu.c
304
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/qcu.c
305
AR5K_REG_SM(ah->ah_retry_long,
drivers/net/wireless/ath/ath5k/qcu.c
307
| AR5K_REG_SM(ah->ah_retry_long,
drivers/net/wireless/ath/ath5k/qcu.c
309
| AR5K_REG_SM(max(ah->ah_retry_long, ah->ah_retry_short),
drivers/net/wireless/ath/ath5k/qcu.c
324
ath5k_hw_reset_tx_queue(struct ath5k_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath5k/qcu.c
326
struct ath5k_txq_info *tq = &ah->ah_txq[queue];
drivers/net/wireless/ath/ath5k/qcu.c
328
AR5K_ASSERT_ENTRY(queue, ah->ah_capabilities.cap_queues.q_tx_num);
drivers/net/wireless/ath/ath5k/qcu.c
332
if ((ah->ah_version == AR5K_AR5210) ||
drivers/net/wireless/ath/ath5k/qcu.c
340
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/qcu.c
349
ath5k_hw_set_tx_retry_limits(ah, queue);
drivers/net/wireless/ath/ath5k/qcu.c
357
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_DFS_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
361
if (ah->ah_mac_version < AR5K_SREV_AR5211)
drivers/net/wireless/ath/ath5k/qcu.c
362
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_DFS_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
367
ath5k_hw_reg_write(ah, AR5K_REG_SM(tq->tqi_cbr_period,
drivers/net/wireless/ath/ath5k/qcu.c
373
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
377
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
383
ath5k_hw_reg_write(ah, AR5K_REG_SM(tq->tqi_ready_time,
drivers/net/wireless/ath/ath5k/qcu.c
389
ath5k_hw_reg_write(ah, AR5K_REG_SM(tq->tqi_burst_time,
drivers/net/wireless/ath/ath5k/qcu.c
395
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
401
ath5k_hw_reg_write(ah, AR5K_DCU_MISC_POST_FR_BKOFF_DIS,
drivers/net/wireless/ath/ath5k/qcu.c
406
ath5k_hw_reg_write(ah, AR5K_DCU_MISC_BACKOFF_FRAG,
drivers/net/wireless/ath/ath5k/qcu.c
414
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
419
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_DFS_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
429
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
434
ath5k_hw_reg_write(ah, ((tq->tqi_ready_time -
drivers/net/wireless/ath/ath5k/qcu.c
441
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_DFS_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
447
AR5K_REG_ENABLE_BITS(ah, AR5K_QUEUE_MISC(queue),
drivers/net/wireless/ath/ath5k/qcu.c
463
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_txok, queue);
drivers/net/wireless/ath/ath5k/qcu.c
466
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_txerr, queue);
drivers/net/wireless/ath/ath5k/qcu.c
469
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_txurn, queue);
drivers/net/wireless/ath/ath5k/qcu.c
472
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_txdesc, queue);
drivers/net/wireless/ath/ath5k/qcu.c
475
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_txeol, queue);
drivers/net/wireless/ath/ath5k/qcu.c
478
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_cbrorn, queue);
drivers/net/wireless/ath/ath5k/qcu.c
481
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_cbrurn, queue);
drivers/net/wireless/ath/ath5k/qcu.c
484
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_qtrig, queue);
drivers/net/wireless/ath/ath5k/qcu.c
487
AR5K_Q_ENABLE_BITS(ah->ah_txq_imr_nofrm, queue);
drivers/net/wireless/ath/ath5k/qcu.c
492
ah->ah_txq_imr_txok &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
493
ah->ah_txq_imr_txerr &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
494
ah->ah_txq_imr_txurn &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
495
ah->ah_txq_imr_txdesc &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
496
ah->ah_txq_imr_txeol &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
497
ah->ah_txq_imr_cbrorn &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
498
ah->ah_txq_imr_cbrurn &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
499
ah->ah_txq_imr_qtrig &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
500
ah->ah_txq_imr_nofrm &= ah->ah_txq_status;
drivers/net/wireless/ath/ath5k/qcu.c
502
ath5k_hw_reg_write(ah, AR5K_REG_SM(ah->ah_txq_imr_txok,
drivers/net/wireless/ath/ath5k/qcu.c
504
AR5K_REG_SM(ah->ah_txq_imr_txdesc,
drivers/net/wireless/ath/ath5k/qcu.c
508
ath5k_hw_reg_write(ah, AR5K_REG_SM(ah->ah_txq_imr_txerr,
drivers/net/wireless/ath/ath5k/qcu.c
510
AR5K_REG_SM(ah->ah_txq_imr_txeol,
drivers/net/wireless/ath/ath5k/qcu.c
515
AR5K_REG_DISABLE_BITS(ah, AR5K_SIMR2, AR5K_SIMR2_QCU_TXURN);
drivers/net/wireless/ath/ath5k/qcu.c
516
AR5K_REG_ENABLE_BITS(ah, AR5K_SIMR2,
drivers/net/wireless/ath/ath5k/qcu.c
517
AR5K_REG_SM(ah->ah_txq_imr_txurn,
drivers/net/wireless/ath/ath5k/qcu.c
520
ath5k_hw_reg_write(ah, AR5K_REG_SM(ah->ah_txq_imr_cbrorn,
drivers/net/wireless/ath/ath5k/qcu.c
522
AR5K_REG_SM(ah->ah_txq_imr_cbrurn,
drivers/net/wireless/ath/ath5k/qcu.c
526
ath5k_hw_reg_write(ah, AR5K_REG_SM(ah->ah_txq_imr_qtrig,
drivers/net/wireless/ath/ath5k/qcu.c
530
ath5k_hw_reg_write(ah, AR5K_REG_SM(ah->ah_txq_imr_nofrm,
drivers/net/wireless/ath/ath5k/qcu.c
535
if (ah->ah_txq_imr_nofrm == 0)
drivers/net/wireless/ath/ath5k/qcu.c
536
ath5k_hw_reg_write(ah, 0, AR5K_TXNOFRM);
drivers/net/wireless/ath/ath5k/qcu.c
539
AR5K_REG_WRITE_Q(ah, AR5K_QUEUE_QCUMASK(queue), queue);
drivers/net/wireless/ath/ath5k/qcu.c
557
int ath5k_hw_set_ifs_intervals(struct ath5k_hw *ah, unsigned int slot_time)
drivers/net/wireless/ath/ath5k/qcu.c
559
struct ieee80211_channel *channel = ah->ah_current_channel;
drivers/net/wireless/ath/ath5k/qcu.c
564
u32 slot_time_clock = ath5k_hw_htoclock(ah, slot_time);
drivers/net/wireless/ath/ath5k/qcu.c
570
sifs = ath5k_hw_get_default_sifs(ah);
drivers/net/wireless/ath/ath5k/qcu.c
571
sifs_clock = ath5k_hw_htoclock(ah, sifs - 2);
drivers/net/wireless/ath/ath5k/qcu.c
602
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/qcu.c
613
sband = &ah->sbands[band];
drivers/net/wireless/ath/ath5k/qcu.c
624
ack_tx_time = ath5k_hw_get_frame_duration(ah, band, 10, rate, false);
drivers/net/wireless/ath/ath5k/qcu.c
628
eifs_clock = ath5k_hw_htoclock(ah, eifs);
drivers/net/wireless/ath/ath5k/qcu.c
63
ath5k_hw_num_tx_pending(struct ath5k_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath5k/qcu.c
631
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/qcu.c
635
ath5k_hw_reg_write(ah, slot_time_clock, AR5K_SLOT_TIME);
drivers/net/wireless/ath/ath5k/qcu.c
642
pifs_clock = ath5k_hw_htoclock(ah, pifs);
drivers/net/wireless/ath/ath5k/qcu.c
647
difs_clock = ath5k_hw_htoclock(ah, difs);
drivers/net/wireless/ath/ath5k/qcu.c
650
ath5k_hw_reg_write(ah, (difs_clock <<
drivers/net/wireless/ath/ath5k/qcu.c
655
ath5k_hw_reg_write(ah, pifs_clock | eifs_clock |
drivers/net/wireless/ath/ath5k/qcu.c
66
AR5K_ASSERT_ENTRY(queue, ah->ah_capabilities.cap_queues.q_tx_num);
drivers/net/wireless/ath/ath5k/qcu.c
663
ath5k_hw_reg_write(ah, slot_time_clock, AR5K_DCU_GBL_IFS_SLOT);
drivers/net/wireless/ath/ath5k/qcu.c
666
ath5k_hw_reg_write(ah, eifs_clock, AR5K_DCU_GBL_IFS_EIFS);
drivers/net/wireless/ath/ath5k/qcu.c
669
AR5K_REG_WRITE_BITS(ah, AR5K_DCU_GBL_IFS_MISC,
drivers/net/wireless/ath/ath5k/qcu.c
674
ath5k_hw_reg_write(ah, sifs_clock, AR5K_DCU_GBL_IFS_SIFS);
drivers/net/wireless/ath/ath5k/qcu.c
688
ath5k_hw_init_queues(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/qcu.c
69
if (ah->ah_txq[queue].tqi_type == AR5K_TX_QUEUE_INACTIVE)
drivers/net/wireless/ath/ath5k/qcu.c
700
if (ah->ah_version != AR5K_AR5210)
drivers/net/wireless/ath/ath5k/qcu.c
701
for (i = 0; i < ah->ah_capabilities.cap_queues.q_tx_num; i++) {
drivers/net/wireless/ath/ath5k/qcu.c
702
ret = ath5k_hw_reset_tx_queue(ah, i);
drivers/net/wireless/ath/ath5k/qcu.c
704
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/qcu.c
713
ath5k_hw_set_tx_retry_limits(ah, 0);
drivers/net/wireless/ath/ath5k/qcu.c
716
if (ah->ah_bwmode == AR5K_BWMODE_40MHZ)
drivers/net/wireless/ath/ath5k/qcu.c
717
AR5K_REG_ENABLE_BITS(ah, AR5K_DCU_GBL_IFS_MISC,
drivers/net/wireless/ath/ath5k/qcu.c
723
if (!ah->ah_coverage_class) {
drivers/net/wireless/ath/ath5k/qcu.c
724
unsigned int slot_time = ath5k_hw_get_default_slottime(ah);
drivers/net/wireless/ath/ath5k/qcu.c
725
ath5k_hw_set_ifs_intervals(ah, slot_time);
drivers/net/wireless/ath/ath5k/qcu.c
73
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/qcu.c
76
pending = ath5k_hw_reg_read(ah, AR5K_QUEUE_STATUS(queue));
drivers/net/wireless/ath/ath5k/qcu.c
82
if (!pending && AR5K_REG_READ_Q(ah, AR5K_QCU_TXE, queue))
drivers/net/wireless/ath/ath5k/qcu.c
94
ath5k_hw_release_tx_queue(struct ath5k_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath5k/qcu.c
96
if (WARN_ON(queue >= ah->ah_capabilities.cap_queues.q_tx_num))
drivers/net/wireless/ath/ath5k/reg.h
1075
#define AR5K_EEPROM_DATA (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1091
#define AR5K_EEPROM_STATUS (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1151
#define AR5K_STA_ID1_PCF (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1207
#define AR5K_RSSI_THR_BMISS (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1241
#define AR5K_USEC (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1261
#define AR5K_BEACON (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1275
#define AR5K_CFP_PERIOD (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1283
#define AR5K_TIMER0 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1291
#define AR5K_TIMER1 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1299
#define AR5K_TIMER2 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1307
#define AR5K_TIMER3 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1336
#define AR5K_CFP_DUR (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1344
#define AR5K_RX_FILTER (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1359
((ah->ah_version == AR5K_AR5211 ? \
drivers/net/wireless/ath/ath5k/reg.h
1362
((ah->ah_version == AR5K_AR5211 ? \
drivers/net/wireless/ath/ath5k/reg.h
1370
#define AR5K_MCAST_FILTER0 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1378
#define AR5K_MCAST_FILTER1 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1410
#define AR5K_DIAG_SW (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1420
#define AR5K_DIAG_SW_DIS_RX (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1424
#define AR5K_DIAG_SW_LOOP_BACK (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1428
#define AR5K_DIAG_SW_CORR_FCS (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1432
#define AR5K_DIAG_SW_CHAN_INFO (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1436
#define AR5K_DIAG_SW_EN_SCRAM_SEED (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1445
#define AR5K_DIAG_SW_FRAME_NV0 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1459
#define AR5K_TSF_L32 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1467
#define AR5K_TSF_U32 (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1528
#define AR5K_NAV (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1543
#define AR5K_RTS_OK (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1551
#define AR5K_RTS_FAIL (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1559
#define AR5K_ACK_FAIL (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1567
#define AR5K_FCS_FAIL (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
1575
#define AR5K_BEACON_CNT (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reg.h
2089
#define AR5K_PHY_PLL_40MHZ (ah->ah_version == AR5K_AR5211 ? \
drivers/net/wireless/ath/ath5k/reg.h
2094
#define AR5K_PHY_PLL_44MHZ (ah->ah_version == AR5K_AR5211 ? \
drivers/net/wireless/ath/ath5k/reg.h
2260
#define AR5K_PHY_FRAME_CTL (ah->ah_version == AR5K_AR5210 ? \
drivers/net/wireless/ath/ath5k/reset.c
1000
if (ah->ah_phy_revision >= AR5K_SREV_PHY_5212A) {
drivers/net/wireless/ath/ath5k/reset.c
1002
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/reset.c
1009
ath5k_hw_reg_write(ah, 0, AR5K_PHY_TX_PWR_ADJ);
drivers/net/wireless/ath/ath5k/reset.c
101
ath5k_hw_htoclock(struct ath5k_hw *ah, unsigned int usec)
drivers/net/wireless/ath/ath5k/reset.c
1013
ah->ah_txpower.txp_cck_ofdm_pwr_delta = cck_ofdm_pwr_delta;
drivers/net/wireless/ath/ath5k/reset.c
1014
ah->ah_txpower.txp_cck_ofdm_gainf_delta =
drivers/net/wireless/ath/ath5k/reset.c
1020
ath5k_hw_set_antenna_switch(ah, ee_mode);
drivers/net/wireless/ath/ath5k/reset.c
1023
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/reset.c
1027
if ((ah->ah_bwmode == AR5K_BWMODE_40MHZ) &&
drivers/net/wireless/ath/ath5k/reset.c
1028
(ah->ah_ee_version >= AR5K_EEPROM_VERSION_5_0)) {
drivers/net/wireless/ath/ath5k/reset.c
103
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/reset.c
1030
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_SETTLING,
drivers/net/wireless/ath/ath5k/reset.c
1035
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_GAIN,
drivers/net/wireless/ath/ath5k/reset.c
1040
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_DESIRED_SIZE,
drivers/net/wireless/ath/ath5k/reset.c
1044
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_DESIRED_SIZE,
drivers/net/wireless/ath/ath5k/reset.c
1049
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_GAIN_2GHZ,
drivers/net/wireless/ath/ath5k/reset.c
1055
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_SETTLING,
drivers/net/wireless/ath/ath5k/reset.c
1060
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_GAIN,
drivers/net/wireless/ath/ath5k/reset.c
1065
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_DESIRED_SIZE,
drivers/net/wireless/ath/ath5k/reset.c
1069
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_DESIRED_SIZE,
drivers/net/wireless/ath/ath5k/reset.c
1074
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_1)
drivers/net/wireless/ath/ath5k/reset.c
1075
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_GAIN_2GHZ,
drivers/net/wireless/ath/ath5k/reset.c
1081
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/reset.c
1088
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_RF_CTL3,
drivers/net/wireless/ath/ath5k/reset.c
1093
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_NF,
drivers/net/wireless/ath/ath5k/reset.c
1100
if (ath5k_hw_chan_has_spur_noise(ah, channel))
drivers/net/wireless/ath/ath5k/reset.c
1101
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_OFDM_SELFCORR,
drivers/net/wireless/ath/ath5k/reset.c
1106
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_OFDM_SELFCORR,
drivers/net/wireless/ath/ath5k/reset.c
1112
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_4_0) {
drivers/net/wireless/ath/ath5k/reset.c
1113
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_IQ, AR5K_PHY_IQ_CORR_Q_I_COFF,
drivers/net/wireless/ath/ath5k/reset.c
1115
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_IQ, AR5K_PHY_IQ_CORR_Q_Q_COFF,
drivers/net/wireless/ath/ath5k/reset.c
1117
AR5K_REG_ENABLE_BITS(ah, AR5K_PHY_IQ, AR5K_PHY_IQ_CORR_ENABLE);
drivers/net/wireless/ath/ath5k/reset.c
1121
if (ah->ah_ee_version >= AR5K_EEPROM_VERSION_5_1)
drivers/net/wireless/ath/ath5k/reset.c
1122
ath5k_hw_reg_write(ah, 0, AR5K_PHY_HEAVY_CLIP_ENABLE);
drivers/net/wireless/ath/ath5k/reset.c
1146
ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,
drivers/net/wireless/ath/ath5k/reset.c
1162
if (fast && (ah->ah_radio != AR5K_RF2413) &&
drivers/net/wireless/ath/ath5k/reset.c
1163
(ah->ah_radio != AR5K_RF5413))
drivers/net/wireless/ath/ath5k/reset.c
1169
if (ah->ah_version == AR5K_AR5212)
drivers/net/wireless/ath/ath5k/reset.c
1170
ath5k_hw_set_sleep_clock(ah, false);
drivers/net/wireless/ath/ath5k/reset.c
1177
if (ah->ah_version <= AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
1178
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/reset.c
118
ath5k_hw_clocktoh(struct ath5k_hw *ah, unsigned int clock)
drivers/net/wireless/ath/ath5k/reset.c
1184
if (ah->ah_version < AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
1185
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/reset.c
1191
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/reset.c
120
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/reset.c
1201
ret = ath5k_hw_phy_init(ah, channel, mode, true);
drivers/net/wireless/ath/ath5k/reset.c
1203
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/reset.c
1209
ATH5K_DBG(ah, ATH5K_DEBUG_RESET,
drivers/net/wireless/ath/ath5k/reset.c
1218
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
1224
if (ah->ah_mac_srev < AR5K_SREV_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
1227
s_seq[i] = ath5k_hw_reg_read(ah,
drivers/net/wireless/ath/ath5k/reset.c
1231
s_seq[0] = ath5k_hw_reg_read(ah,
drivers/net/wireless/ath/ath5k/reset.c
1248
if (ah->ah_version == AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
1249
tsf_up = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
drivers/net/wireless/ath/ath5k/reset.c
1250
tsf_lo = ath5k_hw_reg_read(ah, AR5K_TSF_L32);
drivers/net/wireless/ath/ath5k/reset.c
1256
s_led[0] = ath5k_hw_reg_read(ah, AR5K_PCICFG) &
drivers/net/wireless/ath/ath5k/reset.c
1258
s_led[1] = ath5k_hw_reg_read(ah, AR5K_GPIOCR);
drivers/net/wireless/ath/ath5k/reset.c
1259
s_led[2] = ath5k_hw_reg_read(ah, AR5K_GPIODO);
drivers/net/wireless/ath/ath5k/reset.c
1267
if (ah->ah_version == AR5K_AR5212 &&
drivers/net/wireless/ath/ath5k/reset.c
1268
(ah->ah_radio <= AR5K_RF5112)) {
drivers/net/wireless/ath/ath5k/reset.c
1269
if (!fast && ah->ah_rf_banks != NULL)
drivers/net/wireless/ath/ath5k/reset.c
1270
ath5k_hw_gainf_calibrate(ah);
drivers/net/wireless/ath/ath5k/reset.c
1274
ret = ath5k_hw_nic_wakeup(ah, channel);
drivers/net/wireless/ath/ath5k/reset.c
1279
if (ah->ah_mac_srev >= AR5K_SREV_AR5211)
drivers/net/wireless/ath/ath5k/reset.c
1280
ath5k_hw_reg_write(ah, AR5K_PHY_SHIFT_5GHZ, AR5K_PHY(0));
drivers/net/wireless/ath/ath5k/reset.c
1282
ath5k_hw_reg_write(ah, AR5K_PHY_SHIFT_5GHZ | 0x40,
drivers/net/wireless/ath/ath5k/reset.c
1286
ret = ath5k_hw_write_initvals(ah, mode, skip_pcu);
drivers/net/wireless/ath/ath5k/reset.c
1291
ath5k_hw_init_core_clock(ah);
drivers/net/wireless/ath/ath5k/reset.c
1298
ath5k_hw_tweak_initval_settings(ah, channel);
drivers/net/wireless/ath/ath5k/reset.c
1301
ath5k_hw_commit_eeprom_settings(ah, channel);
drivers/net/wireless/ath/ath5k/reset.c
1309
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
1310
if (ah->ah_mac_srev < AR5K_SREV_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
1312
ath5k_hw_reg_write(ah, s_seq[i],
drivers/net/wireless/ath/ath5k/reset.c
1315
ath5k_hw_reg_write(ah, s_seq[0],
drivers/net/wireless/ath/ath5k/reset.c
1319
if (ah->ah_version == AR5K_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
132
ath5k_hw_init_core_clock(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/reset.c
1320
ath5k_hw_reg_write(ah, tsf_up, AR5K_TSF_U32);
drivers/net/wireless/ath/ath5k/reset.c
1321
ath5k_hw_reg_write(ah, tsf_lo, AR5K_TSF_L32);
drivers/net/wireless/ath/ath5k/reset.c
1326
AR5K_REG_ENABLE_BITS(ah, AR5K_PCICFG, s_led[0]);
drivers/net/wireless/ath/ath5k/reset.c
1329
ath5k_hw_reg_write(ah, s_led[1], AR5K_GPIOCR);
drivers/net/wireless/ath/ath5k/reset.c
1330
ath5k_hw_reg_write(ah, s_led[2], AR5K_GPIODO);
drivers/net/wireless/ath/ath5k/reset.c
1335
ath5k_hw_pcu_init(ah, op_mode);
drivers/net/wireless/ath/ath5k/reset.c
134
struct ieee80211_channel *channel = ah->ah_current_channel;
drivers/net/wireless/ath/ath5k/reset.c
1340
ret = ath5k_hw_phy_init(ah, channel, mode, false);
drivers/net/wireless/ath/ath5k/reset.c
1342
ATH5K_ERR(ah,
drivers/net/wireless/ath/ath5k/reset.c
135
struct ath_common *common = ath5k_hw_common(ah);
drivers/net/wireless/ath/ath5k/reset.c
1350
ret = ath5k_hw_init_queues(ah);
drivers/net/wireless/ath/ath5k/reset.c
1358
ath5k_hw_dma_init(ah);
drivers/net/wireless/ath/ath5k/reset.c
1370
if (ah->ah_use_32khz_clock && ah->ah_version == AR5K_AR5212 &&
drivers/net/wireless/ath/ath5k/reset.c
1372
ath5k_hw_set_sleep_clock(ah, true);
drivers/net/wireless/ath/ath5k/reset.c
1377
AR5K_REG_DISABLE_BITS(ah, AR5K_BEACON, AR5K_BEACON_ENABLE);
drivers/net/wireless/ath/ath5k/reset.c
1378
ath5k_hw_reset_tsf(ah);
drivers/net/wireless/ath/ath5k/reset.c
156
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/reset.c
180
if (ah->ah_version != AR5K_AR5210)
drivers/net/wireless/ath/ath5k/reset.c
181
AR5K_REG_WRITE_BITS(ah, AR5K_DCU_GBL_IFS_MISC,
drivers/net/wireless/ath/ath5k/reset.c
186
if ((ah->ah_radio == AR5K_RF5112) ||
drivers/net/wireless/ath/ath5k/reset.c
187
(ah->ah_radio == AR5K_RF2413) ||
drivers/net/wireless/ath/ath5k/reset.c
188
(ah->ah_radio == AR5K_RF5413) ||
drivers/net/wireless/ath/ath5k/reset.c
189
(ah->ah_radio == AR5K_RF2316) ||
drivers/net/wireless/ath/ath5k/reset.c
190
(ah->ah_radio == AR5K_RF2317))
drivers/net/wireless/ath/ath5k/reset.c
200
usec_reg = ath5k_hw_reg_read(ah, AR5K_USEC_5211);
drivers/net/wireless/ath/ath5k/reset.c
214
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
220
if (ah->ah_mac_srev < AR5K_SREV_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
231
switch (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/reset.c
257
ath5k_hw_reg_write(ah, usec_reg, AR5K_USEC);
drivers/net/wireless/ath/ath5k/reset.c
260
if (ah->ah_radio == AR5K_RF5112) {
drivers/net/wireless/ath/ath5k/reset.c
261
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_RF_CTL2,
drivers/net/wireless/ath/ath5k/reset.c
281
ath5k_hw_set_sleep_clock(struct ath5k_hw *ah, bool enable)
drivers/net/wireless/ath/ath5k/reset.c
283
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/reset.c
293
AR5K_REG_WRITE_BITS(ah, AR5K_USEC_5211, AR5K_USEC_32, 1);
drivers/net/wireless/ath/ath5k/reset.c
295
AR5K_REG_WRITE_BITS(ah, AR5K_TSF_PARM, AR5K_TSF_PARM_INC, 61);
drivers/net/wireless/ath/ath5k/reset.c
299
ath5k_hw_reg_write(ah, 0x1f, AR5K_PHY_SCR);
drivers/net/wireless/ath/ath5k/reset.c
301
if ((ah->ah_radio == AR5K_RF5112) ||
drivers/net/wireless/ath/ath5k/reset.c
302
(ah->ah_radio == AR5K_RF5413) ||
drivers/net/wireless/ath/ath5k/reset.c
303
(ah->ah_radio == AR5K_RF2316) ||
drivers/net/wireless/ath/ath5k/reset.c
304
(ah->ah_mac_version == (AR5K_SREV_AR2417 >> 4)))
drivers/net/wireless/ath/ath5k/reset.c
308
ath5k_hw_reg_write(ah, spending, AR5K_PHY_SPENDING);
drivers/net/wireless/ath/ath5k/reset.c
310
if ((ah->ah_radio == AR5K_RF5112) ||
drivers/net/wireless/ath/ath5k/reset.c
311
(ah->ah_radio == AR5K_RF5413) ||
drivers/net/wireless/ath/ath5k/reset.c
312
(ah->ah_mac_version == (AR5K_SREV_AR2417 >> 4))) {
drivers/net/wireless/ath/ath5k/reset.c
313
ath5k_hw_reg_write(ah, 0x26, AR5K_PHY_SLMT);
drivers/net/wireless/ath/ath5k/reset.c
314
ath5k_hw_reg_write(ah, 0x0d, AR5K_PHY_SCAL);
drivers/net/wireless/ath/ath5k/reset.c
315
ath5k_hw_reg_write(ah, 0x07, AR5K_PHY_SCLOCK);
drivers/net/wireless/ath/ath5k/reset.c
316
ath5k_hw_reg_write(ah, 0x3f, AR5K_PHY_SDELAY);
drivers/net/wireless/ath/ath5k/reset.c
317
AR5K_REG_WRITE_BITS(ah, AR5K_PCICFG,
drivers/net/wireless/ath/ath5k/reset.c
320
ath5k_hw_reg_write(ah, 0x0a, AR5K_PHY_SLMT);
drivers/net/wireless/ath/ath5k/reset.c
321
ath5k_hw_reg_write(ah, 0x0c, AR5K_PHY_SCAL);
drivers/net/wireless/ath/ath5k/reset.c
322
ath5k_hw_reg_write(ah, 0x03, AR5K_PHY_SCLOCK);
drivers/net/wireless/ath/ath5k/reset.c
323
ath5k_hw_reg_write(ah, 0x20, AR5K_PHY_SDELAY);
drivers/net/wireless/ath/ath5k/reset.c
324
AR5K_REG_WRITE_BITS(ah, AR5K_PCICFG,
drivers/net/wireless/ath/ath5k/reset.c
329
AR5K_REG_ENABLE_BITS(ah, AR5K_PCICFG,
drivers/net/wireless/ath/ath5k/reset.c
336
AR5K_REG_DISABLE_BITS(ah, AR5K_PCICFG,
drivers/net/wireless/ath/ath5k/reset.c
339
AR5K_REG_WRITE_BITS(ah, AR5K_PCICFG,
drivers/net/wireless/ath/ath5k/reset.c
343
ath5k_hw_reg_write(ah, 0x1f, AR5K_PHY_SCR);
drivers/net/wireless/ath/ath5k/reset.c
344
ath5k_hw_reg_write(ah, AR5K_PHY_SLMT_32MHZ, AR5K_PHY_SLMT);
drivers/net/wireless/ath/ath5k/reset.c
346
if (ah->ah_mac_version == (AR5K_SREV_AR2417 >> 4))
drivers/net/wireless/ath/ath5k/reset.c
352
ath5k_hw_reg_write(ah, scal, AR5K_PHY_SCAL);
drivers/net/wireless/ath/ath5k/reset.c
354
ath5k_hw_reg_write(ah, AR5K_PHY_SCLOCK_32MHZ, AR5K_PHY_SCLOCK);
drivers/net/wireless/ath/ath5k/reset.c
355
ath5k_hw_reg_write(ah, AR5K_PHY_SDELAY_32MHZ, AR5K_PHY_SDELAY);
drivers/net/wireless/ath/ath5k/reset.c
357
if ((ah->ah_radio == AR5K_RF5112) ||
drivers/net/wireless/ath/ath5k/reset.c
358
(ah->ah_radio == AR5K_RF5413) ||
drivers/net/wireless/ath/ath5k/reset.c
359
(ah->ah_radio == AR5K_RF2316) ||
drivers/net/wireless/ath/ath5k/reset.c
360
(ah->ah_mac_version == (AR5K_SREV_AR2417 >> 4)))
drivers/net/wireless/ath/ath5k/reset.c
364
ath5k_hw_reg_write(ah, spending, AR5K_PHY_SPENDING);
drivers/net/wireless/ath/ath5k/reset.c
367
AR5K_REG_WRITE_BITS(ah, AR5K_TSF_PARM, AR5K_TSF_PARM_INC, 1);
drivers/net/wireless/ath/ath5k/reset.c
369
if ((ah->ah_radio == AR5K_RF5112) ||
drivers/net/wireless/ath/ath5k/reset.c
370
(ah->ah_radio == AR5K_RF5413) ||
drivers/net/wireless/ath/ath5k/reset.c
371
(ah->ah_radio == AR5K_RF2316) ||
drivers/net/wireless/ath/ath5k/reset.c
372
(ah->ah_radio == AR5K_RF2317))
drivers/net/wireless/ath/ath5k/reset.c
376
AR5K_REG_WRITE_BITS(ah, AR5K_USEC_5211, AR5K_USEC_32, sclock);
drivers/net/wireless/ath/ath5k/reset.c
397
ath5k_hw_nic_reset(struct ath5k_hw *ah, u32 val)
drivers/net/wireless/ath/ath5k/reset.c
403
ath5k_hw_reg_read(ah, AR5K_RXDP);
drivers/net/wireless/ath/ath5k/reset.c
408
ath5k_hw_reg_write(ah, val, AR5K_RESET_CTL);
drivers/net/wireless/ath/ath5k/reset.c
413
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
423
ret = ath5k_hw_register_timeout(ah, AR5K_RESET_CTL, mask, val, false);
drivers/net/wireless/ath/ath5k/reset.c
431
ath5k_hw_reg_write(ah, AR5K_INIT_CFG, AR5K_CFG);
drivers/net/wireless/ath/ath5k/reset.c
446
ath5k_hw_wisoc_reset(struct ath5k_hw *ah, u32 flags)
drivers/net/wireless/ath/ath5k/reset.c
454
if (ah->devid >= AR5K_SREV_AR2315_R6) {
drivers/net/wireless/ath/ath5k/reset.c
462
if (to_platform_device(ah->dev)->id == 0) {
drivers/net/wireless/ath/ath5k/reset.c
493
ath5k_hw_reg_write(ah, AR5K_INIT_CFG, AR5K_CFG);
drivers/net/wireless/ath/ath5k/reset.c
514
ath5k_hw_set_power_mode(struct ath5k_hw *ah, enum ath5k_power_mode mode,
drivers/net/wireless/ath/ath5k/reset.c
520
staid = ath5k_hw_reg_read(ah, AR5K_STA_ID1);
drivers/net/wireless/ath/ath5k/reset.c
528
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/reset.c
538
ath5k_hw_reg_write(ah, AR5K_SLEEP_CTL_SLE_SLP,
drivers/net/wireless/ath/ath5k/reset.c
551
data = ath5k_hw_reg_read(ah, AR5K_SLEEP_CTL);
drivers/net/wireless/ath/ath5k/reset.c
562
ath5k_hw_reg_write(ah, data | AR5K_SLEEP_CTL_SLE_WAKE,
drivers/net/wireless/ath/ath5k/reset.c
568
if ((ath5k_hw_reg_read(ah, AR5K_PCICFG) &
drivers/net/wireless/ath/ath5k/reset.c
574
ath5k_hw_reg_write(ah, data | AR5K_SLEEP_CTL_SLE_WAKE,
drivers/net/wireless/ath/ath5k/reset.c
589
ath5k_hw_reg_write(ah, staid, AR5K_STA_ID1);
drivers/net/wireless/ath/ath5k/reset.c
607
ath5k_hw_on_hold(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/reset.c
609
struct pci_dev *pdev = ah->pdev;
drivers/net/wireless/ath/ath5k/reset.c
613
if (ath5k_get_bus_type(ah) == ATH_AHB)
drivers/net/wireless/ath/ath5k/reset.c
617
ret = ath5k_hw_set_power_mode(ah, AR5K_PM_AWAKE, true, 0);
drivers/net/wireless/ath/ath5k/reset.c
619
ATH5K_ERR(ah, "failed to wakeup the MAC Chip\n");
drivers/net/wireless/ath/ath5k/reset.c
633
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
634
ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
drivers/net/wireless/ath/ath5k/reset.c
639
ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
drivers/net/wireless/ath/ath5k/reset.c
644
ATH5K_ERR(ah, "failed to put device on warm reset\n");
drivers/net/wireless/ath/ath5k/reset.c
649
ret = ath5k_hw_set_power_mode(ah, AR5K_PM_AWAKE, true, 0);
drivers/net/wireless/ath/ath5k/reset.c
651
ATH5K_ERR(ah, "failed to put device on hold\n");
drivers/net/wireless/ath/ath5k/reset.c
669
ath5k_hw_nic_wakeup(struct ath5k_hw *ah, struct ieee80211_channel *channel)
drivers/net/wireless/ath/ath5k/reset.c
67
ath5k_hw_register_timeout(struct ath5k_hw *ah, u32 reg, u32 flag, u32 val,
drivers/net/wireless/ath/ath5k/reset.c
671
struct pci_dev *pdev = ah->pdev;
drivers/net/wireless/ath/ath5k/reset.c
679
if ((ath5k_get_bus_type(ah) != ATH_AHB) || channel) {
drivers/net/wireless/ath/ath5k/reset.c
681
ret = ath5k_hw_set_power_mode(ah, AR5K_PM_AWAKE, true, 0);
drivers/net/wireless/ath/ath5k/reset.c
683
ATH5K_ERR(ah, "failed to wakeup the MAC Chip\n");
drivers/net/wireless/ath/ath5k/reset.c
698
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
699
ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
drivers/net/wireless/ath/ath5k/reset.c
704
if (ath5k_get_bus_type(ah) == ATH_AHB)
drivers/net/wireless/ath/ath5k/reset.c
705
ret = ath5k_hw_wisoc_reset(ah, AR5K_RESET_CTL_PCU |
drivers/net/wireless/ath/ath5k/reset.c
708
ret = ath5k_hw_nic_reset(ah, AR5K_RESET_CTL_PCU |
drivers/net/wireless/ath/ath5k/reset.c
713
ATH5K_ERR(ah, "failed to reset the MAC Chip\n");
drivers/net/wireless/ath/ath5k/reset.c
718
ret = ath5k_hw_set_power_mode(ah, AR5K_PM_AWAKE, true, 0);
drivers/net/wireless/ath/ath5k/reset.c
720
ATH5K_ERR(ah, "failed to resume the MAC Chip\n");
drivers/net/wireless/ath/ath5k/reset.c
727
if (ath5k_get_bus_type(ah) == ATH_AHB)
drivers/net/wireless/ath/ath5k/reset.c
728
ret = ath5k_hw_wisoc_reset(ah, 0);
drivers/net/wireless/ath/ath5k/reset.c
730
ret = ath5k_hw_nic_reset(ah, 0);
drivers/net/wireless/ath/ath5k/reset.c
733
ATH5K_ERR(ah, "failed to warm reset the MAC Chip\n");
drivers/net/wireless/ath/ath5k/reset.c
74
data = ath5k_hw_reg_read(ah, reg);
drivers/net/wireless/ath/ath5k/reset.c
742
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
747
if (ah->ah_radio >= AR5K_RF5112) {
drivers/net/wireless/ath/ath5k/reset.c
769
if (ah->ah_version == AR5K_AR5211)
drivers/net/wireless/ath/ath5k/reset.c
779
if (ah->ah_radio == AR5K_RF5413)
drivers/net/wireless/ath/ath5k/reset.c
784
ATH5K_ERR(ah, "invalid radio frequency mode\n");
drivers/net/wireless/ath/ath5k/reset.c
791
if (ah->ah_bwmode == AR5K_BWMODE_40MHZ) {
drivers/net/wireless/ath/ath5k/reset.c
793
if (ah->ah_radio != AR5K_RF2425)
drivers/net/wireless/ath/ath5k/reset.c
795
} else if (ah->ah_bwmode != AR5K_BWMODE_DEFAULT) {
drivers/net/wireless/ath/ath5k/reset.c
796
if (ah->ah_radio == AR5K_RF5413) {
drivers/net/wireless/ath/ath5k/reset.c
797
mode |= (ah->ah_bwmode == AR5K_BWMODE_10MHZ) ?
drivers/net/wireless/ath/ath5k/reset.c
800
} else if (ah->ah_version == AR5K_AR5212) {
drivers/net/wireless/ath/ath5k/reset.c
801
clock |= (ah->ah_bwmode == AR5K_BWMODE_10MHZ) ?
drivers/net/wireless/ath/ath5k/reset.c
810
if (ah->ah_bwmode == AR5K_BWMODE_40MHZ)
drivers/net/wireless/ath/ath5k/reset.c
811
ath5k_hw_reg_write(ah, AR5K_PHY_TURBO_MODE,
drivers/net/wireless/ath/ath5k/reset.c
815
if (ah->ah_version != AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
818
if (ath5k_hw_reg_read(ah, AR5K_PHY_PLL) != clock) {
drivers/net/wireless/ath/ath5k/reset.c
819
ath5k_hw_reg_write(ah, clock, AR5K_PHY_PLL);
drivers/net/wireless/ath/ath5k/reset.c
824
ath5k_hw_reg_write(ah, mode, AR5K_PHY_MODE);
drivers/net/wireless/ath/ath5k/reset.c
825
ath5k_hw_reg_write(ah, turbo, AR5K_PHY_TURBO);
drivers/net/wireless/ath/ath5k/reset.c
848
ath5k_hw_tweak_initval_settings(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/reset.c
851
if (ah->ah_version == AR5K_AR5212 &&
drivers/net/wireless/ath/ath5k/reset.c
852
ah->ah_phy_revision >= AR5K_SREV_PHY_5212A) {
drivers/net/wireless/ath/ath5k/reset.c
855
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/reset.c
867
AR5K_REG_DISABLE_BITS(ah, AR5K_PHY_DAG_CCK_CTL,
drivers/net/wireless/ath/ath5k/reset.c
870
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_DAG_CCK_CTL,
drivers/net/wireless/ath/ath5k/reset.c
874
ath5k_hw_reg_write(ah, 0x0000000f, AR5K_SEQ_MASK);
drivers/net/wireless/ath/ath5k/reset.c
878
if (ah->ah_phy_revision >= AR5K_SREV_PHY_5212B)
drivers/net/wireless/ath/ath5k/reset.c
879
ath5k_hw_reg_write(ah, 0, AR5K_PHY_BLUETOOTH);
drivers/net/wireless/ath/ath5k/reset.c
882
if (ah->ah_phy_revision > AR5K_SREV_PHY_5212B)
drivers/net/wireless/ath/ath5k/reset.c
883
AR5K_REG_DISABLE_BITS(ah, AR5K_TXCFG,
drivers/net/wireless/ath/ath5k/reset.c
887
if ((ah->ah_radio == AR5K_RF5413) ||
drivers/net/wireless/ath/ath5k/reset.c
888
(ah->ah_radio == AR5K_RF2317) ||
drivers/net/wireless/ath/ath5k/reset.c
889
(ah->ah_mac_version == (AR5K_SREV_AR2417 >> 4))) {
drivers/net/wireless/ath/ath5k/reset.c
897
if (ath5k_hw_reg_read(ah, AR5K_PHY_FAST_ADC) != fast_adc)
drivers/net/wireless/ath/ath5k/reset.c
898
ath5k_hw_reg_write(ah, fast_adc,
drivers/net/wireless/ath/ath5k/reset.c
903
if (ah->ah_radio == AR5K_RF5112 &&
drivers/net/wireless/ath/ath5k/reset.c
904
ah->ah_radio_5ghz_revision <
drivers/net/wireless/ath/ath5k/reset.c
907
ath5k_hw_reg_write(ah, AR5K_PHY_CCKTXCTL_WORLD,
drivers/net/wireless/ath/ath5k/reset.c
913
ath5k_hw_reg_write(ah, data, AR5K_PHY_FRAME_CTL);
drivers/net/wireless/ath/ath5k/reset.c
916
if (ah->ah_mac_srev < AR5K_SREV_AR5211) {
drivers/net/wireless/ath/ath5k/reset.c
918
ath5k_hw_reg_write(ah, 0, AR5K_QCUDCU_CLKGT);
drivers/net/wireless/ath/ath5k/reset.c
920
ath5k_hw_reg_write(ah, AR5K_PHY_SCAL_32MHZ_5311,
drivers/net/wireless/ath/ath5k/reset.c
923
AR5K_REG_ENABLE_BITS(ah, AR5K_DIAG_SW_5211,
drivers/net/wireless/ath/ath5k/reset.c
927
if (ah->ah_bwmode) {
drivers/net/wireless/ath/ath5k/reset.c
931
if (ah->ah_bwmode == AR5K_BWMODE_40MHZ) {
drivers/net/wireless/ath/ath5k/reset.c
933
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_SETTLING,
drivers/net/wireless/ath/ath5k/reset.c
940
if (ah->ah_version == AR5K_AR5212)
drivers/net/wireless/ath/ath5k/reset.c
941
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_SETTLING,
drivers/net/wireless/ath/ath5k/reset.c
945
if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
947
ath5k_hw_reg_write(ah,
drivers/net/wireless/ath/ath5k/reset.c
954
} else if ((ah->ah_mac_srev >= AR5K_SREV_AR5424) &&
drivers/net/wireless/ath/ath5k/reset.c
955
(ah->ah_mac_srev <= AR5K_SREV_AR5414)) {
drivers/net/wireless/ath/ath5k/reset.c
956
AR5K_REG_WRITE_BITS(ah, AR5K_PHY_FRAME_CTL_5211,
drivers/net/wireless/ath/ath5k/reset.c
960
} else if (ah->ah_version == AR5K_AR5210) {
drivers/net/wireless/ath/ath5k/reset.c
962
ath5k_hw_reg_write(ah, (AR5K_PHY_FRAME_CTL_INI | 0x1020),
drivers/net/wireless/ath/ath5k/reset.c
976
ath5k_hw_commit_eeprom_settings(struct ath5k_hw *ah,
drivers/net/wireless/ath/ath5k/reset.c
979
struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom;
drivers/net/wireless/ath/ath5k/reset.c
984
if (ah->ah_version == AR5K_AR5210)
drivers/net/wireless/ath/ath5k/reset.c
987
ee_mode = ath5k_eeprom_mode_from_channel(ah, channel);
drivers/net/wireless/ath/ath5k/rfkill.c
104
ath5k_rfkill_hw_stop(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/rfkill.c
107
if (AR5K_EEPROM_HDR_RFKILL(ah->ah_capabilities.cap_eeprom.ee_header))
drivers/net/wireless/ath/ath5k/rfkill.c
108
ath5k_rfkill_set_intr(ah, false);
drivers/net/wireless/ath/ath5k/rfkill.c
110
tasklet_kill(&ah->rf_kill.toggleq);
drivers/net/wireless/ath/ath5k/rfkill.c
113
ath5k_rfkill_enable(ah);
drivers/net/wireless/ath/ath5k/rfkill.c
39
static inline void ath5k_rfkill_disable(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/rfkill.c
41
ATH5K_DBG(ah, ATH5K_DEBUG_ANY, "rfkill disable (gpio:%d polarity:%d)\n",
drivers/net/wireless/ath/ath5k/rfkill.c
42
ah->rf_kill.gpio, ah->rf_kill.polarity);
drivers/net/wireless/ath/ath5k/rfkill.c
43
ath5k_hw_set_gpio_output(ah, ah->rf_kill.gpio);
drivers/net/wireless/ath/ath5k/rfkill.c
44
ath5k_hw_set_gpio(ah, ah->rf_kill.gpio, !ah->rf_kill.polarity);
drivers/net/wireless/ath/ath5k/rfkill.c
48
static inline void ath5k_rfkill_enable(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/rfkill.c
50
ATH5K_DBG(ah, ATH5K_DEBUG_ANY, "rfkill enable (gpio:%d polarity:%d)\n",
drivers/net/wireless/ath/ath5k/rfkill.c
51
ah->rf_kill.gpio, ah->rf_kill.polarity);
drivers/net/wireless/ath/ath5k/rfkill.c
52
ath5k_hw_set_gpio_output(ah, ah->rf_kill.gpio);
drivers/net/wireless/ath/ath5k/rfkill.c
53
ath5k_hw_set_gpio(ah, ah->rf_kill.gpio, ah->rf_kill.polarity);
drivers/net/wireless/ath/ath5k/rfkill.c
56
static inline void ath5k_rfkill_set_intr(struct ath5k_hw *ah, bool enable)
drivers/net/wireless/ath/ath5k/rfkill.c
60
ath5k_hw_set_gpio_input(ah, ah->rf_kill.gpio);
drivers/net/wireless/ath/ath5k/rfkill.c
61
curval = ath5k_hw_get_gpio(ah, ah->rf_kill.gpio);
drivers/net/wireless/ath/ath5k/rfkill.c
62
ath5k_hw_set_gpio_intr(ah, ah->rf_kill.gpio, enable ?
drivers/net/wireless/ath/ath5k/rfkill.c
67
ath5k_is_rfkill_set(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/rfkill.c
71
return ath5k_hw_get_gpio(ah, ah->rf_kill.gpio) ==
drivers/net/wireless/ath/ath5k/rfkill.c
72
ah->rf_kill.polarity;
drivers/net/wireless/ath/ath5k/rfkill.c
78
struct ath5k_hw *ah = from_tasklet(ah, t, rf_kill.toggleq);
drivers/net/wireless/ath/ath5k/rfkill.c
81
blocked = ath5k_is_rfkill_set(ah);
drivers/net/wireless/ath/ath5k/rfkill.c
82
wiphy_rfkill_set_hw_state(ah->hw->wiphy, blocked);
drivers/net/wireless/ath/ath5k/rfkill.c
87
ath5k_rfkill_hw_start(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/rfkill.c
90
ah->rf_kill.gpio = ah->ah_capabilities.cap_eeprom.ee_rfkill_pin;
drivers/net/wireless/ath/ath5k/rfkill.c
91
ah->rf_kill.polarity = ah->ah_capabilities.cap_eeprom.ee_rfkill_pol;
drivers/net/wireless/ath/ath5k/rfkill.c
93
tasklet_setup(&ah->rf_kill.toggleq, ath5k_tasklet_rfkill_toggle);
drivers/net/wireless/ath/ath5k/rfkill.c
95
ath5k_rfkill_disable(ah);
drivers/net/wireless/ath/ath5k/rfkill.c
98
if (AR5K_EEPROM_HDR_RFKILL(ah->ah_capabilities.cap_eeprom.ee_header))
drivers/net/wireless/ath/ath5k/rfkill.c
99
ath5k_rfkill_set_intr(ah, true);
drivers/net/wireless/ath/ath5k/sysfs.c
103
ath5k_sysfs_register(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/sysfs.c
105
struct device *dev = ah->dev;
drivers/net/wireless/ath/ath5k/sysfs.c
110
ATH5K_ERR(ah, "failed to create sysfs group\n");
drivers/net/wireless/ath/ath5k/sysfs.c
118
ath5k_sysfs_unregister(struct ath5k_hw *ah)
drivers/net/wireless/ath/ath5k/sysfs.c
120
struct device *dev = ah->dev;
drivers/net/wireless/ath/ath5k/sysfs.c
16
struct ath5k_hw *ah = hw->priv; \
drivers/net/wireless/ath/ath5k/sysfs.c
25
struct ath5k_hw *ah = hw->priv; \
drivers/net/wireless/ath/ath5k/sysfs.c
31
set(ah, val); \
drivers/net/wireless/ath/ath5k/sysfs.c
43
struct ath5k_hw *ah = hw->priv; \
drivers/net/wireless/ath/ath5k/sysfs.c
50
SIMPLE_SHOW_STORE(ani_mode, ah->ani_state.ani_mode, ath5k_ani_init);
drivers/net/wireless/ath/ath5k/sysfs.c
51
SIMPLE_SHOW_STORE(noise_immunity_level, ah->ani_state.noise_imm_level,
drivers/net/wireless/ath/ath5k/sysfs.c
53
SIMPLE_SHOW_STORE(spur_level, ah->ani_state.spur_level,
drivers/net/wireless/ath/ath5k/sysfs.c
55
SIMPLE_SHOW_STORE(firstep_level, ah->ani_state.firstep_level,
drivers/net/wireless/ath/ath5k/sysfs.c
57
SIMPLE_SHOW_STORE(ofdm_weak_signal_detection, ah->ani_state.ofdm_weak_sig,
drivers/net/wireless/ath/ath5k/sysfs.c
59
SIMPLE_SHOW_STORE(cck_weak_signal_detection, ah->ani_state.cck_weak_sig,
drivers/net/wireless/ath/ath5k/sysfs.c
61
SIMPLE_SHOW(spur_level_max, ah->ani_state.max_spur_level);
drivers/net/wireless/ath/ath9k/ahb.c
106
ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/ahb.c
107
ath9k_hw_name(ah, hw_name, sizeof(hw_name));
drivers/net/wireless/ath/ath9k/ahb.c
60
struct ath_hw *ah;
drivers/net/wireless/ath/ath9k/ani.c
107
static void ath9k_hw_update_mibstats(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ani.c
114
REG_READ_MULTI(ah, &addr[0], &data[0], 5);
drivers/net/wireless/ath/ath9k/ani.c
127
static void ath9k_ani_restart(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
129
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
133
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ani.c
135
REG_WRITE(ah, AR_PHY_ERR_1, 0);
drivers/net/wireless/ath/ath9k/ani.c
136
REG_WRITE(ah, AR_PHY_ERR_2, 0);
drivers/net/wireless/ath/ath9k/ani.c
137
REG_WRITE(ah, AR_PHY_ERR_MASK_1, AR_PHY_ERR_OFDM_TIMING);
drivers/net/wireless/ath/ath9k/ani.c
138
REG_WRITE(ah, AR_PHY_ERR_MASK_2, AR_PHY_ERR_CCK_TIMING);
drivers/net/wireless/ath/ath9k/ani.c
140
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ani.c
142
ath9k_hw_update_mibstats(ah, &ah->ah_mibStats);
drivers/net/wireless/ath/ath9k/ani.c
149
static void ath9k_hw_set_ofdm_nil(struct ath_hw *ah, u8 immunityLevel,
drivers/net/wireless/ath/ath9k/ani.c
152
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
153
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
160
immunityLevel, BEACON_RSSI(ah),
drivers/net/wireless/ath/ath9k/ani.c
164
if (AR_SREV_9100(ah) && immunityLevel < ATH9K_ANI_OFDM_DEF_LEVEL)
drivers/net/wireless/ath/ath9k/ani.c
174
ath9k_hw_ani_control(ah,
drivers/net/wireless/ath/ath9k/ani.c
180
ath9k_hw_ani_control(ah,
drivers/net/wireless/ath/ath9k/ani.c
185
if (ah->opmode == NL80211_IFTYPE_STATION &&
drivers/net/wireless/ath/ath9k/ani.c
186
BEACON_RSSI(ah) <= ATH9K_ANI_RSSI_THR_HIGH)
drivers/net/wireless/ath/ath9k/ani.c
193
else if (AR_SREV_9300_20_OR_LATER(ah) &&
drivers/net/wireless/ath/ath9k/ani.c
194
ah->opmode != NL80211_IFTYPE_STATION)
drivers/net/wireless/ath/ath9k/ani.c
198
else if (!AR_SREV_9300_20_OR_LATER(ah) &&
drivers/net/wireless/ath/ath9k/ani.c
203
ath9k_hw_ani_control(ah, ATH9K_ANI_OFDM_WEAK_SIGNAL_DETECTION,
drivers/net/wireless/ath/ath9k/ani.c
206
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ani.c
210
ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH;
drivers/net/wireless/ath/ath9k/ani.c
211
ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_ABOVE_INI;
drivers/net/wireless/ath/ath9k/ani.c
213
ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_BELOW_INI;
drivers/net/wireless/ath/ath9k/ani.c
214
ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW;
drivers/net/wireless/ath/ath9k/ani.c
218
static void ath9k_hw_ani_ofdm_err_trigger(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
220
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
223
ath9k_hw_set_ofdm_nil(ah, aniState->ofdmNoiseImmunityLevel + 1, false);
drivers/net/wireless/ath/ath9k/ani.c
229
static void ath9k_hw_set_cck_nil(struct ath_hw *ah, u_int8_t immunityLevel,
drivers/net/wireless/ath/ath9k/ani.c
232
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
233
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
239
BEACON_RSSI(ah), ATH9K_ANI_RSSI_THR_LOW,
drivers/net/wireless/ath/ath9k/ani.c
242
if (AR_SREV_9100(ah) && immunityLevel < ATH9K_ANI_CCK_DEF_LEVEL)
drivers/net/wireless/ath/ath9k/ani.c
245
if (ah->opmode == NL80211_IFTYPE_STATION &&
drivers/net/wireless/ath/ath9k/ani.c
246
BEACON_RSSI(ah) <= ATH9K_ANI_RSSI_THR_LOW &&
drivers/net/wireless/ath/ath9k/ani.c
258
ath9k_hw_ani_control(ah,
drivers/net/wireless/ath/ath9k/ani.c
263
if (!AR_SREV_9300_20_OR_LATER(ah) || AR_SREV_9485(ah) ||
drivers/net/wireless/ath/ath9k/ani.c
264
AR_SREV_9565(ah) || AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ani.c
268
ath9k_hw_ani_control(ah,
drivers/net/wireless/ath/ath9k/ani.c
273
static void ath9k_hw_ani_cck_err_trigger(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
275
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
278
ath9k_hw_set_cck_nil(ah, aniState->cckNoiseImmunityLevel + 1,
drivers/net/wireless/ath/ath9k/ani.c
286
static void ath9k_hw_ani_lower_immunity(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
288
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
293
ath9k_hw_set_ofdm_nil(ah, aniState->ofdmNoiseImmunityLevel - 1,
drivers/net/wireless/ath/ath9k/ani.c
300
ath9k_hw_set_cck_nil(ah, aniState->cckNoiseImmunityLevel - 1,
drivers/net/wireless/ath/ath9k/ani.c
309
void ath9k_ani_reset(struct ath_hw *ah, bool is_scanning)
drivers/net/wireless/ath/ath9k/ani.c
311
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
312
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ani.c
313
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
320
ah->stats.ast_ani_reset++;
drivers/net/wireless/ath/ath9k/ani.c
328
(ah->opmode != NL80211_IFTYPE_STATION &&
drivers/net/wireless/ath/ath9k/ani.c
329
ah->opmode != NL80211_IFTYPE_ADHOC)) {
drivers/net/wireless/ath/ath9k/ani.c
342
ah->opmode,
drivers/net/wireless/ath/ath9k/ani.c
357
ah->opmode,
drivers/net/wireless/ath/ath9k/ani.c
363
ath9k_hw_set_ofdm_nil(ah, ofdm_nil, is_scanning);
drivers/net/wireless/ath/ath9k/ani.c
364
ath9k_hw_set_cck_nil(ah, cck_nil, is_scanning);
drivers/net/wireless/ath/ath9k/ani.c
366
ath9k_ani_restart(ah);
drivers/net/wireless/ath/ath9k/ani.c
369
static bool ath9k_hw_ani_read_counters(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
371
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
372
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
380
ah->stats.ast_ani_lneg_or_lzero++;
drivers/net/wireless/ath/ath9k/ani.c
381
ath9k_ani_restart(ah);
drivers/net/wireless/ath/ath9k/ani.c
387
ath9k_hw_update_mibstats(ah, &ah->ah_mibStats);
drivers/net/wireless/ath/ath9k/ani.c
389
phyCnt1 = REG_READ(ah, AR_PHY_ERR_1);
drivers/net/wireless/ath/ath9k/ani.c
390
phyCnt2 = REG_READ(ah, AR_PHY_ERR_2);
drivers/net/wireless/ath/ath9k/ani.c
392
ah->stats.ast_ani_ofdmerrs += phyCnt1 - aniState->ofdmPhyErrCount;
drivers/net/wireless/ath/ath9k/ani.c
395
ah->stats.ast_ani_cckerrs += phyCnt2 - aniState->cckPhyErrCount;
drivers/net/wireless/ath/ath9k/ani.c
401
void ath9k_hw_ani_monitor(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ani.c
403
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
404
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
407
if (!ath9k_hw_ani_read_counters(ah))
drivers/net/wireless/ath/ath9k/ani.c
422
if (aniState->listenTime > ah->aniperiod) {
drivers/net/wireless/ath/ath9k/ani.c
423
if (cckPhyErrRate < ah->config.cck_trig_low &&
drivers/net/wireless/ath/ath9k/ani.c
424
ofdmPhyErrRate < ah->config.ofdm_trig_low) {
drivers/net/wireless/ath/ath9k/ani.c
425
ath9k_hw_ani_lower_immunity(ah);
drivers/net/wireless/ath/ath9k/ani.c
427
} else if (ofdmPhyErrRate > ah->config.ofdm_trig_high) {
drivers/net/wireless/ath/ath9k/ani.c
428
ath9k_hw_ani_ofdm_err_trigger(ah);
drivers/net/wireless/ath/ath9k/ani.c
430
} else if (cckPhyErrRate > ah->config.cck_trig_high) {
drivers/net/wireless/ath/ath9k/ani.c
431
ath9k_hw_ani_cck_err_trigger(ah);
drivers/net/wireless/ath/ath9k/ani.c
436
ath9k_ani_restart(ah);
drivers/net/wireless/ath/ath9k/ani.c
441
void ath9k_enable_mib_counters(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
443
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
447
ath9k_hw_update_mibstats(ah, &ah->ah_mibStats);
drivers/net/wireless/ath/ath9k/ani.c
449
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ani.c
451
REG_WRITE(ah, AR_FILT_OFDM, 0);
drivers/net/wireless/ath/ath9k/ani.c
452
REG_WRITE(ah, AR_FILT_CCK, 0);
drivers/net/wireless/ath/ath9k/ani.c
453
REG_WRITE(ah, AR_MIBC,
drivers/net/wireless/ath/ath9k/ani.c
456
REG_WRITE(ah, AR_PHY_ERR_MASK_1, AR_PHY_ERR_OFDM_TIMING);
drivers/net/wireless/ath/ath9k/ani.c
457
REG_WRITE(ah, AR_PHY_ERR_MASK_2, AR_PHY_ERR_CCK_TIMING);
drivers/net/wireless/ath/ath9k/ani.c
459
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ani.c
463
void ath9k_hw_disable_mib_counters(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
465
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
469
REG_WRITE(ah, AR_MIBC, AR_MIBC_FMC);
drivers/net/wireless/ath/ath9k/ani.c
470
ath9k_hw_update_mibstats(ah, &ah->ah_mibStats);
drivers/net/wireless/ath/ath9k/ani.c
471
REG_WRITE(ah, AR_MIBC, AR_MIBC_CMC);
drivers/net/wireless/ath/ath9k/ani.c
472
REG_WRITE(ah, AR_FILT_OFDM, 0);
drivers/net/wireless/ath/ath9k/ani.c
473
REG_WRITE(ah, AR_FILT_CCK, 0);
drivers/net/wireless/ath/ath9k/ani.c
477
void ath9k_hw_ani_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ani.c
479
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ani.c
480
struct ar5416AniState *ani = &ah->ani;
drivers/net/wireless/ath/ath9k/ani.c
484
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ani.c
485
ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH;
drivers/net/wireless/ath/ath9k/ani.c
486
ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW;
drivers/net/wireless/ath/ath9k/ani.c
487
ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH;
drivers/net/wireless/ath/ath9k/ani.c
488
ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW;
drivers/net/wireless/ath/ath9k/ani.c
490
ah->config.ofdm_trig_high = ATH9K_ANI_OFDM_TRIG_HIGH_OLD;
drivers/net/wireless/ath/ath9k/ani.c
491
ah->config.ofdm_trig_low = ATH9K_ANI_OFDM_TRIG_LOW_OLD;
drivers/net/wireless/ath/ath9k/ani.c
492
ah->config.cck_trig_high = ATH9K_ANI_CCK_TRIG_HIGH_OLD;
drivers/net/wireless/ath/ath9k/ani.c
493
ah->config.cck_trig_low = ATH9K_ANI_CCK_TRIG_LOW_OLD;
drivers/net/wireless/ath/ath9k/ani.c
498
ani->mrcCCK = AR_SREV_9300_20_OR_LATER(ah) ? true : false;
drivers/net/wireless/ath/ath9k/ani.c
508
ah->aniperiod = ATH9K_ANI_PERIOD;
drivers/net/wireless/ath/ath9k/ani.c
509
ah->config.ani_poll_interval = ATH9K_ANI_POLLINTERVAL;
drivers/net/wireless/ath/ath9k/ani.c
511
ath9k_ani_restart(ah);
drivers/net/wireless/ath/ath9k/ani.c
512
ath9k_enable_mib_counters(ah);
drivers/net/wireless/ath/ath9k/ani.h
121
void ath9k_enable_mib_counters(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ani.h
122
void ath9k_hw_disable_mib_counters(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ani.h
123
void ath9k_hw_ani_init(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1000
REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1003
REG_RMW_FIELD(ah, AR_PHY_SFCORR,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1005
REG_RMW_FIELD(ah, AR_PHY_SFCORR,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1007
REG_RMW_FIELD(ah, AR_PHY_SFCORR,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1009
REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1013
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1015
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1017
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1019
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
102
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1023
REG_SET_BIT(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1026
REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1037
ah->stats.ast_ani_ofdmon++;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1039
ah->stats.ast_ani_ofdmoff++;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1048
REG_RMW_FIELD(ah, AR_PHY_FIND_SIG,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1050
REG_RMW_FIELD(ah, AR_PHY_FIND_SIG_LOW,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1071
ah->stats.ast_ani_stepup++;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1073
ah->stats.ast_ani_stepdown++;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1082
REG_RMW_FIELD(ah, AR_PHY_TIMING5,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1085
REG_RMW_FIELD(ah, AR_PHY_EXT_CCA,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1106
ah->stats.ast_ani_spurup++;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1108
ah->stats.ast_ani_spurdown++;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1137
static void ar5008_hw_do_getnf(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1142
nf = MS(REG_READ(ah, AR_PHY_CCA), AR_PHY_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1145
nf = MS(REG_READ(ah, AR_PHY_CH1_CCA), AR_PHY_CH1_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1148
nf = MS(REG_READ(ah, AR_PHY_CH2_CCA), AR_PHY_CH2_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1151
if (!IS_CHAN_HT40(ah->curchan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1154
nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR_PHY_EXT_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1157
nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR_PHY_CH1_EXT_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1160
nf = MS(REG_READ(ah, AR_PHY_CH2_EXT_CCA), AR_PHY_CH2_EXT_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1169
static void ar5008_hw_ani_cache_ini_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1171
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1172
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1173
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1180
ah->hw_version.macVersion,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1181
ah->hw_version.macRev,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1182
ah->opmode,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1185
val = REG_READ(ah, AR_PHY_SFCORR);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1190
val = REG_READ(ah, AR_PHY_SFCORR_LOW);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1195
val = REG_READ(ah, AR_PHY_SFCORR_EXT);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1200
iniDef->firstep = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1203
iniDef->firstepLow = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1206
iniDef->cycpwrThr1 = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1209
iniDef->cycpwrThr1Ext = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1220
static void ar5008_hw_set_nf_limits(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1222
ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_5416_2GHZ;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1223
ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_5416_2GHZ;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1224
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_5416_2GHZ;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1225
ah->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_5416_5GHZ;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1226
ah->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_5416_5GHZ;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1227
ah->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_5416_5GHZ;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1230
static void ar5008_hw_set_radar_params(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1236
REG_CLR_BIT(ah, AR_PHY_RADAR_0, AR_PHY_RADAR_0_ENA);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1247
radar_1 = REG_READ(ah, AR_PHY_RADAR_1);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1256
REG_WRITE(ah, AR_PHY_RADAR_0, radar_0);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1257
REG_WRITE(ah, AR_PHY_RADAR_1, radar_1);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1259
REG_SET_BIT(ah, AR_PHY_RADAR_EXT, AR_PHY_RADAR_EXT_ENA);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1261
REG_CLR_BIT(ah, AR_PHY_RADAR_EXT, AR_PHY_RADAR_EXT_ENA);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1264
static void ar5008_hw_set_radar_conf(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1266
struct ath_hw_radar_conf *conf = &ah->radar_conf;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1278
static void ar5008_hw_init_txpower_cck(struct ath_hw *ah, int16_t *rate_array)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1281
ah->tx_power[0] = CCK_DELTA(ah, rate_array[rate1l]);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1282
ah->tx_power[1] = CCK_DELTA(ah, min(rate_array[rate2l],
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1284
ah->tx_power[2] = CCK_DELTA(ah, min(rate_array[rate5_5l],
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1286
ah->tx_power[3] = CCK_DELTA(ah, min(rate_array[rate11l],
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1291
static void ar5008_hw_init_txpower_ofdm(struct ath_hw *ah, int16_t *rate_array,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1297
ah->tx_power[i] = rate_array[idx];
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1302
static void ar5008_hw_init_txpower_ht(struct ath_hw *ah, int16_t *rate_array,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1309
ah->tx_power[i] = rate_array[mcs_idx] + ht40_delta;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1312
memcpy(&ah->tx_power[ds_offset], &ah->tx_power[ss_offset],
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1316
void ar5008_hw_init_rate_txpower(struct ath_hw *ah, int16_t *rate_array,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1320
ar5008_hw_init_txpower_ofdm(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1323
ar5008_hw_init_txpower_ht(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1330
ar5008_hw_init_txpower_cck(ah, rate_array);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1331
ar5008_hw_init_txpower_ofdm(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1334
ar5008_hw_init_txpower_ht(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1343
int ar5008_hw_attach_phy_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1345
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1356
ret = ar5008_hw_rf_alloc_ext_banks(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1379
if (AR_SREV_9100(ah) || AR_SREV_9160_10_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1384
ar5008_hw_set_nf_limits(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1385
ar5008_hw_set_radar_conf(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
1386
memcpy(ah->nf_regs, ar5416_cca_regs, sizeof(ah->nf_regs));
drivers/net/wireless/ath/ath9k/ar5008_phy.c
164
static void ar5008_hw_force_bias(struct ath_hw *ah, u16 synth_freq)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
166
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
171
if (!AR_SREV_5416(ah) || synth_freq >= 3000)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
174
BUG_ON(AR_SREV_9280_20_OR_LATER(ah));
drivers/net/wireless/ath/ath9k/ar5008_phy.c
190
ar5008_hw_phy_modify_rx_buffer(ah->analogBank6Data, tmp_reg, 3, 181, 3);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
193
ar5008_write_bank6(ah, ®_writes);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
203
static int ar5008_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
205
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
213
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
233
txctl = REG_READ(ah, AR_PHY_CCK_TX_CTRL);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
236
REG_WRITE(ah, AR_PHY_CCK_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
239
REG_WRITE(ah, AR_PHY_CCK_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
250
if (AR_SREV_9100(ah) || AR_SREV_9160_10_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
262
ar5008_hw_force_bias(ah, freq);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
268
REG_WRITE(ah, AR_PHY(0x37), reg32);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
270
ah->curchan = chan;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
275
void ar5008_hw_cmn_spur_mitigate(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
312
REG_WRITE(ah, pilot_mask_reg[i], pilot_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
313
REG_WRITE(ah, chan_mask_reg[i], chan_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
345
REG_WRITE(ah, AR_PHY_BIN_MASK_1, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
346
REG_WRITE(ah, AR_PHY_VIT_MASK2_M_46_61, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
356
REG_WRITE(ah, AR_PHY_BIN_MASK_2, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
357
REG_WRITE(ah, AR_PHY_MASK2_M_31_45, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
367
REG_WRITE(ah, AR_PHY_BIN_MASK_3, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
368
REG_WRITE(ah, AR_PHY_MASK2_M_16_30, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
378
REG_WRITE(ah, AR_PHY_MASK_CTL, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
379
REG_WRITE(ah, AR_PHY_MASK2_M_00_15, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
389
REG_WRITE(ah, AR_PHY_BIN_MASK2_1, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
390
REG_WRITE(ah, AR_PHY_MASK2_P_15_01, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
400
REG_WRITE(ah, AR_PHY_BIN_MASK2_2, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
401
REG_WRITE(ah, AR_PHY_MASK2_P_30_16, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
411
REG_WRITE(ah, AR_PHY_BIN_MASK2_3, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
412
REG_WRITE(ah, AR_PHY_MASK2_P_45_31, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
422
REG_WRITE(ah, AR_PHY_BIN_MASK2_4, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
423
REG_WRITE(ah, AR_PHY_MASK2_P_61_45, tmp_mask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
432
static void ar5008_hw_spur_mitigate(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
447
cur_bb_spur = ah->eep_ops->get_spur_channel(ah, i, is2GHz);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
462
tmp = REG_READ(ah, AR_PHY_TIMING_CTRL4(0));
drivers/net/wireless/ath/ath9k/ar5008_phy.c
468
REG_WRITE(ah, AR_PHY_TIMING_CTRL4(0), new);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
475
REG_WRITE(ah, AR_PHY_SPUR_REG, new);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
486
REG_WRITE(ah, AR_PHY_TIMING11, new);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
488
ar5008_hw_cmn_spur_mitigate(ah, chan, bin);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
497
static int ar5008_hw_rf_alloc_ext_banks(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
499
int size = ah->iniBank6.ia_rows * sizeof(u32);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
501
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
504
ah->analogBank6Data = devm_kzalloc(ah->dev, size, GFP_KERNEL);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
505
if (!ah->analogBank6Data)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
524
static bool ar5008_hw_set_rf_regs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
539
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
543
eepMinorRev = ah->eep_ops->get_eeprom_rev(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
545
for (i = 0; i < ah->iniBank6.ia_rows; i++)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
546
ah->analogBank6Data[i] = INI_RA(&ah->iniBank6, i, modesIndex);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
551
ob2GHz = ah->eep_ops->get_eeprom(ah, EEP_OB_2);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
552
db2GHz = ah->eep_ops->get_eeprom(ah, EEP_DB_2);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
553
ar5008_hw_phy_modify_rx_buffer(ah->analogBank6Data,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
555
ar5008_hw_phy_modify_rx_buffer(ah->analogBank6Data,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
558
ob5GHz = ah->eep_ops->get_eeprom(ah, EEP_OB_5);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
559
db5GHz = ah->eep_ops->get_eeprom(ah, EEP_DB_5);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
560
ar5008_hw_phy_modify_rx_buffer(ah->analogBank6Data,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
562
ar5008_hw_phy_modify_rx_buffer(ah->analogBank6Data,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
572
ar5008_write_bank6(ah, ®Writes);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
578
static void ar5008_hw_init_bb(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
583
synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
585
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
587
ath9k_hw_synth_delay(ah, chan, synthDelay);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
590
static void ar5008_hw_init_chain_masks(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
594
rx_chainmask = ah->rxchainmask;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
595
tx_chainmask = ah->txchainmask;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
600
REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
604
if (ah->hw_version.macVersion == AR_SREV_REVISION_5416_10) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
605
REG_WRITE(ah, AR_PHY_RX_CHAINMASK, 0x7);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
606
REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, 0x7);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
613
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
614
REG_WRITE(ah, AR_PHY_RX_CHAINMASK, rx_chainmask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
615
REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, rx_chainmask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
618
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
622
REG_WRITE(ah, AR_SELFGEN_MASK, tx_chainmask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
624
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
627
REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
630
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
631
REG_WRITE(ah, AR_PHY_ANALOG_SWAP,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
632
REG_READ(ah, AR_PHY_ANALOG_SWAP) | 0x00000001);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
635
static void ar5008_hw_override_ini(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
645
REG_SET_BIT(ah, AR_DIAG_SW, (AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT));
drivers/net/wireless/ath/ath9k/ar5008_phy.c
647
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
655
val = REG_READ(ah, AR_PCU_MISC_MODE2) &
drivers/net/wireless/ath/ath9k/ar5008_phy.c
658
if (!AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
661
if (AR_SREV_9287_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
666
REG_WRITE(ah, AR_PCU_MISC_MODE2, val);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
669
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
675
REG_WRITE(ah, 0x9800 + (651 << 2), 0x11);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
681
if (AR_SREV_9100(ah) || AR_SREV_9160(ah)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
682
val = REG_READ(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
684
REG_WRITE(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS, val);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
688
static void ar5008_hw_set_channel_regs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
694
if (AR_SREV_9285_12_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
695
enableDacFifo = (REG_READ(ah, AR_PHY_TURBO) &
drivers/net/wireless/ath/ath9k/ar5008_phy.c
708
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
709
REG_WRITE(ah, AR_PHY_TURBO, phymode);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
713
ath9k_hw_set11nmac2040(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
715
REG_WRITE(ah, AR_GTXTO, 25 << AR_GTXTO_TIMEOUT_LIMIT_S);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
716
REG_WRITE(ah, AR_CST, 0xF << AR_CST_TIMEOUT_LIMIT_S);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
718
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
722
static int ar5008_hw_process_ini(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
725
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
741
REG_WRITE(ah, AR_PHY(0), 0x00000007);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
744
REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_EXTERNAL_RADIO);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
745
if (ah->eep_ops->set_addac)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
746
ah->eep_ops->set_addac(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
748
REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
749
REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_INTERNAL_ADDAC);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
751
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
753
for (i = 0; i < ah->iniModes.ia_rows; i++) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
754
u32 reg = INI_RA(&ah->iniModes, i, 0);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
755
u32 val = INI_RA(&ah->iniModes, i, modesIndex);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
757
if (reg == AR_AN_TOP2 && ah->need_an_top2_fixup)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
760
REG_WRITE(ah, reg, val);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
763
&& ah->config.analog_shiftreg
drivers/net/wireless/ath/ath9k/ar5008_phy.c
771
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
773
if (AR_SREV_9280(ah) || AR_SREV_9287_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
774
REG_WRITE_ARRAY(&ah->iniModesRxGain, modesIndex, regWrites);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
776
if (AR_SREV_9280(ah) || AR_SREV_9285_12_OR_LATER(ah) ||
drivers/net/wireless/ath/ath9k/ar5008_phy.c
777
AR_SREV_9287_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
778
REG_WRITE_ARRAY(&ah->iniModesTxGain, modesIndex, regWrites);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
780
if (AR_SREV_9271_10(ah)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
781
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN, AR_PHY_SPECTRAL_SCAN_ENA);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
782
REG_RMW_FIELD(ah, AR_PHY_RF_CTL3, AR_PHY_TX_END_TO_ADC_ON, 0xa);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
785
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
788
for (i = 0; i < ah->iniCommon.ia_rows; i++) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
789
u32 reg = INI_RA(&ah->iniCommon, i, 0);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
790
u32 val = INI_RA(&ah->iniCommon, i, 1);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
792
REG_WRITE(ah, reg, val);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
795
&& ah->config.analog_shiftreg
drivers/net/wireless/ath/ath9k/ar5008_phy.c
803
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
805
REG_WRITE_ARRAY(&ah->iniBB_RfGain, freqIndex, regWrites);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
807
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
808
REG_WRITE_ARRAY(&ah->iniModesFastClock, modesIndex,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
811
ar5008_hw_override_ini(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
812
ar5008_hw_set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
813
ar5008_hw_init_chain_masks(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
814
ath9k_olc_init(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
815
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
818
if (!ath9k_hw_set_rf_regs(ah, chan, freqIndex)) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
819
ath_err(ath9k_hw_common(ah), "ar5416SetRfRegs failed\n");
drivers/net/wireless/ath/ath9k/ar5008_phy.c
826
static void ar5008_hw_set_rfmode(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
838
if (!AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
842
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar5008_phy.c
845
REG_WRITE(ah, AR_PHY_MODE, rfMode);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
848
static void ar5008_hw_mark_phy_inactive(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
850
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
853
static void ar5008_hw_set_delta_slope(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
865
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
868
ath9k_hw_get_delta_slope_vals(ah, coef_scaled, &ds_coef_man,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
871
REG_RMW_FIELD(ah, AR_PHY_TIMING3,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
873
REG_RMW_FIELD(ah, AR_PHY_TIMING3,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
878
ath9k_hw_get_delta_slope_vals(ah, coef_scaled, &ds_coef_man,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
881
REG_RMW_FIELD(ah, AR_PHY_HALFGI,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
883
REG_RMW_FIELD(ah, AR_PHY_HALFGI,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
887
static bool ar5008_hw_rfbus_req(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
889
REG_WRITE(ah, AR_PHY_RFBUS_REQ, AR_PHY_RFBUS_REQ_EN);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
89
static void ar5008_write_bank6(struct ath_hw *ah, unsigned int *writecnt)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
890
return ath9k_hw_wait(ah, AR_PHY_RFBUS_GRANT, AR_PHY_RFBUS_GRANT_EN,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
894
static void ar5008_hw_rfbus_done(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
896
u32 synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
898
ath9k_hw_synth_delay(ah, ah->curchan, synthDelay);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
900
REG_WRITE(ah, AR_PHY_RFBUS_REQ, 0);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
903
static void ar5008_restore_chainmask(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar5008_phy.c
905
int rx_chainmask = ah->rxchainmask;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
908
REG_WRITE(ah, AR_PHY_RX_CHAINMASK, rx_chainmask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
909
REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, rx_chainmask);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
91
struct ar5416IniArray *array = &ah->iniBank6;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
913
static u32 ar9160_hw_compute_pll_control(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
92
u32 *data = ah->analogBank6Data;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
933
static u32 ar5008_hw_compute_pll_control(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
95
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
953
static bool ar5008_hw_ani_control_new(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar5008_phy.c
957
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
958
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
959
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ar5008_phy.c
962
switch (cmd & ah->ani_function) {
drivers/net/wireless/ath/ath9k/ar5008_phy.c
98
REG_WRITE(ah, INI_RA(array, r, 0), data[r]);
drivers/net/wireless/ath/ath9k/ar5008_phy.c
997
REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
1002
ah->supp_cals = ADC_GAIN_CAL | ADC_DC_CAL | IQ_MISMATCH_CAL;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
1004
if (AR_SREV_9287(ah))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
1005
ah->supp_cals &= ~ADC_GAIN_CAL;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
1009
void ar9002_hw_attach_calib_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
1011
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
1012
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
102
currCal->calData->calPostProc(ah, numChains);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
107
ar9002_hw_setup_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
109
} else if (time_after(jiffies, ah->cal_start_time +
drivers/net/wireless/ath/ath9k/ar9002_calib.c
111
REG_CLR_BIT(ah, AR_PHY_TIMING_CTRL4(0),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
113
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
119
ath9k_hw_reset_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
125
static void ar9002_hw_iqcal_collect(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
130
ah->totalPowerMeasI[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
131
REG_READ(ah, AR_PHY_CAL_MEAS_0(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
132
ah->totalPowerMeasQ[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
133
REG_READ(ah, AR_PHY_CAL_MEAS_1(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
134
ah->totalIqCorrMeas[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
135
(int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_2(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
136
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
138
ah->cal_samples, i, ah->totalPowerMeasI[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
139
ah->totalPowerMeasQ[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
140
ah->totalIqCorrMeas[i]);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
144
static void ar9002_hw_adc_gaincal_collect(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
149
ah->totalAdcIOddPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
150
REG_READ(ah, AR_PHY_CAL_MEAS_0(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
151
ah->totalAdcIEvenPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
152
REG_READ(ah, AR_PHY_CAL_MEAS_1(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
153
ah->totalAdcQOddPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
154
REG_READ(ah, AR_PHY_CAL_MEAS_2(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
155
ah->totalAdcQEvenPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
156
REG_READ(ah, AR_PHY_CAL_MEAS_3(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
158
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
160
ah->cal_samples, i,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
161
ah->totalAdcIOddPhase[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
162
ah->totalAdcIEvenPhase[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
163
ah->totalAdcQOddPhase[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
164
ah->totalAdcQEvenPhase[i]);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
168
static void ar9002_hw_adc_dccal_collect(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
173
ah->totalAdcDcOffsetIOddPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
174
(int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_0(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
175
ah->totalAdcDcOffsetIEvenPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
176
(int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_1(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
177
ah->totalAdcDcOffsetQOddPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
178
(int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_2(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
179
ah->totalAdcDcOffsetQEvenPhase[i] +=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
180
(int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_3(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
182
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
184
ah->cal_samples, i,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
185
ah->totalAdcDcOffsetIOddPhase[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
186
ah->totalAdcDcOffsetIEvenPhase[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
187
ah->totalAdcDcOffsetQOddPhase[i],
drivers/net/wireless/ath/ath9k/ar9002_calib.c
188
ah->totalAdcDcOffsetQEvenPhase[i]);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
192
static void ar9002_hw_iqcalibrate(struct ath_hw *ah, u8 numChains)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
194
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
201
powerMeasI = ah->totalPowerMeasI[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
202
powerMeasQ = ah->totalPowerMeasQ[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
203
iqCorrMeas = ah->totalIqCorrMeas[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
211
i, ah->totalIqCorrMeas[i]);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
253
REG_RMW_FIELD(ah, AR_PHY_TIMING_CTRL4(i),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
256
REG_RMW_FIELD(ah, AR_PHY_TIMING_CTRL4(i),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
265
REG_SET_BIT(ah, AR_PHY_TIMING_CTRL4(0),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
269
static void ar9002_hw_adc_gaincal_calibrate(struct ath_hw *ah, u8 numChains)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
271
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
276
iOddMeasOffset = ah->totalAdcIOddPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
277
iEvenMeasOffset = ah->totalAdcIEvenPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
278
qOddMeasOffset = ah->totalAdcQOddPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
279
qEvenMeasOffset = ah->totalAdcQEvenPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
308
val = REG_READ(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
31
static bool ar9002_hw_is_cal_supported(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
311
REG_WRITE(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(i), val);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
318
REG_WRITE(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(0),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
319
REG_READ(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(0)) |
drivers/net/wireless/ath/ath9k/ar9002_calib.c
323
static void ar9002_hw_adc_dccal_calibrate(struct ath_hw *ah, u8 numChains)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
325
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
329
ah->cal_list_curr->calData;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
334
iOddMeasOffset = ah->totalAdcDcOffsetIOddPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
335
iEvenMeasOffset = ah->totalAdcDcOffsetIEvenPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
336
qOddMeasOffset = ah->totalAdcDcOffsetQOddPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
337
qEvenMeasOffset = ah->totalAdcDcOffsetQEvenPhase[i];
drivers/net/wireless/ath/ath9k/ar9002_calib.c
36
switch (ah->supp_cals & cal_type) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
363
val = REG_READ(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(i));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
366
REG_WRITE(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(i), val);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
372
REG_WRITE(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(0),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
373
REG_READ(ah, AR_PHY_NEW_ADC_DC_GAIN_CORR(0)) |
drivers/net/wireless/ath/ath9k/ar9002_calib.c
377
static void ar9287_hw_olc_temp_compensation(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
382
rddata = REG_READ(ah, AR_PHY_TX_PWRCTRL4);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
385
if (ah->initPDADC == 0 || currPDADC == 0) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
393
slope = ah->eep_ops->get_eeprom(ah, EEP_TEMPSENSE_SLOPE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
398
delta = ((currPDADC - ah->initPDADC)*4) / slope;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
400
REG_RMW_FIELD(ah, AR_PHY_CH0_TX_PWRCTRL11,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
402
REG_RMW_FIELD(ah, AR_PHY_CH1_TX_PWRCTRL11,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
407
static void ar9280_hw_olc_temp_compensation(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
412
rddata = REG_READ(ah, AR_PHY_TX_PWRCTRL4);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
415
if (ah->initPDADC == 0 || currPDADC == 0)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
418
if (ah->eep_ops->get_eeprom(ah, EEP_DAC_HPWR_5G))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
419
delta = (currPDADC - ah->initPDADC + 4) / 8;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
421
delta = (currPDADC - ah->initPDADC + 5) / 10;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
423
if (delta != ah->PDADCdelta) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
424
ah->PDADCdelta = delta;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
426
regval = ah->originalGain[i] - delta;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
430
REG_RMW_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
437
static void ar9271_hw_pa_cal(struct ath_hw *ah, bool is_reset)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
452
REG_READ_ARRAY(ah, regList, ARRAY_SIZE(regList));
drivers/net/wireless/ath/ath9k/ar9002_calib.c
454
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
456
REG_CLR_BIT(ah, AR9285_AN_RF2G6, 1 << 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
458
REG_SET_BIT(ah, 0x9808, 1 << 27);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
460
REG_SET_BIT(ah, AR9285_AN_TOP3, AR9285_AN_TOP3_PWDDAC);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
462
REG_SET_BIT(ah, AR9285_AN_RXTXBB1, AR9285_AN_RXTXBB1_PDRXTXBB1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
464
REG_SET_BIT(ah, AR9285_AN_RXTXBB1, AR9285_AN_RXTXBB1_PDV2I);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
466
REG_SET_BIT(ah, AR9285_AN_RXTXBB1, AR9285_AN_RXTXBB1_PDDACIF);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
468
REG_CLR_BIT(ah, AR9285_AN_RF2G2, AR9285_AN_RF2G2_OFFCAL);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
470
REG_CLR_BIT(ah, AR9285_AN_RF2G7, AR9285_AN_RF2G7_PWDDB);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
472
REG_CLR_BIT(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_ENPACAL);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
474
REG_CLR_BIT(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_PDPADRV1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
476
REG_CLR_BIT(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_PDPADRV2);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
478
REG_CLR_BIT(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_PDPAOUT);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
480
REG_RMW_FIELD(ah, AR9285_AN_RF2G8, AR9285_AN_RF2G8_PADRVGN2TAB0, 7);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
485
REG_RMW_FIELD(ah, AR9285_AN_RF2G7, AR9285_AN_RF2G7_PADRVGN2TAB0, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
487
REG_RMW_FIELD(ah, AR9285_AN_RF2G3, AR9271_AN_RF2G3_CCOMP, 0xfff);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
488
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
494
REG_WRITE(ah, AR9285_AN_TOP2, 0xca0358a0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
496
REG_RMW_FIELD(ah, AR9285_AN_RF2G6, AR9271_AN_RF2G6_OFFS, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
50
static void ar9002_hw_setup_calibration(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
500
regVal = REG_READ(ah, AR9285_AN_RF2G6);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
502
REG_WRITE(ah, AR9285_AN_RF2G6, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
506
regVal |= (MS(REG_READ(ah, AR9285_AN_RF2G9),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
509
REG_WRITE(ah, AR9285_AN_RF2G6, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
515
if ((!is_reset) && (ah->pacal_info.prev_offset == regVal)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
516
if (ah->pacal_info.max_skipcount < MAX_PACAL_SKIPCOUNT)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
517
ah->pacal_info.max_skipcount =
drivers/net/wireless/ath/ath9k/ar9002_calib.c
518
2 * ah->pacal_info.max_skipcount;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
519
ah->pacal_info.skipcount = ah->pacal_info.max_skipcount;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
521
ah->pacal_info.max_skipcount = 1;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
522
ah->pacal_info.skipcount = 0;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
523
ah->pacal_info.prev_offset = regVal;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
527
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
529
REG_SET_BIT(ah, AR9285_AN_RF2G6, 1 << 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
53
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
531
REG_CLR_BIT(ah, 0x9808, 1 << 27);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
532
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
534
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
536
REG_WRITE(ah, regList[i][0], regList[i][1]);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
538
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
541
static inline void ar9285_hw_pa_cal(struct ath_hw *ah, bool is_reset)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
543
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
55
REG_RMW_FIELD(ah, AR_PHY_TIMING_CTRL4(0),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
560
if (ah->eep_ops->get_eeprom(ah, EEP_TXGAIN_TYPE) ==
drivers/net/wireless/ath/ath9k/ar9002_calib.c
565
regList[i][1] = REG_READ(ah, regList[i][0]);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
567
regVal = REG_READ(ah, 0x7834);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
569
REG_WRITE(ah, 0x7834, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
570
regVal = REG_READ(ah, 0x9808);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
572
REG_WRITE(ah, 0x9808, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
574
REG_RMW_FIELD(ah, AR9285_AN_TOP3, AR9285_AN_TOP3_PWDDAC, 1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
575
REG_RMW_FIELD(ah, AR9285_AN_RXTXBB1, AR9285_AN_RXTXBB1_PDRXTXBB1, 1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
576
REG_RMW_FIELD(ah, AR9285_AN_RXTXBB1, AR9285_AN_RXTXBB1_PDV2I, 1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
577
REG_RMW_FIELD(ah, AR9285_AN_RXTXBB1, AR9285_AN_RXTXBB1_PDDACIF, 1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
578
REG_RMW_FIELD(ah, AR9285_AN_RF2G2, AR9285_AN_RF2G2_OFFCAL, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
579
REG_RMW_FIELD(ah, AR9285_AN_RF2G7, AR9285_AN_RF2G7_PWDDB, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
580
REG_RMW_FIELD(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_ENPACAL, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
581
REG_RMW_FIELD(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_PDPADRV1, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
582
REG_RMW_FIELD(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_PDPADRV2, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
583
REG_RMW_FIELD(ah, AR9285_AN_RF2G1, AR9285_AN_RF2G1_PDPAOUT, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
584
REG_RMW_FIELD(ah, AR9285_AN_RF2G8, AR9285_AN_RF2G8_PADRVGN2TAB0, 7);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
585
REG_RMW_FIELD(ah, AR9285_AN_RF2G7, AR9285_AN_RF2G7_PADRVGN2TAB0, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
586
ccomp_org = MS(REG_READ(ah, AR9285_AN_RF2G6), AR9285_AN_RF2G6_CCOMP);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
587
REG_RMW_FIELD(ah, AR9285_AN_RF2G6, AR9285_AN_RF2G6_CCOMP, 0xf);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
589
REG_WRITE(ah, AR9285_AN_TOP2, 0xca0358a0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
591
REG_RMW_FIELD(ah, AR9285_AN_RF2G6, AR9285_AN_RF2G6_OFFS, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
592
REG_RMW_FIELD(ah, AR9285_AN_RF2G3, AR9285_AN_RF2G3_PDVCCOMP, 0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
595
regVal = REG_READ(ah, 0x7834);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
597
REG_WRITE(ah, 0x7834, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
599
regVal = REG_READ(ah, 0x7834);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
601
reg_field = MS(REG_READ(ah, 0x7840), AR9285_AN_RXTXBB1_SPARE9);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
603
REG_WRITE(ah, 0x7834, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
606
REG_RMW_FIELD(ah, AR9285_AN_RF2G3, AR9285_AN_RF2G3_PDVCCOMP, 1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
608
reg_field = MS(REG_READ(ah, AR9285_AN_RF2G9), AR9285_AN_RXTXBB1_SPARE9);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
609
REG_RMW_FIELD(ah, AR9285_AN_RF2G3, AR9285_AN_RF2G3_PDVCCOMP, reg_field);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
61
REG_WRITE(ah, AR_PHY_CALMODE, AR_PHY_CALMODE_IQ);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
610
offs_6_1 = MS(REG_READ(ah, AR9285_AN_RF2G6), AR9285_AN_RF2G6_OFFS);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
611
offs_0 = MS(REG_READ(ah, AR9285_AN_RF2G3), AR9285_AN_RF2G3_PDVCCOMP);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
618
if ((!is_reset) && (ah->pacal_info.prev_offset == offset)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
619
if (ah->pacal_info.max_skipcount < MAX_PACAL_SKIPCOUNT)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
620
ah->pacal_info.max_skipcount =
drivers/net/wireless/ath/ath9k/ar9002_calib.c
621
2 * ah->pacal_info.max_skipcount;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
622
ah->pacal_info.skipcount = ah->pacal_info.max_skipcount;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
624
ah->pacal_info.max_skipcount = 1;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
625
ah->pacal_info.skipcount = 0;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
626
ah->pacal_info.prev_offset = offset;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
629
REG_RMW_FIELD(ah, AR9285_AN_RF2G6, AR9285_AN_RF2G6_OFFS, offs_6_1);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
630
REG_RMW_FIELD(ah, AR9285_AN_RF2G3, AR9285_AN_RF2G3_PDVCCOMP, offs_0);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
632
regVal = REG_READ(ah, 0x7834);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
634
REG_WRITE(ah, 0x7834, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
635
regVal = REG_READ(ah, 0x9808);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
637
REG_WRITE(ah, 0x9808, regVal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
640
REG_WRITE(ah, regList[i][0], regList[i][1]);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
642
REG_RMW_FIELD(ah, AR9285_AN_RF2G6, AR9285_AN_RF2G6_CCOMP, ccomp_org);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
645
static void ar9002_hw_pa_cal(struct ath_hw *ah, bool is_reset)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
647
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
648
if (is_reset || !ah->pacal_info.skipcount)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
649
ar9271_hw_pa_cal(ah, is_reset);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
651
ah->pacal_info.skipcount--;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
652
} else if (AR_SREV_9285_12_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
653
if (is_reset || !ah->pacal_info.skipcount)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
654
ar9285_hw_pa_cal(ah, is_reset);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
656
ah->pacal_info.skipcount--;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
66
REG_WRITE(ah, AR_PHY_CALMODE, AR_PHY_CALMODE_ADC_GAIN);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
660
static void ar9002_hw_olc_temp_compensation(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
662
if (OLC_FOR_AR9287_10_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
663
ar9287_hw_olc_temp_compensation(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
664
else if (OLC_FOR_AR9280_20_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
665
ar9280_hw_olc_temp_compensation(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
668
static int ar9002_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
671
struct ath9k_cal_list *currCal = ah->cal_list_curr;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
675
nfcal = !!(REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) & AR_PHY_AGC_CONTROL_NF);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
676
if (ah->caldata) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
677
nfcal_pending = test_bit(NFCAL_PENDING, &ah->caldata->cal_flags);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
679
set_bit(LONGCAL_PENDING, &ah->caldata->cal_flags);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
680
else if (test_bit(LONGCAL_PENDING, &ah->caldata->cal_flags))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
689
if (!ar9002_hw_per_calibration(ah, chan, rxchainmask, currCal))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
693
for (currCal = currCal->calNext; currCal != ah->cal_list_curr;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
70
REG_WRITE(ah, AR_PHY_CALMODE, AR_PHY_CALMODE_ADC_DC_PER);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
700
ah->cal_list_curr = currCal;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
703
ah->cal_list_curr = ah->cal_list;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
709
ath9k_hw_reset_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
720
if (ath9k_hw_getnf(ah, chan)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
727
ret = ath9k_hw_loadnf(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
733
if (ah->caldata)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
735
&ah->caldata->cal_flags);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
736
ath9k_hw_start_nfcal(ah, false);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
738
ar9002_hw_pa_cal(ah, false);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
739
ar9002_hw_olc_temp_compensation(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
747
static bool ar9285_hw_cl_cal(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
749
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
75
REG_SET_BIT(ah, AR_PHY_TIMING_CTRL4(0),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
751
REG_SET_BIT(ah, AR_PHY_CL_CAL_CTL, AR_PHY_CL_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
753
REG_SET_BIT(ah, AR_PHY_CL_CAL_CTL, AR_PHY_PARALLEL_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
754
REG_SET_BIT(ah, AR_PHY_TURBO, AR_PHY_FC_DYN2040_EN);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
755
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
757
REG_CLR_BIT(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
758
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_CAL);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
759
if (!ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
766
REG_CLR_BIT(ah, AR_PHY_TURBO, AR_PHY_FC_DYN2040_EN);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
767
REG_CLR_BIT(ah, AR_PHY_CL_CAL_CTL, AR_PHY_PARALLEL_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
768
REG_CLR_BIT(ah, AR_PHY_CL_CAL_CTL, AR_PHY_CL_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
770
REG_CLR_BIT(ah, AR_PHY_ADC_CTL, AR_PHY_ADC_CTL_OFF_PWDADC);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
771
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_FLTR_CAL);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
772
REG_SET_BIT(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
773
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_CAL);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
774
if (!ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_CAL,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
782
REG_SET_BIT(ah, AR_PHY_ADC_CTL, AR_PHY_ADC_CTL_OFF_PWDADC);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
783
REG_CLR_BIT(ah, AR_PHY_CL_CAL_CTL, AR_PHY_CL_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
784
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_FLTR_CAL);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
789
static bool ar9285_hw_clc(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
79
static bool ar9002_hw_per_calibration(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
801
if (!(ar9285_hw_cl_cal(ah, chan)))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
804
txgain_max = MS(REG_READ(ah, AR_PHY_TX_PWRCTRL7),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
808
clc_gain = (REG_READ(ah, (AR_PHY_TX_GAIN_TBL1+(i<<2))) &
drivers/net/wireless/ath/ath9k/ar9002_calib.c
817
reg_clc_I0 = (REG_READ(ah, (AR_PHY_CLC_TBL1 + (i << 2)))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
819
reg_clc_Q0 = (REG_READ(ah, (AR_PHY_CLC_TBL1 + (i << 2)))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
829
reg_rf2g5_org = REG_READ(ah, AR9285_RF2G5);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
830
if (AR_SREV_9285E_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
831
REG_WRITE(ah, AR9285_RF2G5,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
835
REG_WRITE(ah, AR9285_RF2G5,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
839
retv = ar9285_hw_cl_cal(ah, chan);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
84
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
840
REG_WRITE(ah, AR9285_RF2G5, reg_rf2g5_org);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
845
static bool ar9002_hw_init_cal(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
847
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
849
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
850
if (!ar9285_hw_cl_cal(ah, chan))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
852
} else if (AR_SREV_9285(ah) && AR_SREV_9285_12_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
853
if (!ar9285_hw_clc(ah, chan))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
856
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
857
if (!AR_SREV_9287_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
858
REG_CLR_BIT(ah, AR_PHY_ADC_CTL,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
860
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
865
REG_WRITE(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
866
REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) |
drivers/net/wireless/ath/ath9k/ar9002_calib.c
870
if (!ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
879
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
88
if (!(REG_READ(ah, AR_PHY_TIMING_CTRL4(0)) &
drivers/net/wireless/ath/ath9k/ar9002_calib.c
880
if (!AR_SREV_9287_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
881
REG_SET_BIT(ah, AR_PHY_ADC_CTL,
drivers/net/wireless/ath/ath9k/ar9002_calib.c
883
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9002_calib.c
889
ar9002_hw_pa_cal(ah, true);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
890
ath9k_hw_loadnf(ah, chan);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
891
ath9k_hw_start_nfcal(ah, true);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
893
ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
896
if (AR_SREV_9100(ah) || AR_SREV_9160_10_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
897
ah->supp_cals = IQ_MISMATCH_CAL;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
899
if (AR_SREV_9160_10_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
900
ah->supp_cals |= ADC_GAIN_CAL | ADC_DC_CAL;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
902
if (AR_SREV_9287(ah))
drivers/net/wireless/ath/ath9k/ar9002_calib.c
903
ah->supp_cals &= ~ADC_GAIN_CAL;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
905
if (ar9002_hw_is_cal_supported(ah, chan, ADC_GAIN_CAL)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
906
INIT_CAL(&ah->adcgain_caldata);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
907
INSERT_CAL(ah, &ah->adcgain_caldata);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
91
currCal->calData->calCollect(ah);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
912
if (ar9002_hw_is_cal_supported(ah, chan, ADC_DC_CAL)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
913
INIT_CAL(&ah->adcdc_caldata);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
914
INSERT_CAL(ah, &ah->adcdc_caldata);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
919
if (ar9002_hw_is_cal_supported(ah, chan, IQ_MISMATCH_CAL)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
92
ah->cal_samples++;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
920
INIT_CAL(&ah->iq_caldata);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
921
INSERT_CAL(ah, &ah->iq_caldata);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
925
ah->cal_list_curr = ah->cal_list;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
927
if (ah->cal_list_curr)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
928
ath9k_hw_reset_calibration(ah, ah->cal_list_curr);
drivers/net/wireless/ath/ath9k/ar9002_calib.c
931
if (ah->caldata)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
932
ah->caldata->CalValid = 0;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
94
if (ah->cal_samples >=
drivers/net/wireless/ath/ath9k/ar9002_calib.c
980
static void ar9002_hw_init_cal_settings(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_calib.c
982
if (AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
983
ah->iq_caldata.calData = &iq_cal_multi_sample;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
984
ah->supp_cals = IQ_MISMATCH_CAL;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
988
if (AR_SREV_9160_10_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
989
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_calib.c
990
ah->iq_caldata.calData = &iq_cal_single_sample;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
991
ah->adcgain_caldata.calData =
drivers/net/wireless/ath/ath9k/ar9002_calib.c
993
ah->adcdc_caldata.calData =
drivers/net/wireless/ath/ath9k/ar9002_calib.c
996
ah->iq_caldata.calData = &iq_cal_multi_sample;
drivers/net/wireless/ath/ath9k/ar9002_calib.c
997
ah->adcgain_caldata.calData =
drivers/net/wireless/ath/ath9k/ar9002_calib.c
999
ah->adcdc_caldata.calData =
drivers/net/wireless/ath/ath9k/ar9002_hw.c
101
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
107
static void ar9280_20_hw_init_rxgain_ini(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
111
if (ah->eep_ops->get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_17) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
112
rxgain_type = ah->eep_ops->get_eeprom(ah, EEP_RXGAIN_TYPE);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
115
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
118
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
121
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
124
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
129
static void ar9280_20_hw_init_txgain_ini(struct ath_hw *ah, u32 txgain_type)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
131
if (ah->eep_ops->get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_19) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
133
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
136
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
139
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
144
static void ar9271_hw_init_txgain_ini(struct ath_hw *ah, u32 txgain_type)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
147
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
150
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
154
static void ar9002_hw_init_mode_gain_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
156
u32 txgain_type = ah->eep_ops->get_eeprom(ah, EEP_TXGAIN_TYPE);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
158
if (AR_SREV_9287_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
159
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
161
else if (AR_SREV_9280_20(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
162
ar9280_20_hw_init_rxgain_ini(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
164
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
165
ar9271_hw_init_txgain_ini(ah, txgain_type);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
166
} else if (AR_SREV_9287_11_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
167
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
169
} else if (AR_SREV_9280_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
170
ar9280_20_hw_init_txgain_ini(ah, txgain_type);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
171
} else if (AR_SREV_9285_12_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
174
if (AR_SREV_9285E_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
175
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
178
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
182
if (AR_SREV_9285E_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
183
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
186
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
202
static void ar9002_hw_configpcipowersave(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
210
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
216
for (i = 0; i < ah->iniPcieSerdes.ia_rows; i++) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
217
REG_WRITE(ah, INI_RA(&ah->iniPcieSerdes, i, 0),
drivers/net/wireless/ath/ath9k/ar9002_hw.c
218
INI_RA(&ah->iniPcieSerdes, i, 1));
drivers/net/wireless/ath/ath9k/ar9002_hw.c
221
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
223
REG_WRITE(ah, AR_PCIE_SERDES, 0x9248fc00);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
224
REG_WRITE(ah, AR_PCIE_SERDES, 0x24924924);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
227
REG_WRITE(ah, AR_PCIE_SERDES, 0x28000039);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
228
REG_WRITE(ah, AR_PCIE_SERDES, 0x53160824);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
229
REG_WRITE(ah, AR_PCIE_SERDES, 0xe5980579);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
235
REG_WRITE(ah, AR_PCIE_SERDES, 0x001defff);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
237
REG_WRITE(ah, AR_PCIE_SERDES, 0x1aaabe40);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
238
REG_WRITE(ah, AR_PCIE_SERDES, 0xbe105554);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
239
REG_WRITE(ah, AR_PCIE_SERDES, 0x000e3007);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
242
REG_WRITE(ah, AR_PCIE_SERDES2, 0x00000000);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
244
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
252
REG_CLR_BIT(ah, AR_PCIE_PM_CTRL(ah), AR_PCIE_PM_CTRL_ENA);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
254
val = REG_READ(ah, AR_WA(ah));
drivers/net/wireless/ath/ath9k/ar9002_hw.c
26
static int ar9002_hw_init_mode_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
262
if (ah->config.pcie_waen) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
263
if (ah->config.pcie_waen & AR_WA_D3_L1_DISABLE)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
266
if (AR_SREV_9285(ah) || AR_SREV_9271(ah) || AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
269
} else if (AR_SREV_9280(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
275
if (AR_SREV_9280(ah) || AR_SREV_9285(ah) || AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
28
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
283
if (AR_SREV_9280(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
286
if (AR_SREV_9285E_20(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
289
REG_WRITE(ah, AR_WA(ah), val);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
29
INIT_INI_ARRAY(&ah->iniModes, ar9271Modes_9271);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
291
if (ah->config.pcie_waen) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
292
val = ah->config.pcie_waen;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
295
if (AR_SREV_9285(ah) || AR_SREV_9271(ah) || AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
298
} else if (AR_SREV_9280(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
30
INIT_INI_ARRAY(&ah->iniCommon, ar9271Common_9271);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
31
INIT_INI_ARRAY(&ah->iniModes_9271_ANI_reg, ar9271Modes_9271_ANI_reg);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
311
if (AR_SREV_9285(ah) || AR_SREV_9287(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
314
if (AR_SREV_9285E_20(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
317
REG_WRITE(ah, AR_WA(ah), val);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
320
REG_SET_BIT(ah, AR_PCIE_PM_CTRL(ah), AR_PCIE_PM_CTRL_ENA);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
324
static int ar9002_hw_get_radiorev(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
329
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
331
REG_WRITE(ah, AR_PHY(0x36), 0x00007058);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
333
REG_WRITE(ah, AR_PHY(0x20), 0x00010000);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
335
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
337
val = (REG_READ(ah, AR_PHY(256)) >> 24) & 0xff;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
343
int ar9002_hw_rf_claim(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
347
REG_WRITE(ah, AR_PHY(0), 0x00000007);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
349
val = ar9002_hw_get_radiorev(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
35
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
360
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/ar9002_hw.c
366
ah->hw_version.analog5GhzRev = val;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
371
void ar9002_hw_enable_async_fifo(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
373
if (AR_SREV_9287_13_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
374
REG_SET_BIT(ah, AR_MAC_PCU_ASYNC_FIFO_REG3,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
376
REG_SET_BIT(ah, AR_PHY_MODE, AR_PHY_MODE_ASYNCFIFO);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
377
REG_CLR_BIT(ah, AR_MAC_PCU_ASYNC_FIFO_REG3,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
379
REG_SET_BIT(ah, AR_MAC_PCU_ASYNC_FIFO_REG3,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
38
if (AR_SREV_9287_11_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
384
static void ar9002_hw_init_hang_checks(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
386
if (AR_SREV_9100(ah) || AR_SREV_9160(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
387
ah->config.hw_hang_checks |= HW_BB_RIFS_HANG;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
388
ah->config.hw_hang_checks |= HW_BB_DFS_HANG;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
39
INIT_INI_ARRAY(&ah->iniModes, ar9287Modes_9287_1_1);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
391
if (AR_SREV_9280(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
392
ah->config.hw_hang_checks |= HW_BB_RX_CLEAR_STUCK_HANG;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
394
if (AR_SREV_5416(ah) || AR_SREV_9100(ah) || AR_SREV_9160(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
395
ah->config.hw_hang_checks |= HW_MAC_HANG;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
399
int ar9002_hw_attach_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
40
INIT_INI_ARRAY(&ah->iniCommon, ar9287Common_9287_1_1);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
401
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
402
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
405
ret = ar9002_hw_init_mode_regs(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
41
} else if (AR_SREV_9285_12_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
414
ret = ar5008_hw_attach_phy_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
418
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
419
ar9002_hw_attach_phy_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
42
INIT_INI_ARRAY(&ah->iniModes, ar9285Modes_9285_1_2);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
421
ar9002_hw_attach_calib_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
422
ar9002_hw_attach_mac_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
426
void ar9002_hw_load_ani_reg(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_hw.c
43
INIT_INI_ARRAY(&ah->iniCommon, ar9285Common_9285_1_2);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
436
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
438
for (i = 0; i < ah->iniModes_9271_ANI_reg.ia_rows; i++) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
439
u32 reg = INI_RA(&ah->iniModes_9271_ANI_reg, i, 0);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
44
} else if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
440
u32 val = INI_RA(&ah->iniModes_9271_ANI_reg, i, modesIndex);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
444
val_orig = REG_READ(ah, reg);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
448
REG_WRITE(ah, reg, val|val_orig);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
45
INIT_INI_ARRAY(&ah->iniModes, ar9280Modes_9280_2);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
450
REG_WRITE(ah, reg, val);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
453
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
46
INIT_INI_ARRAY(&ah->iniCommon, ar9280Common_9280_2);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
48
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
50
} else if (AR_SREV_9160_10_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
51
INIT_INI_ARRAY(&ah->iniModes, ar5416Modes_9160);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
52
INIT_INI_ARRAY(&ah->iniCommon, ar5416Common_9160);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
53
if (AR_SREV_9160_11(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
54
INIT_INI_ARRAY(&ah->iniAddac,
drivers/net/wireless/ath/ath9k/ar9002_hw.c
57
INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac_9160);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
59
} else if (AR_SREV_9100_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
60
INIT_INI_ARRAY(&ah->iniModes, ar5416Modes_9100);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
61
INIT_INI_ARRAY(&ah->iniCommon, ar5416Common_9100);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
62
INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac_9100);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
64
INIT_INI_ARRAY(&ah->iniModes, ar5416Modes);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
65
INIT_INI_ARRAY(&ah->iniCommon, ar5416Common);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
66
INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
69
if (!AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
71
INIT_INI_ARRAY(&ah->iniBB_RfGain, ar5416BB_RfGain);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
74
if (!AR_SREV_5416(ah))
drivers/net/wireless/ath/ath9k/ar9002_hw.c
75
INIT_INI_ARRAY(&ah->iniBank6, ar5416Bank6TPC_9100);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
77
INIT_INI_ARRAY(&ah->iniBank6, ar5416Bank6TPC);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
81
if (AR_SREV_9160(ah) || !AR_SREV_5416_22_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
82
struct ar5416IniArray *addac = &ah->iniAddac;
drivers/net/wireless/ath/ath9k/ar9002_hw.c
86
data = devm_kzalloc(ah->dev, size, GFP_KERNEL);
drivers/net/wireless/ath/ath9k/ar9002_hw.c
93
if (!AR_SREV_5416_22_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
98
if (AR_SREV_9287_11_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_hw.c
99
INIT_INI_ARRAY(&ah->iniCckfirNormal,
drivers/net/wireless/ath/ath9k/ar9002_mac.c
109
s0_s = REG_READ(ah, AR_ISR_S0_S);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
110
s1_s = REG_READ(ah, AR_ISR_S1_S);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
112
s0_s = REG_READ(ah, AR_ISR_S0);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
113
REG_WRITE(ah, AR_ISR_S0, s0_s);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
114
s1_s = REG_READ(ah, AR_ISR_S1);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
115
REG_WRITE(ah, AR_ISR_S1, s1_s);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
123
ah->intr_txqs = MS(s0_s, AR_ISR_S0_QCU_TXOK);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
124
ah->intr_txqs |= MS(s0_s, AR_ISR_S0_QCU_TXDESC);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
125
ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXERR);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
126
ah->intr_txqs |= MS(s1_s, AR_ISR_S1_QCU_TXEOL);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
137
if (!AR_SREV_9100(ah) && (isr & AR_ISR_GENTMR)) {
drivers/net/wireless/ath/ath9k/ar9002_mac.c
141
s5_s = REG_READ(ah, AR_ISR_S5_S(ah));
drivers/net/wireless/ath/ath9k/ar9002_mac.c
143
s5_s = REG_READ(ah, AR_ISR_S5);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
146
ah->intr_gen_timer_trigger =
drivers/net/wireless/ath/ath9k/ar9002_mac.c
149
ah->intr_gen_timer_thresh =
drivers/net/wireless/ath/ath9k/ar9002_mac.c
152
if (ah->intr_gen_timer_trigger)
drivers/net/wireless/ath/ath9k/ar9002_mac.c
160
REG_WRITE(ah, AR_ISR_S5, s5_s);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
166
REG_WRITE(ah, AR_ISR, isr);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
167
REG_READ(ah, AR_ISR);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
170
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/ar9002_mac.c
195
REG_WRITE(ah, AR_RC, AR_RC_HOSTIF);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
196
REG_WRITE(ah, AR_RC, 0);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
204
REG_WRITE(ah, AR_INTR_SYNC_CAUSE_CLR(ah), sync_cause);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
205
(void) REG_READ(ah, AR_INTR_SYNC_CAUSE_CLR(ah));
drivers/net/wireless/ath/ath9k/ar9002_mac.c
212
ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
drivers/net/wireless/ath/ath9k/ar9002_mac.c
22
static void ar9002_hw_rx_enable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_mac.c
229
if (AR_SREV_9285(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_mac.c
24
REG_WRITE(ah, AR_CR, AR_CR_RXE(ah));
drivers/net/wireless/ath/ath9k/ar9002_mac.c
316
static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds,
drivers/net/wireless/ath/ath9k/ar9002_mac.c
32
static bool ar9002_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked,
drivers/net/wireless/ath/ath9k/ar9002_mac.c
356
ath9k_hw_updatetxtriglevel(ah, true);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
365
ath9k_hw_updatetxtriglevel(ah, true);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
369
ath9k_hw_updatetxtriglevel(ah, true);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
37
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/ar9002_mac.c
388
static int ar9002_hw_get_duration(struct ath_hw *ah, const void *ds, int index)
drivers/net/wireless/ath/ath9k/ar9002_mac.c
40
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
406
void ath9k_hw_setuprxdesc(struct ath_hw *ah, struct ath_desc *ds,
drivers/net/wireless/ath/ath9k/ar9002_mac.c
419
void ar9002_hw_attach_mac_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_mac.c
42
if (!AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_mac.c
421
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
43
if (REG_READ(ah, AR_INTR_ASYNC_CAUSE(ah)) & AR_INTR_MAC_IRQ) {
drivers/net/wireless/ath/ath9k/ar9002_mac.c
44
if ((REG_READ(ah, AR_RTC_STATUS(ah)) & AR_RTC_STATUS_M(ah))
drivers/net/wireless/ath/ath9k/ar9002_mac.c
46
isr = REG_READ(ah, AR_ISR);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
50
sync_cause = REG_READ(ah, AR_INTR_SYNC_CAUSE(ah)) &
drivers/net/wireless/ath/ath9k/ar9002_mac.c
59
isr = REG_READ(ah, AR_ISR);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
65
isr2 = REG_READ(ah, AR_ISR_S2);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
82
REG_WRITE(ah, AR_ISR_S2, isr2);
drivers/net/wireless/ath/ath9k/ar9002_mac.c
88
isr = REG_READ(ah, AR_ISR_RAC);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
101
REG_WRITE(ah, AR_PHY_CCK_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
104
REG_WRITE(ah, AR_PHY_CCK_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
112
switch (ah->eep_ops->get_eeprom(ah, EEP_FRAC_N_5G)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
135
ath9k_hw_analog_shift_rmw(ah, AR_AN_SYNTH9,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
153
REG_WRITE(ah, AR_PHY_SYNTH_CONTROL, reg32);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
155
ah->curchan = chan;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
168
static void ar9002_hw_spur_mitigate(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
185
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
189
cur_bb_spur = ah->eep_ops->get_spur_channel(ah, i, is2GHz);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
215
REG_CLR_BIT(ah, AR_PHY_FORCE_CLKEN_CCK,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
219
REG_CLR_BIT(ah, AR_PHY_FORCE_CLKEN_CCK,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
225
tmp = REG_READ(ah, AR_PHY_TIMING_CTRL4(0));
drivers/net/wireless/ath/ath9k/ar9002_phy.c
227
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
233
REG_WRITE(ah, AR_PHY_TIMING_CTRL4(0), newVal);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
240
REG_WRITE(ah, AR_PHY_SPUR_REG, newVal);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
270
REG_WRITE(ah, AR_PHY_TIMING11, newVal);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
273
REG_WRITE(ah, AR_PHY_SFCORR_EXT, newVal);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
275
ar5008_hw_cmn_spur_mitigate(ah, chan, bin);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
277
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
280
static void ar9002_olc_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
284
if (!OLC_FOR_AR9280_20_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
287
if (OLC_FOR_AR9287_10_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
288
REG_SET_BIT(ah, AR_PHY_TX_PWRCTRL9,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
290
ath9k_hw_analog_shift_rmw(ah, AR9287_AN_TXPC0,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
297
ah->originalGain[i] =
drivers/net/wireless/ath/ath9k/ar9002_phy.c
298
MS(REG_READ(ah, AR_PHY_TX_GAIN_TBL1 + i * 4),
drivers/net/wireless/ath/ath9k/ar9002_phy.c
300
ah->PDADCdelta = 0;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
304
static u32 ar9002_hw_compute_pll_control(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
311
if (chan && IS_CHAN_5GHZ(chan) && !IS_CHAN_A_FAST_CLOCK(ah, chan)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
312
if (AR_SREV_9280_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
331
static void ar9002_hw_do_getnf(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
336
nf = MS(REG_READ(ah, AR_PHY_CCA), AR9280_PHY_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
339
nf = MS(REG_READ(ah, AR_PHY_EXT_CCA), AR9280_PHY_EXT_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
340
if (IS_CHAN_HT40(ah->curchan))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
343
if (!(ah->rxchainmask & BIT(1)))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
346
nf = MS(REG_READ(ah, AR_PHY_CH1_CCA), AR9280_PHY_CH1_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
349
nf = MS(REG_READ(ah, AR_PHY_CH1_EXT_CCA), AR9280_PHY_CH1_EXT_MINCCA_PWR);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
350
if (IS_CHAN_HT40(ah->curchan))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
354
static void ar9002_hw_set_nf_limits(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
356
if (AR_SREV_9285(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
357
ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9285_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
358
ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9285_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
359
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9285_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
360
} else if (AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
361
ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9287_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
362
ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9287_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
363
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9287_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
364
} else if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
365
ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9271_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
366
ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9271_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
367
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9271_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
369
ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9280_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
370
ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9280_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
371
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9280_2GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
372
ah->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_9280_5GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
373
ah->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_9280_5GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
374
ah->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_9280_5GHZ;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
378
static void ar9002_hw_antdiv_comb_conf_get(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
383
regval = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
395
static void ar9002_hw_antdiv_comb_conf_set(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
400
regval = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
411
REG_WRITE(ah, AR_PHY_MULTICHAIN_GAIN_CTL, regval);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
416
static void ar9002_hw_set_bt_ant_diversity(struct ath_hw *ah, bool enable)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
418
struct ath_btcoex_hw *btcoex = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/ar9002_phy.c
430
REG_WRITE(ah, AR_BT_COEX_MODE2, btcoex->bt_coex_mode2);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
432
REG_WRITE(ah, AR_PHY_SWITCH_COM, ATH_BT_COEX_ANT_DIV_SWITCH_COM);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
433
REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0, 0xf0000000);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
445
REG_WRITE(ah, AR_BT_COEX_MODE2, btcoex->bt_coex_mode2);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
451
REG_WRITE(ah, AR_PHY_SWITCH_COM, 0);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
452
REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0, 0, 0xf0000000);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
455
regval = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
467
REG_WRITE(ah, AR_PHY_MULTICHAIN_GAIN_CTL, regval);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
469
regval = REG_READ(ah, AR_PHY_CCK_DETECT);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
472
REG_WRITE(ah, AR_PHY_CCK_DETECT, regval);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
477
static void ar9002_hw_spectral_scan_config(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
484
REG_CLR_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
488
REG_SET_BIT(ah, AR_PHY_RADAR_0, AR_PHY_RADAR_0_FFT_ENA);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
489
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN, AR_PHY_SPECTRAL_SCAN_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
491
if (AR_SREV_9280(ah))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
497
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN, repeat_bit);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
499
REG_CLR_BIT(ah, AR_PHY_SPECTRAL_SCAN, repeat_bit);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
507
if (AR_SREV_9280(ah))
drivers/net/wireless/ath/ath9k/ar9002_phy.c
516
if (AR_SREV_9280(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
517
REG_RMW_FIELD(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
520
REG_RMW_FIELD(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
522
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
526
REG_RMW_FIELD(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
528
REG_RMW_FIELD(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
534
static void ar9002_hw_spectral_scan_trigger(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
536
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN, AR_PHY_SPECTRAL_SCAN_ENABLE);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
538
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
542
static void ar9002_hw_spectral_scan_wait(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
544
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
547
if (!ath9k_hw_wait(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
555
static void ar9002_hw_tx99_start(struct ath_hw *ah, u32 qnum)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
557
REG_SET_BIT(ah, 0x9864, 0x7f000);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
558
REG_SET_BIT(ah, 0x9924, 0x7f00fe);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
559
REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_DIS);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
560
REG_WRITE(ah, AR_CR, AR_CR_RXD);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
561
REG_WRITE(ah, AR_DLCL_IFS(qnum), 0);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
562
REG_WRITE(ah, AR_D_GBL_IFS_SIFS, 20);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
563
REG_WRITE(ah, AR_D_GBL_IFS_EIFS, 20);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
564
REG_WRITE(ah, AR_D_FPCTL, 0x10|qnum);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
565
REG_WRITE(ah, AR_TIME_OUT, 0x00000400);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
566
REG_WRITE(ah, AR_DRETRY_LIMIT(qnum), 0xffffffff);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
567
REG_SET_BIT(ah, AR_QMISC(qnum), AR_Q_MISC_DCU_EARLY_TERM_REQ);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
570
static void ar9002_hw_tx99_stop(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
572
REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_DIS);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
575
void ar9002_hw_attach_phy_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
577
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
578
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
599
ar9002_hw_set_nf_limits(ah);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
66
static int ar9002_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9002_phy.c
73
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
76
reg32 = REG_READ(ah, AR_PHY_SYNTH_CONTROL);
drivers/net/wireless/ath/ath9k/ar9002_phy.c
88
if (AR_SREV_9287_11_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9002_phy.c
91
REG_WRITE_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
94
REG_WRITE_ARRAY(&ah->iniCckfirNormal,
drivers/net/wireless/ath/ath9k/ar9002_phy.c
98
txctl = REG_READ(ah, AR_PHY_CCK_TX_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
106
static void ar9003_aic_gain_table(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
111
REG_WRITE(ah, AR_PHY_BT_COEX_4, 0x2c200a00);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
112
REG_WRITE(ah, AR_PHY_BT_COEX_5, 0x5c4e4438);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
155
REG_WRITE(ah, (AR_PHY_AIC_SRAM_ADDR_B0 + 0x3000),
drivers/net/wireless/ath/ath9k/ar9003_aic.c
160
REG_WRITE(ah, (AR_PHY_AIC_SRAM_DATA_B0 + 0x3000),
drivers/net/wireless/ath/ath9k/ar9003_aic.c
165
static u8 ar9003_aic_cal_start(struct ath_hw *ah, u8 min_valid_count)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
167
struct ath9k_hw_aic *aic = &ah->btcoex_hw.aic;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
171
REG_WRITE(ah, (AR_PHY_AIC_SRAM_ADDR_B0 + 0x3000),
drivers/net/wireless/ath/ath9k/ar9003_aic.c
176
REG_WRITE(ah, (AR_PHY_AIC_SRAM_DATA_B0 + 0x3000), 0);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
180
REG_WRITE(ah, AR_PHY_AIC_CTRL_0_B0,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
190
REG_WRITE(ah, AR_PHY_AIC_CTRL_0_B1,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
197
REG_WRITE(ah, AR_PHY_AIC_CTRL_1_B0,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
206
REG_WRITE(ah, AR_PHY_AIC_CTRL_1_B1,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
210
REG_WRITE(ah, AR_PHY_AIC_CTRL_2_B0,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
220
REG_WRITE(ah, AR_PHY_AIC_CTRL_3_B0,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
230
REG_WRITE(ah, AR_PHY_AIC_CTRL_4_B0,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
237
REG_WRITE(ah, AR_PHY_AIC_CTRL_4_B1,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
244
ar9003_aic_gain_table(ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
247
REG_WRITE(ah, ATH_AIC_BT_JUPITER_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
248
(REG_READ(ah, ATH_AIC_BT_JUPITER_CTRL) |
drivers/net/wireless/ath/ath9k/ar9003_aic.c
251
aic->aic_cal_start_time = REG_READ(ah, AR_TSF_L32);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
254
REG_CLR_BIT(ah, AR_PHY_AIC_CTRL_0_B1, AR_PHY_AIC_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
255
REG_SET_BIT(ah, AR_PHY_AIC_CTRL_0_B1, AR_PHY_AIC_CAL_CH_VALID_RESET);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
256
REG_SET_BIT(ah, AR_PHY_AIC_CTRL_0_B1, AR_PHY_AIC_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
264
static bool ar9003_aic_cal_post_process(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
266
struct ath9k_hw_aic *aic = &ah->btcoex_hw.aic;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
40
static bool ar9003_hw_is_aic_enabled(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
42
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
435
static void ar9003_aic_cal_done(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
437
struct ath9k_hw_aic *aic = &ah->btcoex_hw.aic;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
440
REG_WRITE(ah, ATH_AIC_BT_JUPITER_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
441
(REG_READ(ah, ATH_AIC_BT_JUPITER_CTRL) &
drivers/net/wireless/ath/ath9k/ar9003_aic.c
444
if (ar9003_aic_cal_post_process(ah))
drivers/net/wireless/ath/ath9k/ar9003_aic.c
450
static u8 ar9003_aic_cal_continue(struct ath_hw *ah, bool cal_once)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
452
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
453
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
454
struct ath9k_hw_aic *aic = &ah->btcoex_hw.aic;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
466
if ((REG_READ(ah, AR_PHY_AIC_CTRL_0_B1) &
drivers/net/wireless/ath/ath9k/ar9003_aic.c
478
if ((REG_READ(ah, AR_PHY_AIC_CTRL_0_B1) &
drivers/net/wireless/ath/ath9k/ar9003_aic.c
484
REG_WRITE(ah, AR_PHY_AIC_SRAM_ADDR_B1,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
490
value = REG_READ(ah, AR_PHY_AIC_SRAM_DATA_B1);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
504
ar9003_aic_cal_done(ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
507
REG_CLR_BIT(ah, AR_PHY_AIC_CTRL_0_B1, AR_PHY_AIC_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
508
REG_SET_BIT(ah, AR_PHY_AIC_CTRL_0_B1,
drivers/net/wireless/ath/ath9k/ar9003_aic.c
510
REG_SET_BIT(ah, AR_PHY_AIC_CTRL_0_B1, AR_PHY_AIC_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
517
u8 ar9003_aic_calibration(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
519
struct ath9k_hw_aic *aic = &ah->btcoex_hw.aic;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
524
cal_ret = ar9003_aic_cal_start(ah, 1);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
527
cal_ret = ar9003_aic_cal_continue(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
539
u8 ar9003_aic_start_normal(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
541
struct ath9k_hw_aic *aic = &ah->btcoex_hw.aic;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
547
ar9003_aic_gain_table(ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
549
REG_WRITE(ah, AR_PHY_AIC_SRAM_ADDR_B1, ATH_AIC_SRAM_AUTO_INCREMENT);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
552
REG_WRITE(ah, AR_PHY_AIC_SRAM_DATA_B1, aic->aic_sram[i]);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
556
REG_WRITE(ah, 0xa6b0, 0x80);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
557
REG_WRITE(ah, 0xa6b4, 0x5b2df0);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
558
REG_WRITE(ah, 0xa6b8, 0x10762cc8);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
559
REG_WRITE(ah, 0xa6bc, 0x1219a4b);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
560
REG_WRITE(ah, 0xa6c0, 0x1e01);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
561
REG_WRITE(ah, 0xb6b4, 0xf0);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
562
REG_WRITE(ah, 0xb6c0, 0x1e01);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
563
REG_WRITE(ah, 0xb6b0, 0x81);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
564
REG_WRITE(ah, AR_PHY_65NM_CH1_RXTX4, 0x40000000);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
571
u8 ar9003_aic_cal_reset(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
573
struct ath9k_hw_aic *aic = &ah->btcoex_hw.aic;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
579
u8 ar9003_aic_calibration_single(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
581
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_aic.c
587
(void) ar9003_aic_cal_start(ah, num_chan);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
588
cal_ret = ar9003_aic_cal_continue(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_aic.c
593
void ar9003_hw_attach_aic_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_aic.c
595
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.h
55
u8 ar9003_aic_calibration(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.h
56
u8 ar9003_aic_start_normal(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.h
57
u8 ar9003_aic_cal_reset(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_aic.h
58
u8 ar9003_aic_calibration_single(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1003
static void __ar955x_tx_iq_cal_sort(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1007
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
102
cur_caldata->calPostProc(ah, numChains);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1036
static bool ar955x_tx_iq_cal_median(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1047
__ar955x_tx_iq_cal_sort(ah, coeff, i, nmeasurement);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1053
static void ar9003_hw_tx_iq_cal_post_proc(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1057
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1059
AR_PHY_TX_IQCAL_STATUS_B0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1075
if (!(ah->txchainmask & (1 << i)))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1078
nmeasurement = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1079
AR_PHY_TX_IQCAL_STATUS_B0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1088
if (REG_READ(ah, txiqcal_status[i]) &
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1098
REG_RMW_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1099
AR_PHY_CHAN_INFO_MEMORY(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1104
iq_res[idx] = REG_READ(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1108
REG_RMW_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1109
AR_PHY_CHAN_INFO_MEMORY(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1114
iq_res[idx + 1] = 0xffff & REG_READ(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1123
if (!ar9003_hw_calc_iq_corr(ah, i, iq_res,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
113
ar9003_hw_setup_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1142
if (AR_SREV_9550(ah))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1143
outlier_detect = ar955x_tx_iq_cal_median(ah, &coeff,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1146
ar9003_hw_tx_iq_cal_outlier_detection(ah, &coeff, is_reusable);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1155
static void ar9003_hw_tx_iq_cal_reload(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1157
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1164
AR_PHY_TX_IQCAL_CORR_COEFF_B0(ah, i);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1165
if (!AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
117
ath9k_hw_reset_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1177
if (!(ah->txchainmask & (1 << i)))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1182
REG_RMW_FIELD(ah, tx_corr_coeff[im][i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1186
REG_RMW_FIELD(ah, tx_corr_coeff[im][i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1192
REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1194
REG_RMW_FIELD(ah, AR_PHY_RX_IQCAL_CORR_B0,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1198
static void ar9003_hw_manual_peak_cal(struct ath_hw *ah, u8 chain, bool is_2g)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1203
if (AR_SREV_9550(ah) || AR_SREV_9531(ah))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1205
else if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1211
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_GAINSTAGES(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1213
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_GAINSTAGES(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1216
if (AR_SREV_9003_PCOEM(ah) || AR_SREV_9330_11(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1218
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_GAINSTAGES(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1221
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_GAINSTAGES(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1228
REG_RMW_FIELD(ah, AR_PHY_65NM_RXTX2(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
123
static int ar9003_hw_calibrate(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1230
REG_RMW_FIELD(ah, AR_PHY_65NM_RXTX2(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1236
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1238
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1240
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1243
if (AR_SREV_9330_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1244
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1248
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1252
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1261
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1265
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1269
agc_out = REG_READ_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
127
struct ath9k_cal_list *currCal = ah->cal_list_curr;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1276
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1279
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1285
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_GAINSTAGES(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1290
REG_RMW_FIELD(ah, AR_PHY_65NM_RXTX2(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1295
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1299
static void ar9003_hw_do_pcoem_manual_peak_cal(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1303
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1306
if ((ah->caps.hw_caps & ATH9K_HW_CAP_RTT) && !run_rtt_cal)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1310
if (!(ah->rxchainmask & (1 << i)))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1312
ar9003_hw_manual_peak_cal(ah, i, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1318
if ((ah->caps.hw_caps & ATH9K_HW_CAP_RTT) && caldata) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1320
caldata->caldac[0] = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1323
caldata->caldac[1] = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1327
caldata->caldac[0] = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1330
caldata->caldac[1] = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1337
static void ar9003_hw_cl_cal_post_proc(struct ath_hw *ah, bool is_reusable)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1342
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1346
if (!caldata || !(ah->enabled_cals & TX_CL_CAL))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1349
txclcal_done = !!(REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) &
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1354
if (!(ah->txchainmask & (1 << i)))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1357
REG_WRITE(ah, CL_TAB_ENTRY(cl_idx[i]),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1362
if (!(ah->txchainmask & (1 << i)))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1366
REG_READ(ah, CL_TAB_ENTRY(cl_idx[i]));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1372
static void ar9003_hw_init_cal_common(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1374
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1377
ah->cal_list = ah->cal_list_last = ah->cal_list_curr = NULL;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1379
INIT_CAL(&ah->iq_caldata);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1380
INSERT_CAL(ah, &ah->iq_caldata);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1383
ah->cal_list_curr = ah->cal_list;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1385
if (ah->cal_list_curr)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1386
ath9k_hw_reset_calibration(ah, ah->cal_list_curr);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1392
static bool ar9003_hw_init_cal_pcoem(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1395
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1396
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1400
bool rtt = !!(ah->caps.hw_caps & ATH9K_HW_CAP_RTT);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1407
ar9003_hw_set_chain_masks(ah, ah->caps.rx_chainmask, ah->caps.tx_chainmask);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1410
if (!ar9003_hw_rtt_restore(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
142
iscaldone = ar9003_hw_per_calibration(ah, chan,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1420
ar9003_hw_rtt_enable(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1421
ar9003_hw_rtt_set_mask(ah, 0x00);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1422
ar9003_hw_rtt_clear_hist(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1427
agc_ctrl = REG_READ(ah, AR_PHY_AGC_CONTROL(ah));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1432
REG_WRITE(ah, AR_PHY_AGC_CONTROL(ah), agc_ctrl);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1434
if (ah->ah_flags & AH_FASTCC)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1439
if (ah->enabled_cals & TX_CL_CAL) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1441
REG_CLR_BIT(ah, AR_PHY_CL_CAL_CTL,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1444
REG_SET_BIT(ah, AR_PHY_CL_CAL_CTL,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
145
ah->cal_list_curr = currCal = currCal->calNext;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1451
!(ah->enabled_cals & TX_IQ_CAL))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1455
REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_1(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1463
if (ah->enabled_cals & TX_IQ_ON_AGC_CAL) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1465
REG_SET_BIT(ah, AR_PHY_TX_IQCAL_CONTROL_0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1468
REG_CLR_BIT(ah, AR_PHY_TX_IQCAL_CONTROL_0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1474
if (ath9k_hw_mci_is_enabled(ah) && IS_CHAN_2GHZ(chan) && run_agc_cal)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1475
ar9003_mci_init_cal_req(ah, &is_reusable);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1477
if (REG_READ(ah, AR_PHY_CL_CAL_CTL) & AR_PHY_CL_CAL_ENABLE) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1478
rx_delay = REG_READ(ah, AR_PHY_RX_DELAY);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1480
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1482
REG_WRITE(ah, AR_PHY_RX_DELAY, AR_PHY_RX_DELAY_DELAY);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1483
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1486
if (run_agc_cal || !(ah->ah_flags & AH_FASTCC)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1488
REG_WRITE(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1489
REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) |
drivers/net/wireless/ath/ath9k/ar9003_calib.c
149
ath9k_hw_reset_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1493
status = ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1497
ar9003_hw_do_pcoem_manual_peak_cal(ah, chan, run_rtt_cal);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1500
if (REG_READ(ah, AR_PHY_CL_CAL_CTL) & AR_PHY_CL_CAL_ENABLE) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1501
REG_WRITE(ah, AR_PHY_RX_DELAY, rx_delay);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1505
if (ath9k_hw_mci_is_enabled(ah) && IS_CHAN_2GHZ(chan) && run_agc_cal)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1506
ar9003_mci_init_cal_done(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1510
REG_WRITE(ah, AR_PHY_AGC_CONTROL(ah), agc_ctrl);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1515
ar9003_hw_rtt_disable(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1524
ar9003_hw_tx_iq_cal_post_proc(ah, 0, is_reusable);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1526
ar9003_hw_tx_iq_cal_reload(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1528
ar9003_hw_cl_cal_post_proc(ah, is_reusable);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1532
if (!ath9k_hw_rfbus_req(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1533
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1536
ar9003_hw_rtt_fill_hist(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1539
ar9003_hw_rtt_load_hist(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1542
ath9k_hw_rfbus_done(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1545
ar9003_hw_rtt_disable(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1549
ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1551
ar9003_hw_init_cal_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1556
static bool do_ar9003_agc_cal(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1558
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1561
REG_WRITE(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1562
REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) |
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1565
status = ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1579
static bool ar9003_hw_init_cal_soc(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
158
if (longcal && ath9k_hw_getnf(ah, chan)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1588
ar9003_hw_set_chain_masks(ah, ah->caps.rx_chainmask, ah->caps.tx_chainmask);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1590
if (ah->enabled_cals & TX_CL_CAL) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1591
REG_SET_BIT(ah, AR_PHY_CL_CAL_CTL, AR_PHY_CL_CAL_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1599
REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_1(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1607
if (ah->enabled_cals & TX_IQ_ON_AGC_CAL) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1608
if (REG_READ_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1624
txiqcal_done = ar9003_hw_tx_iq_cal_run(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1625
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1627
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1630
if (AR_SREV_9550(ah) && IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1631
if (!ar9003_hw_dynamic_osdac_selection(ah, txiqcal_done))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1636
if (run_agc_cal || !(ah->ah_flags & AH_FASTCC)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1638
if (!(ah->rxchainmask & (1 << i)))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
164
ret = ath9k_hw_loadnf(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1641
ar9003_hw_manual_peak_cal(ah, i,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1653
if (!AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1654
status = do_ar9003_agc_cal(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1659
ar9003_hw_tx_iq_cal_post_proc(ah, 0, false);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1662
status = do_ar9003_agc_cal(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1667
status = do_ar9003_agc_cal(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1670
ar9003_hw_tx_iq_cal_post_proc(ah, i, false);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1677
ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1679
ar9003_hw_init_cal_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1684
void ar9003_hw_attach_calib_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1686
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1687
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
1689
if (AR_SREV_9003_PCOEM(ah))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
169
ath9k_hw_start_nfcal(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
175
static void ar9003_hw_iqcal_collect(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
181
if (ah->txchainmask & BIT(i)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
182
ah->totalPowerMeasI[i] +=
drivers/net/wireless/ath/ath9k/ar9003_calib.c
183
REG_READ(ah, AR_PHY_CAL_MEAS_0(i));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
184
ah->totalPowerMeasQ[i] +=
drivers/net/wireless/ath/ath9k/ar9003_calib.c
185
REG_READ(ah, AR_PHY_CAL_MEAS_1(i));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
186
ah->totalIqCorrMeas[i] +=
drivers/net/wireless/ath/ath9k/ar9003_calib.c
187
(int32_t) REG_READ(ah, AR_PHY_CAL_MEAS_2(i));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
188
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
190
ah->cal_samples, i, ah->totalPowerMeasI[i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
191
ah->totalPowerMeasQ[i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
192
ah->totalIqCorrMeas[i]);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
197
static void ar9003_hw_iqcalibrate(struct ath_hw *ah, u8 numChains)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
199
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
211
powerMeasI = ah->totalPowerMeasI[i];
drivers/net/wireless/ath/ath9k/ar9003_calib.c
212
powerMeasQ = ah->totalPowerMeasQ[i];
drivers/net/wireless/ath/ath9k/ar9003_calib.c
213
iqCorrMeas = ah->totalIqCorrMeas[i];
drivers/net/wireless/ath/ath9k/ar9003_calib.c
220
i, ah->totalIqCorrMeas[i]);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
271
REG_READ(ah, offset_array[i]));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
273
if (AR_SREV_9565(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_calib.c
278
REG_RMW_FIELD(ah, offset_array[i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
281
REG_RMW_FIELD(ah, offset_array[i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
288
REG_READ(ah, offset_array[i]));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
293
REG_READ(ah, offset_array[i]));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
300
REG_SET_BIT(ah, AR_PHY_RX_IQCAL_CORR_B0,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
306
REG_READ(ah, AR_PHY_RX_IQCAL_CORR_B0));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
317
static void ar9003_hw_init_cal_settings(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
319
ah->iq_caldata.calData = &iq_cal_single_sample;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
321
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
322
ah->enabled_cals |= TX_IQ_CAL;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
323
if (AR_SREV_9485_OR_LATER(ah) && !AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
324
ah->enabled_cals |= TX_IQ_ON_AGC_CAL;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
327
ah->supp_cals = IQ_MISMATCH_CAL;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
333
static bool ar9003_hw_dynamic_osdac_selection(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
336
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
349
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
351
REG_CLR_BIT(ah, AR_PHY_TX_IQCAL_CONTROL_0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
353
REG_WRITE(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
354
REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) | AR_PHY_AGC_CONTROL_CAL);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
356
status = ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
370
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
372
REG_CLR_BIT(ah, AR_PHY_CL_CAL_CTL,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
374
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
376
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
38
static void ar9003_hw_setup_calibration(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
384
osdac_ch0 = (REG_READ(ah, AR_PHY_65NM_CH0_BB1) >> 30) & 0x3;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
385
osdac_ch1 = (REG_READ(ah, AR_PHY_65NM_CH1_BB1) >> 30) & 0x3;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
386
osdac_ch2 = (REG_READ(ah, AR_PHY_65NM_CH2_BB1) >> 30) & 0x3;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
388
REG_SET_BIT(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
390
REG_WRITE(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
391
REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) | AR_PHY_AGC_CONTROL_CAL);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
393
status = ath9k_hw_wait(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
402
REG_CLR_BIT(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
407
REG_WRITE(ah, AR_PHY_65NM_CH0_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
408
((REG_READ(ah, AR_PHY_65NM_CH0_BB3) & 0xfffffcff) | (1 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
409
REG_WRITE(ah, AR_PHY_65NM_CH1_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
41
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
410
((REG_READ(ah, AR_PHY_65NM_CH1_BB3) & 0xfffffcff) | (1 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
411
REG_WRITE(ah, AR_PHY_65NM_CH2_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
412
((REG_READ(ah, AR_PHY_65NM_CH2_BB3) & 0xfffffcff) | (1 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
414
temp = REG_READ(ah, AR_PHY_65NM_CH0_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
418
temp = REG_READ(ah, AR_PHY_65NM_CH1_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
422
temp = REG_READ(ah, AR_PHY_65NM_CH2_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
429
REG_WRITE(ah, AR_PHY_65NM_CH0_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
430
((REG_READ(ah, AR_PHY_65NM_CH0_BB3) & 0xfffffcff) | (2 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
431
REG_WRITE(ah, AR_PHY_65NM_CH1_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
432
((REG_READ(ah, AR_PHY_65NM_CH1_BB3) & 0xfffffcff) | (2 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
433
REG_WRITE(ah, AR_PHY_65NM_CH2_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
434
((REG_READ(ah, AR_PHY_65NM_CH2_BB3) & 0xfffffcff) | (2 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
436
temp = REG_READ(ah, AR_PHY_65NM_CH0_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
440
temp = REG_READ(ah, AR_PHY_65NM_CH1_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
444
temp = REG_READ(ah, AR_PHY_65NM_CH2_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
451
REG_WRITE(ah, AR_PHY_65NM_CH0_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
452
((REG_READ(ah, AR_PHY_65NM_CH0_BB3) & 0xfffffcff) | (3 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
453
REG_WRITE(ah, AR_PHY_65NM_CH1_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
454
((REG_READ(ah, AR_PHY_65NM_CH1_BB3) & 0xfffffcff) | (3 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
455
REG_WRITE(ah, AR_PHY_65NM_CH2_BB3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
456
((REG_READ(ah, AR_PHY_65NM_CH2_BB3) & 0xfffffcff) | (3 << 8)));
drivers/net/wireless/ath/ath9k/ar9003_calib.c
458
temp = REG_READ(ah, AR_PHY_65NM_CH0_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
462
temp = REG_READ(ah, AR_PHY_65NM_CH1_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
466
temp = REG_READ(ah, AR_PHY_65NM_CH2_BB3);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
481
val = REG_READ(ah, AR_PHY_65NM_CH0_BB1) & 0x3fffffff;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
483
REG_WRITE(ah, AR_PHY_65NM_CH0_BB1, val);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
50
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
502
val = REG_READ(ah, AR_PHY_65NM_CH1_BB1) & 0x3fffffff;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
504
REG_WRITE(ah, AR_PHY_65NM_CH1_BB1, val);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
523
val = REG_READ(ah, AR_PHY_65NM_CH2_BB1) & 0x3fffffff;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
525
REG_WRITE(ah, AR_PHY_65NM_CH2_BB1, val);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
53
REG_WRITE(ah, AR_PHY_CALMODE, AR_PHY_CALMODE_IQ);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
534
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
536
REG_SET_BIT(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
542
REG_SET_BIT(ah, AR_PHY_TX_IQCAL_CONTROL_0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
551
static bool ar9003_hw_solve_iq_cal(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
567
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
59
REG_SET_BIT(ah, AR_PHY_TIMING4, AR_PHY_TIMING4_DO_CAL);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
599
static s32 ar9003_hw_find_mag_approx(struct ath_hw *ah, s32 in_re, s32 in_im)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
618
static bool ar9003_hw_calc_iq_corr(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
637
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
72
static bool ar9003_hw_per_calibration(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
739
mag1 = ar9003_hw_find_mag_approx(ah, cos_2phi_1, sin_2phi_1);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
740
mag2 = ar9003_hw_find_mag_approx(ah, cos_2phi_2, sin_2phi_2);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
755
if (!ar9003_hw_solve_iq_cal(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
77
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
83
if (REG_READ(ah, AR_PHY_TIMING4) & AR_PHY_TIMING4_DO_CAL)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
888
static void ar9003_hw_tx_iq_cal_outlier_detection(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
89
cur_caldata->calCollect(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
895
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
90
ah->cal_samples++;
drivers/net/wireless/ath/ath9k/ar9003_calib.c
900
AR_PHY_TX_IQCAL_CORR_COEFF_B0(ah, i);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
901
if (!AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
914
if (!(ah->txchainmask & (1 << i)))
drivers/net/wireless/ath/ath9k/ar9003_calib.c
916
nmeasurement = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
917
AR_PHY_TX_IQCAL_STATUS_B0(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
92
if (ah->cal_samples >= cur_caldata->calNumSamples) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
926
if (!AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_calib.c
949
REG_RMW_FIELD(ah, tx_corr_coeff[im][i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
953
REG_RMW_FIELD(ah, tx_corr_coeff[im][i],
drivers/net/wireless/ath/ath9k/ar9003_calib.c
965
REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_3,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
967
REG_RMW_FIELD(ah, AR_PHY_RX_IQCAL_CORR_B0,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
980
static bool ar9003_hw_tx_iq_cal_run(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_calib.c
982
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_calib.c
985
tx_gain_forced = REG_READ_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
988
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_calib.c
991
REG_RMW_FIELD(ah, AR_PHY_TX_IQCAL_START(ah),
drivers/net/wireless/ath/ath9k/ar9003_calib.c
994
if (!ath9k_hw_wait(ah, AR_PHY_TX_IQCAL_START(ah),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
2958
static int ath9k_hw_ar9300_check_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
2973
static u32 ath9k_hw_ar9300_get_eeprom(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
2976
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3003
if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3016
static bool ar9300_eeprom_read_byte(struct ath_hw *ah, int address,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3021
if (unlikely(!ath9k_hw_nvram_read(ah, address / 2, &val)))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3028
static bool ar9300_eeprom_read_word(struct ath_hw *ah, int address,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3033
if (unlikely(!ath9k_hw_nvram_read(ah, address / 2, &val)))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3042
static bool ar9300_read_eeprom(struct ath_hw *ah, int address, u8 *buffer,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3045
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3059
if (!ar9300_eeprom_read_byte(ah, address--, buffer++))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3066
if (!ar9300_eeprom_read_word(ah, address, buffer))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3074
if (!ar9300_eeprom_read_byte(ah, address, buffer))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3085
static bool ar9300_otp_read_word(struct ath_hw *ah, int addr, u32 *data)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3087
REG_READ(ah, AR9300_OTP_BASE(ah) + (4 * addr));
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3089
if (!ath9k_hw_wait(ah, AR9300_OTP_STATUS(ah), AR9300_OTP_STATUS_TYPE,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3093
*data = REG_READ(ah, AR9300_OTP_READ_DATA(ah));
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3097
static bool ar9300_read_otp(struct ath_hw *ah, int address, u8 *buffer,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3105
if (!ar9300_otp_read_word(ah, (address - i) / 4, &data))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3143
static bool ar9300_uncompress_block(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3153
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3180
static int ar9300_compress_decision(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3187
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3217
ar9300_uncompress_block(ah, mptr, mdata_size,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3227
typedef bool (*eeprom_read_op)(struct ath_hw *ah, int address, u8 *buffer,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3236
static bool ar9300_check_eeprom_header(struct ath_hw *ah, eeprom_read_op read,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3241
if (!read(ah, base_addr, header, 4))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3247
static int ar9300_eeprom_restore_flash(struct ath_hw *ah, u8 *mptr,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3254
if (!ath9k_hw_nvram_read(ah, i, data))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3266
static int ar9300_eeprom_restore_internal(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3278
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3282
if (ath9k_hw_use_flash(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3285
if (ar9300_eeprom_restore_flash(ah, mptr, mdata_size))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3302
if (AR_SREV_9485(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3304
else if (AR_SREV_9330(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3310
if (ar9300_check_eeprom_header(ah, read, cptr))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3316
if (ar9300_check_eeprom_header(ah, read, cptr))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3322
if (ar9300_check_eeprom_header(ah, read, cptr))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3328
if (ar9300_check_eeprom_header(ah, read, cptr))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3333
if (ar9300_check_eeprom_header(ah, read, cptr))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3342
if (!read(ah, cptr, word, COMP_HDR_LEN))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3353
if ((!AR_SREV_9485(ah) && length >= 1024) ||
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3354
(AR_SREV_9485(ah) && length > EEPROM_DATA_LEN_9485) ||
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3362
read(ah, cptr, word, COMP_HDR_LEN + osize + COMP_CKSUM_LEN);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3368
ar9300_compress_decision(ah, it, code, reference, mptr,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3390
static bool ath9k_hw_ar9300_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3392
u8 *mptr = (u8 *) &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3394
if (ar9300_eeprom_restore_internal(ah, mptr,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3440
static u32 ar9003_dump_cal_data(struct ath_hw *ah, char *buf, u32 len, u32 size,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3443
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3494
static u32 ath9k_hw_ar9003_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3497
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3507
len = ar9003_dump_cal_data(ah, buf, len, size, true);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3515
len = ar9003_dump_cal_data(ah, buf, len, size, false);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3522
PR_EEP("EEPROM Version", ah->eeprom.ar9300_eep.eepromVersion);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3566
ah->eeprom.ar9300_eep.macAddr);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3574
static u32 ath9k_hw_ar9003_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3582
static int ath9k_hw_ar9300_get_eeprom_ver(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3584
return ah->eeprom.ar9300_eep.eepromVersion;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3588
static int ath9k_hw_ar9300_get_eeprom_rev(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3593
static struct ar9300_modal_eep_header *ar9003_modal_header(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3596
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3604
static void ar9003_hw_xpa_bias_level_apply(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3606
int bias = ar9003_modal_header(ah, is2ghz)->xpaBiasLvl;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3608
if (AR_SREV_9485(ah) || AR_SREV_9330(ah) || AR_SREV_9340(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3609
AR_SREV_9531(ah) || AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3610
REG_RMW_FIELD(ah, AR_CH0_TOP2(ah), AR_CH0_TOP2_XPABIASLVL, bias);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3611
else if (AR_SREV_9462(ah) || AR_SREV_9550(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3612
REG_RMW_FIELD(ah, AR_CH0_TOP(ah), AR_CH0_TOP_XPABIASLVL, bias);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3614
REG_RMW_FIELD(ah, AR_CH0_TOP(ah), AR_CH0_TOP_XPABIASLVL, bias);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3615
REG_RMW_FIELD(ah, AR_CH0_THERM(ah),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3618
REG_RMW_FIELD(ah, AR_CH0_THERM(ah),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3623
static u16 ar9003_switch_com_spdt_get(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3625
return le16_to_cpu(ar9003_modal_header(ah, is2ghz)->switchcomspdt);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3628
u32 ar9003_hw_ant_ctrl_common_get(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3630
return le32_to_cpu(ar9003_modal_header(ah, is2ghz)->antCtrlCommon);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3633
u32 ar9003_hw_ant_ctrl_common_2_get(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3635
return le32_to_cpu(ar9003_modal_header(ah, is2ghz)->antCtrlCommon2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3638
static u16 ar9003_hw_ant_ctrl_chain_get(struct ath_hw *ah, int chain,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3641
__le16 val = ar9003_modal_header(ah, is2ghz)->antCtrlChain[chain];
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3645
static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3647
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3648
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3657
if (AR_SREV_9485(ah) && (ar9003_hw_get_rx_gain_idx(ah) == 0)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3658
if (ah->config.xlna_gpio)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3659
gpio = ah->config.xlna_gpio;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3663
ath9k_hw_gpio_request_out(ah, gpio, NULL,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3667
value = ar9003_hw_ant_ctrl_common_get(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3669
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3670
REG_RMW_FIELD(ah, AR_PHY_SWITCH_COM,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3672
} else if (AR_SREV_9550(ah) || AR_SREV_9531(ah) || AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3673
REG_RMW_FIELD(ah, AR_PHY_SWITCH_COM,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3676
REG_RMW_FIELD(ah, AR_PHY_SWITCH_COM,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3693
if (AR_SREV_9462_20_OR_LATER(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3694
value = ar9003_switch_com_spdt_get(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3695
REG_RMW_FIELD(ah, AR_PHY_GLB_CONTROL,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3697
REG_SET_BIT(ah, AR_PHY_GLB_CONTROL, AR_BTCOEX_CTRL_SPDT_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3700
value = ar9003_hw_ant_ctrl_common_2_get(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3701
if (AR_SREV_9485(ah) && common->bt_ant_diversity) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3703
value |= ah->config.ant_ctrl_comm2g_switch_enable;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3706
REG_RMW_FIELD(ah, AR_PHY_SWITCH_COM_2, AR_SWITCH_TABLE_COM2_ALL, value);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3708
if ((AR_SREV_9462(ah)) && (ah->rxchainmask == 0x2)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3709
value = ar9003_hw_ant_ctrl_chain_get(ah, 1, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3710
REG_RMW_FIELD(ah, switch_chain_reg[0],
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3715
if ((ah->rxchainmask & BIT(chain)) ||
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3716
(ah->txchainmask & BIT(chain))) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3717
value = ar9003_hw_ant_ctrl_chain_get(ah, chain,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3719
REG_RMW_FIELD(ah, switch_chain_reg[chain],
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3724
if (AR_SREV_9330(ah) || AR_SREV_9485(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3725
value = ath9k_hw_ar9300_get_eeprom(ah, EEP_ANT_DIV_CTL1);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3730
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3737
if (AR_SREV_9485(ah) && common->bt_ant_diversity)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3740
if (AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3744
REG_SET_BIT(ah, AR_PHY_RESTART,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3748
REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3754
REG_CLR_BIT(ah, AR_PHY_MC_GAIN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3758
REG_CLR_BIT(ah, AR_BTCOEX_WL_LNADIV,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3763
REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3766
regval = REG_READ(ah, AR_PHY_CCK_DETECT);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3770
if ((AR_SREV_9485(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3774
REG_WRITE(ah, AR_PHY_CCK_DETECT, regval);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3777
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3791
REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3796
static void ar9003_hw_drive_strength_apply(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3798
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3807
reg = REG_READ(ah, AR_PHY_65NM_CH0_BIAS1);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3815
REG_WRITE(ah, AR_PHY_65NM_CH0_BIAS1, reg);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3817
reg = REG_READ(ah, AR_PHY_65NM_CH0_BIAS2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3828
REG_WRITE(ah, AR_PHY_65NM_CH0_BIAS2, reg);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3830
reg = REG_READ(ah, AR_PHY_65NM_CH0_BIAS4);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3835
REG_WRITE(ah, AR_PHY_65NM_CH0_BIAS4, reg);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3838
static u16 ar9003_hw_atten_chain_get(struct ath_hw *ah, int chain,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3843
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3866
static u16 ar9003_hw_atten_chain_get_margin(struct ath_hw *ah, int chain,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3871
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3893
static void ar9003_hw_atten_apply(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3902
if ((AR_SREV_9462(ah)) && (ah->rxchainmask == 0x2)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3903
value = ar9003_hw_atten_chain_get(ah, 1, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3904
REG_RMW_FIELD(ah, ext_atten_reg[0],
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3907
value = ar9003_hw_atten_chain_get_margin(ah, 1, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3908
REG_RMW_FIELD(ah, ext_atten_reg[0],
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3915
if (ah->txchainmask & BIT(i)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3916
value = ar9003_hw_atten_chain_get(ah, i, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3917
REG_RMW_FIELD(ah, ext_atten_reg[i],
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3920
if (AR_SREV_9485(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3921
(ar9003_hw_get_rx_gain_idx(ah) == 0) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3922
ah->config.xatten_margin_cfg)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3925
value = ar9003_hw_atten_chain_get_margin(ah, i, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3927
if (ah->config.alt_mingainidx)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3928
REG_RMW_FIELD(ah, AR_PHY_EXT_ATTEN_CTL_0,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3932
REG_RMW_FIELD(ah, ext_atten_reg[i],
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3939
static bool is_pmu_set(struct ath_hw *ah, u32 pmu_reg, int pmu_set)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3943
while (pmu_set != REG_READ(ah, pmu_reg)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3946
REG_WRITE(ah, pmu_reg, pmu_set);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3953
void ar9003_hw_internal_regulator_apply(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3955
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3960
if (AR_SREV_9330(ah) || AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3963
reg_pmu_set = REG_READ(ah, AR_PHY_PMU2(ah)) & ~AR_PHY_PMU2_PGM;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3964
REG_WRITE(ah, AR_PHY_PMU2(ah), reg_pmu_set);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3965
if (!is_pmu_set(ah, AR_PHY_PMU2(ah), reg_pmu_set))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3968
if (AR_SREV_9330(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3969
if (ah->is_clk_25mhz) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3987
REG_WRITE(ah, AR_PHY_PMU1(ah), reg_pmu_set);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3988
if (!is_pmu_set(ah, AR_PHY_PMU1(ah), reg_pmu_set))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3991
reg_pmu_set = (REG_READ(ah, AR_PHY_PMU2(ah)) & ~0xFFC00000)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3993
REG_WRITE(ah, AR_PHY_PMU2(ah), reg_pmu_set);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3994
if (!is_pmu_set(ah, AR_PHY_PMU2(ah), reg_pmu_set))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3997
reg_pmu_set = (REG_READ(ah, AR_PHY_PMU2(ah)) & ~0x00200000)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
3999
REG_WRITE(ah, AR_PHY_PMU2(ah), reg_pmu_set);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4000
if (!is_pmu_set(ah, AR_PHY_PMU2(ah), reg_pmu_set))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4002
} else if (AR_SREV_9462(ah) || AR_SREV_9565(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4003
AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4005
REG_WRITE(ah, AR_PHY_PMU1(ah), reg_val);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4007
if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4008
REG_WRITE(ah, AR_PHY_PMU2(ah), 0x10200000);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4012
REG_WRITE(ah, AR_RTC_REG_CONTROL1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4013
REG_READ(ah, AR_RTC_REG_CONTROL1) &
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4015
REG_WRITE(ah, AR_RTC_REG_CONTROL0, reg_val);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4017
REG_WRITE(ah, AR_RTC_REG_CONTROL1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4018
REG_READ(ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4023
if (AR_SREV_9330(ah) || AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4024
REG_RMW_FIELD(ah, AR_PHY_PMU2(ah), AR_PHY_PMU2_PGM, 0);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4025
while (REG_READ_FIELD(ah, AR_PHY_PMU2(ah),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4029
REG_RMW_FIELD(ah, AR_PHY_PMU1(ah), AR_PHY_PMU1_PWD, 0x1);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4030
while (!REG_READ_FIELD(ah, AR_PHY_PMU1(ah),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4033
REG_RMW_FIELD(ah, AR_PHY_PMU2(ah), AR_PHY_PMU2_PGM, 0x1);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4034
while (!REG_READ_FIELD(ah, AR_PHY_PMU2(ah),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4037
} else if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4038
REG_RMW_FIELD(ah, AR_PHY_PMU1(ah), AR_PHY_PMU1_PWD, 0x1);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4040
reg_val = REG_READ(ah, AR_RTC_SLEEP_CLK(ah)) |
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4042
REG_WRITE(ah, AR_RTC_SLEEP_CLK(ah), reg_val);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4048
static void ar9003_hw_apply_tuning_caps(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4050
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4053
if (AR_SREV_9340(ah) || AR_SREV_9531(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4058
REG_RMW_FIELD(ah, AR_CH0_XTAL(ah), AR_CH0_XTAL_CAPINDAC,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4060
REG_RMW_FIELD(ah, AR_CH0_XTAL(ah), AR_CH0_XTAL_CAPOUTDAC,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4065
static void ar9003_hw_quick_drop_apply(struct ath_hw *ah, u16 freq)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4067
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4075
if (AR_SREV_9300(ah) || AR_SREV_9580(ah) || AR_SREV_9340(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4084
REG_RMW_FIELD(ah, AR_PHY_AGC, AR_PHY_AGC_QUICK_DROP, quick_drop);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4088
static void ar9003_hw_txend_to_xpa_off_apply(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4092
value = ar9003_modal_header(ah, is2ghz)->txEndToXpaOff;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4094
REG_RMW_FIELD(ah, AR_PHY_XPA_TIMING_CTL,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4096
REG_RMW_FIELD(ah, AR_PHY_XPA_TIMING_CTL,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4100
static void ar9003_hw_xpa_timing_control_apply(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4102
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4108
if (!AR_SREV_9300(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4109
!AR_SREV_9340(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4110
!AR_SREV_9580(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4111
!AR_SREV_9531(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4112
!AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4115
xpa_ctl = ar9003_modal_header(ah, is2ghz)->txFrameToXpaOn;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4117
REG_RMW_FIELD(ah, AR_PHY_XPA_TIMING_CTL,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4120
REG_RMW_FIELD(ah, AR_PHY_XPA_TIMING_CTL,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4124
static void ar9003_hw_xlna_bias_strength_apply(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4126
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4132
if (!AR_SREV_9300(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4135
bias = ar9003_modal_header(ah, is2ghz)->xlna_bias_strength;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4136
REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_RXTX4, AR_PHY_65NM_RXTX4_XLNA_BIAS,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4139
REG_RMW_FIELD(ah, AR_PHY_65NM_CH1_RXTX4, AR_PHY_65NM_RXTX4_XLNA_BIAS,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4142
REG_RMW_FIELD(ah, AR_PHY_65NM_CH2_RXTX4, AR_PHY_65NM_RXTX4_XLNA_BIAS,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4146
static int ar9003_hw_get_thermometer(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4148
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4155
static void ar9003_hw_thermometer_apply(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4157
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4158
int thermometer = ar9003_hw_get_thermometer(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4161
REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_RXTX4,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4164
REG_RMW_FIELD(ah, AR_PHY_65NM_CH1_RXTX4,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4167
REG_RMW_FIELD(ah, AR_PHY_65NM_CH2_RXTX4,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4171
REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_RXTX4,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4175
REG_RMW_FIELD(ah, AR_PHY_65NM_CH1_RXTX4,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4180
REG_RMW_FIELD(ah, AR_PHY_65NM_CH2_RXTX4,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4185
static void ar9003_hw_thermo_cal_apply(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4189
if (!AR_SREV_9462_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4192
ar9300_otp_read_word(ah, 1, &data);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4196
REG_RMW_FIELD(ah, AR_PHY_BB_THERM_ADC_3,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4198
REG_RMW_FIELD(ah, AR_PHY_BB_THERM_ADC_3,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4204
static void ar9003_hw_apply_minccapwr_thresh(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4207
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4225
if (!(ah->caps.tx_chainmask & BIT(chain)))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4228
val = ar9003_modal_header(ah, is2ghz)->noiseFloorThreshCh[chain];
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4229
REG_RMW_FIELD(ah, cca_ctrl[chain],
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4235
static void ath9k_hw_ar9300_set_board_values(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4239
ar9003_hw_xpa_timing_control_apply(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4240
ar9003_hw_xpa_bias_level_apply(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4241
ar9003_hw_ant_ctrl_apply(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4242
ar9003_hw_drive_strength_apply(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4243
ar9003_hw_xlna_bias_strength_apply(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4244
ar9003_hw_atten_apply(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4245
ar9003_hw_quick_drop_apply(ah, chan->channel);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4246
if (!AR_SREV_9330(ah) && !AR_SREV_9340(ah) && !AR_SREV_9531(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4247
ar9003_hw_internal_regulator_apply(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4248
ar9003_hw_apply_tuning_caps(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4249
ar9003_hw_apply_minccapwr_thresh(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4250
ar9003_hw_txend_to_xpa_off_apply(ah, is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4251
ar9003_hw_thermometer_apply(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4252
ar9003_hw_thermo_cal_apply(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4255
static void ath9k_hw_ar9300_set_addac(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4323
static u8 ar9003_hw_eeprom_get_tgt_pwr(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4329
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4358
static u8 ar9003_hw_eeprom_get_ht20_tgt_pwr(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4365
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4394
static u8 ar9003_hw_eeprom_get_ht40_tgt_pwr(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4401
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4430
static u8 ar9003_hw_eeprom_get_cck_tgt_pwr(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4436
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4455
static void ar9003_hw_selfgen_tpc_txpower(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4471
REG_WRITE(ah, AR_TPC, val);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4475
int ar9003_hw_tx_power_regwrite(struct ath_hw *ah, u8 * pPwrArray)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4479
REG_WRITE(ah, AR_PHY_TX_FORCED_GAIN, 0);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4484
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(0),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4491
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(1),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4500
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(2),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4507
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(3),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4517
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(8),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4527
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(4),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4535
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(5),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4543
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(9),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4553
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(10),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4565
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(6),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4573
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(7),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4581
REG_WRITE(ah, AR_PHY_POWER_TX_RATE(11),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4592
static void ar9003_hw_get_legacy_target_powers(struct ath_hw *ah, u16 freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4597
ar9003_hw_eeprom_get_tgt_pwr(ah, LEGACY_TARGET_RATE_6_24, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4600
ar9003_hw_eeprom_get_tgt_pwr(ah, LEGACY_TARGET_RATE_36, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4603
ar9003_hw_eeprom_get_tgt_pwr(ah, LEGACY_TARGET_RATE_48, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4606
ar9003_hw_eeprom_get_tgt_pwr(ah, LEGACY_TARGET_RATE_54, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4610
static void ar9003_hw_get_cck_target_powers(struct ath_hw *ah, u16 freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4614
ar9003_hw_eeprom_get_cck_tgt_pwr(ah, LEGACY_TARGET_RATE_1L_5L,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4617
ar9003_hw_eeprom_get_cck_tgt_pwr(ah, LEGACY_TARGET_RATE_5S, freq);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4619
ar9003_hw_eeprom_get_cck_tgt_pwr(ah, LEGACY_TARGET_RATE_11L, freq);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4621
ar9003_hw_eeprom_get_cck_tgt_pwr(ah, LEGACY_TARGET_RATE_11S, freq);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4624
static void ar9003_hw_get_ht20_target_powers(struct ath_hw *ah, u16 freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4628
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_0_8_16, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4631
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_1_3_9_11_17_19,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4634
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_4, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4637
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_5, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4640
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_6, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4643
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_7, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4646
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_12, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4649
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_13, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4652
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_14, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4655
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_15, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4658
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_20, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4661
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_21, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4664
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_22, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4667
ar9003_hw_eeprom_get_ht20_tgt_pwr(ah, HT_TARGET_RATE_23, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4671
static void ar9003_hw_get_ht40_target_powers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4680
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_0_8_16, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4683
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_1_3_9_11_17_19,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4687
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_4, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4690
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_5, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4693
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_6, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4696
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_7, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4699
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_12, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4702
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_13, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4705
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_14, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4708
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_15, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4711
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_20, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4714
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_21, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4717
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_22, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4720
ar9003_hw_eeprom_get_ht40_tgt_pwr(ah, HT_TARGET_RATE_23, freq,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4724
static void ar9003_hw_get_target_power_eeprom(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4730
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4734
ar9003_hw_get_cck_target_powers(ah, freq, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4736
ar9003_hw_get_legacy_target_powers(ah, freq, targetPowerValT2, is2GHz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4737
ar9003_hw_get_ht20_target_powers(ah, freq, targetPowerValT2, is2GHz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4740
ar9003_hw_get_ht40_target_powers(ah, freq, targetPowerValT2,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4749
static int ar9003_hw_cal_pier_get(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4760
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4761
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4803
static void ar9003_hw_power_control_override(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4809
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4812
REG_RMW(ah, AR_PHY_TPC_11_B0,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4815
if (ah->caps.tx_chainmask & BIT(1))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4816
REG_RMW(ah, AR_PHY_TPC_11_B1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4819
if (ah->caps.tx_chainmask & BIT(2))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4820
REG_RMW(ah, AR_PHY_TPC_11_B2,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4825
REG_RMW(ah, AR_PHY_TPC_6_B0,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4828
if (ah->caps.tx_chainmask & BIT(1))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4829
REG_RMW(ah, AR_PHY_TPC_6_B1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4832
if (ah->caps.tx_chainmask & BIT(2))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4833
REG_RMW(ah, AR_PHY_TPC_6_B2,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4844
if (AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4892
if (AR_SREV_9550(ah) || AR_SREV_9531(ah) || AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4902
REG_RMW_FIELD(ah, AR_PHY_TPC_19,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4906
REG_RMW_FIELD(ah, AR_PHY_TPC_19_B1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4910
REG_RMW_FIELD(ah, AR_PHY_TPC_19_B2,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4915
REG_RMW_FIELD(ah, AR_PHY_TPC_19,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4919
REG_RMW_FIELD(ah, AR_PHY_TPC_19_B1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4923
REG_RMW_FIELD(ah, AR_PHY_TPC_19_B2,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4933
REG_RMW_FIELD(ah, AR_PHY_TPC_19,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4936
REG_RMW_FIELD(ah, AR_PHY_TPC_19_B1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4939
REG_RMW_FIELD(ah, AR_PHY_TPC_19_B2,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4943
REG_RMW_FIELD(ah, AR_PHY_TPC_19,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4947
if (AR_SREV_9462_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4948
REG_RMW_FIELD(ah, AR_PHY_TPC_19_B1,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4952
REG_RMW_FIELD(ah, AR_PHY_TPC_18, AR_PHY_TPC_18_THERM_CAL_VALUE,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4957
static int ar9003_hw_calibration_apply(struct ath_hw *ah, int frequency)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4974
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
4989
if (!ar9003_hw_cal_pier_get(ah, is2ghz, ipier, ichain,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5117
ar9003_hw_power_control_override(ah, frequency, correction, voltage,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5127
ah->nf_2g.cal[ichain] = nf_cal[ichain];
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5128
ah->nf_2g.pwr[ichain] = nf_pwr[ichain];
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5130
ah->nf_5g.cal[ichain] = nf_cal[ichain];
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5131
ah->nf_5g.pwr[ichain] = nf_pwr[ichain];
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5225
static void ar9003_hw_set_power_per_rate_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5231
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5232
struct ar9300_eeprom *pEepData = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5252
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5253
scaledPower = ath9k_hw_get_scaled_power(ah, powerLimit,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5378
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5381
ar9003_mci_get_max_txpower(ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5391
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5394
ar9003_mci_get_max_txpower(ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5414
static void ar9003_paprd_set_txpower(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5420
if (!ar9003_is_paprd_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5429
if (!AR_SREV_9330(ah) && !AR_SREV_9340(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5430
!AR_SREV_9462(ah) && !AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5438
ah->paprd_target_power = targetPowerValT2[i];
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5441
static void ath9k_hw_ar9300_set_txpower(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5446
struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5447
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5459
ar9003_hw_get_target_power_eeprom(ah, chan, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5461
if (ar9003_is_paprd_enabled(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5462
ah->paprd_ratemask =
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5463
ar9003_get_paprd_rate_mask_ht20(ah, IS_CHAN_2GHZ(chan)) &
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5466
ah->paprd_ratemask_ht40 =
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5467
ar9003_get_paprd_rate_mask_ht40(ah, IS_CHAN_2GHZ(chan)) &
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5470
paprd_scale_factor = ar9003_get_paprd_scale_factor(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5474
if (!ah->paprd_table_write_done) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5479
if (ah->paprd_ratemask & (1 << i)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5492
ar9003_hw_set_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5500
if (ar9003_is_paprd_enabled(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5502
if ((ah->paprd_ratemask & (1 << i)) &&
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5506
ah->paprd_ratemask &= ~(1 << i);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5519
ath9k_hw_update_regulatory_maxpower(ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5530
ar9003_hw_tx_power_regwrite(ah, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5531
ar9003_hw_calibration_apply(ah, chan->channel);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5532
ar9003_paprd_set_txpower(ah, chan, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5534
ar9003_hw_selfgen_tpc_txpower(ah, chan, targetPowerValT2);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5537
if (ah->tpc_enabled) {
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5540
ar9003_hw_init_rate_txpower(ah, targetPowerValT2_tpc, chan);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5543
REG_WRITE(ah, AR_PHY_PWRTX_MAX,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5546
val = REG_READ(ah, AR_PHY_POWER_TX_SUB);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5547
if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5548
REG_WRITE(ah, AR_PHY_POWER_TX_SUB,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5551
REG_WRITE(ah, AR_PHY_POWER_TX_SUB,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5555
REG_WRITE(ah, AR_PHY_PWRTX_MAX, 0);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5559
static u16 ath9k_hw_ar9300_get_spur_channel(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5565
s32 ar9003_hw_get_tx_gain_idx(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5567
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5572
s32 ar9003_hw_get_rx_gain_idx(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5574
struct ar9300_eeprom *eep = &ah->eeprom.ar9300_eep;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5579
u8 *ar9003_get_spur_chan_ptr(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5581
return ar9003_modal_header(ah, is2ghz)->spurChans;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5584
u32 ar9003_get_paprd_rate_mask_ht20(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5586
return le32_to_cpu(ar9003_modal_header(ah, is2ghz)->papdRateMaskHt20);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5589
u32 ar9003_get_paprd_rate_mask_ht40(struct ath_hw *ah, bool is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5591
return le32_to_cpu(ar9003_modal_header(ah, is2ghz)->papdRateMaskHt40);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5594
unsigned int ar9003_get_paprd_scale_factor(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5600
return MS(ar9003_get_paprd_rate_mask_ht20(ah, is2ghz),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5604
return MS(ar9003_get_paprd_rate_mask_ht20(ah, is2ghz),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5607
return MS(ar9003_get_paprd_rate_mask_ht40(ah, is2ghz),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5610
return MS(ar9003_get_paprd_rate_mask_ht40(ah, is2ghz),
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5615
static u8 ar9003_get_eepmisc(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
5617
return ah->eeprom.ar9300_eep.baseEepHeader.opCapFlags.eepMisc;
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
359
s32 ar9003_hw_get_tx_gain_idx(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
360
s32 ar9003_hw_get_rx_gain_idx(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
361
u32 ar9003_hw_ant_ctrl_common_get(struct ath_hw *ah, bool is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
362
u32 ar9003_hw_ant_ctrl_common_2_get(struct ath_hw *ah, bool is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
364
u8 *ar9003_get_spur_chan_ptr(struct ath_hw *ah, bool is_2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
366
u32 ar9003_get_paprd_rate_mask_ht20(struct ath_hw *ah, bool is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
367
u32 ar9003_get_paprd_rate_mask_ht40(struct ath_hw *ah, bool is2ghz);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
368
unsigned int ar9003_get_paprd_scale_factor(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
371
void ar9003_hw_internal_regulator_apply(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
372
int ar9003_hw_tx_power_regwrite(struct ath_hw *ah, u8 * pPwrArray);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1000
ar9003_rx_gain_table_apply(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
101
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1012
static void ar9003_hw_configpcipowersave(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1023
if (AR_SREV_9462(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1024
u32 val = ah->config.aspm_l1_fix;
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1028
REG_WRITE(ah, 0x570c, val);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
103
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1035
REG_SET_BIT(ah, AR_PCIE_PM_CTRL(ah), AR_PCIE_PM_CTRL_ENA);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1036
REG_WRITE(ah, AR_WA(ah), ah->WARegVal);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1043
array = power_off ? &ah->iniPcieSerdes :
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1044
&ah->iniPcieSerdesLowPower;
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1047
REG_WRITE(ah,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1053
static void ar9003_hw_init_hang_checks(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1058
ah->config.hw_hang_checks |= HW_BB_WATCHDOG;
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1059
ah->config.hw_hang_checks |= HW_MAC_HANG;
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1064
if (AR_SREV_9300_22(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1065
ah->config.hw_hang_checks |= HW_PHYRESTART_CLC_WAR;
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1067
if (AR_SREV_9330(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1068
ah->bb_watchdog_timeout_ms = 85;
drivers/net/wireless/ath/ath9k/ar9003_hw.c
107
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1070
ah->bb_watchdog_timeout_ms = 25;
drivers/net/wireless/ath/ath9k/ar9003_hw.c
109
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1098
static bool ath9k_hw_verify_hang(struct ath_hw *ah, unsigned int queue)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1114
dma_dbg_chain = REG_READ(ah, dbg_reg);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1115
dma_dbg_complete = REG_READ(ah, AR_DMADBG_6);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1124
ath_dbg(ath9k_hw_common(ah), RESET,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
113
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1130
static bool ar9003_hw_detect_mac_hang(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1139
dma_dbg_4 = REG_READ(ah, AR_DMADBG_4);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1140
dma_dbg_5 = REG_READ(ah, AR_DMADBG_5);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1141
dma_dbg_6 = REG_READ(ah, AR_DMADBG_6);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1165
if (ath9k_hw_verify_hang(ah, i))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
117
if (ah->is_clk_25mhz)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1174
void ar9003_hw_attach_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1176
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1177
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1179
ar9003_hw_init_mode_regs(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
118
INIT_INI_ARRAY(&ah->iniAdditional,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1181
if (AR_SREV_9003_PCOEM(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1182
WARN_ON(!ah->iniPcieSerdes.ia_array);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1183
WARN_ON(!ah->iniPcieSerdesLowPower.ia_array);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1192
ar9003_hw_attach_phy_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1193
ar9003_hw_attach_calib_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1194
ar9003_hw_attach_mac_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
1195
ar9003_hw_attach_aic_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
121
INIT_INI_ARRAY(&ah->iniAdditional,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
123
} else if (AR_SREV_9340(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
125
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
127
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
131
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
133
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
137
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
139
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
143
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
145
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
149
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
151
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
154
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
156
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
158
INIT_INI_ARRAY(&ah->ini_dfs,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
161
if (!ah->is_clk_25mhz)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
162
INIT_INI_ARRAY(&ah->iniAdditional,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
164
} else if (AR_SREV_9485_11_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
166
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
168
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
172
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_PRE], ar9485_1_1);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
173
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
175
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
179
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
181
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
185
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
189
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
191
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
195
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
198
if (ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
199
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
201
INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
204
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
206
INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
209
} else if (AR_SREV_9462_21(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
210
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
212
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
214
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
216
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
218
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
220
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
222
INIT_INI_ARRAY(&ah->ini_radio_post_sys2ant,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
224
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
226
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
228
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
230
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
232
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
236
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
237
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D3)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
238
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
243
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
244
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D0)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
245
INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
248
} else if (AR_SREV_9462_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
250
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE], ar9462_2p0_mac_core);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
251
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
254
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
256
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
259
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
261
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
263
INIT_INI_ARRAY(&ah->ini_radio_post_sys2ant,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
266
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
268
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
271
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
275
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
276
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D3)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
277
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
282
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
283
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D0)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
284
INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
289
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
292
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
294
} else if (AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
296
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
298
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
302
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
304
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
308
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
310
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
314
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
316
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
320
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
322
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
324
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
328
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
330
} else if (AR_SREV_9531(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
331
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
333
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
335
if (AR_SREV_9531_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
336
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
338
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
341
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
343
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
346
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
348
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
350
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
352
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
355
if (AR_SREV_9531_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
356
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
358
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
361
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
363
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
367
if (AR_SREV_9531_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
368
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
370
else if (AR_SREV_9531_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
371
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
374
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
377
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
379
} else if (AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
380
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
382
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
385
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
387
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
390
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
392
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
395
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
397
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
400
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
402
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
404
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
407
INIT_INI_ARRAY(&ah->ini_dfs,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
409
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
41
static void ar9003_hw_init_mode_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
411
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
413
} else if (AR_SREV_9580(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
415
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
417
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
421
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
423
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
427
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
429
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
43
if (AR_SREV_9330_11(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
433
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
435
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
439
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
441
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
444
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
446
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
448
INIT_INI_ARRAY(&ah->ini_dfs,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
45
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
450
} else if (AR_SREV_9565_11_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
451
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
453
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
456
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
458
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
461
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
463
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
466
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
468
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
47
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
471
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
473
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
477
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
478
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D3)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
479
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
484
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
485
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D0)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
486
INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
490
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
492
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
494
} else if (AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
495
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
497
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
500
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
502
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
505
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
507
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
51
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
510
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
512
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
515
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
517
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
521
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
522
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D3)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
523
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
528
if ((ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_CONTROL) &&
drivers/net/wireless/ath/ath9k/ar9003_hw.c
529
(ah->config.pll_pwrsave & AR_PCIE_PLL_PWRSAVE_ON_D0)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
53
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
530
INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
534
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
536
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
540
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
542
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
546
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
548
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
552
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
554
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
558
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
560
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
564
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
566
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
57
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
573
INIT_INI_ARRAY(&ah->iniPcieSerdes,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
578
INIT_INI_ARRAY(&ah->iniPcieSerdesLowPower,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
582
INIT_INI_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
584
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
586
INIT_INI_ARRAY(&ah->ini_dfs,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
591
static void ar9003_tx_gain_table_mode0(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
593
if (AR_SREV_9330_12(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
594
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
596
else if (AR_SREV_9330_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
597
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
599
else if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
600
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
602
else if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
603
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
605
else if (AR_SREV_9550(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
606
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
608
else if (AR_SREV_9531_10(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
609
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
61
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_PRE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
611
else if (AR_SREV_9531_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
612
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
614
else if (AR_SREV_9531_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
615
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
617
else if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
618
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
620
else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
621
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
623
else if (AR_SREV_9462_21(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
624
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
626
else if (AR_SREV_9462_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
627
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
629
else if (AR_SREV_9565_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
63
INIT_INI_ARRAY(&ah->iniSOC[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
630
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
632
else if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
633
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
636
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
640
static void ar9003_tx_gain_table_mode1(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
642
if (AR_SREV_9330_12(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
643
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
645
else if (AR_SREV_9330_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
646
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
648
else if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
649
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
651
else if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
652
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
654
else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
655
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
657
else if (AR_SREV_9550(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
658
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
660
else if (AR_SREV_9531(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
661
if (AR_SREV_9531_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
662
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
664
else if (AR_SREV_9531_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
665
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
668
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
67
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
670
} else if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
671
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
673
else if (AR_SREV_9462_21(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
674
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
676
else if (AR_SREV_9462_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
677
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
679
else if (AR_SREV_9565_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
680
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
682
else if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
683
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
686
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
69
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
690
static void ar9003_tx_gain_table_mode2(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
692
if (AR_SREV_9330_12(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
693
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
695
else if (AR_SREV_9330_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
696
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
698
else if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
699
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
701
else if (AR_SREV_9531_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
702
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
704
else if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
705
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
707
else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
708
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
710
else if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
711
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
713
else if (AR_SREV_9565_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
714
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
716
else if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
717
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
720
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
724
static void ar9003_tx_gain_table_mode3(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
726
if (AR_SREV_9330_12(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
727
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
729
else if (AR_SREV_9330_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
73
INIT_INI_ARRAY(&ah->iniCckfirJapan2484,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
730
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
732
else if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
733
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
735
else if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
736
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
738
else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
739
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
741
else if (AR_SREV_9565_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
742
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
744
else if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
745
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
748
if (ah->config.tx_gain_buffalo)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
749
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
752
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
757
static void ar9003_tx_gain_table_mode4(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
759
if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
760
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
762
else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
763
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
765
else if (AR_SREV_9462_21(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
766
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
768
else if (AR_SREV_9462_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
769
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
77
if (ah->is_clk_25mhz)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
772
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
776
static void ar9003_tx_gain_table_mode5(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
778
if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
779
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
78
INIT_INI_ARRAY(&ah->iniAdditional,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
781
else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
782
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
784
else if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
785
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
787
else if (AR_SREV_9300_22(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
788
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
792
static void ar9003_tx_gain_table_mode6(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
794
if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
795
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
797
else if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
798
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
800
else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
801
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
805
static void ar9003_tx_gain_table_mode7(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
807
if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
808
INIT_INI_ARRAY(&ah->iniModesTxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
81
INIT_INI_ARRAY(&ah->iniAdditional,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
812
typedef void (*ath_txgain_tab)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
814
static void ar9003_tx_gain_table_apply(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
826
int idx = ar9003_hw_get_tx_gain_idx(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
83
} else if (AR_SREV_9330_12(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
831
modes[idx](ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
834
static void ar9003_rx_gain_table_mode0(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
836
if (AR_SREV_9330_12(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
837
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
839
else if (AR_SREV_9330_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
840
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
842
else if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
843
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
845
else if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
846
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
848
else if (AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
849
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
85
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
851
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
853
} else if (AR_SREV_9531(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
854
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
856
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
858
} else if (AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
859
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
861
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
863
INIT_INI_ARRAY(&ah->ini_modes_rxgain_xlna,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
865
} else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
866
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
868
else if (AR_SREV_9462_21(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
869
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
87
INIT_INI_ARRAY(&ah->iniMac[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
871
else if (AR_SREV_9462_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
872
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
874
else if (AR_SREV_9565_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
875
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
877
else if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
878
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
881
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
885
static void ar9003_rx_gain_table_mode1(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
887
if (AR_SREV_9330_12(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
888
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
890
else if (AR_SREV_9330_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
891
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
893
else if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
894
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
896
else if (AR_SREV_9485_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
897
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
899
else if (AR_SREV_9462_21(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
900
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
902
else if (AR_SREV_9462_20(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
903
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
905
else if (AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
906
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
908
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
91
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
910
} else if (AR_SREV_9531_10(ah) || AR_SREV_9531_11(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
911
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
913
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
915
} else if (AR_SREV_9531_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
916
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
918
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
920
} else if (AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
921
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
923
INIT_INI_ARRAY(&ah->ini_modes_rx_gain_bounds,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
925
} else if (AR_SREV_9580(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
926
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
928
else if (AR_SREV_9565_11(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
929
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
93
INIT_INI_ARRAY(&ah->iniBB[ATH_INI_POST],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
931
else if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_hw.c
932
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
935
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
939
static void ar9003_rx_gain_table_mode2(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
941
if (AR_SREV_9462_21(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
942
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
944
INIT_INI_ARRAY(&ah->ini_modes_rxgain_bb_core,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
946
INIT_INI_ARRAY(&ah->ini_modes_rxgain_bb_postamble,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
948
INIT_INI_ARRAY(&ah->ini_modes_rxgain_xlna,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
950
} else if (AR_SREV_9462_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
951
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
953
INIT_INI_ARRAY(&ah->ini_modes_rxgain_bb_core,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
955
INIT_INI_ARRAY(&ah->ini_modes_rxgain_bb_postamble,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
957
INIT_INI_ARRAY(&ah->ini_modes_rxgain_xlna,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
962
static void ar9003_rx_gain_table_mode3(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
964
if (AR_SREV_9462_21(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
965
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
967
INIT_INI_ARRAY(&ah->ini_modes_rxgain_xlna,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
969
} else if (AR_SREV_9462_20(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
97
INIT_INI_ARRAY(&ah->iniRadio[ATH_INI_CORE],
drivers/net/wireless/ath/ath9k/ar9003_hw.c
970
INIT_INI_ARRAY(&ah->iniModesRxGain,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
972
INIT_INI_ARRAY(&ah->ini_modes_rxgain_xlna,
drivers/net/wireless/ath/ath9k/ar9003_hw.c
977
static void ar9003_rx_gain_table_apply(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
979
switch (ar9003_hw_get_rx_gain_idx(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_hw.c
982
ar9003_rx_gain_table_mode0(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
985
ar9003_rx_gain_table_mode1(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
988
ar9003_rx_gain_table_mode2(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
991
ar9003_rx_gain_table_mode3(ah);
drivers/net/wireless/ath/ath9k/ar9003_hw.c
997
static void ar9003_hw_init_mode_gain_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_hw.c
999
ar9003_tx_gain_table_apply(ah);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
183
static bool ar9003_hw_get_isr(struct ath_hw *ah, enum ath9k_int *masked,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
188
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
189
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
193
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_mac.c
196
async_cause = REG_READ(ah, AR_INTR_ASYNC_CAUSE(ah));
drivers/net/wireless/ath/ath9k/ar9003_mac.c
199
if ((REG_READ(ah, AR_RTC_STATUS(ah)) & AR_RTC_STATUS_M(ah))
drivers/net/wireless/ath/ath9k/ar9003_mac.c
201
isr = REG_READ(ah, AR_ISR);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
205
sync_cause = REG_READ(ah, AR_INTR_SYNC_CAUSE(ah)) & AR_INTR_SYNC_DEFAULT;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
215
isr2 = REG_READ(ah, AR_ISR_S2);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
235
REG_WRITE(ah, AR_ISR_S2, isr2);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
241
isr = REG_READ(ah, AR_ISR_RAC);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
250
if (ah->config.rx_intr_mitigation)
drivers/net/wireless/ath/ath9k/ar9003_mac.c
254
if (ah->config.tx_intr_mitigation)
drivers/net/wireless/ath/ath9k/ar9003_mac.c
269
s0 = REG_READ(ah, AR_ISR_S0);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
27
ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
drivers/net/wireless/ath/ath9k/ar9003_mac.c
270
REG_WRITE(ah, AR_ISR_S0, s0);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
271
s1 = REG_READ(ah, AR_ISR_S1);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
272
REG_WRITE(ah, AR_ISR_S1, s1);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
283
s5 = REG_READ(ah, AR_ISR_S5_S(ah));
drivers/net/wireless/ath/ath9k/ar9003_mac.c
285
s5 = REG_READ(ah, AR_ISR_S5);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
287
ah->intr_gen_timer_trigger =
drivers/net/wireless/ath/ath9k/ar9003_mac.c
290
ah->intr_gen_timer_thresh =
drivers/net/wireless/ath/ath9k/ar9003_mac.c
293
if (ah->intr_gen_timer_trigger)
drivers/net/wireless/ath/ath9k/ar9003_mac.c
297
REG_WRITE(ah, AR_ISR_S5, s5);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
306
REG_WRITE(ah, AR_ISR, isr);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
308
(void) REG_READ(ah, AR_ISR);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
312
ar9003_hw_bb_watchdog_read(ah);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
316
ar9003_mci_get_isr(ah, masked);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
339
REG_WRITE(ah, AR_RC, AR_RC_HOSTIF);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
34
desc_len = ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x18 : 0x17);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
340
REG_WRITE(ah, AR_RC, 0);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
348
REG_WRITE(ah, AR_INTR_SYNC_CAUSE_CLR(ah), sync_cause);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
349
(void) REG_READ(ah, AR_INTR_SYNC_CAUSE_CLR(ah));
drivers/net/wireless/ath/ath9k/ar9003_mac.c
355
static int ar9003_hw_proc_txdesc(struct ath_hw *ah, void *ds,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
361
ads = &ah->ts_ring[ah->ts_tail];
drivers/net/wireless/ath/ath9k/ar9003_mac.c
367
ah->ts_tail = (ah->ts_tail + 1) % ah->ts_size;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
371
ath_dbg(ath9k_hw_common(ah), XMIT,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
406
ath9k_hw_updatetxtriglevel(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
414
ath9k_hw_updatetxtriglevel(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
418
ath9k_hw_updatetxtriglevel(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
435
static int ar9003_hw_get_duration(struct ath_hw *ah, const void *ds, int index)
drivers/net/wireless/ath/ath9k/ar9003_mac.c
465
void ath9k_hw_set_rx_bufsize(struct ath_hw *ah, u16 buf_size)
drivers/net/wireless/ath/ath9k/ar9003_mac.c
467
REG_WRITE(ah, AR_DATABUF_SIZE, buf_size & AR_DATABUF_SIZE_MASK);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
471
void ath9k_hw_addrxbuf_edma(struct ath_hw *ah, u32 rxdp,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
475
REG_WRITE(ah, AR_HP_RXDP, rxdp);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
477
REG_WRITE(ah, AR_LP_RXDP, rxdp);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
481
int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
592
void ath9k_hw_reset_txstatus_ring(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mac.c
594
ah->ts_tail = 0;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
596
memset((void *) ah->ts_ring, 0,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
597
ah->ts_size * sizeof(struct ar9003_txs));
drivers/net/wireless/ath/ath9k/ar9003_mac.c
599
ath_dbg(ath9k_hw_common(ah), XMIT,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
601
ah->ts_paddr_start, ah->ts_paddr_end,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
602
ah->ts_ring, ah->ts_size);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
604
REG_WRITE(ah, AR_Q_STATUS_RING_START, ah->ts_paddr_start);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
605
REG_WRITE(ah, AR_Q_STATUS_RING_END, ah->ts_paddr_end);
drivers/net/wireless/ath/ath9k/ar9003_mac.c
608
void ath9k_hw_setup_statusring(struct ath_hw *ah, void *ts_start,
drivers/net/wireless/ath/ath9k/ar9003_mac.c
613
ah->ts_paddr_start = ts_paddr_start;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
614
ah->ts_paddr_end = ts_paddr_start + (size * sizeof(struct ar9003_txs));
drivers/net/wireless/ath/ath9k/ar9003_mac.c
615
ah->ts_size = size;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
616
ah->ts_ring = ts_start;
drivers/net/wireless/ath/ath9k/ar9003_mac.c
618
ath9k_hw_reset_txstatus_ring(ah);
drivers/net/wireless/ath/ath9k/ar9003_mac.h
112
void ath9k_hw_set_rx_bufsize(struct ath_hw *ah, u16 buf_size);
drivers/net/wireless/ath/ath9k/ar9003_mac.h
113
void ath9k_hw_addrxbuf_edma(struct ath_hw *ah, u32 rxdp,
drivers/net/wireless/ath/ath9k/ar9003_mac.h
116
int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_mac.h
119
void ath9k_hw_reset_txstatus_ring(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mac.h
120
void ath9k_hw_setup_statusring(struct ath_hw *ah, void *ts_start,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1001
ar9003_mci_check_gpm_offset(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1004
REG_WRITE(ah, AR_MCI_COMMAND2, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1007
REG_WRITE(ah, AR_MCI_COMMAND2, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1010
ar9003_mci_state(ah, MCI_STATE_INIT_GPM_OFFSET);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1012
REG_WRITE(ah, AR_MCI_MSG_ATTRIBUTES_TABLE,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1017
REG_CLR_BIT(ah, AR_MCI_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1020
REG_SET_BIT(ah, AR_MCI_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1023
ar9003_mci_observation_set_up(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1026
ar9003_mci_prep_interface(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1027
ar9003_mci_stat_setup(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
103
static void ar9003_mci_send_sys_waking(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1030
ar9003_mci_enable_interrupt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1032
if (ath9k_hw_is_aic_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1033
ar9003_aic_start_normal(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1038
void ar9003_mci_stop_bt(struct ath_hw *ah, bool save_fullsleep)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1040
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1042
ar9003_mci_disable_interrupt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1045
ar9003_mci_mute_bt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1047
REG_WRITE(ah, AR_BTCOEX_CTRL, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
105
ar9003_mci_send_message(ah, MCI_SYS_WAKING, MCI_FLAG_DISABLE_TIMESTAMP,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1054
static void ar9003_mci_send_2g5g_status(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1056
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1071
ar9003_mci_send_coex_bt_flags(ah, wait_done,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1075
ar9003_mci_send_coex_bt_flags(ah, wait_done,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1080
static void ar9003_mci_queue_unsent_gpm(struct ath_hw *ah, u8 header,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1083
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
109
static void ar9003_mci_send_lna_take(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1129
void ar9003_mci_2g5g_switch(struct ath_hw *ah, bool force)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
113
ar9003_mci_send_message(ah, MCI_LNA_TAKE, 0, &payload, 1,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1131
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1137
ar9003_mci_send_2g5g_status(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1138
ar9003_mci_send_lna_transfer(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1141
REG_CLR_BIT(ah, AR_MCI_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1143
REG_CLR_BIT(ah, AR_PHY_GLB_CONTROL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1147
ar9003_mci_osla_setup(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1149
if (AR_SREV_9462(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1150
REG_WRITE(ah, AR_SELFGEN_MASK, 0x02);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1152
ar9003_mci_send_lna_take(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1155
REG_SET_BIT(ah, AR_MCI_TX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1157
REG_SET_BIT(ah, AR_PHY_GLB_CONTROL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1160
ar9003_mci_osla_setup(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1161
ar9003_mci_send_2g5g_status(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1165
bool ar9003_mci_send_message(struct ath_hw *ah, u8 header, u32 flag,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1169
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
117
static void ar9003_mci_send_sys_sleeping(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1170
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1176
saved_mci_int_en = REG_READ(ah, AR_MCI_INTERRUPT_EN);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1177
regval = REG_READ(ah, AR_BTCOEX_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1182
header, (ah->power_mode == ATH9K_PM_FULL_SLEEP) ? 1 : 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1183
ar9003_mci_queue_unsent_gpm(ah, header, payload, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1189
ar9003_mci_queue_unsent_gpm(ah, header, payload, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
119
ar9003_mci_send_message(ah, MCI_SYS_SLEEPING,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1194
REG_WRITE(ah, AR_MCI_INTERRUPT_EN, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1198
REG_WRITE(ah, AR_MCI_INTERRUPT_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1204
REG_WRITE(ah, (AR_MCI_TX_PAYLOAD0 + i * 4),
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1208
REG_WRITE(ah, AR_MCI_COMMAND0,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1215
!(ar9003_mci_wait_for_interrupt(ah, AR_MCI_INTERRUPT_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1217
ar9003_mci_queue_unsent_gpm(ah, header, payload, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1219
ar9003_mci_queue_unsent_gpm(ah, header, payload, false);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1224
REG_WRITE(ah, AR_MCI_INTERRUPT_EN, saved_mci_int_en);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1230
void ar9003_mci_init_cal_req(struct ath_hw *ah, bool *is_reusable)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1232
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1233
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
124
static void ar9003_mci_send_coex_version_query(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1243
ar9003_mci_send_message(ah, MCI_GPM, 0, pld, 16, true, false);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1245
if (ar9003_mci_wait_for_gpm(ah, MCI_GPM_BT_CAL_GRANT, 0, 50000)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1253
void ar9003_mci_init_cal_done(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1255
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1264
ar9003_mci_send_message(ah, MCI_GPM, 0, pld, 16, true, false);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1267
int ar9003_mci_setup(struct ath_hw *ah, u32 gpm_addr, void *gpm_buf,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
127
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1270
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1277
return ar9003_mci_reset(ah, true, true, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1281
void ar9003_mci_cleanup(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1284
REG_WRITE(ah, AR_BTCOEX_CTRL, 0x00);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1285
ar9003_mci_disable_interrupt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1289
u32 ar9003_mci_state(struct ath_hw *ah, u32 state_type)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1291
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1298
value = REG_READ(ah, AR_BTCOEX_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1306
value = MS(REG_READ(ah, AR_MCI_GPM_1), AR_MCI_GPM_WRITE_PTR);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1314
value = MS(REG_READ(ah, AR_MCI_RX_STATUS),
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1320
value = MS(REG_READ(ah, AR_MCI_RX_STATUS),
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1326
ar9003_mci_send_coex_version_query(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1327
ar9003_mci_send_coex_wlan_channels(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1330
ar9003_mci_send_coex_halt_bt_gpm(ah, false, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1332
ar9003_mci_2g5g_switch(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1335
ar9003_mci_reset_req_wakeup(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1340
if ((REG_READ(ah, AR_GLB_GPIO_CONTROL) &
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1343
ar9003_mci_observation_set_up(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1348
ar9003_mci_send_coex_version_response(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1351
ar9003_mci_send_coex_version_query(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1355
ar9003_mci_send_coex_bt_status_query(ah, true, query_type);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1358
tsf = ath9k_hw_gettsf32(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
136
ar9003_mci_send_message(ah, MCI_GPM, 0, payload, 16, wait_done, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1360
ath_dbg(ath9k_hw_common(ah), MCI,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1364
ath_dbg(ath9k_hw_common(ah), MCI, "(MCI) RECOVER RX\n");
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1366
ar9003_mci_prep_interface(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1369
ar9003_mci_send_coex_wlan_channels(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1370
ar9003_mci_2g5g_switch(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1380
if (ath9k_hw_is_aic_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1381
value = ar9003_aic_calibration(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1384
if (ath9k_hw_is_aic_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1385
ar9003_aic_start_normal(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1388
if (ath9k_hw_is_aic_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1389
value = ar9003_aic_cal_reset(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
139
static void ar9003_mci_send_coex_version_response(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1392
if (ath9k_hw_is_aic_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1393
value = ar9003_aic_calibration_single(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1403
void ar9003_mci_bt_gain_ctrl(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1405
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1406
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1410
ar9003_mci_send_lna_take(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1413
REG_SET_BIT(ah, AR_PHY_GLB_CONTROL, AR_BTCOEX_CTRL_BT_OWN_SPDT_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1416
ar9003_mci_send_2g5g_status(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
142
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1422
void ar9003_mci_set_power_awake(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1429
btcoex_ctrl2 = REG_READ(ah, AR_BTCOEX_CTRL2);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1434
REG_WRITE(ah, AR_BTCOEX_CTRL2, (btcoex_ctrl2 | BIT(23)));
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1437
diag_sw = REG_READ(ah, AR_DIAG_SW);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1442
REG_WRITE(ah, AR_DIAG_SW, (diag_sw | BIT(27) | BIT(19) | BIT(18)));
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1443
lna_ctrl = REG_READ(ah, AR_OBS_BUS_CTRL) & 0x3;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1444
bt_sleep = MS(REG_READ(ah, AR_MCI_RX_STATUS), AR_MCI_RX_REMOTE_SLEEP);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1446
REG_WRITE(ah, AR_BTCOEX_CTRL2, btcoex_ctrl2);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1447
REG_WRITE(ah, AR_DIAG_SW, diag_sw);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1450
REG_SET_BIT(ah, AR_BTCOEX_RC, 0x1);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1451
REG_CLR_BIT(ah, AR_BTCOEX_RC, 0x1);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1456
void ar9003_mci_check_gpm_offset(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1458
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1459
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1465
offset = MS(REG_READ(ah, AR_MCI_GPM_1), AR_MCI_GPM_WRITE_PTR);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1475
u32 ar9003_mci_get_next_gpm_offset(struct ath_hw *ah, u32 *more)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1477
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1489
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1492
gpm_ptr = MS(REG_READ(ah, AR_MCI_GPM_1), AR_MCI_GPM_WRITE_PTR);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
151
ar9003_mci_send_message(ah, MCI_GPM, 0, payload, 16, wait_done, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1529
if (ar9003_mci_is_gpm_valid(ah, temp_index)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
154
static void ar9003_mci_send_coex_wlan_channels(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1550
void ar9003_mci_set_bt_version(struct ath_hw *ah, u8 major, u8 minor)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1552
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1557
ath_dbg(ath9k_hw_common(ah), MCI, "MCI BT version set: %d.%d\n",
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1562
void ar9003_mci_send_wlan_channels(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1564
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1567
ar9003_mci_send_coex_wlan_channels(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
157
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1571
u16 ar9003_mci_get_max_txpower(struct ath_hw *ah, u8 ctlmode)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
1573
if (!ah->btcoex_hw.mci.concur_tx)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
166
ar9003_mci_send_message(ah, MCI_GPM, 0, payload, 16, wait_done, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
170
static void ar9003_mci_send_coex_bt_status_query(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
173
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
191
if (!ar9003_mci_send_message(ah, MCI_GPM, 0, payload, 16,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
201
static void ar9003_mci_send_coex_halt_bt_gpm(struct ath_hw *ah, bool halt,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
204
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
221
ar9003_mci_send_message(ah, MCI_GPM, 0, payload, 16, wait_done, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
224
static void ar9003_mci_prep_interface(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
226
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
227
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
232
saved_mci_int_en = REG_READ(ah, AR_MCI_INTERRUPT_EN);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
234
REG_WRITE(ah, AR_MCI_INTERRUPT_EN, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
235
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
236
REG_READ(ah, AR_MCI_INTERRUPT_RX_MSG_RAW));
drivers/net/wireless/ath/ath9k/ar9003_mci.c
237
REG_WRITE(ah, AR_MCI_INTERRUPT_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
238
REG_READ(ah, AR_MCI_INTERRUPT_RAW));
drivers/net/wireless/ath/ath9k/ar9003_mci.c
24
static void ar9003_mci_reset_req_wakeup(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
240
ar9003_mci_remote_reset(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
241
ar9003_mci_send_req_wake(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
243
if (!ar9003_mci_wait_for_interrupt(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
26
REG_RMW_FIELD(ah, AR_MCI_COMMAND2,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
265
ar9003_mci_send_sys_waking(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
272
REG_WRITE(ah, AR_MCI_BT_PRI0, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
273
REG_WRITE(ah, AR_MCI_BT_PRI1, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
274
REG_WRITE(ah, AR_MCI_BT_PRI2, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
275
REG_WRITE(ah, AR_MCI_BT_PRI3, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
276
REG_WRITE(ah, AR_MCI_BT_PRI, 0X000000FF);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
284
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
286
REG_WRITE(ah, AR_MCI_INTERRUPT_RAW, AR_MCI_INTERRUPT_BT_PRI);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
289
ar9003_mci_send_lna_transfer(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
29
REG_RMW_FIELD(ah, AR_MCI_COMMAND2,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
294
if (ar9003_mci_wait_for_interrupt(ah,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
308
(REG_READ_FIELD(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
310
(REG_READ_FIELD(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
312
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
314
REG_WRITE(ah, AR_MCI_INTERRUPT_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
318
REG_WRITE(ah, AR_MCI_INTERRUPT_EN, saved_mci_int_en);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
321
void ar9003_mci_set_full_sleep(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
323
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
325
if (ar9003_mci_state(ah, MCI_STATE_ENABLE) &&
drivers/net/wireless/ath/ath9k/ar9003_mci.c
328
ar9003_mci_send_coex_halt_bt_gpm(ah, true, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
33
static int ar9003_mci_wait_for_interrupt(struct ath_hw *ah, u32 address,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
334
static void ar9003_mci_disable_interrupt(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
336
REG_WRITE(ah, AR_MCI_INTERRUPT_EN, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
337
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_EN, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
340
static void ar9003_mci_enable_interrupt(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
342
REG_WRITE(ah, AR_MCI_INTERRUPT_EN, AR_MCI_INTERRUPT_DEFAULT);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
343
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_EN,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
347
static bool ar9003_mci_check_int(struct ath_hw *ah, u32 ints)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
351
intr = REG_READ(ah, AR_MCI_INTERRUPT_RX_MSG_RAW);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
355
void ar9003_mci_get_interrupt(struct ath_hw *ah, u32 *raw_intr,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
358
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
36
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
369
void ar9003_mci_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
371
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
372
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
375
rx_msg_intr = REG_READ(ah, AR_MCI_INTERRUPT_RX_MSG_RAW);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
376
raw_intr = REG_READ(ah, AR_MCI_INTERRUPT_RAW);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
387
mci->cont_status = REG_READ(ah, AR_MCI_CONT_STATUS);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
389
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW, rx_msg_intr);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
39
if (!(REG_READ(ah, address) & bit_position)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
390
REG_WRITE(ah, AR_MCI_INTERRUPT_RAW, raw_intr);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
394
static void ar9003_mci_2g5g_changed(struct ath_hw *ah, bool is_2g)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
396
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
405
static bool ar9003_mci_is_gpm_valid(struct ath_hw *ah, u32 msg_index)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
407
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
425
static void ar9003_mci_observation_set_up(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
427
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
430
ath9k_hw_gpio_request_out(ah, 3, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
432
ath9k_hw_gpio_request_out(ah, 2, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
434
ath9k_hw_gpio_request_out(ah, 1, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
436
ath9k_hw_gpio_request_out(ah, 0, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
439
ath9k_hw_gpio_request_out(ah, 3, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
441
ath9k_hw_gpio_request_out(ah, 2, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
443
ath9k_hw_gpio_request_out(ah, 1, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
445
ath9k_hw_gpio_request_out(ah, 0, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
447
ath9k_hw_gpio_request_out(ah, 5, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
450
ath9k_hw_gpio_request_out(ah, 3, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
452
ath9k_hw_gpio_request_out(ah, 2, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
454
ath9k_hw_gpio_request_out(ah, 1, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
456
ath9k_hw_gpio_request_out(ah, 0, NULL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
461
REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL(ah), AR_GPIO_JTAG_DISABLE);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
463
REG_RMW_FIELD(ah, AR_PHY_GLB_CONTROL, AR_GLB_DS_JTAG_DISABLE, 1);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
464
REG_RMW_FIELD(ah, AR_PHY_GLB_CONTROL, AR_GLB_WLAN_UART_INTF_EN, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
465
REG_SET_BIT(ah, AR_GLB_GPIO_CONTROL, ATH_MCI_CONFIG_MCI_OBS_GPIO);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
467
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL2, AR_BTCOEX_CTRL2_GPIO_OBS_SEL, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
468
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL2, AR_BTCOEX_CTRL2_MAC_BB_OBS_SEL, 1);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
469
REG_WRITE(ah, AR_OBS(ah), 0x4b);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
470
REG_RMW_FIELD(ah, AR_DIAG_SW, AR_DIAG_OBS_PT_SEL1, 0x03);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
471
REG_RMW_FIELD(ah, AR_DIAG_SW, AR_DIAG_OBS_PT_SEL2, 0x01);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
472
REG_RMW_FIELD(ah, AR_MACMISC, AR_MACMISC_MISC_OBS_BUS_LSB, 0x02);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
473
REG_RMW_FIELD(ah, AR_MACMISC, AR_MACMISC_MISC_OBS_BUS_MSB, 0x03);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
474
REG_RMW_FIELD(ah, AR_PHY_TEST_CTL_STATUS(ah),
drivers/net/wireless/ath/ath9k/ar9003_mci.c
478
static bool ar9003_mci_send_coex_bt_flags(struct ath_hw *ah, bool wait_done,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
48
REG_WRITE(ah, address, bit_position);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
492
return ar9003_mci_send_message(ah, MCI_GPM, 0, pld, 16,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
496
static void ar9003_mci_sync_bt_state(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
498
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
501
cur_bt_state = ar9003_mci_state(ah, MCI_STATE_REMOTE_SLEEP);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
508
ar9003_mci_send_coex_version_query(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
509
ar9003_mci_send_coex_wlan_channels(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
512
ar9003_mci_send_coex_halt_bt_gpm(ah, false, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
516
void ar9003_mci_check_bt(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
518
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
527
ar9003_mci_sync_bt_state(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
528
ar9003_mci_2g5g_switch(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
536
static void ar9003_mci_process_gpm_extra(struct ath_hw *ah, u8 gpm_type,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
539
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
54
ar9003_mci_reset_req_wakeup(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
540
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
549
ar9003_mci_send_coex_version_response(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
566
ar9003_mci_send_coex_wlan_channels(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
58
REG_WRITE(ah, AR_MCI_INTERRUPT_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
583
static u32 ar9003_mci_wait_for_gpm(struct ath_hw *ah, u8 gpm_type,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
586
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
587
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
602
time_out = ar9003_mci_wait_for_interrupt(ah,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
61
REG_WRITE(ah, AR_MCI_INTERRUPT_RAW, AR_MCI_INTERRUPT_RX_MSG);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
610
offset = ar9003_mci_get_next_gpm_offset(ah, &more_data);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
653
ar9003_mci_send_message(ah, MCI_GPM, 0, payload, 16,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
659
ar9003_mci_process_gpm_extra(ah, recv_type,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
673
offset = ar9003_mci_get_next_gpm_offset(ah, &more_data);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
682
ar9003_mci_process_gpm_extra(ah, recv_type,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
691
bool ar9003_mci_start_reset(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
693
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
694
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
697
ar9003_mci_2g5g_changed(ah, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_mci.c
709
ar9003_mci_disable_interrupt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
71
REG_READ(ah, AR_MCI_INTERRUPT_RAW),
drivers/net/wireless/ath/ath9k/ar9003_mci.c
712
ar9003_mci_send_message(ah, MCI_GPM, 0, payload,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
717
if (ar9003_mci_wait_for_gpm(ah, MCI_GPM_BT_CAL_DONE,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
72
REG_READ(ah, AR_MCI_INTERRUPT_RX_MSG_RAW));
drivers/net/wireless/ath/ath9k/ar9003_mci.c
726
ar9003_mci_enable_interrupt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
731
int ar9003_mci_end_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
734
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
742
if (!ar9003_mci_check_int(ah, AR_MCI_INTERRUPT_RX_MSG_REMOTE_RESET) &&
drivers/net/wireless/ath/ath9k/ar9003_mci.c
743
!ar9003_mci_check_int(ah, AR_MCI_INTERRUPT_RX_MSG_REQ_WAKE))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
752
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_RAW,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
756
ar9003_mci_remote_reset(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
757
ar9003_mci_send_sys_waking(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
761
ar9003_mci_send_lna_transfer(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
765
REG_CLR_BIT(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
774
if (!ath9k_hw_init_cal(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
777
REG_SET_BIT(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
781
ar9003_mci_enable_interrupt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
785
static void ar9003_mci_mute_bt(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
787
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
79
static void ar9003_mci_remote_reset(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
790
REG_WRITE(ah, AR_MCI_MSG_ATTRIBUTES_TABLE, 0xffff0000);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
791
REG_WRITE(ah, AR_BTCOEX_WL_WEIGHTS0, 0xffffffff);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
792
REG_WRITE(ah, AR_BTCOEX_WL_WEIGHTS1, 0xffffffff);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
793
REG_WRITE(ah, AR_BTCOEX_WL_WEIGHTS2, 0xffffffff);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
794
REG_WRITE(ah, AR_BTCOEX_WL_WEIGHTS3, 0xffffffff);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
795
REG_SET_BIT(ah, AR_MCI_TX_CTRL, AR_MCI_TX_CTRL_DISABLE_LNA_UPDATE);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
806
ar9003_mci_send_lna_take(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
810
ar9003_mci_send_sys_sleeping(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
813
static void ar9003_mci_osla_setup(struct ath_hw *ah, bool enable)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
815
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
819
REG_CLR_BIT(ah, AR_BTCOEX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
823
REG_RMW_FIELD(ah, AR_MCI_SCHD_TABLE_2, AR_MCI_SCHD_TABLE_2_HW_BASED, 1);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
824
REG_RMW_FIELD(ah, AR_MCI_SCHD_TABLE_2,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
827
if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
828
REG_RMW_FIELD(ah, AR_MCI_MISC, AR_MCI_MISC_HW_FIX_EN, 1);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
83
ar9003_mci_send_message(ah, MCI_REMOTE_RESET, 0, payload, 16,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
832
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
834
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
837
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
840
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
844
static void ar9003_mci_stat_setup(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
846
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
848
if (!AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_mci.c
852
REG_RMW_FIELD(ah, AR_MCI_DBG_CNT_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
854
REG_RMW_FIELD(ah, AR_MCI_DBG_CNT_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
858
REG_RMW_FIELD(ah, AR_MCI_DBG_CNT_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
863
static void ar9003_mci_set_btcoex_ctrl_9565_1ANT(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
877
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL2,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
879
REG_WRITE(ah, AR_BTCOEX_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
88
static void ar9003_mci_send_lna_transfer(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
882
static void ar9003_mci_set_btcoex_ctrl_9565_2ANT(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
896
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL2,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
898
REG_WRITE(ah, AR_BTCOEX_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
901
static void ar9003_mci_set_btcoex_ctrl_9462(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
915
REG_WRITE(ah, AR_BTCOEX_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
918
int ar9003_mci_reset(struct ath_hw *ah, bool en_int, bool is_2g,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
92
ar9003_mci_send_message(ah, MCI_LNA_TRANS, 0, &payload, 1,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
921
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
922
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/ar9003_mci.c
928
if (REG_READ(ah, AR_BTCOEX_CTRL) == 0xdeadbeef) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
934
REG_WRITE(ah, AR_MCI_GPM_0, mci->gpm_addr);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
935
REG_WRITE(ah, AR_MCI_GPM_1, mci->gpm_len);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
936
REG_WRITE(ah, AR_MCI_SCHD_TABLE_0, mci->sched_addr);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
942
if (AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_mci.c
946
ar9003_mci_set_btcoex_ctrl_9565_1ANT(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
948
ar9003_mci_set_btcoex_ctrl_9565_2ANT(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
950
ar9003_mci_set_btcoex_ctrl_9462(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
954
ar9003_mci_osla_setup(ah, true);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
956
ar9003_mci_osla_setup(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
958
REG_SET_BIT(ah, AR_PHY_GLB_CONTROL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
96
static void ar9003_mci_send_req_wake(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.c
960
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL3,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
963
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL2, AR_BTCOEX_CTRL2_RX_DEWEIGHT, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
964
REG_RMW_FIELD(ah, AR_PCU_MISC, AR_PCU_BT_ANT_PREVENT_RX, 0);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
967
REG_RMW_FIELD(ah, AR_BTCOEX_WL_LNA, AR_BTCOEX_WL_LNA_TIMEOUT, 0x3D090);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
971
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL2,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
973
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL2,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
975
REG_RMW_FIELD(ah, AR_BTCOEX_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
978
REG_WRITE(ah, AR_BTCOEX_MAX_TXPWR(i), 0x7f7f7f7f);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
98
ar9003_mci_send_message(ah, MCI_REQ_WAKE, MCI_FLAG_DISABLE_TIMESTAMP,
drivers/net/wireless/ath/ath9k/ar9003_mci.c
982
REG_RMW_FIELD(ah, AR_MCI_TX_CTRL, AR_MCI_TX_CTRL_CLK_DIV, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
983
REG_SET_BIT(ah, AR_BTCOEX_CTRL, AR_BTCOEX_CTRL_MCI_MODE_EN);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
986
regval = REG_READ(ah, AR_MCI_COMMAND2);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
988
REG_WRITE(ah, AR_MCI_COMMAND2, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
993
REG_WRITE(ah, AR_MCI_COMMAND2, regval);
drivers/net/wireless/ath/ath9k/ar9003_mci.c
996
ar9003_mci_mute_bt(ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
306
bool ar9003_mci_send_message(struct ath_hw *ah, u8 header, u32 flag,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
309
u32 ar9003_mci_state(struct ath_hw *ah, u32 state_type);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
310
int ar9003_mci_setup(struct ath_hw *ah, u32 gpm_addr, void *gpm_buf,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
312
void ar9003_mci_cleanup(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
313
void ar9003_mci_get_interrupt(struct ath_hw *ah, u32 *raw_intr,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
315
u32 ar9003_mci_get_next_gpm_offset(struct ath_hw *ah, u32 *more);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
316
void ar9003_mci_set_bt_version(struct ath_hw *ah, u8 major, u8 minor);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
317
void ar9003_mci_send_wlan_channels(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
324
void ar9003_mci_stop_bt(struct ath_hw *ah, bool save_fullsleep);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
325
void ar9003_mci_init_cal_req(struct ath_hw *ah, bool *is_reusable);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
326
void ar9003_mci_init_cal_done(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
327
void ar9003_mci_set_full_sleep(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
328
void ar9003_mci_2g5g_switch(struct ath_hw *ah, bool force);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
329
void ar9003_mci_check_bt(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
330
bool ar9003_mci_start_reset(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
331
int ar9003_mci_end_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
333
int ar9003_mci_reset(struct ath_hw *ah, bool en_int, bool is_2g,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
335
void ar9003_mci_get_isr(struct ath_hw *ah, enum ath9k_int *masked);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
336
void ar9003_mci_bt_gain_ctrl(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
337
void ar9003_mci_set_power_awake(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
338
void ar9003_mci_check_gpm_offset(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
339
u16 ar9003_mci_get_max_txpower(struct ath_hw *ah, u8 ctlmode);
drivers/net/wireless/ath/ath9k/ar9003_mci.h
343
static inline void ar9003_mci_stop_bt(struct ath_hw *ah, bool save_fullsleep)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
346
static inline void ar9003_mci_init_cal_req(struct ath_hw *ah, bool *is_reusable)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
349
static inline void ar9003_mci_init_cal_done(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
352
static inline void ar9003_mci_set_full_sleep(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
355
static inline void ar9003_mci_2g5g_switch(struct ath_hw *ah, bool wait_done)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
358
static inline void ar9003_mci_check_bt(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
361
static inline bool ar9003_mci_start_reset(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
365
static inline int ar9003_mci_end_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
370
static inline void ar9003_mci_reset(struct ath_hw *ah, bool en_int, bool is_2g,
drivers/net/wireless/ath/ath9k/ar9003_mci.h
374
static inline void ar9003_mci_get_isr(struct ath_hw *ah, enum ath9k_int *masked)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
377
static inline void ar9003_mci_bt_gain_ctrl(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
380
static inline void ar9003_mci_set_power_awake(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
383
static inline void ar9003_mci_check_gpm_offset(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_mci.h
386
static inline u16 ar9003_mci_get_max_txpower(struct ath_hw *ah, u8 ctlmode)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
100
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
1006
bool ar9003_is_paprd_enabled(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
1008
if ((ah->caps.hw_caps & ATH9K_HW_CAP_PAPRD) && ah->config.enable_paprd)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
101
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
104
scale = ar9003_get_paprd_scale_factor(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
107
power = REG_READ_FIELD(ah, AR_PHY_POWERTX_RATE8,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
110
power = REG_READ_FIELD(ah, AR_PHY_POWERTX_RATE6,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
114
delta = abs((int) ah->paprd_target_power - (int) power);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
118
switch (get_streams(ah->txchainmask)) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
131
ah->txchainmask);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
138
static int ar9003_paprd_setup_single_table(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
140
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
153
u32 am2pm_mask = ah->paprd_ratemask;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
155
if (IS_CHAN_2GHZ(ah->curchan))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
156
training_power = ar9003_get_training_power_2g(ah);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
158
training_power = ar9003_get_training_power_5g(ah);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
161
training_power, ah->paprd_target_power);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
168
ah->paprd_training_power = training_power;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
170
if (AR_SREV_9330(ah))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
173
REG_RMW_FIELD(ah, AR_PHY_PAPRD_AM2AM, AR_PHY_PAPRD_AM2AM_MASK,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
174
ah->paprd_ratemask);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
175
REG_RMW_FIELD(ah, AR_PHY_PAPRD_AM2PM, AR_PHY_PAPRD_AM2PM_MASK,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
177
REG_RMW_FIELD(ah, AR_PHY_PAPRD_HT40, AR_PHY_PAPRD_HT40_MASK,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
178
ah->paprd_ratemask_ht40);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
181
ah->paprd_ratemask, ah->paprd_ratemask_ht40);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
183
for (i = 0; i < ah->caps.max_txchains; i++) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
184
REG_RMW_FIELD(ah, ctrl0[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
186
REG_RMW_FIELD(ah, ctrl1[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
188
REG_RMW_FIELD(ah, ctrl1[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
190
REG_RMW_FIELD(ah, ctrl1[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
192
REG_RMW_FIELD(ah, ctrl1[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
194
REG_RMW_FIELD(ah, ctrl1[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
196
REG_RMW_FIELD(ah, ctrl1[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
198
REG_RMW_FIELD(ah, ctrl0[i],
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
202
ar9003_paprd_enable(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
204
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
206
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
208
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
21
void ar9003_paprd_enable(struct ath_hw *ah, bool val)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
210
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
212
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
214
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
216
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
219
if (AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
222
if (IS_CHAN_2GHZ(ah->curchan)) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
223
if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
23
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
232
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL2(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
234
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
236
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
238
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
240
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
243
if (AR_SREV_9485(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
244
AR_SREV_9462(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
245
AR_SREV_9565(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
246
AR_SREV_9550(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
247
AR_SREV_9330(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
248
AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
249
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
252
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
257
if (IS_CHAN_2GHZ(ah->curchan) && !AR_SREV_9462(ah) && !AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
260
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
263
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
265
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL4(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
267
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL4(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
269
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL4(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
272
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_0_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
274
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_1_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
276
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_2_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
278
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_3_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
280
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_4_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
282
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_5_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
284
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_6_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
286
REG_RMW_FIELD(ah, AR_PHY_PAPRD_PRE_POST_SCALE_7_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
291
static void ar9003_paprd_get_gain_table(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
293
u32 *entry = ah->paprd_gain_table_entries;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
294
u8 *index = ah->paprd_gain_table_index;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
299
entry[i] = REG_READ(ah, reg);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
305
static unsigned int ar9003_get_desired_gain(struct ath_hw *ah, int chain,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
316
REG_CLR_BIT(ah, AR_PHY_PAPRD_TRAINER_STAT1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
318
desired_scale = REG_READ_FIELD(ah, AR_PHY_TPC_12,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
320
alpha_therm = REG_READ_FIELD(ah, AR_PHY_TPC_19,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
322
alpha_volt = REG_READ_FIELD(ah, AR_PHY_TPC_19,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
324
therm_cal_value = REG_READ_FIELD(ah, AR_PHY_TPC_18,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
326
volt_cal_value = REG_READ_FIELD(ah, AR_PHY_TPC_18,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
328
therm_value = REG_READ_FIELD(ah, AR_PHY_BB_THERM_ADC_4,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
330
volt_value = REG_READ_FIELD(ah, AR_PHY_BB_THERM_ADC_4,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
347
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
352
olpc_gain_delta = REG_READ_FIELD(ah, reg_olpc,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
354
cl_gain_mod = REG_READ_FIELD(ah, reg_cl_gain,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
370
static void ar9003_tx_force_gain(struct ath_hw *ah, unsigned int gain_index)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
374
u32 *gain_table_entries = ah->paprd_gain_table_entries;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
385
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
387
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
389
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
391
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
393
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
395
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
397
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
399
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
401
REG_RMW_FIELD(ah, AR_PHY_TX_FORCED_GAIN,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
403
REG_RMW_FIELD(ah, AR_PHY_TPC_1, AR_PHY_TPC_1_FORCED_DAC_GAIN, 0);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
404
REG_RMW_FIELD(ah, AR_PHY_TPC_1, AR_PHY_TPC_1_FORCE_DAC_GAIN, 0);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
41
if (ar9003_get_paprd_rate_mask_ht20(ah, is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
45
if (ar9003_get_paprd_rate_mask_ht20(ah, is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
49
if (ar9003_get_paprd_rate_mask_ht20(ah, is2ghz)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
56
ah->paprd_table_write_done = true;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
57
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
60
REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL0_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
62
if (ah->caps.tx_chainmask & BIT(1))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
63
REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL0_B1,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
65
if (ah->caps.tx_chainmask & BIT(2))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
66
REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL0_B2,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
71
static int ar9003_get_training_power_2g(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
73
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
751
void ar9003_paprd_populate_single_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
757
u32 training_power = ah->paprd_training_power;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
76
scale = ar9003_get_paprd_scale_factor(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
769
REG_WRITE(ah, reg, paprd_table_val[i]);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
78
if (AR_SREV_9330(ah) || AR_SREV_9340(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
780
REG_RMW_FIELD(ah, reg, AR_PHY_PA_GAIN123_PA_GAIN1, small_signal_gain);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
782
REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL1_B0,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
786
if (ah->caps.tx_chainmask & BIT(1))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
787
REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL1_B1,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
79
AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
791
if (ah->caps.tx_chainmask & BIT(2))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
793
REG_RMW_FIELD(ah, AR_PHY_PAPRD_CTRL1_B2,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
799
void ar9003_paprd_setup_gain_table(struct ath_hw *ah, int chain)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
80
power = ah->paprd_target_power + 2;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
802
unsigned int train_power = ah->paprd_training_power;
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
804
desired_gain = ar9003_get_desired_gain(ah, chain, train_power);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
808
if (ah->paprd_gain_table_index[i] >= desired_gain)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
81
} else if (AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
813
ar9003_tx_force_gain(ah, gain_index);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
815
REG_CLR_BIT(ah, AR_PHY_PAPRD_TRAINER_STAT1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
820
static bool ar9003_paprd_retrain_pa_in(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
830
if (!AR_SREV_9485(ah) && !AR_SREV_9330(ah))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
833
capdiv2g = REG_READ_FIELD(ah, AR_PHY_65NM_CH0_TXRF3,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
836
quick_drop = REG_READ_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
84
power = REG_READ_FIELD(ah, AR_PHY_POWERTX_RATE5,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
847
if (AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
87
delta = abs((int) ah->paprd_target_power - (int) power);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
876
} else if (AR_SREV_9330(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
907
REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_TXRF3,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
909
REG_RMW_FIELD(ah, AR_PHY_PAPRD_TRAINER_CNTL3(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
916
int ar9003_paprd_create_curve(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
935
REG_CLR_BIT(ah, AR_PHY_CHAN_INFO_MEMORY(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
940
data_L[i] = REG_READ(ah, reg + (i << 2));
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
942
REG_SET_BIT(ah, AR_PHY_CHAN_INFO_MEMORY(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
946
data_U[i] = REG_READ(ah, reg + (i << 2));
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
951
if (ar9003_paprd_retrain_pa_in(ah, caldata, chain))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
954
REG_CLR_BIT(ah, AR_PHY_PAPRD_TRAINER_STAT1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
963
int ar9003_paprd_init_table(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
967
ret = ar9003_paprd_setup_single_table(ah);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
971
ar9003_paprd_get_gain_table(ah);
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
976
bool ar9003_paprd_is_done(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
98
static int ar9003_get_training_power_5g(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
980
paprd_done = REG_READ_FIELD(ah, AR_PHY_PAPRD_TRAINER_STAT1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
983
if (AR_SREV_9485(ah))
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
987
agc2_pwr = REG_READ_FIELD(ah, AR_PHY_PAPRD_TRAINER_STAT1(ah),
drivers/net/wireless/ath/ath9k/ar9003_paprd.c
990
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1015
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1018
ath9k_hw_get_delta_slope_vals(ah, coef_scaled, &ds_coef_man,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1021
REG_RMW_FIELD(ah, AR_PHY_TIMING3,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1023
REG_RMW_FIELD(ah, AR_PHY_TIMING3,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1032
ath9k_hw_get_delta_slope_vals(ah, coef_scaled, &ds_coef_man,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1036
REG_RMW_FIELD(ah, AR_PHY_SGI_DELTA,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1038
REG_RMW_FIELD(ah, AR_PHY_SGI_DELTA,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1042
static bool ar9003_hw_rfbus_req(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1044
REG_WRITE(ah, AR_PHY_RFBUS_REQ, AR_PHY_RFBUS_REQ_EN);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1045
return ath9k_hw_wait(ah, AR_PHY_RFBUS_GRANT, AR_PHY_RFBUS_GRANT_EN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1053
static void ar9003_hw_rfbus_done(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1055
u32 synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1057
ath9k_hw_synth_delay(ah, ah->curchan, synthDelay);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1059
REG_WRITE(ah, AR_PHY_RFBUS_REQ, 0);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1062
static bool ar9003_hw_ani_control(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1065
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1066
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1067
struct ar5416AniState *aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1075
switch (cmd & ah->ani_function) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1086
if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1110
REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1113
REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1116
REG_RMW_FIELD(ah, AR_PHY_SFCORR,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1119
REG_RMW_FIELD(ah, AR_PHY_SFCORR,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1122
REG_RMW_FIELD(ah, AR_PHY_SFCORR,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1125
REG_RMW_FIELD(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1128
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1131
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1134
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1137
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1142
REG_SET_BIT(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1145
REG_CLR_BIT(ah, AR_PHY_SFCORR_LOW,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1156
ah->stats.ast_ani_ofdmon++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1158
ah->stats.ast_ani_ofdmoff++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1184
REG_RMW_FIELD(ah, AR_PHY_FIND_SIG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1200
REG_RMW_FIELD(ah, AR_PHY_FIND_SIG_LOW,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1221
ah->stats.ast_ani_stepup++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1223
ah->stats.ast_ani_stepdown++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1248
REG_RMW_FIELD(ah, AR_PHY_TIMING5,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1264
REG_RMW_FIELD(ah, AR_PHY_EXT_CCA,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1285
ah->stats.ast_ani_spurup++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1287
ah->stats.ast_ani_spurdown++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1299
if (ah->caps.rx_chainmask == 1)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1302
REG_RMW_FIELD(ah, AR_PHY_MRC_CCK_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1304
REG_RMW_FIELD(ah, AR_PHY_MRC_CCK_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1312
ah->stats.ast_ani_ccklow++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1314
ah->stats.ast_ani_cckhigh++;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1336
static void ar9003_hw_do_getnf(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1348
if (ah->rxchainmask & BIT(i)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1349
nf = MS(REG_READ(ah, ah->nf_regs[i]),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1353
if (IS_CHAN_HT40(ah->curchan)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1356
nf = MS(REG_READ(ah, ah->nf_regs[ext_idx]),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1364
static void ar9003_hw_set_nf_limits(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1366
ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9300_2GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1367
ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9300_2GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1368
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9300_2GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1369
ah->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_9300_5GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1370
ah->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_9300_5GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1371
ah->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_9300_5GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1373
if (AR_SREV_9330(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1374
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9330_2GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1376
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1377
ah->nf_2g.min = AR_PHY_CCA_MIN_GOOD_VAL_9462_2GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1378
ah->nf_2g.nominal = AR_PHY_CCA_NOM_VAL_9462_2GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1379
ah->nf_5g.min = AR_PHY_CCA_MIN_GOOD_VAL_9462_5GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1380
ah->nf_5g.nominal = AR_PHY_CCA_NOM_VAL_9462_5GHZ;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1389
static void ar9003_hw_ani_cache_ini_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1392
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1393
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1397
aniState = &ah->ani;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1401
ah->hw_version.macVersion,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1402
ah->hw_version.macRev,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1403
ah->opmode,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1406
val = REG_READ(ah, AR_PHY_SFCORR);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1411
val = REG_READ(ah, AR_PHY_SFCORR_LOW);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1416
val = REG_READ(ah, AR_PHY_SFCORR_EXT);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1421
iniDef->firstep = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1424
iniDef->firstepLow = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1427
iniDef->cycpwrThr1 = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1430
iniDef->cycpwrThr1Ext = REG_READ_FIELD(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1441
static void ar9003_hw_set_radar_params(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1448
REG_CLR_BIT(ah, AR_PHY_RADAR_0, AR_PHY_RADAR_0_ENA);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1459
radar_1 = REG_READ(ah, AR_PHY_RADAR_1);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1468
REG_WRITE(ah, AR_PHY_RADAR_0, radar_0);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1469
REG_WRITE(ah, AR_PHY_RADAR_1, radar_1);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1471
REG_SET_BIT(ah, AR_PHY_RADAR_EXT, AR_PHY_RADAR_EXT_ENA);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1473
REG_CLR_BIT(ah, AR_PHY_RADAR_EXT, AR_PHY_RADAR_EXT_ENA);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1475
if (AR_SREV_9300(ah) || AR_SREV_9340(ah) || AR_SREV_9580(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1476
REG_WRITE_ARRAY(&ah->ini_dfs,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1477
IS_CHAN_HT40(ah->curchan) ? 2 : 1, regWrites);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1481
static void ar9003_hw_set_radar_conf(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1483
struct ath_hw_radar_conf *conf = &ah->radar_conf;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
149
static int ar9003_hw_set_channel(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1495
static void ar9003_hw_antdiv_comb_conf_get(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1500
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1508
if (AR_SREV_9330_11(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1512
} else if (AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1516
} else if (AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1527
static void ar9003_hw_antdiv_comb_conf_set(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1532
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1549
REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1554
static void ar9003_hw_set_bt_ant_diversity(struct ath_hw *ah, bool enable)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1556
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
156
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1560
if (!AR_SREV_9485(ah) && !AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1563
if (AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1564
regval = ar9003_hw_ant_ctrl_common_2_get(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1565
IS_CHAN_2GHZ(ah->curchan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1568
regval |= ah->config.ant_ctrl_comm2g_switch_enable;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1570
REG_RMW_FIELD(ah, AR_PHY_SWITCH_COM_2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1574
ant_div_ctl1 = ah->eep_ops->get_eeprom(ah, EEP_ANT_DIV_CTL1);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1580
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1583
REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1585
if (AR_SREV_9485_11_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1589
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1595
REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
160
if (AR_SREV_9330(ah) || AR_SREV_9485(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1600
regval = REG_READ(ah, AR_PHY_CCK_DETECT);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1606
REG_WRITE(ah, AR_PHY_CCK_DETECT, regval);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1609
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
161
AR_SREV_9531(ah) || AR_SREV_9550(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
162
AR_SREV_9561(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1622
REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1624
} else if (AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1626
REG_SET_BIT(ah, AR_PHY_MC_GAIN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1628
REG_SET_BIT(ah, AR_PHY_MC_GAIN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
163
if (ah->is_clk_25mhz)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1630
REG_SET_BIT(ah, AR_PHY_CCK_DETECT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1632
REG_SET_BIT(ah, AR_PHY_RESTART,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1634
REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1637
REG_CLR_BIT(ah, AR_PHY_MC_GAIN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1639
REG_CLR_BIT(ah, AR_PHY_MC_GAIN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1641
REG_CLR_BIT(ah, AR_PHY_CCK_DETECT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1643
REG_CLR_BIT(ah, AR_PHY_RESTART,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1645
REG_CLR_BIT(ah, AR_BTCOEX_WL_LNADIV,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1648
regval = REG_READ(ah, AR_PHY_MC_GAIN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1657
REG_WRITE(ah, AR_PHY_MC_GAIN_CTRL, regval);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1664
static int ar9003_hw_fast_chan_change(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1676
txgain_index = AR_SREV_9531(ah) ? 1 : modesIndex;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1678
if (modesIndex == ah->modes_index) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1683
ar9003_hw_prog_ini(ah, &ah->iniSOC[ATH_INI_POST], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1684
ar9003_hw_prog_ini(ah, &ah->iniMac[ATH_INI_POST], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1685
ar9003_hw_prog_ini(ah, &ah->iniBB[ATH_INI_POST], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1686
ar9003_hw_prog_ini(ah, &ah->iniRadio[ATH_INI_POST], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1688
if (AR_SREV_9462_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1689
ar9003_hw_prog_ini(ah, &ah->ini_radio_post_sys2ant,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1692
REG_WRITE_ARRAY(&ah->iniModesTxGain, txgain_index, regWrites);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1694
if (AR_SREV_9462_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1698
if (ar9003_hw_get_rx_gain_idx(ah) == 2) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1699
REG_WRITE_ARRAY(&ah->ini_modes_rxgain_bb_core,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1701
REG_WRITE_ARRAY(&ah->ini_modes_rxgain_bb_postamble,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
171
} else if (AR_SREV_9340(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1710
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1711
REG_WRITE_ARRAY(&ah->iniModesFastClock, modesIndex, regWrites);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1713
if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1714
REG_WRITE_ARRAY(&ah->iniModesFastClock, 1, regWrites);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
172
if (ah->is_clk_25mhz) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1720
ar9003_hw_prog_ini(ah, &ah->iniCckfirJapan2484, 1);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1722
ah->modes_index = modesIndex;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1726
ar9003_hw_set_rfmode(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1730
static void ar9003_hw_spectral_scan_config(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1736
REG_CLR_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1741
REG_SET_BIT(ah, AR_PHY_RADAR_0, AR_PHY_RADAR_0_FFT_ENA);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1742
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN, AR_PHY_SPECTRAL_SCAN_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1755
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1758
REG_CLR_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1761
REG_RMW_FIELD(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1763
REG_RMW_FIELD(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1765
REG_RMW_FIELD(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1771
static void ar9003_hw_spectral_scan_trigger(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1773
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1776
REG_SET_BIT(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1780
static void ar9003_hw_spectral_scan_wait(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1782
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1785
if (!ath9k_hw_wait(ah, AR_PHY_SPECTRAL_SCAN,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1793
static void ar9003_hw_tx99_start(struct ath_hw *ah, u32 qnum)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1795
REG_SET_BIT(ah, AR_PHY_TEST(ah), PHY_AGC_CLR);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1796
REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_DIS);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1797
REG_WRITE(ah, AR_CR, AR_CR_RXD);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1798
REG_WRITE(ah, AR_DLCL_IFS(qnum), 0);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1799
REG_WRITE(ah, AR_D_GBL_IFS_SIFS, 20); /* 50 OK */
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1800
REG_WRITE(ah, AR_D_GBL_IFS_EIFS, 20);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1801
REG_WRITE(ah, AR_TIME_OUT, 0x00000400);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1802
REG_WRITE(ah, AR_DRETRY_LIMIT(qnum), 0xffffffff);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1803
REG_SET_BIT(ah, AR_QMISC(qnum), AR_Q_MISC_DCU_EARLY_TERM_REQ);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1806
static void ar9003_hw_tx99_stop(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1808
REG_CLR_BIT(ah, AR_PHY_TEST(ah), PHY_AGC_CLR);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1809
REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_DIS);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1812
static void ar9003_hw_tx99_set_txpower(struct ath_hw *ah, u8 txpower)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1821
ar9003_hw_tx_power_regwrite(ah, p_pwr_array);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1824
static void ar9003_hw_init_txpower_cck(struct ath_hw *ah, u8 *rate_array)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1826
ah->tx_power[0] = rate_array[ALL_TARGET_LEGACY_1L_5L];
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1827
ah->tx_power[1] = rate_array[ALL_TARGET_LEGACY_1L_5L];
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1828
ah->tx_power[2] = min(rate_array[ALL_TARGET_LEGACY_1L_5L],
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1830
ah->tx_power[3] = min(rate_array[ALL_TARGET_LEGACY_11L],
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1834
static void ar9003_hw_init_txpower_ofdm(struct ath_hw *ah, u8 *rate_array,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1842
ah->tx_power[i] = rate_array[j];
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1846
static void ar9003_hw_init_txpower_ht(struct ath_hw *ah, u8 *rate_array,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
185
if ((AR_SREV_9340(ah) || AR_SREV_9550(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1855
ah->tx_power[i] = rate_array[j];
drivers/net/wireless/ath/ath9k/ar9003_phy.c
186
AR_SREV_9531(ah) || AR_SREV_9561(ah)) &&
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1861
ah->tx_power[i] = rate_array[j];
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1867
ah->tx_power[i] = rate_array[j];
drivers/net/wireless/ath/ath9k/ar9003_phy.c
187
ah->is_clk_25mhz) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1872
static void ar9003_hw_init_txpower_stbc(struct ath_hw *ah, int ss_offset,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1875
memcpy(&ah->tx_power_stbc[ss_offset], &ah->tx_power[ss_offset],
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1877
memcpy(&ah->tx_power_stbc[ds_offset], &ah->tx_power[ds_offset],
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1879
memcpy(&ah->tx_power_stbc[ts_offset], &ah->tx_power[ts_offset],
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1883
void ar9003_hw_init_rate_txpower(struct ath_hw *ah, u8 *rate_array,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1887
ar9003_hw_init_txpower_ofdm(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1890
ar9003_hw_init_txpower_ht(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1895
ar9003_hw_init_txpower_stbc(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1901
ar9003_hw_init_txpower_cck(ah, rate_array);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1902
ar9003_hw_init_txpower_ofdm(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1905
ar9003_hw_init_txpower_ht(ah, rate_array,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1910
ar9003_hw_init_txpower_stbc(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1918
void ar9003_hw_attach_phy_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1920
struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1921
struct ath_hw_ops *ops = ath9k_hw_ops(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1934
if (AR_SREV_9340(ah) || AR_SREV_9550(ah) || AR_SREV_9531(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1935
AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1967
ar9003_hw_set_nf_limits(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1968
ar9003_hw_set_radar_conf(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1969
memcpy(ah->nf_regs, ar9300_cca_regs, sizeof(ah->nf_regs));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
1998
bool ar9003_hw_bb_watchdog_check(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2002
switch(ah->bb_watchdog_last_status) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2004
val = REG_READ(ah, AR_PHY_RADAR_0);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2007
REG_WRITE(ah, AR_PHY_RADAR_0, val);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2009
val = REG_READ(ah, AR_PHY_RADAR_0);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2012
REG_WRITE(ah, AR_PHY_RADAR_0, val);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2021
if (AR_SREV_9340(ah) || AR_SREV_9531(ah) || AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2035
void ar9003_hw_bb_watchdog_config(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2037
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2038
u32 idle_tmo_ms = ah->bb_watchdog_timeout_ms;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2043
REG_WRITE(ah, AR_PHY_WATCHDOG_CTL_2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2044
REG_READ(ah, AR_PHY_WATCHDOG_CTL_2) &
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2049
REG_WRITE(ah, AR_PHY_WATCHDOG_CTL_1,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2050
REG_READ(ah, AR_PHY_WATCHDOG_CTL_1) &
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2059
val = REG_READ(ah, AR_PHY_WATCHDOG_CTL_2) & AR_PHY_WATCHDOG_CNTL2_MASK;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
206
REG_WRITE(ah, AR_PHY_SYNTH_CONTROL, reg32);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2060
REG_WRITE(ah, AR_PHY_WATCHDOG_CTL_2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2078
if (ah->curchan && IS_CHAN_HT40(ah->curchan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2085
REG_WRITE(ah, AR_PHY_WATCHDOG_CTL_1,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
209
REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_SYNTH4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2094
void ar9003_hw_bb_watchdog_read(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2100
ah->bb_watchdog_last_status = REG_READ(ah, AR_PHY_WATCHDOG_STATUS);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2106
REG_WRITE(ah, AR_PHY_WATCHDOG_STATUS,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2107
ah->bb_watchdog_last_status & ~AR_PHY_WATCHDOG_STATUS_CLR);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2110
void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2112
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2118
status = ah->bb_watchdog_last_status;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2134
REG_READ(ah, AR_PHY_WATCHDOG_CTL_1),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2135
REG_READ(ah, AR_PHY_WATCHDOG_CTL_2));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2137
REG_READ(ah, AR_PHY_GEN_CTRL));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2149
void ar9003_hw_disable_phy_restart(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
215
REG_WRITE(ah, AR_PHY_65NM_CH0_SYNTH7, reg32);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2159
result = MS(ah->bb_watchdog_last_status, AR_PHY_WATCHDOG_RX_OFDM_SM);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2161
if ((result == 0xb) || ah->bb_hang_rx_ofdm) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2162
ah->bb_hang_rx_ofdm = true;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2163
val = REG_READ(ah, AR_PHY_RESTART);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
2165
REG_WRITE(ah, AR_PHY_RESTART, val);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
221
REG_WRITE(ah, AR_PHY_65NM_CH0_SYNTH7, reg32);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
223
ah->curchan = chan;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
238
static void ar9003_hw_spur_mitigate_mrc_cck(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
245
u8 *spur_fbin_ptr = ar9003_get_spur_chan_ptr(ah, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
252
if (AR_SREV_9485(ah) || AR_SREV_9340(ah) || AR_SREV_9330(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
253
AR_SREV_9550(ah) || AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
259
if (REG_READ_FIELD(ah, AR_PHY_GEN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
269
range = AR_SREV_9462(ah) ? 5 : 10;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
275
if (AR_SREV_9462(ah) && (i == 0 || i == 3))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
279
if (AR_SREV_9485(ah) || AR_SREV_9340(ah) || AR_SREV_9330(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
280
AR_SREV_9550(ah) || AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
299
REG_RMW_FIELD(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
301
REG_RMW_FIELD(ah, AR_PHY_CCK_SPUR_MIT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
303
REG_RMW_FIELD(ah, AR_PHY_CCK_SPUR_MIT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
306
REG_RMW_FIELD(ah, AR_PHY_CCK_SPUR_MIT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
309
REG_RMW_FIELD(ah, AR_PHY_CCK_SPUR_MIT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
317
REG_RMW_FIELD(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
319
REG_RMW_FIELD(ah, AR_PHY_CCK_SPUR_MIT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
321
REG_RMW_FIELD(ah, AR_PHY_CCK_SPUR_MIT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
326
static void ar9003_hw_spur_ofdm_clear(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
328
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
330
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
332
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
334
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
336
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
338
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
340
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
342
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
344
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
347
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
349
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
351
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
353
REG_RMW_FIELD(ah, AR_PHY_PILOT_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
355
REG_RMW_FIELD(ah, AR_PHY_SPUR_MASK_A(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
357
REG_RMW_FIELD(ah, AR_PHY_CHAN_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
359
REG_RMW_FIELD(ah, AR_PHY_PILOT_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
361
REG_RMW_FIELD(ah, AR_PHY_CHAN_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
363
REG_RMW_FIELD(ah, AR_PHY_SPUR_MASK_A(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
365
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
369
static void ar9003_hw_spur_ofdm(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
380
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
382
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
384
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
386
REG_RMW_FIELD(ah, AR_PHY_SFCORR_EXT,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
388
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
391
if (!(AR_SREV_9565(ah) && range == 10 && synth_freq == 2437))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
392
REG_RMW_FIELD(ah, AR_PHY_TIMING11,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
395
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
397
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
399
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
402
if (!AR_SREV_9340(ah) &&
drivers/net/wireless/ath/ath9k/ar9003_phy.c
403
REG_READ_FIELD(ah, AR_PHY_MODE,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
405
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
414
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
416
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
418
REG_RMW_FIELD(ah, AR_PHY_TIMING4,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
420
REG_RMW_FIELD(ah, AR_PHY_PILOT_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
422
REG_RMW_FIELD(ah, AR_PHY_SPUR_MASK_A(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
424
REG_RMW_FIELD(ah, AR_PHY_CHAN_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
426
REG_RMW_FIELD(ah, AR_PHY_PILOT_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
428
REG_RMW_FIELD(ah, AR_PHY_CHAN_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
430
REG_RMW_FIELD(ah, AR_PHY_SPUR_MASK_A(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
432
REG_RMW_FIELD(ah, AR_PHY_SPUR_REG,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
436
static void ar9003_hw_spur_ofdm_9565(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
447
REG_RMW_FIELD(ah, AR_PHY_PILOT_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
452
REG_RMW_FIELD(ah, AR_PHY_SPUR_MASK_B(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
456
REG_RMW_FIELD(ah, AR_PHY_CHAN_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
459
REG_RMW_FIELD(ah, AR_PHY_PILOT_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
461
REG_RMW_FIELD(ah, AR_PHY_CHAN_SPUR_MASK,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
465
REG_RMW_FIELD(ah, AR_PHY_SPUR_MASK_B(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
469
static void ar9003_hw_spur_ofdm_work(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
481
if (REG_READ_FIELD(ah, AR_PHY_GEN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
490
if (REG_READ_FIELD(ah, AR_PHY_GEN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
511
ar9003_hw_spur_ofdm(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
520
static void ar9003_hw_spur_mitigate_ofdm(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
526
u8 *spur_fbin_ptr = ar9003_get_spur_chan_ptr(ah, IS_CHAN_2GHZ(chan));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
534
if (REG_READ_FIELD(ah, AR_PHY_GEN_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
544
ar9003_hw_spur_ofdm_clear(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
551
ar9003_hw_spur_ofdm_work(ah, chan, freq_offset,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
554
if (AR_SREV_9565(ah) && (i < 4)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
560
ar9003_hw_spur_ofdm_9565(ah, freq_offset);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
568
static void ar9003_hw_spur_mitigate(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
571
if (!AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
572
ar9003_hw_spur_mitigate_mrc_cck(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
573
ar9003_hw_spur_mitigate_ofdm(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
576
static u32 ar9003_hw_compute_pll_control_soc(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
593
static u32 ar9003_hw_compute_pll_control(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
610
static void ar9003_hw_set_channel_regs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
617
(REG_READ(ah, AR_PHY_GEN_CTRL) & AR_PHY_GC_ENABLE_DAC_FIFO);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
622
if (!AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
635
phymode |= REG_READ(ah, AR_PHY_GEN_CTRL);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
639
REG_WRITE(ah, AR_PHY_GEN_CTRL, phymode);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
642
ath9k_hw_set11nmac2040(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
645
REG_WRITE(ah, AR_GTXTO, 25 << AR_GTXTO_TIMEOUT_LIMIT_S);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
647
REG_WRITE(ah, AR_CST, 0xF << AR_CST_TIMEOUT_LIMIT_S);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
650
static void ar9003_hw_init_bb(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
660
synthDelay = REG_READ(ah, AR_PHY_RX_DELAY) & AR_PHY_RX_DELAY_DELAY;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
663
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_EN);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
664
ath9k_hw_synth_delay(ah, chan, synthDelay);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
667
void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
669
if (ah->caps.tx_chainmask == 5 || ah->caps.rx_chainmask == 5)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
670
REG_SET_BIT(ah, AR_PHY_ANALOG_SWAP,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
673
REG_WRITE(ah, AR_PHY_RX_CHAINMASK, rx);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
674
REG_WRITE(ah, AR_PHY_CAL_CHAINMASK, rx);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
676
if ((ah->caps.hw_caps & ATH9K_HW_CAP_APM) && (tx == 0x7))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
679
REG_WRITE(ah, AR_SELFGEN_MASK, tx);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
685
static void ar9003_hw_override_ini(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
694
REG_SET_BIT(ah, AR_DIAG_SW, (AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT));
drivers/net/wireless/ath/ath9k/ar9003_phy.c
703
val = REG_READ(ah, AR_PCU_MISC_MODE2) & (~AR_ADHOC_MCAST_KEYID_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
707
REG_WRITE(ah, AR_PCU_MISC_MODE2, val);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
709
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
710
REG_WRITE(ah, AR_GLB_SWREG_DISCONT_MODE,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
713
if (REG_READ_FIELD(ah, AR_PHY_TX_IQCAL_CONTROL_0(ah),
drivers/net/wireless/ath/ath9k/ar9003_phy.c
715
ah->enabled_cals |= TX_IQ_CAL;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
717
ah->enabled_cals &= ~TX_IQ_CAL;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
721
if (REG_READ(ah, AR_PHY_CL_CAL_CTL) & AR_PHY_CL_CAL_ENABLE)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
722
ah->enabled_cals |= TX_CL_CAL;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
724
ah->enabled_cals &= ~TX_CL_CAL;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
726
if (AR_SREV_9340(ah) || AR_SREV_9531(ah) || AR_SREV_9550(ah) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
727
AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
728
if (ah->is_clk_25mhz) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
729
REG_WRITE(ah, AR_RTC_DERIVED_CLK(ah), 0x17c << 1);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
730
REG_WRITE(ah, AR_SLP32_MODE, 0x0010f3d7);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
731
REG_WRITE(ah, AR_SLP32_INC, 0x0001e7ae);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
733
REG_WRITE(ah, AR_RTC_DERIVED_CLK(ah), 0x261 << 1);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
734
REG_WRITE(ah, AR_SLP32_MODE, 0x0010f400);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
735
REG_WRITE(ah, AR_SLP32_INC, 0x0001e800);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
741
static void ar9003_hw_prog_ini(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
763
REG_WRITE(ah, reg, val);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
769
static u32 ar9550_hw_get_modes_txgain_index(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
794
static u32 ar9561_hw_get_modes_txgain_index(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
807
static void ar9003_doubler_fix(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
809
if (AR_SREV_9300(ah) || AR_SREV_9580(ah) || AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
810
REG_RMW(ah, AR_PHY_65NM_CH0_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
813
REG_RMW(ah, AR_PHY_65NM_CH1_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
816
REG_RMW(ah, AR_PHY_65NM_CH2_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
822
REG_CLR_BIT(ah, AR_PHY_65NM_CH0_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
824
REG_CLR_BIT(ah, AR_PHY_65NM_CH1_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
826
REG_CLR_BIT(ah, AR_PHY_65NM_CH2_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
831
REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
833
REG_RMW_FIELD(ah, AR_PHY_65NM_CH1_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
835
REG_RMW_FIELD(ah, AR_PHY_65NM_CH2_RXTX2,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
840
REG_RMW_FIELD(ah, AR_PHY_65NM_CH0_SYNTH12,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
843
REG_RMW(ah, AR_PHY_65NM_CH0_RXTX2, 0,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
846
REG_RMW(ah, AR_PHY_65NM_CH1_RXTX2, 0,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
849
REG_RMW(ah, AR_PHY_65NM_CH2_RXTX2, 0,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
855
static int ar9003_hw_process_ini(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
870
ar9003_hw_prog_ini(ah, &ah->iniSOC[i], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
871
ar9003_hw_prog_ini(ah, &ah->iniMac[i], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
872
ar9003_hw_prog_ini(ah, &ah->iniBB[i], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
873
ar9003_hw_prog_ini(ah, &ah->iniRadio[i], modesIndex);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
874
if (i == ATH_INI_POST && AR_SREV_9462_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
875
ar9003_hw_prog_ini(ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
876
&ah->ini_radio_post_sys2ant,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
880
ar9003_doubler_fix(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
885
REG_WRITE_ARRAY(&ah->iniModesRxGain, 1, regWrites);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
887
if (AR_SREV_9462_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
891
if (ar9003_hw_get_rx_gain_idx(ah) == 2) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
892
REG_WRITE_ARRAY(&ah->ini_modes_rxgain_bb_core,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
894
REG_WRITE_ARRAY(&ah->ini_modes_rxgain_bb_postamble,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
901
if ((ar9003_hw_get_rx_gain_idx(ah) == 2) ||
drivers/net/wireless/ath/ath9k/ar9003_phy.c
902
(ar9003_hw_get_rx_gain_idx(ah) == 3)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
903
REG_WRITE_ARRAY(&ah->ini_modes_rxgain_xlna,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
908
if (AR_SREV_9550(ah) || AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
909
REG_WRITE_ARRAY(&ah->ini_modes_rx_gain_bounds, modesIndex,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
912
if (AR_SREV_9561(ah) && (ar9003_hw_get_rx_gain_idx(ah) == 0))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
913
REG_WRITE_ARRAY(&ah->ini_modes_rxgain_xlna,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
918
if (AR_SREV_9550(ah) || AR_SREV_9531(ah) || AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_phy.c
921
if (AR_SREV_9550(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
922
modes_txgain_index = ar9550_hw_get_modes_txgain_index(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
924
if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
926
ar9561_hw_get_modes_txgain_index(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
928
REG_WRITE_ARRAY(&ah->iniModesTxGain, modes_txgain_index,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
931
REG_WRITE_ARRAY(&ah->iniModesTxGain, modesIndex, regWrites);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
938
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
939
REG_WRITE_ARRAY(&ah->iniModesFastClock,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
945
REG_WRITE_ARRAY(&ah->iniAdditional, 1, regWrites);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
951
ar9003_hw_prog_ini(ah, &ah->iniCckfirJapan2484, 1);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
953
if (AR_SREV_9531(ah))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
954
REG_RMW_FIELD(ah, AR_PHY_FCAL_2_0,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
958
ah->modes_index = modesIndex;
drivers/net/wireless/ath/ath9k/ar9003_phy.c
959
ar9003_hw_override_ini(ah);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
960
ar9003_hw_set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
961
ar9003_hw_set_chain_masks(ah, ah->rxchainmask, ah->txchainmask);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
962
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
967
static void ar9003_hw_set_rfmode(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
980
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/ar9003_phy.c
984
REG_RMW_FIELD(ah, AR_PHY_FRAME_CTL,
drivers/net/wireless/ath/ath9k/ar9003_phy.c
987
REG_WRITE(ah, AR_PHY_MODE, rfMode);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
990
static void ar9003_hw_mark_phy_inactive(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_phy.c
992
REG_WRITE(ah, AR_PHY_ACTIVE, AR_PHY_ACTIVE_DIS);
drivers/net/wireless/ath/ath9k/ar9003_phy.c
995
static void ar9003_hw_set_delta_slope(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/ar9003_phy.h
656
#define AR_PHY_SYNTH4_LONG_SHIFT_SELECT ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x00000001 : 0x00000002)
drivers/net/wireless/ath/ath9k/ar9003_phy.h
657
#define AR_PHY_SYNTH4_LONG_SHIFT_SELECT_S ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0 : 1)
drivers/net/wireless/ath/ath9k/ar9003_phy.h
689
#define AR_CH0_TOP_XPABIASLVL (AR_SREV_9550(ah) ? 0x3c0 : 0x300)
drivers/net/wireless/ath/ath9k/ar9003_phy.h
690
#define AR_CH0_TOP_XPABIASLVL_S (AR_SREV_9550(ah) ? 6 : 8)
drivers/net/wireless/ath/ath9k/ar9003_phy.h
722
#define AR_CH0_TOP2_XPABIASLVL (AR_SREV_9561(ah) ? 0x1e00 : 0xf000)
drivers/net/wireless/ath/ath9k/ar9003_phy.h
723
#define AR_CH0_TOP2_XPABIASLVL_S (AR_SREV_9561(ah) ? 9 : 12)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
104
void ar9003_hw_rtt_load_hist(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
109
if (!(ah->caps.rx_chainmask & (1 << chain)))
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
112
ar9003_hw_rtt_load_hist_entry(ah, chain, i,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
113
ah->caldata->rtt_table[chain][i]);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
114
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
116
i, chain, ah->caldata->rtt_table[chain][i]);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
121
static void ar9003_hw_patch_rtt(struct ath_hw *ah, int index, int chain)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
125
if (!test_bit(SW_PKDET_DONE, &ah->caldata->cal_flags))
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
131
agc = REG_READ_FIELD(ah, AR_PHY_65NM_RXRF_AGC(chain),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
136
caldac = ah->caldata->caldac[chain];
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
137
ah->caldata->rtt_table[chain][index] &= 0xFFFF05FF;
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
139
ah->caldata->rtt_table[chain][index] |= (caldac << 4);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
142
static int ar9003_hw_rtt_fill_hist_entry(struct ath_hw *ah, u8 chain, u32 index)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
150
REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
154
REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
157
if (!ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
162
val = MS(REG_READ(ah, AR_PHY_RTT_TABLE_SW_INTF_1_B(chain)),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
169
void ar9003_hw_rtt_fill_hist(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
174
if (!(ah->caps.rx_chainmask & (1 << chain)))
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
177
ah->caldata->rtt_table[chain][i] =
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
178
ar9003_hw_rtt_fill_hist_entry(ah, chain, i);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
180
ar9003_hw_patch_rtt(ah, i, chain);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
182
ath_dbg(ath9k_hw_common(ah), CALIBRATE,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
184
i, chain, ah->caldata->rtt_table[chain][i]);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
188
set_bit(RTT_DONE, &ah->caldata->cal_flags);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
191
void ar9003_hw_rtt_clear_hist(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
196
if (!(ah->caps.rx_chainmask & (1 << chain)))
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
199
ar9003_hw_rtt_load_hist_entry(ah, chain, i, 0);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
202
if (ah->caldata)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
203
clear_bit(RTT_DONE, &ah->caldata->cal_flags);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
206
bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
210
if (!ah->caldata)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
213
if (test_bit(SW_PKDET_DONE, &ah->caldata->cal_flags)) {
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
215
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(0),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
217
ah->caldata->caldac[0]);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
218
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(1),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
220
ah->caldata->caldac[1]);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
222
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(0),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
224
ah->caldata->caldac[0]);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
225
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(1),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
227
ah->caldata->caldac[1]);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
229
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(1),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
231
REG_RMW_FIELD(ah, AR_PHY_65NM_RXRF_AGC(0),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
235
if (!test_bit(RTT_DONE, &ah->caldata->cal_flags))
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
238
ar9003_hw_rtt_enable(ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
240
if (test_bit(SW_PKDET_DONE, &ah->caldata->cal_flags))
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
241
ar9003_hw_rtt_set_mask(ah, 0x30);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
243
ar9003_hw_rtt_set_mask(ah, 0x10);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
245
if (!ath9k_hw_rfbus_req(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
246
ath_err(ath9k_hw_common(ah), "Could not stop baseband\n");
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
251
ar9003_hw_rtt_load_hist(ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
252
restore = ar9003_hw_rtt_force_restore(ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
255
ath9k_hw_rfbus_done(ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
256
ar9003_hw_rtt_disable(ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
38
void ar9003_hw_rtt_enable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
40
REG_WRITE(ah, AR_PHY_RTT_CTRL, 1);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
43
void ar9003_hw_rtt_disable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
45
REG_WRITE(ah, AR_PHY_RTT_CTRL, 0);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
48
void ar9003_hw_rtt_set_mask(struct ath_hw *ah, u32 rtt_mask)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
50
REG_RMW_FIELD(ah, AR_PHY_RTT_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
54
bool ar9003_hw_rtt_force_restore(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
56
if (!ath9k_hw_wait(ah, AR_PHY_RTT_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
61
REG_RMW_FIELD(ah, AR_PHY_RTT_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
64
if (!ath9k_hw_wait(ah, AR_PHY_RTT_CTRL,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
72
static void ar9003_hw_rtt_load_hist_entry(struct ath_hw *ah, u8 chain,
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
78
REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_1_B(chain), val);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
83
REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
87
REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
90
if (!ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain),
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
96
REG_WRITE(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain), val);
drivers/net/wireless/ath/ath9k/ar9003_rtt.c
99
ath9k_hw_wait(ah, AR_PHY_RTT_TABLE_SW_INTF_B(chain),
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
21
void ar9003_hw_rtt_enable(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
22
void ar9003_hw_rtt_disable(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
23
void ar9003_hw_rtt_set_mask(struct ath_hw *ah, u32 rtt_mask);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
24
bool ar9003_hw_rtt_force_restore(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
25
void ar9003_hw_rtt_load_hist(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
26
void ar9003_hw_rtt_fill_hist(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
27
void ar9003_hw_rtt_clear_hist(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
28
bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
30
static inline void ar9003_hw_rtt_enable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
34
static inline void ar9003_hw_rtt_disable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
38
static inline void ar9003_hw_rtt_set_mask(struct ath_hw *ah, u32 rtt_mask)
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
42
static inline bool ar9003_hw_rtt_force_restore(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
47
static inline void ar9003_hw_rtt_load_hist(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
51
static inline void ar9003_hw_rtt_fill_hist(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
55
static inline void ar9003_hw_rtt_clear_hist(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_rtt.h
59
static inline bool ar9003_hw_rtt_restore(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
106
if (AR_SREV_9462_20_OR_LATER(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_wow.c
111
REG_WRITE(ah, (AR_WOW_KA_DESC_WORD2 + (12 * 4)), 0);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
118
REG_WRITE(ah, (wow_ka_data_word0 + i*4), data_word[i]);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
121
int ath9k_hw_wow_apply_pattern(struct ath_hw *ah, u8 *user_pattern,
drivers/net/wireless/ath/ath9k/ar9003_wow.c
129
if (pattern_count >= ah->wow.max_patterns)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
133
REG_SET_BIT(ah, AR_WOW_PATTERN, BIT(pattern_count));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
135
REG_SET_BIT(ah, AR_MAC_PCU_WOW4, BIT(pattern_count - 8));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
139
REG_WRITE(ah, (AR_WOW_TB_PATTERN(pattern_count) + i),
drivers/net/wireless/ath/ath9k/ar9003_wow.c
146
REG_WRITE(ah, (AR_WOW_TB_MASK(pattern_count) + i), mask_val);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
151
ah->wow.wow_event_mask |=
drivers/net/wireless/ath/ath9k/ar9003_wow.c
154
ah->wow.wow_event_mask2 |=
drivers/net/wireless/ath/ath9k/ar9003_wow.c
161
REG_RMW(ah, AR_WOW_LENGTH1, set, clr);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
166
REG_RMW(ah, AR_WOW_LENGTH2, set, clr);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
171
REG_RMW(ah, AR_WOW_LENGTH3, set, clr);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
176
REG_RMW(ah, AR_WOW_LENGTH4, set, clr);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
183
u32 ath9k_hw_wow_wakeup(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
192
rval = REG_READ(ah, AR_WOW_PATTERN);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
200
val &= ah->wow.wow_event_mask;
drivers/net/wireless/ath/ath9k/ar9003_wow.c
213
rval = REG_READ(ah, AR_MAC_PCU_WOW4);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
215
val &= ah->wow.wow_event_mask2;
drivers/net/wireless/ath/ath9k/ar9003_wow.c
229
REG_RMW(ah, AR_PCIE_PM_CTRL(ah), AR_PMCTRL_WOW_PME_CLR,
drivers/net/wireless/ath/ath9k/ar9003_wow.c
23
static void ath9k_hw_set_sta_powersave(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
235
REG_WRITE(ah, AR_WOW_PATTERN,
drivers/net/wireless/ath/ath9k/ar9003_wow.c
236
AR_WOW_CLEAR_EVENTS(REG_READ(ah, AR_WOW_PATTERN)));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
237
REG_WRITE(ah, AR_MAC_PCU_WOW4,
drivers/net/wireless/ath/ath9k/ar9003_wow.c
238
AR_WOW_CLEAR_EVENTS2(REG_READ(ah, AR_MAC_PCU_WOW4)));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
243
REG_WRITE(ah, AR_RSSI_THR, INIT_RSSI_THR);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
25
if (!ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_wow.c
252
if (ah->is_pciexpress)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
253
ath9k_hw_configpcipowersave(ah, false);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
255
if (AR_SREV_9462(ah) || AR_SREV_9565(ah) || AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_wow.c
256
u32 dc = REG_READ(ah, AR_DIRECT_CONNECT);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
259
ath9k_hw_gen_timer_start_tsf2(ah);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
262
ah->wow.wow_event_mask = 0;
drivers/net/wireless/ath/ath9k/ar9003_wow.c
263
ah->wow.wow_event_mask2 = 0;
drivers/net/wireless/ath/ath9k/ar9003_wow.c
269
static void ath9k_hw_wow_set_arwr_reg(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
273
if (!ah->is_pciexpress)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
281
wa_reg = REG_READ(ah, AR_WA(ah));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
286
REG_WRITE(ah, AR_WA(ah), wa_reg);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
289
void ath9k_hw_wow_enable(struct ath_hw *ah, u32 pattern_enable)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
294
wow_event_mask = ah->wow.wow_event_mask;
drivers/net/wireless/ath/ath9k/ar9003_wow.c
31
if (ar9003_mci_state(ah, MCI_STATE_GET_WLAN_PS_STATE) != MCI_PS_DISABLE)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
312
REG_SET_BIT(ah, AR_PCIE_PM_CTRL(ah), AR_PMCTRL_HOST_PME_EN |
drivers/net/wireless/ath/ath9k/ar9003_wow.c
316
REG_CLR_BIT(ah, AR_PCIE_PM_CTRL(ah), AR_PMCTRL_WOW_PME_CLR);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
326
REG_SET_BIT(ah, AR_WOW_PATTERN,
drivers/net/wireless/ath/ath9k/ar9003_wow.c
332
REG_SET_BIT(ah, AR_WOW_COUNT, AR_WOW_AIFS_CNT(AR_WOW_CNT_AIFS_CNT) |
drivers/net/wireless/ath/ath9k/ar9003_wow.c
339
REG_WRITE(ah, AR_WOW_BCN_TIMO, AR_WOW_BEACON_TIMO);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
34
REG_SET_BIT(ah, AR_STA_ID1, AR_STA_ID1_PWR_SAV);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
341
REG_WRITE(ah, AR_WOW_BCN_TIMO, AR_WOW_BEACON_TIMO_MAX);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
347
REG_WRITE(ah, AR_WOW_KEEP_ALIVE_TIMO, AR_WOW_KEEP_ALIVE_NEVER);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
349
REG_WRITE(ah, AR_WOW_KEEP_ALIVE_TIMO, KAL_TIMEOUT * 32);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
354
REG_WRITE(ah, AR_WOW_KEEP_ALIVE_DELAY, KAL_DELAY * 1000);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
359
ath9k_wow_create_keep_alive_pattern(ah);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
364
keep_alive = REG_READ(ah, AR_WOW_KEEP_ALIVE);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
37
static void ath9k_hw_set_powermode_wow_sleep(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
376
REG_WRITE(ah, AR_WOW_KEEP_ALIVE, keep_alive);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
382
REG_RMW_FIELD(ah, AR_RSSI_THR, AR_RSSI_THR_BM_THR,
drivers/net/wireless/ath/ath9k/ar9003_wow.c
387
REG_SET_BIT(ah, AR_WOW_BCN_EN, AR_WOW_BEACON_FAIL_EN);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
389
REG_CLR_BIT(ah, AR_WOW_BCN_EN, AR_WOW_BEACON_FAIL_EN);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
39
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
395
magic_pattern = REG_READ(ah, AR_WOW_PATTERN);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
405
REG_WRITE(ah, AR_WOW_PATTERN, magic_pattern);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
41
ath9k_hw_set_sta_powersave(ah);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
411
REG_WRITE(ah, AR_WOW_PATTERN_MATCH_LT_256B,
drivers/net/wireless/ath/ath9k/ar9003_wow.c
417
host_pm_ctrl = REG_READ(ah, AR_PCIE_PM_CTRL(ah));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
423
if (AR_SREV_9462(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_wow.c
433
REG_WRITE(ah, AR_PCIE_PM_CTRL(ah), host_pm_ctrl);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
438
REG_CLR_BIT(ah, AR_STA_ID1, AR_STA_ID1_PRESERVE_SEQNUM);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
44
REG_WRITE(ah, AR_CR, AR_CR_RXD);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
441
REG_SET_BIT(ah, AR_PCIE_PHY_REG3, BIT(13));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
443
ath9k_hw_wow_set_arwr_reg(ah);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
445
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_wow.c
446
REG_WRITE(ah, AR_RTC_KEEP_AWAKE, 0x2);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
449
REG_CLR_BIT(ah, AR_PCU_MISC_MODE3, BIT(5));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
451
ath9k_hw_set_powermode_wow_sleep(ah);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
452
ah->wow.wow_event_mask = wow_event_mask;
drivers/net/wireless/ath/ath9k/ar9003_wow.c
46
if (!ath9k_hw_wait(ah, AR_CR, AR_CR_RXE(ah), 0, AH_WAIT_TIMEOUT)) {
drivers/net/wireless/ath/ath9k/ar9003_wow.c
48
REG_READ(ah, AR_CR), REG_READ(ah, AR_DIAG_SW));
drivers/net/wireless/ath/ath9k/ar9003_wow.c
52
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/ar9003_wow.c
53
if (!REG_READ(ah, AR_MAC_PCU_GEN_TIMER_TSF_SEL))
drivers/net/wireless/ath/ath9k/ar9003_wow.c
54
REG_CLR_BIT(ah, AR_DIRECT_CONNECT, AR_DC_TSF2_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
55
} else if (AR_SREV_9485(ah)){
drivers/net/wireless/ath/ath9k/ar9003_wow.c
56
if (!(REG_READ(ah, AR_NDP2_TIMER_MODE) &
drivers/net/wireless/ath/ath9k/ar9003_wow.c
58
REG_CLR_BIT(ah, AR_DIRECT_CONNECT, AR_DC_TSF2_ENABLE);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
61
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/ar9003_wow.c
62
REG_WRITE(ah, AR_RTC_KEEP_AWAKE, 0x2);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
64
REG_WRITE(ah, AR_RTC_FORCE_WAKE(ah), AR_RTC_FORCE_WAKE_ON_INT);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
67
static void ath9k_wow_create_keep_alive_pattern(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/ar9003_wow.c
69
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/ar9003_wow.c
83
ctl[7] = (ah->txchainmask) << 2;
drivers/net/wireless/ath/ath9k/ar9003_wow.c
86
if (IS_CHAN_2GHZ(ah->curchan))
drivers/net/wireless/ath/ath9k/ar9003_wow.c
92
REG_WRITE(ah, (AR_WOW_KA_DESC_WORD2 + i * 4), ctl[i]);
drivers/net/wireless/ath/ath9k/beacon.c
109
ath9k_hw_set_txdesc(ah, bf->bf_desc, &info);
drivers/net/wireless/ath/ath9k/beacon.c
35
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
36
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/beacon.c
391
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
392
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/beacon.c
395
bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA);
drivers/net/wireless/ath/ath9k/beacon.c
40
ath9k_hw_get_txq_props(ah, sc->beacon.beaconq, &qi);
drivers/net/wireless/ath/ath9k/beacon.c
411
if (ath9k_hw_numtxpending(ah, sc->beacon.beaconq) != 0) {
drivers/net/wireless/ath/ath9k/beacon.c
414
ath9k_hw_check_nav(ah);
drivers/net/wireless/ath/ath9k/beacon.c
429
ath9k_hw_stop_dma_queue(ah, sc->beacon.beaconq);
drivers/net/wireless/ath/ath9k/beacon.c
431
ath9k_hw_bstuck_nfcal(ah);
drivers/net/wireless/ath/ath9k/beacon.c
491
ah->slottime = sc->beacon.slottime;
drivers/net/wireless/ath/ath9k/beacon.c
492
ath9k_hw_init_global_settings(ah);
drivers/net/wireless/ath/ath9k/beacon.c
503
ath9k_hw_puttxbuf(ah, sc->beacon.beaconq, bf->bf_daddr);
drivers/net/wireless/ath/ath9k/beacon.c
506
ath9k_hw_txstart(ah, sc->beacon.beaconq);
drivers/net/wireless/ath/ath9k/beacon.c
51
ath9k_hw_get_txq_props(ah, txq->axq_qnum, &qi_be);
drivers/net/wireless/ath/ath9k/beacon.c
516
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
518
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/beacon.c
520
ath9k_hw_beaconinit(ah, nexttbtt, intval);
drivers/net/wireless/ath/ath9k/beacon.c
521
ah->imask |= ATH9K_INT_SWBA;
drivers/net/wireless/ath/ath9k/beacon.c
523
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/beacon.c
524
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/beacon.c
53
if (ah->slottime == 20)
drivers/net/wireless/ath/ath9k/beacon.c
544
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
546
ath9k_cmn_beacon_config_ap(ah, conf, ATH_BCBUF);
drivers/net/wireless/ath/ath9k/beacon.c
550
static void ath9k_beacon_config_sta(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/beacon.c
555
if (ath9k_cmn_beacon_config_sta(ah, conf, &bs) == -EPERM)
drivers/net/wireless/ath/ath9k/beacon.c
558
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/beacon.c
559
ath9k_hw_set_sta_beacon_timers(ah, &bs);
drivers/net/wireless/ath/ath9k/beacon.c
560
ah->imask |= ATH9K_INT_BMISS;
drivers/net/wireless/ath/ath9k/beacon.c
562
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/beacon.c
563
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/beacon.c
569
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
570
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/beacon.c
574
ath9k_cmn_beacon_config_adhoc(ah, conf);
drivers/net/wireless/ath/ath9k/beacon.c
60
if (!ath9k_hw_set_txq_props(ah, sc->beacon.beaconq, &qi)) {
drivers/net/wireless/ath/ath9k/beacon.c
628
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
629
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/beacon.c
63
ath9k_hw_resettxqueue(ah, sc->beacon.beaconq);
drivers/net/wireless/ath/ath9k/beacon.c
76
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/beacon.c
77
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/beacon.c
80
u8 chainmask = ah->txchainmask;
drivers/net/wireless/ath/ath9k/btcoex.c
113
static void ath9k_hw_btcoex_pin_init(struct ath_hw *ah, u8 wlanactive_gpio,
drivers/net/wireless/ath/ath9k/btcoex.c
116
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
127
void ath9k_hw_btcoex_init_scheme(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
129
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/btcoex.c
130
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
140
if (ah->caps.hw_caps & ATH9K_HW_CAP_MCI) {
drivers/net/wireless/ath/ath9k/btcoex.c
142
} else if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
145
ath9k_hw_btcoex_pin_init(ah, ATH_WLANACTIVE_GPIO_9300,
drivers/net/wireless/ath/ath9k/btcoex.c
148
} else if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
149
if (AR_SREV_9285(ah))
drivers/net/wireless/ath/ath9k/btcoex.c
154
ath9k_hw_btcoex_pin_init(ah, ATH_WLANACTIVE_GPIO_9280,
drivers/net/wireless/ath/ath9k/btcoex.c
161
void ath9k_hw_btcoex_init_2wire(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
163
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
166
REG_CLR_BIT(ah, AR_GPIO_INPUT_EN_VAL(ah),
drivers/net/wireless/ath/ath9k/btcoex.c
170
REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL(ah),
drivers/net/wireless/ath/ath9k/btcoex.c
174
if (!AR_SREV_SOC(ah))
drivers/net/wireless/ath/ath9k/btcoex.c
175
REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1(ah),
drivers/net/wireless/ath/ath9k/btcoex.c
180
ath9k_hw_gpio_request_in(ah, btcoex_hw->btactive_gpio,
drivers/net/wireless/ath/ath9k/btcoex.c
185
void ath9k_hw_btcoex_init_3wire(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
187
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
190
REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL(ah),
drivers/net/wireless/ath/ath9k/btcoex.c
196
if (!AR_SREV_SOC(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
197
REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1(ah),
drivers/net/wireless/ath/ath9k/btcoex.c
200
REG_RMW_FIELD(ah, AR_GPIO_INPUT_MUX1(ah),
drivers/net/wireless/ath/ath9k/btcoex.c
206
ath9k_hw_gpio_request_in(ah, btcoex_hw->btactive_gpio,
drivers/net/wireless/ath/ath9k/btcoex.c
208
ath9k_hw_gpio_request_in(ah, btcoex_hw->btpriority_gpio,
drivers/net/wireless/ath/ath9k/btcoex.c
213
void ath9k_hw_btcoex_deinit(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
215
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
217
ath9k_hw_gpio_free(ah, btcoex_hw->btactive_gpio);
drivers/net/wireless/ath/ath9k/btcoex.c
218
ath9k_hw_gpio_free(ah, btcoex_hw->btpriority_gpio);
drivers/net/wireless/ath/ath9k/btcoex.c
219
ath9k_hw_gpio_free(ah, btcoex_hw->wlanactive_gpio);
drivers/net/wireless/ath/ath9k/btcoex.c
223
void ath9k_hw_btcoex_init_mci(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
225
ah->btcoex_hw.mci.ready = false;
drivers/net/wireless/ath/ath9k/btcoex.c
226
ah->btcoex_hw.mci.bt_state = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
227
ah->btcoex_hw.mci.bt_ver_major = 3;
drivers/net/wireless/ath/ath9k/btcoex.c
228
ah->btcoex_hw.mci.bt_ver_minor = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
229
ah->btcoex_hw.mci.bt_version_known = false;
drivers/net/wireless/ath/ath9k/btcoex.c
230
ah->btcoex_hw.mci.update_2g5g = true;
drivers/net/wireless/ath/ath9k/btcoex.c
231
ah->btcoex_hw.mci.is_2g = true;
drivers/net/wireless/ath/ath9k/btcoex.c
232
ah->btcoex_hw.mci.wlan_channels_update = false;
drivers/net/wireless/ath/ath9k/btcoex.c
233
ah->btcoex_hw.mci.wlan_channels[0] = 0x00000000;
drivers/net/wireless/ath/ath9k/btcoex.c
234
ah->btcoex_hw.mci.wlan_channels[1] = 0xffffffff;
drivers/net/wireless/ath/ath9k/btcoex.c
235
ah->btcoex_hw.mci.wlan_channels[2] = 0xffffffff;
drivers/net/wireless/ath/ath9k/btcoex.c
236
ah->btcoex_hw.mci.wlan_channels[3] = 0x7fffffff;
drivers/net/wireless/ath/ath9k/btcoex.c
237
ah->btcoex_hw.mci.query_bt = true;
drivers/net/wireless/ath/ath9k/btcoex.c
238
ah->btcoex_hw.mci.unhalt_bt_gpm = true;
drivers/net/wireless/ath/ath9k/btcoex.c
239
ah->btcoex_hw.mci.halted_bt_gpm = false;
drivers/net/wireless/ath/ath9k/btcoex.c
240
ah->btcoex_hw.mci.need_flush_btinfo = false;
drivers/net/wireless/ath/ath9k/btcoex.c
241
ah->btcoex_hw.mci.wlan_cal_seq = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
242
ah->btcoex_hw.mci.wlan_cal_done = 0;
drivers/net/wireless/ath/ath9k/btcoex.c
243
ah->btcoex_hw.mci.config = (AR_SREV_9462(ah)) ? 0x2201 : 0xa4c1;
drivers/net/wireless/ath/ath9k/btcoex.c
247
static void ath9k_hw_btcoex_enable_2wire(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
249
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
252
ath9k_hw_gpio_request_out(ah, btcoex_hw->wlanactive_gpio,
drivers/net/wireless/ath/ath9k/btcoex.c
261
void ath9k_hw_btcoex_set_weight(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/btcoex.c
266
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
267
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/btcoex.c
273
if (!AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
280
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
310
static void ath9k_hw_btcoex_enable_3wire(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
312
struct ath_btcoex_hw *btcoex = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
320
if (AR_SREV_SOC(ah))
drivers/net/wireless/ath/ath9k/btcoex.c
321
REG_CLR_BIT(ah, AR_BT_COEX_MODE2, AR_BT_PHY_ERR_BT_COLL_ENABLE);
drivers/net/wireless/ath/ath9k/btcoex.c
323
REG_WRITE(ah, AR_BT_COEX_MODE, btcoex->bt_coex_mode);
drivers/net/wireless/ath/ath9k/btcoex.c
324
REG_WRITE(ah, AR_BT_COEX_MODE2, btcoex->bt_coex_mode2);
drivers/net/wireless/ath/ath9k/btcoex.c
326
if (AR_SREV_SOC(ah))
drivers/net/wireless/ath/ath9k/btcoex.c
327
REG_WRITE(ah, AR_BT_COEX_MODE3, btcoex->bt_coex_mode3);
drivers/net/wireless/ath/ath9k/btcoex.c
329
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
330
REG_WRITE(ah, AR_BT_COEX_WL_WEIGHTS0, btcoex->wlan_weight[0]);
drivers/net/wireless/ath/ath9k/btcoex.c
331
REG_WRITE(ah, AR_BT_COEX_WL_WEIGHTS1, btcoex->wlan_weight[1]);
drivers/net/wireless/ath/ath9k/btcoex.c
333
REG_WRITE(ah, AR_BT_COEX_BT_WEIGHTS(i),
drivers/net/wireless/ath/ath9k/btcoex.c
336
REG_WRITE(ah, AR_BT_COEX_WEIGHT, btcoex->bt_coex_weights);
drivers/net/wireless/ath/ath9k/btcoex.c
338
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
339
val = REG_READ(ah, 0x50040);
drivers/net/wireless/ath/ath9k/btcoex.c
341
REG_WRITE(ah, 0x50040, val);
drivers/net/wireless/ath/ath9k/btcoex.c
344
REG_RMW_FIELD(ah, AR_QUIET1, AR_QUIET1_QUIET_ACK_CTS_ENABLE, 1);
drivers/net/wireless/ath/ath9k/btcoex.c
345
REG_RMW_FIELD(ah, AR_PCU_MISC, AR_PCU_BT_ANT_PREVENT_RX, 0);
drivers/net/wireless/ath/ath9k/btcoex.c
347
ath9k_hw_gpio_request_out(ah, btcoex->wlanactive_gpio,
drivers/net/wireless/ath/ath9k/btcoex.c
352
static void ath9k_hw_btcoex_enable_mci(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
354
struct ath_btcoex_hw *btcoex = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
358
REG_WRITE(ah, AR_MCI_COEX_WL_WEIGHTS(i),
drivers/net/wireless/ath/ath9k/btcoex.c
361
REG_RMW_FIELD(ah, AR_QUIET1, AR_QUIET1_QUIET_ACK_CTS_ENABLE, 1);
drivers/net/wireless/ath/ath9k/btcoex.c
365
static void ath9k_hw_btcoex_disable_mci(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
367
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
370
ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_NONE);
drivers/net/wireless/ath/ath9k/btcoex.c
373
REG_WRITE(ah, AR_MCI_COEX_WL_WEIGHTS(i),
drivers/net/wireless/ath/ath9k/btcoex.c
377
void ath9k_hw_btcoex_enable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
379
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
381
switch (ath9k_hw_get_btcoex_scheme(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
385
ath9k_hw_btcoex_enable_2wire(ah);
drivers/net/wireless/ath/ath9k/btcoex.c
388
ath9k_hw_btcoex_enable_3wire(ah);
drivers/net/wireless/ath/ath9k/btcoex.c
391
ath9k_hw_btcoex_enable_mci(ah);
drivers/net/wireless/ath/ath9k/btcoex.c
395
if (ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_MCI &&
drivers/net/wireless/ath/ath9k/btcoex.c
396
!AR_SREV_SOC(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
397
REG_RMW(ah, AR_GPIO_PDPU(ah),
drivers/net/wireless/ath/ath9k/btcoex.c
402
ah->btcoex_hw.enabled = true;
drivers/net/wireless/ath/ath9k/btcoex.c
406
void ath9k_hw_btcoex_disable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/btcoex.c
408
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
413
if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_MCI) {
drivers/net/wireless/ath/ath9k/btcoex.c
414
ath9k_hw_btcoex_disable_mci(ah);
drivers/net/wireless/ath/ath9k/btcoex.c
418
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/btcoex.c
419
ath9k_hw_set_gpio(ah, btcoex_hw->wlanactive_gpio, 0);
drivers/net/wireless/ath/ath9k/btcoex.c
421
ath9k_hw_gpio_request_out(ah, btcoex_hw->wlanactive_gpio,
drivers/net/wireless/ath/ath9k/btcoex.c
425
REG_WRITE(ah, AR_BT_COEX_MODE, AR_BT_QUIET | AR_BT_MODE);
drivers/net/wireless/ath/ath9k/btcoex.c
426
REG_WRITE(ah, AR_BT_COEX_MODE2, 0);
drivers/net/wireless/ath/ath9k/btcoex.c
428
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
429
REG_WRITE(ah, AR_BT_COEX_WL_WEIGHTS0, 0);
drivers/net/wireless/ath/ath9k/btcoex.c
430
REG_WRITE(ah, AR_BT_COEX_WL_WEIGHTS1, 0);
drivers/net/wireless/ath/ath9k/btcoex.c
432
REG_WRITE(ah, AR_BT_COEX_BT_WEIGHTS(i), 0);
drivers/net/wireless/ath/ath9k/btcoex.c
434
REG_WRITE(ah, AR_BT_COEX_WEIGHT, 0);
drivers/net/wireless/ath/ath9k/btcoex.c
443
void ath9k_hw_btcoex_bt_stomp(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/btcoex.c
446
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.c
447
ath9k_hw_btcoex_set_weight(ah, 0, 0, stomp_type);
drivers/net/wireless/ath/ath9k/btcoex.c
453
ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
drivers/net/wireless/ath/ath9k/btcoex.c
457
ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
drivers/net/wireless/ath/ath9k/btcoex.c
461
ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
drivers/net/wireless/ath/ath9k/btcoex.c
465
ath_dbg(ath9k_hw_common(ah), BTCOEX, "Invalid Stomptype\n");
drivers/net/wireless/ath/ath9k/btcoex.c
471
void ath9k_hw_btcoex_set_concur_txprio(struct ath_hw *ah, u8 *stomp_txprio)
drivers/net/wireless/ath/ath9k/btcoex.c
473
struct ath_btcoex_hw *btcoex = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
58
void ath9k_hw_init_btcoex_hw(struct ath_hw *ah, int qnum)
drivers/net/wireless/ath/ath9k/btcoex.c
60
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/btcoex.c
78
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/btcoex.c
81
if (AR_SREV_SOC(ah)) {
drivers/net/wireless/ath/ath9k/btcoex.h
124
void ath9k_hw_btcoex_init_scheme(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/btcoex.h
125
void ath9k_hw_btcoex_init_2wire(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/btcoex.h
126
void ath9k_hw_btcoex_init_3wire(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/btcoex.h
127
void ath9k_hw_btcoex_deinit(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/btcoex.h
128
void ath9k_hw_btcoex_init_mci(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/btcoex.h
129
void ath9k_hw_init_btcoex_hw(struct ath_hw *ah, int qnum);
drivers/net/wireless/ath/ath9k/btcoex.h
130
void ath9k_hw_btcoex_set_weight(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/btcoex.h
134
void ath9k_hw_btcoex_disable(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/btcoex.h
135
void ath9k_hw_btcoex_bt_stomp(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/btcoex.h
137
void ath9k_hw_btcoex_set_concur_txprio(struct ath_hw *ah, u8 *stomp_txprio);
drivers/net/wireless/ath/ath9k/calib.c
146
static bool ath9k_hw_get_nf_thresh(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.c
152
*nft = (int8_t)ah->eep_ops->get_eeprom(ah, EEP_NFTHRESH_5);
drivers/net/wireless/ath/ath9k/calib.c
155
*nft = (int8_t)ah->eep_ops->get_eeprom(ah, EEP_NFTHRESH_2);
drivers/net/wireless/ath/ath9k/calib.c
165
void ath9k_hw_reset_calibration(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.c
170
ath9k_hw_setup_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/calib.c
172
ah->cal_start_time = jiffies;
drivers/net/wireless/ath/ath9k/calib.c
176
ah->meas0.sign[i] = 0;
drivers/net/wireless/ath/ath9k/calib.c
177
ah->meas1.sign[i] = 0;
drivers/net/wireless/ath/ath9k/calib.c
178
ah->meas2.sign[i] = 0;
drivers/net/wireless/ath/ath9k/calib.c
179
ah->meas3.sign[i] = 0;
drivers/net/wireless/ath/ath9k/calib.c
182
ah->cal_samples = 0;
drivers/net/wireless/ath/ath9k/calib.c
186
bool ath9k_hw_reset_calvalid(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/calib.c
188
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/calib.c
189
struct ath9k_cal_list *currCal = ah->cal_list_curr;
drivers/net/wireless/ath/ath9k/calib.c
191
if (!ah->caldata)
drivers/net/wireless/ath/ath9k/calib.c
194
if (!AR_SREV_9100(ah) && !AR_SREV_9160_10_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/calib.c
206
currCal = ah->cal_list;
drivers/net/wireless/ath/ath9k/calib.c
210
ah->curchan->chan->center_freq);
drivers/net/wireless/ath/ath9k/calib.c
212
ah->caldata->CalValid &= ~currCal->calData->calType;
drivers/net/wireless/ath/ath9k/calib.c
216
} while (currCal != ah->cal_list);
drivers/net/wireless/ath/ath9k/calib.c
222
void ath9k_hw_start_nfcal(struct ath_hw *ah, bool update)
drivers/net/wireless/ath/ath9k/calib.c
224
if (ah->caldata)
drivers/net/wireless/ath/ath9k/calib.c
225
set_bit(NFCAL_PENDING, &ah->caldata->cal_flags);
drivers/net/wireless/ath/ath9k/calib.c
227
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/calib.c
231
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/calib.c
234
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/calib.c
237
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_NF);
drivers/net/wireless/ath/ath9k/calib.c
240
int ath9k_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/calib.c
244
u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask;
drivers/net/wireless/ath/ath9k/calib.c
245
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/calib.c
246
s16 default_nf = ath9k_hw_get_nf_limits(ah, chan)->nominal;
drivers/net/wireless/ath/ath9k/calib.c
247
u32 bb_agc_ctl = REG_READ(ah, AR_PHY_AGC_CONTROL(ah));
drivers/net/wireless/ath/ath9k/calib.c
249
if (ah->caldata)
drivers/net/wireless/ath/ath9k/calib.c
250
h = ah->caldata->nfCalHist;
drivers/net/wireless/ath/ath9k/calib.c
252
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/calib.c
260
if (ah->nf_override)
drivers/net/wireless/ath/ath9k/calib.c
261
nfval = ah->nf_override;
drivers/net/wireless/ath/ath9k/calib.c
267
ath9k_hw_get_nf_limits(ah, chan)->cal[i];
drivers/net/wireless/ath/ath9k/calib.c
272
REG_RMW(ah, ah->nf_regs[i],
drivers/net/wireless/ath/ath9k/calib.c
282
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_NF);
drivers/net/wireless/ath/ath9k/calib.c
283
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/calib.c
284
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/calib.c
291
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/calib.c
293
REG_CLR_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/calib.c
295
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_NF);
drivers/net/wireless/ath/ath9k/calib.c
296
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/calib.c
305
if ((REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) &
drivers/net/wireless/ath/ath9k/calib.c
315
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/calib.c
317
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/calib.c
320
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah),
drivers/net/wireless/ath/ath9k/calib.c
322
REG_SET_BIT(ah, AR_PHY_AGC_CONTROL(ah), AR_PHY_AGC_CONTROL_NF);
drivers/net/wireless/ath/ath9k/calib.c
323
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/calib.c
338
REG_READ(ah, AR_PHY_AGC_CONTROL(ah)));
drivers/net/wireless/ath/ath9k/calib.c
347
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/calib.c
353
REG_RMW(ah, ah->nf_regs[i],
drivers/net/wireless/ath/ath9k/calib.c
357
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/calib.c
364
static void ath9k_hw_nf_sanitize(struct ath_hw *ah, s16 *nf)
drivers/net/wireless/ath/ath9k/calib.c
366
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/calib.c
370
if (IS_CHAN_2GHZ(ah->curchan))
drivers/net/wireless/ath/ath9k/calib.c
371
limit = &ah->nf_2g;
drivers/net/wireless/ath/ath9k/calib.c
373
limit = &ah->nf_5g;
drivers/net/wireless/ath/ath9k/calib.c
397
bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/calib.c
399
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/calib.c
40
static struct ath_nf_limits *ath9k_hw_get_nf_limits(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.c
404
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/calib.c
406
if (REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) & AR_PHY_AGC_CONTROL_NF) {
drivers/net/wireless/ath/ath9k/calib.c
412
ath9k_hw_do_getnf(ah, nfarray);
drivers/net/wireless/ath/ath9k/calib.c
413
ath9k_hw_nf_sanitize(ah, nfarray);
drivers/net/wireless/ath/ath9k/calib.c
415
if (ath9k_hw_get_nf_thresh(ah, c->band, &nfThresh)
drivers/net/wireless/ath/ath9k/calib.c
429
ath9k_hw_update_nfcal_hist_buffer(ah, caldata, nfarray);
drivers/net/wireless/ath/ath9k/calib.c
431
ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
drivers/net/wireless/ath/ath9k/calib.c
436
void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.c
442
ah->caldata->channel = chan->channel;
drivers/net/wireless/ath/ath9k/calib.c
443
ah->caldata->channelFlags = chan->channelFlags;
drivers/net/wireless/ath/ath9k/calib.c
444
h = ah->caldata->nfCalHist;
drivers/net/wireless/ath/ath9k/calib.c
447
h[i].privNF = ath9k_hw_get_default_nf(ah, chan, k);
drivers/net/wireless/ath/ath9k/calib.c
457
void ath9k_hw_bstuck_nfcal(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/calib.c
459
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/calib.c
46
limit = &ah->nf_2g;
drivers/net/wireless/ath/ath9k/calib.c
473
ath9k_hw_start_nfcal(ah, true);
drivers/net/wireless/ath/ath9k/calib.c
474
else if (!(REG_READ(ah, AR_PHY_AGC_CONTROL(ah)) & AR_PHY_AGC_CONTROL_NF))
drivers/net/wireless/ath/ath9k/calib.c
475
ath9k_hw_getnf(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/calib.c
48
limit = &ah->nf_5g;
drivers/net/wireless/ath/ath9k/calib.c
53
static s16 ath9k_hw_get_default_nf(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.c
57
s16 calib_nf = ath9k_hw_get_nf_limits(ah, chan)->cal[chain];
drivers/net/wireless/ath/ath9k/calib.c
62
return ath9k_hw_get_nf_limits(ah, chan)->nominal;
drivers/net/wireless/ath/ath9k/calib.c
65
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/calib.c
72
ath9k_hw_get_default_nf(ah, chan, 0);
drivers/net/wireless/ath/ath9k/calib.c
80
static void ath9k_hw_update_nfcal_hist_buffer(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.c
84
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/calib.c
88
u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask;
drivers/net/wireless/ath/ath9k/calib.c
92
limit = ath9k_hw_get_nf_limits(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/calib.c
96
((i >= AR5416_MAX_CHAINS) && !IS_CHAN_HT40(ah->curchan)))
drivers/net/wireless/ath/ath9k/calib.h
110
bool ath9k_hw_reset_calvalid(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/calib.h
111
void ath9k_hw_start_nfcal(struct ath_hw *ah, bool update);
drivers/net/wireless/ath/ath9k/calib.h
112
int ath9k_hw_loadnf(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/calib.h
113
bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/calib.h
114
void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.h
116
void ath9k_hw_bstuck_nfcal(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/calib.h
117
void ath9k_hw_reset_calibration(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/calib.h
119
s16 ath9k_hw_getchan_noise(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/channel.c
1380
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
1392
if (ah->opmode == NL80211_IFTYPE_AP)
drivers/net/wireless/ath/ath9k/channel.c
1399
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
1411
if (ah->opmode == NL80211_IFTYPE_AP)
drivers/net/wireless/ath/ath9k/channel.c
1422
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
1428
ath9k_hw_gen_timer_stop(ah, sc->p2p_ps_timer);
drivers/net/wireless/ath/ath9k/channel.c
1445
ath9k_hw_gen_timer_start(ah, sc->p2p_ps_timer, target_tsf, 1000000);
drivers/net/wireless/ath/ath9k/channel.c
25
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
26
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/channel.c
371
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
374
ath9k_hw_gen_timer_start(ah, sc->p2p_ps_timer, tsf_time, 1000000);
drivers/net/wireless/ath/ath9k/channel.c
375
tsf_time -= ath9k_hw_gettsf32(ah);
drivers/net/wireless/ath/ath9k/channel.c
39
if (ah->curchan)
drivers/net/wireless/ath/ath9k/channel.c
40
old_pos = ah->curchan - &ah->channels[0];
drivers/net/wireless/ath/ath9k/channel.c
492
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/channel.c
493
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/channel.c
50
ath9k_cmn_get_channel(hw, ah, chandef);
drivers/net/wireless/ath/ath9k/channel.c
577
sc->sched.next_tbtt = REG_READ(ah, AR_NEXT_TBTT_TIMER);
drivers/net/wireless/ath/ath9k/channel.c
690
tsf_time += ath9k_hw_gettsf32(ah);
drivers/net/wireless/ath/ath9k/channel.c
87
rxfilter = ath9k_hw_getrxfilter(ah);
drivers/net/wireless/ath/ath9k/channel.c
90
ath9k_hw_setrxfilter(ah, rxfilter);
drivers/net/wireless/ath/ath9k/common-beacon.c
115
void ath9k_cmn_beacon_config_adhoc(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-beacon.c
118
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/common-beacon.c
125
conf->nexttbtt = ath9k_get_next_tbtt(ah, ath9k_hw_gettsf64(ah),
drivers/net/wireless/ath/ath9k/common-beacon.c
129
ah->imask |= ATH9K_INT_SWBA;
drivers/net/wireless/ath/ath9k/common-beacon.c
131
ah->imask &= ~ATH9K_INT_SWBA;
drivers/net/wireless/ath/ath9k/common-beacon.c
145
void ath9k_cmn_beacon_config_ap(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-beacon.c
149
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/common-beacon.c
154
conf->nexttbtt = ath9k_get_next_tbtt(ah, ath9k_hw_gettsf64(ah),
drivers/net/wireless/ath/ath9k/common-beacon.c
158
ah->imask |= ATH9K_INT_SWBA;
drivers/net/wireless/ath/ath9k/common-beacon.c
160
ah->imask &= ~ATH9K_INT_SWBA;
drivers/net/wireless/ath/ath9k/common-beacon.c
22
static u32 ath9k_get_next_tbtt(struct ath_hw *ah, u64 tsf,
drivers/net/wireless/ath/ath9k/common-beacon.c
27
tsf += TU_TO_USEC(FUDGE + ah->config.sw_beacon_response_time);
drivers/net/wireless/ath/ath9k/common-beacon.c
42
int ath9k_cmn_beacon_config_sta(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-beacon.c
46
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/common-beacon.c
70
tsf = ath9k_hw_gettsf64(ah);
drivers/net/wireless/ath/ath9k/common-beacon.c
71
conf->nexttbtt = ath9k_get_next_tbtt(ah, tsf, conf->intval);
drivers/net/wireless/ath/ath9k/common-beacon.c
78
bs->bs_nextdtim = ath9k_get_next_tbtt(ah, tsf, dtim_intval);
drivers/net/wireless/ath/ath9k/common-beacon.h
19
int ath9k_cmn_beacon_config_sta(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-beacon.h
22
void ath9k_cmn_beacon_config_adhoc(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-beacon.h
24
void ath9k_cmn_beacon_config_ap(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-debug.c
23
struct ath_hw *ah = file->private_data;
drivers/net/wireless/ath/ath9k/common-debug.c
32
len = ah->eep_ops->dump_eeprom(ah, false, buf, len, size);
drivers/net/wireless/ath/ath9k/common-debug.c
49
struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/common-debug.c
51
debugfs_create_file("modal_eeprom", 0400, debugfs_phy, ah,
drivers/net/wireless/ath/ath9k/common-debug.c
59
struct ath_hw *ah = file->private_data;
drivers/net/wireless/ath/ath9k/common-debug.c
68
len = ah->eep_ops->dump_eeprom(ah, true, buf, len, size);
drivers/net/wireless/ath/ath9k/common-debug.c
84
struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/common-debug.c
86
debugfs_create_file("base_eeprom", 0400, debugfs_phy, ah,
drivers/net/wireless/ath/ath9k/common-debug.h
69
struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/common-debug.h
71
struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/common-debug.h
80
struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/common-debug.h
85
struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/common-init.c
128
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/common-init.c
135
if (ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ) {
drivers/net/wireless/ath/ath9k/common-init.c
136
channels = devm_kzalloc(ah->dev,
drivers/net/wireless/ath/ath9k/common-init.c
152
if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ) {
drivers/net/wireless/ath/ath9k/common-init.c
153
channels = devm_kzalloc(ah->dev,
drivers/net/wireless/ath/ath9k/common-init.c
173
void ath9k_cmn_setup_ht_cap(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-init.c
176
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/common-init.c
186
if (ah->caps.hw_caps & ATH9K_HW_CAP_LDPC)
drivers/net/wireless/ath/ath9k/common-init.c
189
if (ah->caps.hw_caps & ATH9K_HW_CAP_SGI_20)
drivers/net/wireless/ath/ath9k/common-init.c
195
if (AR_SREV_9271(ah) || AR_SREV_9330(ah) || AR_SREV_9485(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/common-init.c
197
else if (AR_SREV_9462(ah))
drivers/net/wireless/ath/ath9k/common-init.c
199
else if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/common-init.c
204
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/common-init.c
212
tx_streams = ath9k_cmn_count_streams(ah->txchainmask, max_streams);
drivers/net/wireless/ath/ath9k/common-init.c
213
rx_streams = ath9k_cmn_count_streams(ah->rxchainmask, max_streams);
drivers/net/wireless/ath/ath9k/common-init.c
231
void ath9k_cmn_reload_chainmask(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/common-init.c
233
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/common-init.c
235
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_HT))
drivers/net/wireless/ath/ath9k/common-init.c
238
if (ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ)
drivers/net/wireless/ath/ath9k/common-init.c
239
ath9k_cmn_setup_ht_cap(ah,
drivers/net/wireless/ath/ath9k/common-init.c
241
if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
drivers/net/wireless/ath/ath9k/common-init.c
242
ath9k_cmn_setup_ht_cap(ah,
drivers/net/wireless/ath/ath9k/common-init.h
18
void ath9k_cmn_setup_ht_cap(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common-init.h
20
void ath9k_cmn_reload_chainmask(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/common-spectral.c
138
struct ath_common *common = ath9k_hw_common(spec_priv->ah);
drivers/net/wireless/ath/ath9k/common-spectral.c
139
struct ath_hw *ah = spec_priv->ah;
drivers/net/wireless/ath/ath9k/common-spectral.c
153
fft_sample_20.noise = ah->noise;
drivers/net/wireless/ath/ath9k/common-spectral.c
242
struct ath_common *common = ath9k_hw_common(spec_priv->ah);
drivers/net/wireless/ath/ath9k/common-spectral.c
243
struct ath_hw *ah = spec_priv->ah;
drivers/net/wireless/ath/ath9k/common-spectral.c
244
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/common-spectral.c
257
ext_nf = ath9k_hw_getchan_noise(ah, ah->curchan,
drivers/net/wireless/ath/ath9k/common-spectral.c
272
fft_sample_40.lower_noise = ah->noise;
drivers/net/wireless/ath/ath9k/common-spectral.c
279
fft_sample_40.upper_noise = ah->noise;
drivers/net/wireless/ath/ath9k/common-spectral.c
473
struct ath_hw *ah = spec_priv->ah;
drivers/net/wireless/ath/ath9k/common-spectral.c
474
struct ath_common *common = ath9k_hw_common(spec_priv->ah);
drivers/net/wireless/ath/ath9k/common-spectral.c
484
u16 fft_len, sample_len, freq = ah->curchan->chan->center_freq;
drivers/net/wireless/ath/ath9k/common-spectral.c
718
struct ath_hw *ah = spec_priv->ah;
drivers/net/wireless/ath/ath9k/common-spectral.c
724
if (!ath9k_hw_ops(ah)->spectral_scan_trigger) {
drivers/net/wireless/ath/ath9k/common-spectral.c
733
rxfilter = ath9k_hw_getrxfilter(ah);
drivers/net/wireless/ath/ath9k/common-spectral.c
734
ath9k_hw_setrxfilter(ah, rxfilter |
drivers/net/wireless/ath/ath9k/common-spectral.c
744
ath9k_hw_ops(ah)->spectral_scan_trigger(ah);
drivers/net/wireless/ath/ath9k/common-spectral.c
753
struct ath_hw *ah = spec_priv->ah;
drivers/net/wireless/ath/ath9k/common-spectral.c
755
if (!ath9k_hw_ops(ah)->spectral_scan_trigger) {
drivers/net/wireless/ath/ath9k/common-spectral.c
781
ath9k_hw_ops(ah)->spectral_scan_config(ah, &spec_priv->spec_config);
drivers/net/wireless/ath/ath9k/common-spectral.c
795
struct ath_common *common = ath9k_hw_common(spec_priv->ah);
drivers/net/wireless/ath/ath9k/common-spectral.h
98
struct ath_hw *ah;
drivers/net/wireless/ath/ath9k/common.c
125
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/common.c
163
if (ah->sw_mgmt_crypto_rx &&
drivers/net/wireless/ath/ath9k/common.c
179
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/common.c
181
band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/common.c
184
if (IS_CHAN_QUARTER_RATE(ah->curchan))
drivers/net/wireless/ath/ath9k/common.c
186
else if (IS_CHAN_HALF_RATE(ah->curchan))
drivers/net/wireless/ath/ath9k/common.c
219
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/common.c
244
if (!(ah->rxchainmask & BIT(i)))
drivers/net/wireless/ath/ath9k/common.c
250
rxs->chain_signal[j] = ah->noise + rssi;
drivers/net/wireless/ath/ath9k/common.c
259
((ah->opmode == NL80211_IFTYPE_STATION) ||
drivers/net/wireless/ath/ath9k/common.c
260
(ah->opmode == NL80211_IFTYPE_ADHOC))) {
drivers/net/wireless/ath/ath9k/common.c
269
ah->stats.avgbrssi = rssi;
drivers/net/wireless/ath/ath9k/common.c
272
rxs->signal = ah->noise + rx_stats->rs_rssi;
drivers/net/wireless/ath/ath9k/common.c
342
struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common.c
348
channel = &ah->channels[curchan->hw_value];
drivers/net/wireless/ath/ath9k/common.c
368
void ath9k_cmn_update_txpow(struct ath_hw *ah, u16 cur_txpow,
drivers/net/wireless/ath/ath9k/common.c
371
struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/common.c
373
if (ah->curchan && reg->power_limit != new_txpow)
drivers/net/wireless/ath/ath9k/common.c
374
ath9k_hw_set_txpowerlimit(ah, new_txpow, false);
drivers/net/wireless/ath/ath9k/common.c
381
void ath9k_cmn_init_crypto(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/common.c
383
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/common.c
39
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/common.c
395
if (ah->misc_mode & AR_PCU_MIC_NEW_LOC_ENA)
drivers/net/wireless/ath/ath9k/common.c
97
if (ah->is_monitoring && (rxfilter & FIF_FCSFAIL))
drivers/net/wireless/ath/ath9k/common.h
85
struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/common.h
88
void ath9k_cmn_update_txpow(struct ath_hw *ah, u16 cur_txpow,
drivers/net/wireless/ath/ath9k/common.h
90
void ath9k_cmn_init_crypto(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/debug.c
1053
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1057
len = sprintf(buf, "%u %c\n", ah->dynack.ackto,
drivers/net/wireless/ath/ath9k/debug.c
1058
(ah->dynack.enabled) ? 'A' : 'S');
drivers/net/wireless/ath/ath9k/debug.c
1133
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1143
ah->tpc_enabled ? "ENABLED" : "DISABLED");
drivers/net/wireless/ath/ath9k/debug.c
1158
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1172
if (tpc_enabled != ah->tpc_enabled) {
drivers/net/wireless/ath/ath9k/debug.c
1173
ah->tpc_enabled = tpc_enabled;
drivers/net/wireless/ath/ath9k/debug.c
1196
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1200
if (ah->nf_override == 0)
drivers/net/wireless/ath/ath9k/debug.c
1203
len = sprintf(buf, "%d\n", ah->nf_override);
drivers/net/wireless/ath/ath9k/debug.c
1213
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1234
ah->nf_override = val;
drivers/net/wireless/ath/ath9k/debug.c
1236
if (ah->curchan) {
drivers/net/wireless/ath/ath9k/debug.c
1238
ath9k_hw_loadnf(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/debug.c
132
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
1377
int ath9k_init_debug(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/debug.c
1379
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/debug.c
1411
&ah->rxchainmask);
drivers/net/wireless/ath/ath9k/debug.c
1413
&ah->txchainmask);
drivers/net/wireless/ath/ath9k/debug.c
142
{ "ANI RESET", ah->stats.ast_ani_reset },
drivers/net/wireless/ath/ath9k/debug.c
1424
&ah->config.cwm_ignore_extcca);
drivers/net/wireless/ath/ath9k/debug.c
143
{ "OFDM LEVEL", ah->ani.ofdmNoiseImmunityLevel },
drivers/net/wireless/ath/ath9k/debug.c
144
{ "CCK LEVEL", ah->ani.cckNoiseImmunityLevel },
drivers/net/wireless/ath/ath9k/debug.c
145
{ "SPUR UP", ah->stats.ast_ani_spurup },
drivers/net/wireless/ath/ath9k/debug.c
146
{ "SPUR DOWN", ah->stats.ast_ani_spurdown },
drivers/net/wireless/ath/ath9k/debug.c
147
{ "OFDM WS-DET ON", ah->stats.ast_ani_ofdmon },
drivers/net/wireless/ath/ath9k/debug.c
148
{ "OFDM WS-DET OFF", ah->stats.ast_ani_ofdmoff },
drivers/net/wireless/ath/ath9k/debug.c
149
{ "MRC-CCK ON", ah->stats.ast_ani_ccklow },
drivers/net/wireless/ath/ath9k/debug.c
150
{ "MRC-CCK OFF", ah->stats.ast_ani_cckhigh },
drivers/net/wireless/ath/ath9k/debug.c
151
{ "FIR-STEP UP", ah->stats.ast_ani_stepup },
drivers/net/wireless/ath/ath9k/debug.c
152
{ "FIR-STEP DOWN", ah->stats.ast_ani_stepdown },
drivers/net/wireless/ath/ath9k/debug.c
153
{ "INV LISTENTIME", ah->stats.ast_ani_lneg_or_lzero },
drivers/net/wireless/ath/ath9k/debug.c
154
{ "OFDM ERRORS", ah->stats.ast_ani_ofdmerrs },
drivers/net/wireless/ath/ath9k/debug.c
155
{ "CCK ERRORS", ah->stats.ast_ani_cckerrs },
drivers/net/wireless/ath/ath9k/debug.c
289
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
290
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/debug.c
313
ath9k_hw_antdiv_comb_conf_get(ah, &div_ant_conf);
drivers/net/wireless/ath/ath9k/debug.c
393
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
400
REG_WRITE_D(ah, AR_MACMISC,
drivers/net/wireless/ath/ath9k/debug.c
411
val[i] = REG_READ_D(ah, AR_DMADBG_0 + (i * sizeof(u32)));
drivers/net/wireless/ath/ath9k/debug.c
451
seq_printf(file, "pcu observe: 0x%x\n", REG_READ_D(ah, AR_OBS_BUS_1));
drivers/net/wireless/ath/ath9k/debug.c
452
seq_printf(file, "AR_CR: 0x%x\n", REG_READ_D(ah, AR_CR));
drivers/net/wireless/ath/ath9k/debug.c
778
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
779
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/debug.c
892
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
898
regval = REG_READ_D(ah, sc->debug.regidx);
drivers/net/wireless/ath/ath9k/debug.c
908
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
917
REG_WRITE_D(ah, sc->debug.regidx, regval);
drivers/net/wireless/ath/ath9k/debug.c
988
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug.c
990
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/debug.c
993
u8 chainmask = (ah->rxchainmask << 3) | ah->rxchainmask;
drivers/net/wireless/ath/ath9k/debug.c
996
seq_printf(file, "Channel Noise Floor : %d\n", ah->noise);
drivers/net/wireless/ath/ath9k/debug.h
257
int ath9k_init_debug(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/debug.h
284
static inline int ath9k_init_debug(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/debug_sta.c
142
if (ah->curchan->chan->band == NL80211_BAND_2GHZ)
drivers/net/wireless/ath/ath9k/debug_sta.c
173
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/debug_sta.c
186
band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/debug_sta.c
96
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/dfs.c
105
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/dfs.c
106
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/dfs.c
109
if (IS_CHAN_HT40(ah->curchan)) {
drivers/net/wireless/ath/ath9k/dfs.c
126
if (IS_CHAN_HT40MINUS(ah->curchan))
drivers/net/wireless/ath/ath9k/dfs.c
183
static u32 dur_to_usecs(struct ath_hw *ah, u32 dur)
drivers/net/wireless/ath/ath9k/dfs.c
189
if (IS_CHAN_A_FAST_CLOCK(ah, ah->curchan))
drivers/net/wireless/ath/ath9k/dfs.c
296
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/dfs.c
297
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/dfs.c
331
pe.freq = ah->curchan->channel;
drivers/net/wireless/ath/ath9k/dfs.c
354
if (IS_CHAN_HT40(ah->curchan) &&
drivers/net/wireless/ath/ath9k/dfs.c
356
pe.freq += IS_CHAN_HT40PLUS(ah->curchan) ? 20 : -20;
drivers/net/wireless/ath/ath9k/dynack.c
106
static void ath_dynack_set_timeout(struct ath_hw *ah, int to)
drivers/net/wireless/ath/ath9k/dynack.c
108
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/dynack.c
113
ath9k_hw_setslottime(ah, slottime);
drivers/net/wireless/ath/ath9k/dynack.c
114
ath9k_hw_set_ack_timeout(ah, to);
drivers/net/wireless/ath/ath9k/dynack.c
115
ath9k_hw_set_cts_timeout(ah, to);
drivers/net/wireless/ath/ath9k/dynack.c
124
static void ath_dynack_compute_ackto(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/dynack.c
126
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
135
ath_dynack_set_timeout(ah, to);
drivers/net/wireless/ath/ath9k/dynack.c
146
static void ath_dynack_compute_to(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/dynack.c
148
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
157
max_to = ath_dynack_get_max_to(ah);
drivers/net/wireless/ath/ath9k/dynack.c
165
ath_dbg(ath9k_hw_common(ah), DYNACK,
drivers/net/wireless/ath/ath9k/dynack.c
174
sta = ieee80211_find_sta_by_ifaddr(ah->hw, dst,
drivers/net/wireless/ath/ath9k/dynack.c
180
ath_dbg(ath9k_hw_common(ah), DYNACK,
drivers/net/wireless/ath/ath9k/dynack.c
184
ath_dynack_compute_ackto(ah);
drivers/net/wireless/ath/ath9k/dynack.c
207
void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
drivers/net/wireless/ath/ath9k/dynack.c
212
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
213
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/dynack.c
230
u32 max_to = ath_dynack_get_max_to(ah);
drivers/net/wireless/ath/ath9k/dynack.c
233
ath_dynack_set_timeout(ah, max_to);
drivers/net/wireless/ath/ath9k/dynack.c
269
dur -= ath_dynack_get_sifs(ah, phy);
drivers/net/wireless/ath/ath9k/dynack.c
281
ath_dynack_compute_to(ah);
drivers/net/wireless/ath/ath9k/dynack.c
294
void ath_dynack_sample_ack_ts(struct ath_hw *ah, struct sk_buff *skb,
drivers/net/wireless/ath/ath9k/dynack.c
297
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
298
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/dynack.c
301
if (!da->enabled || !ath_dynack_bssidmask(ah, hdr->addr1))
drivers/net/wireless/ath/ath9k/dynack.c
314
ath_dynack_compute_to(ah);
drivers/net/wireless/ath/ath9k/dynack.c
32
static u32 ath_dynack_get_max_to(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/dynack.c
326
void ath_dynack_node_init(struct ath_hw *ah, struct ath_node *an)
drivers/net/wireless/ath/ath9k/dynack.c
328
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
34
const struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/dynack.c
344
void ath_dynack_node_deinit(struct ath_hw *ah, struct ath_node *an)
drivers/net/wireless/ath/ath9k/dynack.c
346
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
359
void ath_dynack_reset(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/dynack.c
361
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
373
da->ackto = ath_dynack_get_max_to(ah);
drivers/net/wireless/ath/ath9k/dynack.c
378
ath_dynack_set_timeout(ah, da->ackto);
drivers/net/wireless/ath/ath9k/dynack.c
389
void ath_dynack_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/dynack.c
391
struct ath_dynack *da = &ah->dynack;
drivers/net/wireless/ath/ath9k/dynack.c
400
ah->hw->wiphy->features |= NL80211_FEATURE_ACKTO_ESTIMATION;
drivers/net/wireless/ath/ath9k/dynack.c
66
static inline u32 ath_dynack_get_sifs(struct ath_hw *ah, int phy)
drivers/net/wireless/ath/ath9k/dynack.c
71
if (IS_CHAN_QUARTER_RATE(ah->curchan))
drivers/net/wireless/ath/ath9k/dynack.c
73
else if (IS_CHAN_HALF_RATE(ah->curchan))
drivers/net/wireless/ath/ath9k/dynack.c
86
static inline bool ath_dynack_bssidmask(struct ath_hw *ah, const u8 *mac)
drivers/net/wireless/ath/ath9k/dynack.c
89
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/dynack.h
83
void ath_dynack_reset(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/dynack.h
84
void ath_dynack_node_init(struct ath_hw *ah, struct ath_node *an);
drivers/net/wireless/ath/ath9k/dynack.h
85
void ath_dynack_node_deinit(struct ath_hw *ah, struct ath_node *an);
drivers/net/wireless/ath/ath9k/dynack.h
86
void ath_dynack_init(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/dynack.h
87
void ath_dynack_sample_ack_ts(struct ath_hw *ah, struct sk_buff *skb, u32 ts);
drivers/net/wireless/ath/ath9k/dynack.h
88
void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
drivers/net/wireless/ath/ath9k/dynack.h
92
static inline void ath_dynack_init(struct ath_hw *ah) {}
drivers/net/wireless/ath/ath9k/dynack.h
93
static inline void ath_dynack_node_init(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/dynack.h
95
static inline void ath_dynack_node_deinit(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/dynack.h
97
static inline void ath_dynack_sample_ack_ts(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/dynack.h
99
static inline void ath_dynack_sample_tx_ts(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom.c
102
REG_READ_MULTI(ah, addrdata, data, i);
drivers/net/wireless/ath/ath9k/eeprom.c
129
static bool ath9k_hw_nvram_read_nvmem(struct ath_hw *ah, off_t offset,
drivers/net/wireless/ath/ath9k/eeprom.c
132
return ath9k_hw_nvram_read_array(ah->nvmem_blob,
drivers/net/wireless/ath/ath9k/eeprom.c
133
ah->nvmem_blob_len / sizeof(u16),
drivers/net/wireless/ath/ath9k/eeprom.c
137
bool ath9k_hw_nvram_read(struct ath_hw *ah, u32 off, u16 *data)
drivers/net/wireless/ath/ath9k/eeprom.c
139
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
142
if (ah->nvmem_blob)
drivers/net/wireless/ath/ath9k/eeprom.c
143
ret = ath9k_hw_nvram_read_nvmem(ah, off, data);
drivers/net/wireless/ath/ath9k/eeprom.c
144
else if (ah->eeprom_blob)
drivers/net/wireless/ath/ath9k/eeprom.c
145
ret = ath9k_hw_nvram_read_firmware(ah->eeprom_blob, off, data);
drivers/net/wireless/ath/ath9k/eeprom.c
156
int ath9k_hw_nvram_swap_data(struct ath_hw *ah, bool *swap_needed, int size)
drivers/net/wireless/ath/ath9k/eeprom.c
162
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
164
if (!ath9k_hw_nvram_read(ah, AR5416_EEPROM_MAGIC_OFFSET, &magic)) {
drivers/net/wireless/ath/ath9k/eeprom.c
174
if (ath9k_hw_use_flash(ah)) {
drivers/net/wireless/ath/ath9k/eeprom.c
186
if (ah->ah_flags & AH_NO_EEP_SWAP) {
drivers/net/wireless/ath/ath9k/eeprom.c
19
void ath9k_hw_analog_shift_regwrite(struct ath_hw *ah, u32 reg, u32 val)
drivers/net/wireless/ath/ath9k/eeprom.c
190
eepdata = (u16 *)(&ah->eeprom);
drivers/net/wireless/ath/ath9k/eeprom.c
197
if (ah->eep_ops->get_eepmisc(ah) & AR5416_EEPMISC_BIG_ENDIAN) {
drivers/net/wireless/ath/ath9k/eeprom.c
208
bool ath9k_hw_nvram_validate_checksum(struct ath_hw *ah, int size)
drivers/net/wireless/ath/ath9k/eeprom.c
21
REG_WRITE(ah, reg, val);
drivers/net/wireless/ath/ath9k/eeprom.c
211
u16 *eepdata = (u16 *)(&ah->eeprom);
drivers/net/wireless/ath/ath9k/eeprom.c
212
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
225
bool ath9k_hw_nvram_check_version(struct ath_hw *ah, int version, int minrev)
drivers/net/wireless/ath/ath9k/eeprom.c
227
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
229
if (ah->eep_ops->get_eeprom_ver(ah) != version ||
drivers/net/wireless/ath/ath9k/eeprom.c
23
if (ah->config.analog_shiftreg)
drivers/net/wireless/ath/ath9k/eeprom.c
230
ah->eep_ops->get_eeprom_rev(ah) < minrev) {
drivers/net/wireless/ath/ath9k/eeprom.c
232
ah->eep_ops->get_eeprom_ver(ah),
drivers/net/wireless/ath/ath9k/eeprom.c
233
ah->eep_ops->get_eeprom_rev(ah));
drivers/net/wireless/ath/ath9k/eeprom.c
267
void ath9k_hw_get_legacy_target_powers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom.c
27
void ath9k_hw_analog_shift_rmw(struct ath_hw *ah, u32 reg, u32 mask,
drivers/net/wireless/ath/ath9k/eeprom.c
280
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom.c
30
REG_RMW(ah, reg, ((val << shift) & mask), mask);
drivers/net/wireless/ath/ath9k/eeprom.c
32
if (ah->config.analog_shiftreg)
drivers/net/wireless/ath/ath9k/eeprom.c
322
void ath9k_hw_get_target_powers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom.c
335
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom.c
404
u16 ath9k_hw_get_scaled_power(struct ath_hw *ah, u16 power_limit,
drivers/net/wireless/ath/ath9k/eeprom.c
413
switch (ar5416_get_ntxchains(ah->txchainmask)) {
drivers/net/wireless/ath/ath9k/eeprom.c
432
void ath9k_hw_update_regulatory_maxpower(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom.c
434
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
435
struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
437
switch (ar5416_get_ntxchains(ah->txchainmask)) {
drivers/net/wireless/ath/ath9k/eeprom.c
452
void ath9k_hw_get_gain_boundaries_pdadcs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom.c
483
bool eeprom_4k = AR_SREV_9285(ah) || AR_SREV_9271(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
486
if (AR_SREV_9287(ah))
drivers/net/wireless/ath/ath9k/eeprom.c
492
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom.c
504
if (AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/eeprom.c
537
if (AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/eeprom.c
599
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/eeprom.c
659
int ath9k_hw_eeprom_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom.c
661
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/eeprom.c
662
ah->eep_ops = &eep_ar9300_ops;
drivers/net/wireless/ath/ath9k/eeprom.c
663
else if (AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/eeprom.c
664
ah->eep_ops = &eep_ar9287_ops;
drivers/net/wireless/ath/ath9k/eeprom.c
665
} else if (AR_SREV_9285(ah) || AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/eeprom.c
666
ah->eep_ops = &eep_4k_ops;
drivers/net/wireless/ath/ath9k/eeprom.c
668
ah->eep_ops = &eep_def_ops;
drivers/net/wireless/ath/ath9k/eeprom.c
671
if (!ah->eep_ops->fill_eeprom(ah))
drivers/net/wireless/ath/ath9k/eeprom.c
674
return ah->eep_ops->check_eeprom(ah);
drivers/net/wireless/ath/ath9k/eeprom.c
79
void ath9k_hw_usb_gen_fill_eeprom(struct ath_hw *ah, u16 *eep_data,
drivers/net/wireless/ath/ath9k/eeprom.c
91
REG_READ_MULTI(ah, addrdata, data, i);
drivers/net/wireless/ath/ath9k/eeprom.h
122
#define EEP_RFSILENT_GPIO_SEL ((AR_SREV_9462(ah) || AR_SREV_9565(ah)) ? 0x00fc : 0x001c)
drivers/net/wireless/ath/ath9k/eeprom.h
667
u16 (*get_spur_channel)(struct ath_hw *ah, u16 i, bool is2GHz);
drivers/net/wireless/ath/ath9k/eeprom.h
668
u8 (*get_eepmisc)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/eeprom.h
671
void ath9k_hw_analog_shift_regwrite(struct ath_hw *ah, u32 reg, u32 val);
drivers/net/wireless/ath/ath9k/eeprom.h
672
void ath9k_hw_analog_shift_rmw(struct ath_hw *ah, u32 reg, u32 mask,
drivers/net/wireless/ath/ath9k/eeprom.h
679
bool ath9k_hw_nvram_read(struct ath_hw *ah, u32 off, u16 *data);
drivers/net/wireless/ath/ath9k/eeprom.h
680
int ath9k_hw_nvram_swap_data(struct ath_hw *ah, bool *swap_needed, int size);
drivers/net/wireless/ath/ath9k/eeprom.h
681
bool ath9k_hw_nvram_validate_checksum(struct ath_hw *ah, int size);
drivers/net/wireless/ath/ath9k/eeprom.h
682
bool ath9k_hw_nvram_check_version(struct ath_hw *ah, int version, int minrev);
drivers/net/wireless/ath/ath9k/eeprom.h
683
void ath9k_hw_usb_gen_fill_eeprom(struct ath_hw *ah, u16 *eep_data,
drivers/net/wireless/ath/ath9k/eeprom.h
688
void ath9k_hw_get_legacy_target_powers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom.h
694
void ath9k_hw_get_target_powers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom.h
702
u16 ath9k_hw_get_scaled_power(struct ath_hw *ah, u16 power_limit,
drivers/net/wireless/ath/ath9k/eeprom.h
704
void ath9k_hw_update_regulatory_maxpower(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/eeprom.h
705
int ath9k_hw_eeprom_init(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/eeprom.h
707
void ath9k_hw_get_gain_boundaries_pdadcs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1000
REG_RMW_FIELD(ah, AR_PHY_SETTLING,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1005
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1015
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1016
REG_RMW(ah, AR_PHY_TX_PWRCTRL8, pwrctrl, clr);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1017
REG_RMW(ah, AR_PHY_TX_PWRCTRL10, pwrctrl, clr);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1018
REG_RMW(ah, AR_PHY_CH0_TX_PWRCTRL12, pwrctrl, clr);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1023
REG_RMW(ah, AR_PHY_TX_PWRCTRL9, pwrctrl, clr);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1028
REG_RMW(ah, AR_PHY_CH0_TX_PWRCTRL11, pwrctrl, clr);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1029
REG_RMW(ah, AR_PHY_CH0_TX_PWRCTRL13, pwrctrl, clr);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1030
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1034
static u16 ath9k_hw_4k_get_spur_channel(struct ath_hw *ah, u16 i, bool is2GHz)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1036
return le16_to_cpu(ah->eeprom.map4k.modalHeader.spurChans[i].spurChan);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1039
static u8 ath9k_hw_4k_get_eepmisc(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
1041
return ah->eeprom.map4k.baseEepHeader.eepMisc;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
130
static u32 ath9k_hw_4k_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
133
struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
145
PR_EEP("Major Version", ath9k_hw_4k_get_eeprom_ver(ah));
drivers/net/wireless/ath/ath9k/eeprom_4k.c
146
PR_EEP("Minor Version", ath9k_hw_4k_get_eeprom_rev(ah));
drivers/net/wireless/ath/ath9k/eeprom_4k.c
179
static u32 ath9k_hw_4k_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
186
static int ath9k_hw_4k_check_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
188
struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
193
err = ath9k_hw_nvram_swap_data(ah, &need_swap, SIZE_EEPROM_4K);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
203
if (!ath9k_hw_nvram_validate_checksum(ah, el))
drivers/net/wireless/ath/ath9k/eeprom_4k.c
21
static int ath9k_hw_4k_get_eeprom_ver(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
225
if (!ath9k_hw_nvram_check_version(ah, AR5416_EEP_VER,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
23
u16 version = le16_to_cpu(ah->eeprom.map4k.baseEepHeader.version);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
234
static u32 ath9k_hw_4k_get_eeprom(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
237
struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
283
static void ath9k_hw_set_4k_power_cal_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
286
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
287
struct ar5416_eeprom_4k *pEepData = &ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
29
static int ath9k_hw_4k_get_eeprom_rev(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
300
if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
304
pdGainOverlap_t2 = (u16)(MS(REG_READ(ah, AR_PHY_TPCRG5),
drivers/net/wireless/ath/ath9k/eeprom_4k.c
31
u16 version = le16_to_cpu(ah->eeprom.map4k.baseEepHeader.version);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
322
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
323
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_NUM_PD_GAIN,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
325
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_1,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
327
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_2,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
329
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3, 0);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
330
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
338
ath9k_hw_get_gain_boundaries_pdadcs(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
344
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
346
REG_WRITE(ah, AR_PHY_TPCRG5 + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
361
REG_WRITE(ah, regOffset, reg32);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
38
static bool __ath9k_hw_4k_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
381
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
386
static void ath9k_hw_set_4k_power_per_rate_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
40
u16 *eep_data = (u16 *)&ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
408
struct ar5416_eeprom_4k *pEepData = &ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
424
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
431
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
435
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
439
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
44
if (!ath9k_hw_nvram_read(ah, addr + eep_start_loc, eep_data))
drivers/net/wireless/ath/ath9k/eeprom_4k.c
446
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
450
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
454
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
482
ar5416_get_ntxchains(ah->txchainmask) - 1],
drivers/net/wireless/ath/ath9k/eeprom_4k.c
52
static bool __ath9k_hw_usb_4k_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
54
u16 *eep_data = (u16 *)&ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
56
ath9k_hw_usb_gen_fill_eeprom(ah, eep_data, 64, SIZE_EEPROM_4K);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
577
static void ath9k_hw_4k_set_txpower(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
583
struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
584
struct ar5416_eeprom_4k *pEepData = &ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
592
if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
595
ath9k_hw_set_4k_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
600
ath9k_hw_set_4k_power_cal_table(ah, chan);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
61
static bool ath9k_hw_4k_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_4k.c
617
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
620
REG_WRITE(ah, AR_PHY_POWER_TX_RATE1,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
625
REG_WRITE(ah, AR_PHY_POWER_TX_RATE2,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
63
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
632
REG_WRITE(ah, AR_PHY_POWER_TX_RATE3,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
637
REG_WRITE(ah, AR_PHY_POWER_TX_RATE4,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
644
REG_WRITE(ah, AR_PHY_POWER_TX_RATE5,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
649
REG_WRITE(ah, AR_PHY_POWER_TX_RATE6,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
65
if (!ath9k_hw_use_flash(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
657
REG_WRITE(ah, AR_PHY_POWER_TX_RATE7,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
666
REG_WRITE(ah, AR_PHY_POWER_TX_RATE8,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
675
REG_WRITE(ah, AR_PHY_POWER_TX_RATE9,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
683
if (ah->tpc_enabled) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
687
ar5008_hw_init_rate_txpower(ah, ratesArray, chan, ht40_delta);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
689
REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
693
REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX, MAX_RATE_POWER);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
696
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
699
static void ath9k_hw_4k_set_gain(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
70
return __ath9k_hw_usb_4k_fill_eeprom(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
704
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
705
REG_RMW(ah, AR_PHY_SWITCH_CHAIN_0,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
708
REG_RMW(ah, AR_PHY_TIMING_CTRL4(0),
drivers/net/wireless/ath/ath9k/eeprom_4k.c
713
if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
716
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
718
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
72
return __ath9k_hw_4k_fill_eeprom(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
720
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
723
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
727
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + 0x1000,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
730
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + 0x1000,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
732
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + 0x1000,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
735
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + 0x1000,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
740
REG_RMW_FIELD(ah, AR_PHY_RXGAIN,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
742
REG_RMW_FIELD(ah, AR_PHY_RXGAIN,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
745
REG_RMW_FIELD(ah, AR_PHY_RXGAIN + 0x1000,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
747
REG_RMW_FIELD(ah, AR_PHY_RXGAIN + 0x1000,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
749
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
756
static void ath9k_hw_4k_set_board_values(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
759
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
761
struct ar5416_eeprom_4k *eep = &ah->eeprom.map4k;
drivers/net/wireless/ath/ath9k/eeprom_4k.c
772
REG_WRITE(ah, AR_PHY_SWITCH_COM, le32_to_cpu(pModal->antCtrlCommon));
drivers/net/wireless/ath/ath9k/eeprom_4k.c
775
ath9k_hw_4k_set_gain(ah, pModal, eep, txRxAttenLocal);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
782
regVal = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
797
REG_WRITE(ah, AR_PHY_MULTICHAIN_GAIN_CTL, regVal);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
798
regVal = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
799
regVal = REG_READ(ah, AR_PHY_CCK_DETECT);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
804
REG_WRITE(ah, AR_PHY_CCK_DETECT, regVal);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
805
regVal = REG_READ(ah, AR_PHY_CCK_DETECT);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
812
regVal = REG_READ(ah, AR_PHY_MULTICHAIN_GAIN_CTL);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
822
REG_WRITE(ah, AR_PHY_MULTICHAIN_GAIN_CTL, regVal);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
861
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
862
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
863
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
868
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
873
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
878
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
883
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
889
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
894
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
899
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
904
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
909
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
915
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
920
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
925
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
930
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
935
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
940
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
945
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
950
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
955
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
960
ath9k_hw_analog_shift_rmw(ah,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
966
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
968
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_4k.c
969
REG_RMW_FIELD(ah, AR_PHY_SETTLING, AR_PHY_SETTLING_SWITCH,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
971
REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ, AR_PHY_DESIRED_SZ_ADC,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
974
REG_RMW(ah, AR_PHY_RF_CTL4,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
980
REG_RMW_FIELD(ah, AR_PHY_RF_CTL3, AR_PHY_TX_END_TO_A2_RX_ON,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
983
if (AR_SREV_9271_10(ah))
drivers/net/wireless/ath/ath9k/eeprom_4k.c
984
REG_RMW_FIELD(ah, AR_PHY_RF_CTL3, AR_PHY_TX_END_TO_A2_RX_ON,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
986
REG_RMW_FIELD(ah, AR_PHY_CCA, AR9280_PHY_CCA_THRESH62,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
988
REG_RMW_FIELD(ah, AR_PHY_EXT_CCA0, AR_PHY_EXT_CCA0_THRESH62,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
991
if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2) {
drivers/net/wireless/ath/ath9k/eeprom_4k.c
992
REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_END_DATA_START,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
994
REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_END_PA_ON,
drivers/net/wireless/ath/ath9k/eeprom_4k.c
998
if (ath9k_hw_4k_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
126
static u32 ath9k_hw_ar9287_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
129
struct ar9287_eeprom *eep = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
141
PR_EEP("Major Version", ath9k_hw_ar9287_get_eeprom_ver(ah));
drivers/net/wireless/ath/ath9k/eeprom_9287.c
142
PR_EEP("Minor Version", ath9k_hw_ar9287_get_eeprom_rev(ah));
drivers/net/wireless/ath/ath9k/eeprom_9287.c
176
static u32 ath9k_hw_ar9287_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
184
static int ath9k_hw_ar9287_check_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
189
struct ar9287_eeprom *eep = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
191
err = ath9k_hw_nvram_swap_data(ah, &need_swap, SIZE_EEPROM_AR9287);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
201
if (!ath9k_hw_nvram_validate_checksum(ah, el))
drivers/net/wireless/ath/ath9k/eeprom_9287.c
223
if (!ath9k_hw_nvram_check_version(ah, AR9287_EEP_VER,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
23
static int ath9k_hw_ar9287_get_eeprom_ver(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
232
static u32 ath9k_hw_ar9287_get_eeprom(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
235
struct ar9287_eeprom *eep = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
238
u16 ver_minor = ath9k_hw_ar9287_get_eeprom_rev(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
25
u16 version = le16_to_cpu(ah->eeprom.map9287.baseEepHeader.version);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
283
static void ar9287_eeprom_get_tx_gain_index(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
292
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
31
static int ath9k_hw_ar9287_get_eeprom_rev(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
312
static void ar9287_eeprom_olpc_set_pdadcs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
320
tmpVal = REG_READ(ah, 0xa270);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
323
REG_WRITE(ah, 0xa270, tmpVal);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
327
tmpVal = REG_READ(ah, 0xb270);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
33
u16 version = le16_to_cpu(ah->eeprom.map9287.baseEepHeader.version);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
330
REG_WRITE(ah, 0xb270, tmpVal);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
335
tmpVal = REG_READ(ah, 0xa398);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
339
REG_WRITE(ah, 0xa398, tmpVal);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
345
tmpVal = REG_READ(ah, 0xb398);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
349
REG_WRITE(ah, 0xb398, tmpVal);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
353
static void ath9k_hw_set_ar9287_power_cal_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
367
struct ar9287_eeprom *pEepData = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
371
if (ath9k_hw_ar9287_get_eeprom_rev(ah) >= AR9287_EEP_MINOR_VER_2)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
374
pdGainOverlap_t2 = (u16)(MS(REG_READ(ah, AR_PHY_TPCRG5),
drivers/net/wireless/ath/ath9k/eeprom_9287.c
38
static bool __ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
380
if (ath9k_hw_ar9287_get_eeprom(ah, EEP_OL_PWRCTRL)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
383
ah->initPDADC = pRawDatasetOpenLoop->vpdPdg[0][0];
drivers/net/wireless/ath/ath9k/eeprom_9287.c
40
struct ar9287_eeprom *eep = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
400
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_NUM_PD_GAIN,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
402
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_1,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
404
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_2,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
406
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
416
if (ath9k_hw_ar9287_get_eeprom(ah, EEP_OL_PWRCTRL)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
418
ar9287_eeprom_get_tx_gain_index(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
422
ar9287_eeprom_olpc_set_pdadcs(ah, txPower, i);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
428
ath9k_hw_get_gain_boundaries_pdadcs(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
437
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
440
if (!ath9k_hw_ar9287_get_eeprom(ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
454
REG_WRITE(ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
46
if (!ath9k_hw_nvram_read(ah, addr + eep_start_loc, eep_data))
drivers/net/wireless/ath/ath9k/eeprom_9287.c
475
if (!ath9k_hw_ar9287_get_eeprom(ah, EEP_OL_PWRCTRL)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
482
REG_WRITE(ah, regOffset, reg32);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
486
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
491
static void ath9k_hw_set_ar9287_power_per_rate_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
526
struct ar9287_eeprom *pEepData = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
527
tx_chainmask = ah->txchainmask;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
529
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
530
scaledPower = ath9k_hw_get_scaled_power(ah, powerLimit,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
54
static bool __ath9k_hw_usb_ar9287_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
543
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
547
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
551
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
559
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
56
u16 *eep_data = (u16 *)&ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
563
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
567
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
58
ath9k_hw_usb_gen_fill_eeprom(ah, eep_data,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
64
static bool ath9k_hw_ar9287_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
66
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
68
if (!ath9k_hw_use_flash(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
705
static void ath9k_hw_ar9287_set_txpower(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
710
struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
711
struct ar9287_eeprom *pEepData = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
719
if (ath9k_hw_ar9287_get_eeprom_rev(ah) >= AR9287_EEP_MINOR_VER_2)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
722
ath9k_hw_set_ar9287_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
727
ath9k_hw_set_ar9287_power_cal_table(ah, chan);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
73
return __ath9k_hw_usb_ar9287_fill_eeprom(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
738
ath9k_hw_update_regulatory_maxpower(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
746
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
749
REG_WRITE(ah, AR_PHY_POWER_TX_RATE1,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
75
return __ath9k_hw_ar9287_fill_eeprom(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
755
REG_WRITE(ah, AR_PHY_POWER_TX_RATE2,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
763
REG_WRITE(ah, AR_PHY_POWER_TX_RATE3,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
768
REG_WRITE(ah, AR_PHY_POWER_TX_RATE4,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
776
REG_WRITE(ah, AR_PHY_POWER_TX_RATE5,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
782
REG_WRITE(ah, AR_PHY_POWER_TX_RATE6,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
790
if (ath9k_hw_ar9287_get_eeprom(ah, EEP_OL_PWRCTRL)) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
791
REG_WRITE(ah, AR_PHY_POWER_TX_RATE7,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
797
REG_WRITE(ah, AR_PHY_POWER_TX_RATE8,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
803
REG_WRITE(ah, AR_PHY_POWER_TX_RATE7,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
813
REG_WRITE(ah, AR_PHY_POWER_TX_RATE8,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
825
REG_WRITE(ah, AR_PHY_POWER_TX_RATE9,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
833
if (ah->tpc_enabled) {
drivers/net/wireless/ath/ath9k/eeprom_9287.c
837
ar5008_hw_init_rate_txpower(ah, ratesArray, chan, ht40_delta);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
839
REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
843
REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX, MAX_RATE_POWER);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
846
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
849
static void ath9k_hw_ar9287_set_board_values(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
852
struct ar9287_eeprom *eep = &ah->eeprom.map9287;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
860
REG_WRITE(ah, AR_PHY_SWITCH_COM, le32_to_cpu(pModal->antCtrlCommon));
drivers/net/wireless/ath/ath9k/eeprom_9287.c
865
REG_WRITE(ah, AR_PHY_SWITCH_CHAIN_0 + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
868
REG_WRITE(ah, AR_PHY_TIMING_CTRL4(0) + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
869
(REG_READ(ah, AR_PHY_TIMING_CTRL4(0) + regChainOffset)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
879
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
882
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
885
REG_RMW_FIELD(ah, AR_PHY_RXGAIN + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
888
REG_RMW_FIELD(ah, AR_PHY_RXGAIN + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
895
REG_RMW_FIELD(ah, AR_PHY_SETTLING,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
898
REG_RMW_FIELD(ah, AR_PHY_SETTLING,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
901
REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
904
REG_WRITE(ah, AR_PHY_RF_CTL4,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
910
REG_RMW_FIELD(ah, AR_PHY_RF_CTL3,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
913
REG_RMW_FIELD(ah, AR_PHY_CCA,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
915
REG_RMW_FIELD(ah, AR_PHY_EXT_CCA0,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
918
regval = REG_READ(ah, AR9287_AN_RF2G3_CH0);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
932
ath9k_hw_analog_shift_regwrite(ah, AR9287_AN_RF2G3_CH0, regval);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
934
regval = REG_READ(ah, AR9287_AN_RF2G3_CH1);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
948
ath9k_hw_analog_shift_regwrite(ah, AR9287_AN_RF2G3_CH1, regval);
drivers/net/wireless/ath/ath9k/eeprom_9287.c
950
REG_RMW_FIELD(ah, AR_PHY_RF_CTL2,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
952
REG_RMW_FIELD(ah, AR_PHY_RF_CTL2,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
955
ath9k_hw_analog_shift_rmw(ah, AR9287_AN_TOP2,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
961
static u16 ath9k_hw_ar9287_get_spur_channel(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_9287.c
964
__le16 spur_ch = ah->eeprom.map9287.modalHeader.spurChans[i].spurChan;
drivers/net/wireless/ath/ath9k/eeprom_9287.c
969
static u8 ath9k_hw_ar9287_get_eepmisc(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_9287.c
971
return ah->eeprom.map9287.baseEepHeader.eepMisc;
drivers/net/wireless/ath/ath9k/eeprom_def.c
1000
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1004
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1011
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1015
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
103
if (!ath9k_hw_nvram_read(ah, addr + ar5416_eep_start_loc,
drivers/net/wireless/ath/ath9k/eeprom_def.c
111
static bool __ath9k_hw_usb_def_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_def.c
113
u16 *eep_data = (u16 *)&ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
1142
static void ath9k_hw_def_set_txpower(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1149
struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
115
ath9k_hw_usb_gen_fill_eeprom(ah, eep_data,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1150
struct ar5416_eeprom_def *pEepData = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
1159
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2)
drivers/net/wireless/ath/ath9k/eeprom_def.c
1162
ath9k_hw_set_def_power_per_rate_table(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1167
ath9k_hw_set_def_power_cal_table(ah, chan);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1177
ath9k_hw_update_regulatory_maxpower(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1182
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1186
pwr_table_offset = ah->eep_ops->get_eeprom(ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1192
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1194
REG_WRITE(ah, AR_PHY_POWER_TX_RATE1,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1199
REG_WRITE(ah, AR_PHY_POWER_TX_RATE2,
drivers/net/wireless/ath/ath9k/eeprom_def.c
120
static bool ath9k_hw_def_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_def.c
1206
if (OLC_FOR_AR9280_20_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1208
REG_WRITE(ah, AR_PHY_POWER_TX_RATE3,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1213
REG_WRITE(ah, AR_PHY_POWER_TX_RATE4,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1219
REG_WRITE(ah, AR_PHY_POWER_TX_RATE3,
drivers/net/wireless/ath/ath9k/eeprom_def.c
122
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1224
REG_WRITE(ah, AR_PHY_POWER_TX_RATE4,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1232
REG_WRITE(ah, AR_PHY_POWER_TX_RATE5,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1237
REG_WRITE(ah, AR_PHY_POWER_TX_RATE6,
drivers/net/wireless/ath/ath9k/eeprom_def.c
124
if (!ath9k_hw_use_flash(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1244
REG_WRITE(ah, AR_PHY_POWER_TX_RATE7,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1253
REG_WRITE(ah, AR_PHY_POWER_TX_RATE8,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1262
if (OLC_FOR_AR9280_20_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1263
REG_WRITE(ah, AR_PHY_POWER_TX_RATE9,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1269
REG_WRITE(ah, AR_PHY_POWER_TX_RATE9,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1277
REG_WRITE(ah, AR_PHY_POWER_TX_SUB,
drivers/net/wireless/ath/ath9k/eeprom_def.c
1282
if (ah->tpc_enabled) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
1286
ar5008_hw_init_rate_txpower(ah, ratesArray, chan, ht40_delta);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1288
REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX,
drivers/net/wireless/ath/ath9k/eeprom_def.c
129
return __ath9k_hw_usb_def_fill_eeprom(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1292
REG_WRITE(ah, AR_PHY_POWER_TX_RATE_MAX, MAX_RATE_POWER);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1295
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
1298
static u16 ath9k_hw_def_get_spur_channel(struct ath_hw *ah, u16 i, bool is2GHz)
drivers/net/wireless/ath/ath9k/eeprom_def.c
1300
__le16 spch = ah->eeprom.def.modalHeader[is2GHz].spurChans[i].spurChan;
drivers/net/wireless/ath/ath9k/eeprom_def.c
1305
static u8 ath9k_hw_def_get_eepmisc(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_def.c
1307
return ah->eeprom.def.baseEepHeader.eepMisc;
drivers/net/wireless/ath/ath9k/eeprom_def.c
131
return __ath9k_hw_def_fill_eeprom(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
204
static u32 ath9k_hw_def_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/eeprom_def.c
207
struct ar5416_eeprom_def *eep = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
21
static void ath9k_get_txgain_index(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
223
PR_EEP("Major Version", ath9k_hw_def_get_eeprom_ver(ah));
drivers/net/wireless/ath/ath9k/eeprom_def.c
224
PR_EEP("Minor Version", ath9k_hw_def_get_eeprom_rev(ah));
drivers/net/wireless/ath/ath9k/eeprom_def.c
257
static u32 ath9k_hw_def_dump_eeprom(struct ath_hw *ah, bool dump_base_hdr,
drivers/net/wireless/ath/ath9k/eeprom_def.c
264
static int ath9k_hw_def_check_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_def.c
266
struct ar5416_eeprom_def *eep = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
267
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
272
err = ath9k_hw_nvram_swap_data(ah, &need_swap, SIZE_EEPROM_DEF);
drivers/net/wireless/ath/ath9k/eeprom_def.c
282
if (!ath9k_hw_nvram_validate_checksum(ah, el))
drivers/net/wireless/ath/ath9k/eeprom_def.c
31
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom_def.c
314
if (!ath9k_hw_nvram_check_version(ah, AR5416_EEP_VER,
drivers/net/wireless/ath/ath9k/eeprom_def.c
319
if ((ah->hw_version.devid == AR9280_DEVID_PCI) &&
drivers/net/wireless/ath/ath9k/eeprom_def.c
322
ah->need_an_top2_fixup = true;
drivers/net/wireless/ath/ath9k/eeprom_def.c
325
(AR_SREV_9280(ah)))
drivers/net/wireless/ath/ath9k/eeprom_def.c
333
static u32 ath9k_hw_def_get_eeprom(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
336
struct ar5416_eeprom_def *eep = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
379
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_19)
drivers/net/wireless/ath/ath9k/eeprom_def.c
384
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_19)
drivers/net/wireless/ath/ath9k/eeprom_def.c
389
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_20)
drivers/net/wireless/ath/ath9k/eeprom_def.c
394
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_22)
drivers/net/wireless/ath/ath9k/eeprom_def.c
399
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_21)
drivers/net/wireless/ath/ath9k/eeprom_def.c
416
static void ath9k_hw_def_set_gain(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
421
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
422
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
425
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
426
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
429
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
432
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
435
REG_RMW_FIELD(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
439
REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
442
REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
448
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
449
REG_RMW_FIELD(ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
452
REG_RMW_FIELD(ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
456
REG_RMW(ah, AR_PHY_RXGAIN + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
459
REG_RMW(ah, AR_PHY_GAIN_2GHZ + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
463
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
466
static void ath9k_hw_def_set_board_values(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
470
struct ar5416_eeprom_def *eep = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
479
REG_WRITE(ah, AR_PHY_SWITCH_COM, antCtrlCommon & 0xffff);
drivers/net/wireless/ath/ath9k/eeprom_def.c
482
if (AR_SREV_9280(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
487
if ((ah->rxchainmask == 5 || ah->txchainmask == 5) && (i != 0))
drivers/net/wireless/ath/ath9k/eeprom_def.c
49
while (pcdac > ah->originalGain[i] &&
drivers/net/wireless/ath/ath9k/eeprom_def.c
492
REG_WRITE(ah, AR_PHY_SWITCH_CHAIN_0 + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
495
REG_WRITE(ah, AR_PHY_TIMING_CTRL4(0) + regChainOffset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
496
(REG_READ(ah, AR_PHY_TIMING_CTRL4(0) + regChainOffset) &
drivers/net/wireless/ath/ath9k/eeprom_def.c
504
ath9k_hw_def_set_gain(ah, pModal, eep, txRxAttenLocal,
drivers/net/wireless/ath/ath9k/eeprom_def.c
508
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
510
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF2G1_CH0,
drivers/net/wireless/ath/ath9k/eeprom_def.c
514
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF2G1_CH0,
drivers/net/wireless/ath/ath9k/eeprom_def.c
518
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF2G1_CH1,
drivers/net/wireless/ath/ath9k/eeprom_def.c
522
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF2G1_CH1,
drivers/net/wireless/ath/ath9k/eeprom_def.c
527
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF5G1_CH0,
drivers/net/wireless/ath/ath9k/eeprom_def.c
531
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF5G1_CH0,
drivers/net/wireless/ath/ath9k/eeprom_def.c
535
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF5G1_CH1,
drivers/net/wireless/ath/ath9k/eeprom_def.c
539
ath9k_hw_analog_shift_rmw(ah, AR_AN_RF5G1_CH1,
drivers/net/wireless/ath/ath9k/eeprom_def.c
544
ath9k_hw_analog_shift_rmw(ah, AR_AN_TOP2,
drivers/net/wireless/ath/ath9k/eeprom_def.c
548
ath9k_hw_analog_shift_rmw(ah, AR_AN_TOP2,
drivers/net/wireless/ath/ath9k/eeprom_def.c
553
REG_RMW_FIELD(ah, AR_PHY_XPA_CFG, AR_PHY_FORCE_XPA_CFG,
drivers/net/wireless/ath/ath9k/eeprom_def.c
557
REG_RMW_FIELD(ah, AR_PHY_SETTLING, AR_PHY_SETTLING_SWITCH,
drivers/net/wireless/ath/ath9k/eeprom_def.c
559
REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ, AR_PHY_DESIRED_SZ_ADC,
drivers/net/wireless/ath/ath9k/eeprom_def.c
56
static void ath9k_olc_get_pdadcs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
562
if (!AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/eeprom_def.c
563
REG_RMW_FIELD(ah, AR_PHY_DESIRED_SZ,
drivers/net/wireless/ath/ath9k/eeprom_def.c
567
REG_WRITE(ah, AR_PHY_RF_CTL4,
drivers/net/wireless/ath/ath9k/eeprom_def.c
576
REG_RMW_FIELD(ah, AR_PHY_RF_CTL3, AR_PHY_TX_END_TO_A2_RX_ON,
drivers/net/wireless/ath/ath9k/eeprom_def.c
579
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
580
REG_RMW_FIELD(ah, AR_PHY_CCA, AR9280_PHY_CCA_THRESH62,
drivers/net/wireless/ath/ath9k/eeprom_def.c
582
REG_RMW_FIELD(ah, AR_PHY_EXT_CCA0,
drivers/net/wireless/ath/ath9k/eeprom_def.c
586
REG_RMW_FIELD(ah, AR_PHY_CCA, AR_PHY_CCA_THRESH62,
drivers/net/wireless/ath/ath9k/eeprom_def.c
588
REG_RMW_FIELD(ah, AR_PHY_EXT_CCA,
drivers/net/wireless/ath/ath9k/eeprom_def.c
593
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
594
REG_RMW_FIELD(ah, AR_PHY_RF_CTL2,
drivers/net/wireless/ath/ath9k/eeprom_def.c
597
REG_RMW_FIELD(ah, AR_PHY_RF_CTL2, AR_PHY_TX_END_PA_ON,
drivers/net/wireless/ath/ath9k/eeprom_def.c
601
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_3) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
603
REG_RMW_FIELD(ah, AR_PHY_SETTLING,
drivers/net/wireless/ath/ath9k/eeprom_def.c
608
if (AR_SREV_9280_20_OR_LATER(ah) &&
drivers/net/wireless/ath/ath9k/eeprom_def.c
609
ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_19)
drivers/net/wireless/ath/ath9k/eeprom_def.c
610
REG_RMW_FIELD(ah, AR_PHY_CCK_TX_CTRL,
drivers/net/wireless/ath/ath9k/eeprom_def.c
615
if (AR_SREV_9280_20(ah) &&
drivers/net/wireless/ath/ath9k/eeprom_def.c
616
ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_20) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
618
REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE,
drivers/net/wireless/ath/ath9k/eeprom_def.c
621
REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE, 0);
drivers/net/wireless/ath/ath9k/eeprom_def.c
623
REG_RMW_FIELD(ah, AR_AN_TOP1, AR_AN_TOP1_DACIPMODE,
drivers/net/wireless/ath/ath9k/eeprom_def.c
628
REG_RMW_FIELD(ah, AR_PHY_FRAME_CTL, AR_PHY_FRAME_CTL_TX_CLIP,
drivers/net/wireless/ath/ath9k/eeprom_def.c
631
REG_RMW_FIELD(ah, AR_PHY_TX_PWRCTRL9,
drivers/net/wireless/ath/ath9k/eeprom_def.c
637
static void ath9k_hw_def_set_addac(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
64
REG_RMW_FIELD(ah, AR_PHY_TX_PWRCTRL6_0,
drivers/net/wireless/ath/ath9k/eeprom_def.c
642
struct ar5416_eeprom_def *eep = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
645
if (ah->hw_version.macVersion != AR_SREV_VERSION_9160)
drivers/net/wireless/ath/ath9k/eeprom_def.c
648
if (ah->eep_ops->get_eeprom_rev(ah) < AR5416_EEP_MINOR_VER_7)
drivers/net/wireless/ath/ath9k/eeprom_def.c
659
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom_def.c
66
REG_RMW_FIELD(ah, AR_PHY_TX_PWRCTRL6_1,
drivers/net/wireless/ath/ath9k/eeprom_def.c
682
INI_RA(&ah->iniAddac, 7, 1) = (INI_RA(&ah->iniAddac,
drivers/net/wireless/ath/ath9k/eeprom_def.c
685
INI_RA(&ah->iniAddac, 6, 1) = (INI_RA(&ah->iniAddac,
drivers/net/wireless/ath/ath9k/eeprom_def.c
69
REG_RMW_FIELD(ah, AR_PHY_TX_PWRCTRL7,
drivers/net/wireless/ath/ath9k/eeprom_def.c
691
static int16_t ath9k_change_gain_boundary_setting(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
706
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
732
static void ath9k_adjust_pdadc_values(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
745
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
761
static void ath9k_hw_set_def_power_cal_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
767
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
768
struct ar5416_eeprom_def *pEepData = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
785
pwr_table_offset = ah->eep_ops->get_eeprom(ah, EEP_PWR_TABLE_OFFSET);
drivers/net/wireless/ath/ath9k/eeprom_def.c
787
if (ath9k_hw_def_get_eeprom_rev(ah) >= AR5416_EEP_MINOR_VER_2) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
791
pdGainOverlap_t2 = (u16)(MS(REG_READ(ah, AR_PHY_TPCRG5),
drivers/net/wireless/ath/ath9k/eeprom_def.c
80
static int ath9k_hw_def_get_eeprom_ver(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_def.c
803
if (OLC_FOR_AR9280_20_LATER(ah) && IS_CHAN_2GHZ(chan)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
805
ah->initPDADC = ((struct calDataPerFreqOpLoop *)
drivers/net/wireless/ath/ath9k/eeprom_def.c
82
u16 version = le16_to_cpu(ah->eeprom.def.baseEepHeader.version);
drivers/net/wireless/ath/ath9k/eeprom_def.c
821
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_NUM_PD_GAIN,
drivers/net/wireless/ath/ath9k/eeprom_def.c
823
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_1,
drivers/net/wireless/ath/ath9k/eeprom_def.c
825
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_2,
drivers/net/wireless/ath/ath9k/eeprom_def.c
827
REG_RMW_FIELD(ah, AR_PHY_TPCRG1, AR_PHY_TPCRG1_PD_GAIN_3,
drivers/net/wireless/ath/ath9k/eeprom_def.c
831
if ((ah->rxchainmask == 5 || ah->txchainmask == 5) &&
drivers/net/wireless/ath/ath9k/eeprom_def.c
844
if (OLC_FOR_AR9280_20_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
848
ath9k_get_txgain_index(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
851
ath9k_olc_get_pdadcs(ah, pcdacIdx,
drivers/net/wireless/ath/ath9k/eeprom_def.c
854
ath9k_hw_get_gain_boundaries_pdadcs(ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
863
diff = ath9k_change_gain_boundary_setting(ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
870
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
872
if (OLC_FOR_AR9280_20_LATER(ah)) {
drivers/net/wireless/ath/ath9k/eeprom_def.c
873
REG_WRITE(ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
88
static int ath9k_hw_def_get_eeprom_rev(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_def.c
880
REG_WRITE(ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
890
ath9k_adjust_pdadc_values(ah, pwr_table_offset,
drivers/net/wireless/ath/ath9k/eeprom_def.c
896
REG_WRITE(ah, regOffset, reg32);
drivers/net/wireless/ath/ath9k/eeprom_def.c
90
u16 version = le16_to_cpu(ah->eeprom.def.baseEepHeader.version);
drivers/net/wireless/ath/ath9k/eeprom_def.c
911
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/eeprom_def.c
919
static void ath9k_hw_set_def_power_per_rate_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/eeprom_def.c
926
struct ar5416_eeprom_def *pEepData = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
955
tx_chainmask = ah->txchainmask;
drivers/net/wireless/ath/ath9k/eeprom_def.c
957
ath9k_hw_get_channel_centers(ah, chan, ¢ers);
drivers/net/wireless/ath/ath9k/eeprom_def.c
959
scaledPower = ath9k_hw_get_scaled_power(ah, powerLimit,
drivers/net/wireless/ath/ath9k/eeprom_def.c
967
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
97
static bool __ath9k_hw_def_fill_eeprom(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/eeprom_def.c
971
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
975
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
982
ath9k_hw_get_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
986
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/eeprom_def.c
99
u16 *eep_data = (u16 *)&ah->eeprom.def;
drivers/net/wireless/ath/ath9k/eeprom_def.c
990
ath9k_hw_get_legacy_target_powers(ah, chan,
drivers/net/wireless/ath/ath9k/gpio.c
106
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
110
is_blocked = ath9k_hw_gpio_get(ah, ah->rfkill_gpio) ==
drivers/net/wireless/ath/ath9k/gpio.c
111
ah->rfkill_polarity;
drivers/net/wireless/ath/ath9k/gpio.c
127
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
129
if (ah->caps.hw_caps & ATH9K_HW_CAP_RFSILENT)
drivers/net/wireless/ath/ath9k/gpio.c
145
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
147
if (ath9k_hw_gpio_get(sc->sc_ah, ah->btcoex_hw.btpriority_gpio))
drivers/net/wireless/ath/ath9k/gpio.c
175
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
178
if (ar9003_mci_state(ah, MCI_STATE_NEED_FTP_STOMP) &&
drivers/net/wireless/ath/ath9k/gpio.c
180
ah->btcoex_hw.mci.stomp_ftp =
drivers/net/wireless/ath/ath9k/gpio.c
183
ah->btcoex_hw.mci.stomp_ftp = false;
drivers/net/wireless/ath/ath9k/gpio.c
197
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
214
if (ah->caps.hw_caps & ATH9K_HW_CAP_MCI) {
drivers/net/wireless/ath/ath9k/gpio.c
219
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_MCI))
drivers/net/wireless/ath/ath9k/gpio.c
225
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_MCI)) {
drivers/net/wireless/ath/ath9k/gpio.c
235
ath9k_hw_btcoex_bt_stomp(ah, stomp_type);
drivers/net/wireless/ath/ath9k/gpio.c
236
ath9k_hw_btcoex_enable(ah);
drivers/net/wireless/ath/ath9k/gpio.c
259
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
266
(!(ah->caps.hw_caps & ATH9K_HW_CAP_MCI) &&
drivers/net/wireless/ath/ath9k/gpio.c
268
ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_NONE);
drivers/net/wireless/ath/ath9k/gpio.c
27
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
270
ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_LOW);
drivers/net/wireless/ath/ath9k/gpio.c
272
ath9k_hw_btcoex_enable(ah);
drivers/net/wireless/ath/ath9k/gpio.c
30
if (ah->led_pin < 0) {
drivers/net/wireless/ath/ath9k/gpio.c
300
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
302
if (ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_3WIRE &&
drivers/net/wireless/ath/ath9k/gpio.c
303
ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_MCI)
drivers/net/wireless/ath/ath9k/gpio.c
306
ath_dbg(ath9k_hw_common(ah), BTCOEX, "Starting btcoex timers\n");
drivers/net/wireless/ath/ath9k/gpio.c
31
if (AR_SREV_9287(ah))
drivers/net/wireless/ath/ath9k/gpio.c
32
ah->led_pin = ATH_LED_PIN_9287;
drivers/net/wireless/ath/ath9k/gpio.c
325
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
327
if (ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_3WIRE &&
drivers/net/wireless/ath/ath9k/gpio.c
328
ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_MCI)
drivers/net/wireless/ath/ath9k/gpio.c
33
else if (AR_SREV_9485(ah))
drivers/net/wireless/ath/ath9k/gpio.c
331
ath_dbg(ath9k_hw_common(ah), BTCOEX, "Stopping btcoex timers\n");
drivers/net/wireless/ath/ath9k/gpio.c
34
ah->led_pin = ATH_LED_PIN_9485;
drivers/net/wireless/ath/ath9k/gpio.c
35
else if (AR_SREV_9300(ah))
drivers/net/wireless/ath/ath9k/gpio.c
36
ah->led_pin = ATH_LED_PIN_9300;
drivers/net/wireless/ath/ath9k/gpio.c
367
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
369
if (ah->btcoex_hw.enabled ||
drivers/net/wireless/ath/ath9k/gpio.c
37
else if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/gpio.c
370
ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_NONE)
drivers/net/wireless/ath/ath9k/gpio.c
373
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_MCI))
drivers/net/wireless/ath/ath9k/gpio.c
374
ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
drivers/net/wireless/ath/ath9k/gpio.c
377
ath9k_hw_btcoex_set_weight(ah, 0, 0,
drivers/net/wireless/ath/ath9k/gpio.c
379
ath9k_hw_btcoex_enable(ah);
drivers/net/wireless/ath/ath9k/gpio.c
38
ah->led_pin = ATH_LED_PIN_9462;
drivers/net/wireless/ath/ath9k/gpio.c
385
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
387
if (!ah->btcoex_hw.enabled ||
drivers/net/wireless/ath/ath9k/gpio.c
388
ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_NONE)
drivers/net/wireless/ath/ath9k/gpio.c
392
ath9k_hw_btcoex_disable(ah);
drivers/net/wireless/ath/ath9k/gpio.c
394
if (ah->caps.hw_caps & ATH9K_HW_CAP_MCI)
drivers/net/wireless/ath/ath9k/gpio.c
40
ah->led_pin = ATH_LED_PIN_DEF;
drivers/net/wireless/ath/ath9k/gpio.c
400
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
402
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/gpio.c
405
enum ath_btcoex_scheme scheme = ath9k_hw_get_btcoex_scheme(ah);
drivers/net/wireless/ath/ath9k/gpio.c
416
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
419
ath9k_hw_btcoex_init_scheme(ah);
drivers/net/wireless/ath/ath9k/gpio.c
438
ath9k_hw_btcoex_init_mci(ah);
drivers/net/wireless/ath/ath9k/gpio.c
44
ath9k_hw_gpio_request_out(ah, ah->led_pin, "ath9k-led",
drivers/net/wireless/ath/ath9k/gpio.c
457
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/gpio.c
458
struct ath_btcoex_hw *btcoex_hw = &ah->btcoex_hw;
drivers/net/wireless/ath/ath9k/gpio.c
48
ath9k_hw_set_gpio(ah, ah->led_pin, ah->config.led_active_high ? 0 : 1);
drivers/net/wireless/ath/ath9k/htc.h
459
struct ath_hw *ah;
drivers/net/wireless/ath/ath9k/htc.h
644
int ath9k_htc_init_debug(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/htc.h
647
static inline int ath9k_htc_init_debug(struct ath_hw *ah) { return 0; };
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
101
if (ath9k_cmn_beacon_config_sta(priv->ah, bss_conf, &bs) == -EPERM)
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
105
ath9k_hw_set_sta_beacon_timers(priv->ah, &bs);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
114
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
115
ah->imask = 0;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
117
ath9k_cmn_beacon_config_ap(ah, conf, ATH9K_HTC_MAX_BCN_VIF);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
124
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
125
ah->imask = 0;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
127
ath9k_cmn_beacon_config_adhoc(ah, conf);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
140
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
194
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
23
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
267
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
29
ath9k_hw_get_txq_props(ah, priv->beacon.beaconq, &qi);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
290
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
31
if (priv->ah->opmode == NL80211_IFTYPE_AP ||
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
32
priv->ah->opmode == NL80211_IFTYPE_MESH_POINT) {
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
328
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
350
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
36
} else if (priv->ah->opmode == NL80211_IFTYPE_ADHOC) {
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
368
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
39
ath9k_hw_get_txq_props(ah, qnum, &qi_be);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
401
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
411
if ((priv->ah->opmode == NL80211_IFTYPE_AP) &&
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
435
if ((priv->ah->opmode == NL80211_IFTYPE_STATION) &&
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
456
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
48
if (ah->slottime == 20)
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
492
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
495
switch (priv->ah->opmode) {
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
57
if (!ath9k_hw_set_txq_props(ah, priv->beacon.beaconq, &qi)) {
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
58
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
61
ath9k_hw_resettxqueue(ah, priv->beacon.beaconq);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
72
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
78
ah->config.sw_beacon_response_time = DEFAULT_SWBA_RESPONSE;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
80
ah->config.sw_beacon_response_time = MIN_SWBA_RESPONSE;
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
84
ath9k_hw_reset_tsf(ah);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
86
ath9k_hw_beaconinit(ah, conf->nexttbtt, conf->intval);
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
88
htc_imask = cpu_to_be32(ah->imask);
drivers/net/wireless/ath/ath9k/htc_drv_debug.c
364
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_debug.c
376
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_debug.c
482
int ath9k_htc_init_debug(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/htc_drv_debug.c
484
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_debug.c
513
ath9k_cmn_debug_base_eeprom(priv->debug.debugfs_phy, priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_debug.c
514
ath9k_cmn_debug_modal_eeprom(priv->debug.debugfs_phy, priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
102
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
104
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
110
ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_NONE);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
112
ath9k_hw_btcoex_bt_stomp(ah, ATH_BTCOEX_STOMP_LOW);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
114
ath9k_hw_btcoex_enable(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
137
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
139
ath_dbg(ath9k_hw_common(ah), BTCOEX, "Starting btcoex work\n");
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
160
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
162
if (ath9k_hw_get_btcoex_scheme(ah) == ATH_BTCOEX_CFG_3WIRE) {
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
163
ath9k_hw_btcoex_set_weight(ah, AR_BT_COEX_WGHT,
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
165
ath9k_hw_btcoex_enable(ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
172
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
174
if (ah->btcoex_hw.enabled &&
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
175
ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) {
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
176
if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
178
ath9k_hw_btcoex_disable(ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
184
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
185
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
192
ah->btcoex_hw.scheme = ATH_BTCOEX_CFG_NONE;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
197
ah->btcoex_hw.scheme = ATH_BTCOEX_CFG_3WIRE;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
200
switch (ath9k_hw_get_btcoex_scheme(priv->ah)) {
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
204
priv->ah->btcoex_hw.btactive_gpio = 7;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
205
priv->ah->btcoex_hw.btpriority_gpio = 6;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
206
priv->ah->btcoex_hw.wlanactive_gpio = 8;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
208
ath9k_hw_btcoex_init_3wire(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
211
ath9k_hw_init_btcoex_hw(priv->ah, qnum);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
232
ath9k_hw_set_gpio(priv->ah, priv->ah->led_pin,
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
257
ath9k_hw_gpio_free(priv->ah, priv->ah->led_pin);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
264
ath9k_hw_gpio_request_out(priv->ah, priv->ah->led_pin,
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
268
ath9k_hw_set_gpio(priv->ah, priv->ah->led_pin, 1);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
275
if (AR_SREV_9287(priv->ah))
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
276
priv->ah->led_pin = ATH_LED_PIN_9287;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
277
else if (AR_SREV_9271(priv->ah))
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
278
priv->ah->led_pin = ATH_LED_PIN_9271;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
279
else if (AR_DEVID_7010(priv->ah))
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
280
priv->ah->led_pin = ATH_LED_PIN_7010;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
282
priv->ah->led_pin = ATH_LED_PIN_DEF;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
315
is_blocked = ath9k_hw_gpio_get(priv->ah, priv->ah->rfkill_gpio) ==
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
316
priv->ah->rfkill_polarity;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
33
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
332
if (priv->ah->caps.hw_caps & ATH9K_HW_CAP_RFSILENT)
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
35
if (ath9k_hw_gpio_get(ah, ah->btcoex_hw.btpriority_gpio))
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
44
ath_dbg(ath9k_hw_common(ah), BTCOEX,
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
49
ath_dbg(ath9k_hw_common(ah), BTCOEX,
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
69
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
82
ath9k_hw_btcoex_bt_stomp(priv->ah, test_bit(OP_BT_SCAN, &priv->op_flags) ?
drivers/net/wireless/ath/ath9k/htc_drv_gpio.c
85
ath9k_hw_btcoex_enable(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
1017
ret = ath9k_init_htc_services(priv, priv->ah->hw_version.devid,
drivers/net/wireless/ath/ath9k/htc_drv_init.c
1018
priv->ah->hw_version.usbdev);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
102
ath9k_hw_deinit(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
103
kfree(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
104
priv->ah = NULL;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
231
ath9k_hw_regulatory(priv->ah));
drivers/net/wireless/ath/ath9k/htc_drv_init.c
236
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
237
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
258
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
259
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
304
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
305
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
325
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
326
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
348
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
349
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
360
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
361
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
369
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
370
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
386
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
387
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
424
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
425
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
456
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
457
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
469
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
470
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
491
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
492
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
498
val = REG_READ(ah, reg_offset);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
501
REG_WRITE(ah, reg_offset, val);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
521
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
523
(void)REG_READ(ah, AR5416_EEPROM_OFFSET + (off << AR5416_EEPROM_S));
drivers/net/wireless/ath/ath9k/htc_drv_init.c
525
if (!ath9k_hw_wait(ah,
drivers/net/wireless/ath/ath9k/htc_drv_init.c
526
AR_EEPROM_STATUS_DATA(ah),
drivers/net/wireless/ath/ath9k/htc_drv_init.c
532
*data = MS(REG_READ(ah, AR_EEPROM_STATUS_DATA(ah)),
drivers/net/wireless/ath/ath9k/htc_drv_init.c
546
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
552
priv->beacon.beaconq = ath9k_hw_beaconq_setup(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
590
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
595
priv->ah->opmode = NL80211_IFTYPE_STATION;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
597
priv->spec_priv.ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
610
struct ath_hw *ah = NULL;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
614
ah = kzalloc_obj(struct ath_hw);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
615
if (!ah)
drivers/net/wireless/ath/ath9k/htc_drv_init.c
618
ah->dev = priv->dev;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
619
ah->hw = priv->hw;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
620
ah->hw_version.devid = devid;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
621
ah->hw_version.usbdev = drv_info;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
622
ah->ah_flags |= AH_USE_EEPROM;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
623
ah->reg_ops.read = ath9k_regread;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
624
ah->reg_ops.multi_read = ath9k_multi_regread;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
625
ah->reg_ops.write = ath9k_regwrite;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
626
ah->reg_ops.enable_write_buffer = ath9k_enable_regwrite_buffer;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
627
ah->reg_ops.write_flush = ath9k_regwrite_flush;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
628
ah->reg_ops.enable_rmw_buffer = ath9k_enable_rmw_buffer;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
629
ah->reg_ops.rmw_flush = ath9k_reg_rmw_flush;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
630
ah->reg_ops.rmw = ath9k_reg_rmw;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
631
priv->ah = ah;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
633
common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
634
common->ops = &ah->reg_ops;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
637
common->ah = ah;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
662
ret = ath9k_hw_init(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
679
ath9k_cmn_init_crypto(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
686
ath9k_hw_deinit(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
689
kfree(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
690
priv->ah = NULL;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
715
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
716
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
763
if (priv->ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ)
drivers/net/wireless/ath/ath9k/htc_drv_init.c
766
if (priv->ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
drivers/net/wireless/ath/ath9k/htc_drv_init.c
770
ath9k_cmn_reload_chainmask(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
833
struct ath_hw *ah;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
843
ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_init.c
844
common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
869
ath9k_hw_disable(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
889
error = ath9k_htc_init_debug(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_init.c
907
ath9k_hw_name(priv->ah, hw_name, sizeof(hw_name));
drivers/net/wireless/ath/ath9k/htc_drv_init.c
991
htc_handle->drv_priv->ah->ah_flags |= AH_UNPLUGGED;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1020
if (priv->ah->is_monitoring)
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1023
ath9k_hw_phy_disable(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1024
ath9k_hw_disable(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1039
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1101
if ((priv->ah->opmode == NL80211_IFTYPE_AP) &&
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1103
ath9k_hw_set_tsfadjust(priv->ah, true);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1121
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1178
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1202
!priv->ah->is_monitoring)
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1204
else if (priv->ah->is_monitoring)
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1215
ath9k_cmn_get_channel(hw, priv->ah, &hw->conf.chandef);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1216
if (ath9k_htc_set_channel(priv, hw, &priv->ah->channels[pos]) < 0) {
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1237
ath9k_cmn_update_txpow(priv->ah, priv->curtxpow,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1263
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1270
ath_dbg(ath9k_hw_common(priv->ah), ANY,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1279
ath9k_hw_setrxfilter(priv->ah, rfilt);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1281
ath_dbg(ath9k_hw_common(priv->ah), CONFIG, "Set HW RX filter: 0x%x\n",
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1295
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1378
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1408
if ((priv->ah->opmode == NL80211_IFTYPE_ADHOC) &&
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1425
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
143
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1459
if (priv->ah->sw_mgmt_crypto_tx &&
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1480
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1482
ath9k_hw_write_associd(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1490
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1517
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1518
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1534
if (priv->ah->opmode == NL80211_IFTYPE_STATION) {
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1544
if (priv->ah->opmode == NL80211_IFTYPE_ADHOC) {
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1579
((priv->ah->opmode == NL80211_IFTYPE_AP &&
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1582
(priv->ah->opmode == NL80211_IFTYPE_MESH_POINT &&
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1607
ah->slottime = slottime;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1608
ath9k_hw_init_global_settings(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1627
tsf = ath9k_hw_gettsf64(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1641
ath9k_hw_settsf64(priv->ah, tsf);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1653
ath9k_hw_reset_tsf(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1699
ath_err(ath9k_hw_common(priv->ah), "Unknown AMPDU action\n");
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1713
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1728
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
173
priv->ah->opmode = NL80211_IFTYPE_ADHOC;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
175
priv->ah->opmode = NL80211_IFTYPE_AP;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1754
priv->ah->coverage_class = coverage_class;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1755
ath9k_hw_init_global_settings(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
177
priv->ah->opmode = NL80211_IFTYPE_MESH_POINT;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1770
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
179
priv->ah->opmode = NL80211_IFTYPE_STATION;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
181
ath9k_hw_setopmode(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1813
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1814
struct ath9k_mib_stats *mib_stats = &ah->ah_mibStats;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1833
if (AR_SREV_9271(priv->ah))
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1835
&priv->ah->eeprom.map4k.baseEepHeader;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1836
else if (priv->ah->hw_version.usbdev == AR9280_USB)
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1838
&priv->ah->eeprom.def.baseEepHeader;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1839
else if (priv->ah->hw_version.usbdev == AR9287_USB)
drivers/net/wireless/ath/ath9k/htc_drv_main.c
1841
&priv->ah->eeprom.map9287.baseEepHeader;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
186
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
187
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
211
ret = ath9k_hw_reset(ah, ah->curchan, caldata, false);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
218
ath9k_cmn_update_txpow(ah, priv->curtxpow, priv->txpowlimit,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
224
mode = ath9k_htc_get_curmode(priv, ah->curchan);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
244
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
245
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
274
priv->ah->curchan->channel,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
278
ret = ath9k_hw_reset(ah, hchan, caldata, fastcc);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
286
ath9k_cmn_update_txpow(ah, priv->curtxpow, priv->txpowlimit,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
332
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
352
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
39
ret = ath9k_hw_setpower(priv->ah, mode);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
395
priv->ah->opmode = NL80211_IFTYPE_MONITOR;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
420
priv->ah->is_monitoring = true;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
441
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
457
priv->ah->is_monitoring = false;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
470
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
50
ath9k_hw_setpower(priv->ah, ATH9K_PM_AWAKE);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
536
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
586
tcap.tx_chainmask = priv->ah->caps.tx_chainmask;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
646
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
65
ath9k_hw_setrxabort(priv->ah, true);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
66
ath9k_hw_stopdmarecv(priv->ah, &reset);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
662
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
67
ath9k_hw_setpower(priv->ah, ATH9K_PM_FULL_SLEEP);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
679
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
69
ath9k_hw_setpower(priv->ah, ATH9K_PM_NETWORK_SLEEP);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
708
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
748
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
763
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
772
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
773
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
780
short_cal_interval = (ah->opmode == NL80211_IFTYPE_AP) ?
drivers/net/wireless/ath/ath9k/htc_drv_main.c
784
if (ah->power_mode != ATH9K_PM_AWAKE)
drivers/net/wireless/ath/ath9k/htc_drv_main.c
809
common->ani.caldone = ath9k_hw_reset_calvalid(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
828
ath9k_hw_ani_monitor(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
833
ath9k_hw_calibrate(ah, ah->curchan,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
834
ah->rxchainmask, longcal) > 0;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
868
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
910
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
911
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
930
init_channel = ath9k_cmn_get_channel(hw, ah, &hw->conf.chandef);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
932
ret = ath9k_hw_reset(ah, init_channel, ah->caldata, false);
drivers/net/wireless/ath/ath9k/htc_drv_main.c
941
ath9k_cmn_update_txpow(ah, priv->curtxpow, priv->txpowlimit,
drivers/net/wireless/ath/ath9k/htc_drv_main.c
979
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_main.c
980
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
1068
rx_status->band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
1069
rx_status->freq = ah->curchan->chan->center_freq;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
1139
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
1140
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
133
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
160
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
191
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
195
ath9k_hw_get_txq_props(ah, qnum, &qi);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
203
if (!ath9k_hw_set_txq_props(ah, qnum, &qi)) {
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
204
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
208
ath9k_hw_resettxqueue(ah, qnum);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
362
if (!priv->ah->is_monitoring) {
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
363
ath_dbg(ath9k_hw_common(priv->ah), XMIT,
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
621
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
718
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
765
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
829
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
830
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
837
qnum = ath9k_hw_setuptxqueue(priv->ah, ATH9K_TX_QUEUE_DATA, &qi);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
844
ath9k_hw_releasetxqueue(ah, qnum);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
859
return ath9k_hw_setuptxqueue(priv->ah, ATH9K_TX_QUEUE_CAB, &qi);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
873
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
876
rfilt = (ath9k_hw_getrxfilter(ah) & RX_FILTER_PRESERVE)
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
883
if (ah->is_monitoring)
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
889
if ((ah->opmode == NL80211_IFTYPE_STATION) &&
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
918
struct ath_hw *ah = priv->ah;
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
923
ath9k_hw_setrxfilter(ah, rfilt);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
927
ath9k_hw_setmcastfilter(ah, mfilt[0], mfilt[1]);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
932
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
933
ath9k_hw_rxena(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
935
ath9k_hw_startpcureceive(priv->ah, test_bit(ATH_OP_SCANNING, &common->op_flags));
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
980
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/htc_drv_txrx.c
981
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/hw-ops.h
100
ath9k_hw_ops(ah)->tx99_set_txpower(ah, power);
drivers/net/wireless/ath/ath9k/hw-ops.h
105
static inline void ath9k_hw_set_bt_ant_diversity(struct ath_hw *ah, bool enable)
drivers/net/wireless/ath/ath9k/hw-ops.h
107
if (ath9k_hw_ops(ah)->set_bt_ant_diversity)
drivers/net/wireless/ath/ath9k/hw-ops.h
108
ath9k_hw_ops(ah)->set_bt_ant_diversity(ah, enable);
drivers/net/wireless/ath/ath9k/hw-ops.h
111
static inline bool ath9k_hw_is_aic_enabled(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
113
if (ath9k_hw_private_ops(ah)->is_aic_enabled)
drivers/net/wireless/ath/ath9k/hw-ops.h
114
return ath9k_hw_private_ops(ah)->is_aic_enabled(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
123
static inline void ath9k_hw_init_hang_checks(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
125
ath9k_hw_private_ops(ah)->init_hang_checks(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
128
static inline bool ath9k_hw_detect_mac_hang(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
130
return ath9k_hw_private_ops(ah)->detect_mac_hang(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
133
static inline bool ath9k_hw_detect_bb_hang(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
135
return ath9k_hw_private_ops(ah)->detect_bb_hang(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
140
static inline int ath9k_hw_rf_set_freq(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
143
return ath9k_hw_private_ops(ah)->rf_set_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
146
static inline void ath9k_hw_spur_mitigate_freq(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
149
ath9k_hw_private_ops(ah)->spur_mitigate_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
152
static inline bool ath9k_hw_set_rf_regs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
156
if (!ath9k_hw_private_ops(ah)->set_rf_regs)
drivers/net/wireless/ath/ath9k/hw-ops.h
159
return ath9k_hw_private_ops(ah)->set_rf_regs(ah, chan, modesIndex);
drivers/net/wireless/ath/ath9k/hw-ops.h
162
static inline void ath9k_hw_init_bb(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
165
return ath9k_hw_private_ops(ah)->init_bb(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
168
static inline void ath9k_hw_set_channel_regs(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
171
return ath9k_hw_private_ops(ah)->set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
174
static inline int ath9k_hw_process_ini(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
177
return ath9k_hw_private_ops(ah)->process_ini(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
180
static inline void ath9k_olc_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
182
if (!ath9k_hw_private_ops(ah)->olc_init)
drivers/net/wireless/ath/ath9k/hw-ops.h
185
return ath9k_hw_private_ops(ah)->olc_init(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
188
static inline void ath9k_hw_set_rfmode(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
191
return ath9k_hw_private_ops(ah)->set_rfmode(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
194
static inline void ath9k_hw_mark_phy_inactive(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
196
return ath9k_hw_private_ops(ah)->mark_phy_inactive(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
199
static inline void ath9k_hw_set_delta_slope(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
202
return ath9k_hw_private_ops(ah)->set_delta_slope(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
205
static inline bool ath9k_hw_rfbus_req(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
207
return ath9k_hw_private_ops(ah)->rfbus_req(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
210
static inline void ath9k_hw_rfbus_done(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
212
return ath9k_hw_private_ops(ah)->rfbus_done(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
215
static inline void ath9k_hw_restore_chainmask(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
217
if (!ath9k_hw_private_ops(ah)->restore_chainmask)
drivers/net/wireless/ath/ath9k/hw-ops.h
220
return ath9k_hw_private_ops(ah)->restore_chainmask(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
223
static inline bool ath9k_hw_ani_control(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
226
return ath9k_hw_private_ops(ah)->ani_control(ah, cmd, param);
drivers/net/wireless/ath/ath9k/hw-ops.h
229
static inline void ath9k_hw_do_getnf(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
232
ath9k_hw_private_ops(ah)->do_getnf(ah, nfarray);
drivers/net/wireless/ath/ath9k/hw-ops.h
235
static inline bool ath9k_hw_init_cal(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
238
return ath9k_hw_private_ops(ah)->init_cal(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
24
static inline void ath9k_hw_configpcipowersave(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
241
static inline void ath9k_hw_setup_calibration(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
244
ath9k_hw_private_ops(ah)->setup_calibration(ah, currCal);
drivers/net/wireless/ath/ath9k/hw-ops.h
247
static inline int ath9k_hw_fast_chan_change(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
251
return ath9k_hw_private_ops(ah)->fast_chan_change(ah, chan,
drivers/net/wireless/ath/ath9k/hw-ops.h
255
static inline void ath9k_hw_set_radar_params(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
257
if (!ath9k_hw_private_ops(ah)->set_radar_params)
drivers/net/wireless/ath/ath9k/hw-ops.h
260
ath9k_hw_private_ops(ah)->set_radar_params(ah, &ah->radar_conf);
drivers/net/wireless/ath/ath9k/hw-ops.h
263
static inline void ath9k_hw_init_cal_settings(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
265
ath9k_hw_private_ops(ah)->init_cal_settings(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
268
static inline u32 ath9k_hw_compute_pll_control(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
27
if (!ah->aspm_enabled)
drivers/net/wireless/ath/ath9k/hw-ops.h
271
return ath9k_hw_private_ops(ah)->compute_pll_control(ah, chan);
drivers/net/wireless/ath/ath9k/hw-ops.h
274
static inline void ath9k_hw_init_mode_gain_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
276
if (!ath9k_hw_private_ops(ah)->init_mode_gain_regs)
drivers/net/wireless/ath/ath9k/hw-ops.h
279
ath9k_hw_private_ops(ah)->init_mode_gain_regs(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
282
static inline void ath9k_hw_ani_cache_ini_regs(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
284
if (!ath9k_hw_private_ops(ah)->ani_cache_ini_regs)
drivers/net/wireless/ath/ath9k/hw-ops.h
287
ath9k_hw_private_ops(ah)->ani_cache_ini_regs(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
30
ath9k_hw_ops(ah)->config_pci_powersave(ah, power_off);
drivers/net/wireless/ath/ath9k/hw-ops.h
33
static inline void ath9k_hw_rxena(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
35
ath9k_hw_ops(ah)->rx_enable(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
38
static inline void ath9k_hw_set_desc_link(struct ath_hw *ah, void *ds,
drivers/net/wireless/ath/ath9k/hw-ops.h
41
ath9k_hw_ops(ah)->set_desc_link(ds, link);
drivers/net/wireless/ath/ath9k/hw-ops.h
44
static inline int ath9k_hw_calibrate(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
48
return ath9k_hw_ops(ah)->calibrate(ah, chan, rxchainmask, longcal);
drivers/net/wireless/ath/ath9k/hw-ops.h
51
static inline bool ath9k_hw_getisr(struct ath_hw *ah, enum ath9k_int *masked,
drivers/net/wireless/ath/ath9k/hw-ops.h
54
return ath9k_hw_ops(ah)->get_isr(ah, masked, sync_cause_p);
drivers/net/wireless/ath/ath9k/hw-ops.h
57
static inline void ath9k_hw_set_txdesc(struct ath_hw *ah, void *ds,
drivers/net/wireless/ath/ath9k/hw-ops.h
60
return ath9k_hw_ops(ah)->set_txdesc(ah, ds, i);
drivers/net/wireless/ath/ath9k/hw-ops.h
63
static inline int ath9k_hw_txprocdesc(struct ath_hw *ah, void *ds,
drivers/net/wireless/ath/ath9k/hw-ops.h
66
return ath9k_hw_ops(ah)->proc_txdesc(ah, ds, ts);
drivers/net/wireless/ath/ath9k/hw-ops.h
69
static inline int ath9k_hw_get_duration(struct ath_hw *ah, const void *ds,
drivers/net/wireless/ath/ath9k/hw-ops.h
72
return ath9k_hw_ops(ah)->get_duration(ah, ds, index);
drivers/net/wireless/ath/ath9k/hw-ops.h
75
static inline void ath9k_hw_antdiv_comb_conf_get(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
78
ath9k_hw_ops(ah)->antdiv_comb_conf_get(ah, antconf);
drivers/net/wireless/ath/ath9k/hw-ops.h
81
static inline void ath9k_hw_antdiv_comb_conf_set(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw-ops.h
84
ath9k_hw_ops(ah)->antdiv_comb_conf_set(ah, antconf);
drivers/net/wireless/ath/ath9k/hw-ops.h
87
static inline void ath9k_hw_tx99_start(struct ath_hw *ah, u32 qnum)
drivers/net/wireless/ath/ath9k/hw-ops.h
89
ath9k_hw_ops(ah)->tx99_start(ah, qnum);
drivers/net/wireless/ath/ath9k/hw-ops.h
92
static inline void ath9k_hw_tx99_stop(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw-ops.h
94
ath9k_hw_ops(ah)->tx99_stop(ah);
drivers/net/wireless/ath/ath9k/hw-ops.h
97
static inline void ath9k_hw_tx99_set_txpower(struct ath_hw *ah, u8 power)
drivers/net/wireless/ath/ath9k/hw-ops.h
99
if (ath9k_hw_ops(ah)->tx99_set_txpower)
drivers/net/wireless/ath/ath9k/hw.c
1000
REG_WRITE(ah, AR_INTR_PRIO_ASYNC_MASK(ah), 0);
drivers/net/wireless/ath/ath9k/hw.c
1001
REG_WRITE(ah, AR_INTR_PRIO_SYNC_ENABLE(ah), 0);
drivers/net/wireless/ath/ath9k/hw.c
1002
REG_WRITE(ah, AR_INTR_PRIO_SYNC_MASK(ah), 0);
drivers/net/wireless/ath/ath9k/hw.c
1006
static void ath9k_hw_set_sifs_time(struct ath_hw *ah, u32 us)
drivers/net/wireless/ath/ath9k/hw.c
1008
u32 val = ath9k_hw_mac_to_clks(ah, us - 2);
drivers/net/wireless/ath/ath9k/hw.c
1010
REG_WRITE(ah, AR_D_GBL_IFS_SIFS, val);
drivers/net/wireless/ath/ath9k/hw.c
1013
void ath9k_hw_setslottime(struct ath_hw *ah, u32 us)
drivers/net/wireless/ath/ath9k/hw.c
1015
u32 val = ath9k_hw_mac_to_clks(ah, us);
drivers/net/wireless/ath/ath9k/hw.c
1017
REG_WRITE(ah, AR_D_GBL_IFS_SLOT, val);
drivers/net/wireless/ath/ath9k/hw.c
1020
void ath9k_hw_set_ack_timeout(struct ath_hw *ah, u32 us)
drivers/net/wireless/ath/ath9k/hw.c
1022
u32 val = ath9k_hw_mac_to_clks(ah, us);
drivers/net/wireless/ath/ath9k/hw.c
1024
REG_RMW_FIELD(ah, AR_TIME_OUT, AR_TIME_OUT_ACK, val);
drivers/net/wireless/ath/ath9k/hw.c
1027
void ath9k_hw_set_cts_timeout(struct ath_hw *ah, u32 us)
drivers/net/wireless/ath/ath9k/hw.c
1029
u32 val = ath9k_hw_mac_to_clks(ah, us);
drivers/net/wireless/ath/ath9k/hw.c
1031
REG_RMW_FIELD(ah, AR_TIME_OUT, AR_TIME_OUT_CTS, val);
drivers/net/wireless/ath/ath9k/hw.c
1034
static bool ath9k_hw_set_global_txtimeout(struct ath_hw *ah, u32 tu)
drivers/net/wireless/ath/ath9k/hw.c
1037
ath_dbg(ath9k_hw_common(ah), XMIT, "bad global tx timeout %u\n",
drivers/net/wireless/ath/ath9k/hw.c
1039
ah->globaltxtimeout = (u32) -1;
drivers/net/wireless/ath/ath9k/hw.c
1042
REG_RMW_FIELD(ah, AR_GTXTO, AR_GTXTO_TIMEOUT_LIMIT, tu);
drivers/net/wireless/ath/ath9k/hw.c
1043
ah->globaltxtimeout = tu;
drivers/net/wireless/ath/ath9k/hw.c
1048
void ath9k_hw_init_global_settings(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1050
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1051
const struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/hw.c
1058
ath_dbg(ath9k_hw_common(ah), RESET, "ah->misc_mode 0x%x\n",
drivers/net/wireless/ath/ath9k/hw.c
1059
ah->misc_mode);
drivers/net/wireless/ath/ath9k/hw.c
1064
if (ah->misc_mode != 0)
drivers/net/wireless/ath/ath9k/hw.c
1065
REG_SET_BIT(ah, AR_PCU_MISC, ah->misc_mode);
drivers/net/wireless/ath/ath9k/hw.c
1067
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
1082
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
1093
if (IS_CHAN_A_FAST_CLOCK(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
1101
if (AR_SREV_9287(ah) && AR_SREV_9287_13_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1105
eifs = REG_READ(ah, AR_D_GBL_IFS_EIFS)/
drivers/net/wireless/ath/ath9k/hw.c
1107
reg = REG_READ(ah, AR_USEC);
drivers/net/wireless/ath/ath9k/hw.c
111
void ath9k_hw_write_array(struct ath_hw *ah, const struct ar5416IniArray *array,
drivers/net/wireless/ath/ath9k/hw.c
1112
slottime = ah->slottime;
drivers/net/wireless/ath/ath9k/hw.c
1116
slottime += 3 * ah->coverage_class;
drivers/net/wireless/ath/ath9k/hw.c
1129
acktimeout += 64 - sifstime - ah->slottime;
drivers/net/wireless/ath/ath9k/hw.c
1130
ctstimeout += 48 - sifstime - ah->slottime;
drivers/net/wireless/ath/ath9k/hw.c
1133
if (ah->dynack.enabled) {
drivers/net/wireless/ath/ath9k/hw.c
1134
acktimeout = ah->dynack.ackto;
drivers/net/wireless/ath/ath9k/hw.c
1138
ah->dynack.ackto = acktimeout;
drivers/net/wireless/ath/ath9k/hw.c
1141
ath9k_hw_set_sifs_time(ah, sifstime);
drivers/net/wireless/ath/ath9k/hw.c
1142
ath9k_hw_setslottime(ah, slottime);
drivers/net/wireless/ath/ath9k/hw.c
1143
ath9k_hw_set_ack_timeout(ah, acktimeout);
drivers/net/wireless/ath/ath9k/hw.c
1144
ath9k_hw_set_cts_timeout(ah, ctstimeout);
drivers/net/wireless/ath/ath9k/hw.c
1145
if (ah->globaltxtimeout != (u32) -1)
drivers/net/wireless/ath/ath9k/hw.c
1146
ath9k_hw_set_global_txtimeout(ah, ah->globaltxtimeout);
drivers/net/wireless/ath/ath9k/hw.c
1148
REG_WRITE(ah, AR_D_GBL_IFS_EIFS, ath9k_hw_mac_to_clks(ah, eifs));
drivers/net/wireless/ath/ath9k/hw.c
1149
REG_RMW(ah, AR_USEC,
drivers/net/wireless/ath/ath9k/hw.c
1156
REG_RMW(ah, AR_TXSIFS,
drivers/net/wireless/ath/ath9k/hw.c
116
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1162
void ath9k_hw_deinit(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1164
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1169
ath9k_hw_setpower(ah, ATH9K_PM_FULL_SLEEP);
drivers/net/wireless/ath/ath9k/hw.c
118
REG_WRITE(ah, INI_RA(array, r, 0),
drivers/net/wireless/ath/ath9k/hw.c
1193
static inline void ath9k_hw_set_dma(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1195
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1198
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1203
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1204
REG_SET_BIT(ah, AR_AHB_MODE, AR_AHB_PREFETCH_RD_EN);
drivers/net/wireless/ath/ath9k/hw.c
1209
REG_RMW(ah, AR_TXCFG, AR_TXCFG_DMASZ_128B, AR_TXCFG_DMASZ_MASK);
drivers/net/wireless/ath/ath9k/hw.c
1211
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1218
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1219
REG_RMW_FIELD(ah, AR_TXCFG, AR_FTRIG, ah->tx_trig_level);
drivers/net/wireless/ath/ath9k/hw.c
122
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1221
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1226
REG_RMW(ah, AR_RXCFG, AR_RXCFG_DMASZ_128B, AR_RXCFG_DMASZ_MASK);
drivers/net/wireless/ath/ath9k/hw.c
1231
REG_WRITE(ah, AR_RXFIFO_CFG, 0x200);
drivers/net/wireless/ath/ath9k/hw.c
1233
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1234
REG_RMW_FIELD(ah, AR_RXBP_THRESH, AR_RXBP_THRESH_HP, 0x1);
drivers/net/wireless/ath/ath9k/hw.c
1235
REG_RMW_FIELD(ah, AR_RXBP_THRESH, AR_RXBP_THRESH_LP, 0x1);
drivers/net/wireless/ath/ath9k/hw.c
1237
ath9k_hw_set_rx_bufsize(ah, common->rx_bufsize -
drivers/net/wireless/ath/ath9k/hw.c
1238
ah->caps.rx_status_len);
drivers/net/wireless/ath/ath9k/hw.c
1245
if (AR_SREV_9285(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
125
void ath9k_hw_read_array(struct ath_hw *ah, u32 array[][2], int size)
drivers/net/wireless/ath/ath9k/hw.c
1251
} else if (AR_SREV_9340_13_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1258
if (!AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
1259
REG_WRITE(ah, AR_PCU_TXBUF_CTRL, txbuf_size);
drivers/net/wireless/ath/ath9k/hw.c
1261
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1263
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1264
ath9k_hw_reset_txstatus_ring(ah);
drivers/net/wireless/ath/ath9k/hw.c
1267
static void ath9k_hw_set_operating_mode(struct ath_hw *ah, int opmode)
drivers/net/wireless/ath/ath9k/hw.c
1272
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1275
if (!AR_SREV_9340_13(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1277
REG_SET_BIT(ah, AR_CFG, AR_CFG_AP_ADHOC_INDICATION);
drivers/net/wireless/ath/ath9k/hw.c
1287
REG_CLR_BIT(ah, AR_CFG, AR_CFG_AP_ADHOC_INDICATION);
drivers/net/wireless/ath/ath9k/hw.c
1290
if (!ah->is_monitoring)
drivers/net/wireless/ath/ath9k/hw.c
1294
REG_RMW(ah, AR_STA_ID1, set, mask);
drivers/net/wireless/ath/ath9k/hw.c
1295
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1298
void ath9k_hw_get_delta_slope_vals(struct ath_hw *ah, u32 coef_scaled,
drivers/net/wireless/ath/ath9k/hw.c
132
dev_err(ah->dev, "%s: tmp_reg_list: alloc filed\n", __func__);
drivers/net/wireless/ath/ath9k/hw.c
1320
static bool ath9k_hw_ar9330_reset_war(struct ath_hw *ah, int type)
drivers/net/wireless/ath/ath9k/hw.c
1325
npend = ath9k_hw_numtxpending(ah, i);
drivers/net/wireless/ath/ath9k/hw.c
1330
if (ah->external_reset &&
drivers/net/wireless/ath/ath9k/hw.c
1334
ath_dbg(ath9k_hw_common(ah), RESET,
drivers/net/wireless/ath/ath9k/hw.c
1337
reset_err = ah->external_reset();
drivers/net/wireless/ath/ath9k/hw.c
1339
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/hw.c
1345
REG_WRITE(ah, AR_RTC_RESET(ah), 1);
drivers/net/wireless/ath/ath9k/hw.c
1351
static bool ath9k_hw_set_reset(struct ath_hw *ah, int type)
drivers/net/wireless/ath/ath9k/hw.c
1356
if (AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1357
REG_RMW_FIELD(ah, AR_RTC_DERIVED_CLK(ah),
drivers/net/wireless/ath/ath9k/hw.c
1359
(void)REG_READ(ah, AR_RTC_DERIVED_CLK(ah));
drivers/net/wireless/ath/ath9k/hw.c
1362
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1364
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1365
REG_WRITE(ah, AR_WA(ah), ah->WARegVal);
drivers/net/wireless/ath/ath9k/hw.c
1369
REG_WRITE(ah, AR_RTC_FORCE_WAKE(ah), AR_RTC_FORCE_WAKE_EN |
drivers/net/wireless/ath/ath9k/hw.c
1372
if (AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1376
tmpReg = REG_READ(ah, AR_INTR_SYNC_CAUSE(ah));
drivers/net/wireless/ath/ath9k/hw.c
1377
if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/hw.c
138
dev_err(ah->dev, "%s tmp_data: alloc filed\n", __func__);
drivers/net/wireless/ath/ath9k/hw.c
1385
REG_WRITE(ah, AR_INTR_SYNC_ENABLE(ah), 0);
drivers/net/wireless/ath/ath9k/hw.c
1388
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1390
REG_WRITE(ah, AR_RC, val);
drivers/net/wireless/ath/ath9k/hw.c
1392
} else if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1393
REG_WRITE(ah, AR_RC, AR_RC_AHB);
drivers/net/wireless/ath/ath9k/hw.c
1400
if (AR_SREV_9330(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1401
if (!ath9k_hw_ar9330_reset_war(ah, type))
drivers/net/wireless/ath/ath9k/hw.c
1405
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
1406
ar9003_mci_check_gpm_offset(ah);
drivers/net/wireless/ath/ath9k/hw.c
1411
if (AR_SREV_9300(ah) || AR_SREV_9580(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1412
REG_SET_BIT(ah, AR_CFG, AR_CFG_HALT_REQ);
drivers/net/wireless/ath/ath9k/hw.c
1413
ath9k_hw_wait(ah, AR_CFG, AR_CFG_HALT_ACK, AR_CFG_HALT_ACK,
drivers/net/wireless/ath/ath9k/hw.c
1415
REG_CLR_BIT(ah, AR_CFG, AR_CFG_HALT_REQ);
drivers/net/wireless/ath/ath9k/hw.c
1418
REG_WRITE(ah, AR_RTC_RC(ah), rst_flags);
drivers/net/wireless/ath/ath9k/hw.c
1420
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1422
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1424
else if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
1429
REG_WRITE(ah, AR_RTC_RC(ah), 0);
drivers/net/wireless/ath/ath9k/hw.c
1430
if (!ath9k_hw_wait(ah, AR_RTC_RC(ah), AR_RTC_RC_M, 0, AH_WAIT_TIMEOUT)) {
drivers/net/wireless/ath/ath9k/hw.c
1431
ath_dbg(ath9k_hw_common(ah), RESET, "RTC stuck in MAC reset\n");
drivers/net/wireless/ath/ath9k/hw.c
1435
if (!AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
1436
REG_WRITE(ah, AR_RC, 0);
drivers/net/wireless/ath/ath9k/hw.c
1438
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
1444
static bool ath9k_hw_set_reset_power_on(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1446
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1448
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1449
REG_WRITE(ah, AR_WA(ah), ah->WARegVal);
drivers/net/wireless/ath/ath9k/hw.c
145
REG_READ_MULTI(ah, tmp_reg_list, tmp_data, size);
drivers/net/wireless/ath/ath9k/hw.c
1453
REG_WRITE(ah, AR_RTC_FORCE_WAKE(ah), AR_RTC_FORCE_WAKE_EN |
drivers/net/wireless/ath/ath9k/hw.c
1456
if (!AR_SREV_9100(ah) && !AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1457
REG_WRITE(ah, AR_RC, AR_RC_AHB);
drivers/net/wireless/ath/ath9k/hw.c
1459
REG_WRITE(ah, AR_RTC_RESET(ah), 0);
drivers/net/wireless/ath/ath9k/hw.c
1461
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1465
if (!AR_SREV_9100(ah) && !AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1466
REG_WRITE(ah, AR_RC, 0);
drivers/net/wireless/ath/ath9k/hw.c
1468
REG_WRITE(ah, AR_RTC_RESET(ah), 1);
drivers/net/wireless/ath/ath9k/hw.c
1470
if (!ath9k_hw_wait(ah,
drivers/net/wireless/ath/ath9k/hw.c
1471
AR_RTC_STATUS(ah),
drivers/net/wireless/ath/ath9k/hw.c
1472
AR_RTC_STATUS_M(ah),
drivers/net/wireless/ath/ath9k/hw.c
1475
ath_dbg(ath9k_hw_common(ah), RESET, "RTC not waking up\n");
drivers/net/wireless/ath/ath9k/hw.c
1479
return ath9k_hw_set_reset(ah, ATH9K_RESET_WARM);
drivers/net/wireless/ath/ath9k/hw.c
1482
static bool ath9k_hw_set_reset_reg(struct ath_hw *ah, u32 type)
drivers/net/wireless/ath/ath9k/hw.c
1486
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1487
REG_WRITE(ah, AR_WA(ah), ah->WARegVal);
drivers/net/wireless/ath/ath9k/hw.c
1491
REG_WRITE(ah, AR_RTC_FORCE_WAKE(ah),
drivers/net/wireless/ath/ath9k/hw.c
1494
if (!ah->reset_power_on)
drivers/net/wireless/ath/ath9k/hw.c
1499
ret = ath9k_hw_set_reset_power_on(ah);
drivers/net/wireless/ath/ath9k/hw.c
1501
ah->reset_power_on = true;
drivers/net/wireless/ath/ath9k/hw.c
1505
ret = ath9k_hw_set_reset(ah, type);
drivers/net/wireless/ath/ath9k/hw.c
1514
static bool ath9k_hw_chip_reset(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
1519
if (AR_SREV_9280(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1520
if (ah->eep_ops->get_eeprom(ah, EEP_OL_PWRCTRL))
drivers/net/wireless/ath/ath9k/hw.c
1524
} else if (ah->chip_fullsleep || REG_READ(ah, AR_Q_TXE) ||
drivers/net/wireless/ath/ath9k/hw.c
1525
(REG_READ(ah, AR_CR) & AR_CR_RXE(ah)))
drivers/net/wireless/ath/ath9k/hw.c
1528
if (!ath9k_hw_set_reset_reg(ah, reset_type))
drivers/net/wireless/ath/ath9k/hw.c
1531
if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE))
drivers/net/wireless/ath/ath9k/hw.c
1534
ah->chip_fullsleep = false;
drivers/net/wireless/ath/ath9k/hw.c
1536
if (AR_SREV_9330(ah))
drivers/net/wireless/ath/ath9k/hw.c
1537
ar9003_hw_internal_regulator_apply(ah);
drivers/net/wireless/ath/ath9k/hw.c
1538
ath9k_hw_init_pll(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1543
static bool ath9k_hw_channel_change(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
1546
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1547
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/hw.c
1554
u32 flags_diff = chan->channelFlags ^ ah->curchan->channelFlags;
drivers/net/wireless/ath/ath9k/hw.c
1560
if (ath9k_hw_numtxpending(ah, qnum)) {
drivers/net/wireless/ath/ath9k/hw.c
1567
if (!ath9k_hw_rfbus_req(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1573
ath9k_hw_mark_phy_inactive(ah);
drivers/net/wireless/ath/ath9k/hw.c
1577
ath9k_hw_init_pll(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1579
if (ath9k_hw_fast_chan_change(ah, chan, &ini_reloaded)) {
drivers/net/wireless/ath/ath9k/hw.c
1585
ath9k_hw_set_channel_regs(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1587
r = ath9k_hw_rf_set_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1592
ath9k_hw_set_clockrate(ah);
drivers/net/wireless/ath/ath9k/hw.c
1593
ath9k_hw_apply_txpower(ah, chan, false);
drivers/net/wireless/ath/ath9k/hw.c
1595
ath9k_hw_set_delta_slope(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1596
ath9k_hw_spur_mitigate_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1599
ah->eep_ops->set_board_values(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1601
ath9k_hw_init_bb(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1602
ath9k_hw_rfbus_done(ah);
drivers/net/wireless/ath/ath9k/hw.c
1605
ah->ah_flags |= AH_FASTCC;
drivers/net/wireless/ath/ath9k/hw.c
1606
ath9k_hw_init_cal(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1607
ah->ah_flags &= ~AH_FASTCC;
drivers/net/wireless/ath/ath9k/hw.c
1613
static void ath9k_hw_apply_gpio_override(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1615
u32 gpio_mask = ah->gpio_mask;
drivers/net/wireless/ath/ath9k/hw.c
1622
ath9k_hw_gpio_request_out(ah, i, NULL,
drivers/net/wireless/ath/ath9k/hw.c
1624
ath9k_hw_set_gpio(ah, i, !!(ah->gpio_val & BIT(i)));
drivers/net/wireless/ath/ath9k/hw.c
1628
void ath9k_hw_check_nav(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1630
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1633
val = REG_READ(ah, AR_NAV);
drivers/net/wireless/ath/ath9k/hw.c
1636
REG_WRITE(ah, AR_NAV, 0);
drivers/net/wireless/ath/ath9k/hw.c
1641
bool ath9k_hw_check_alive(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1647
if (REG_READ(ah, AR_CFG) == 0xdeadbeef)
drivers/net/wireless/ath/ath9k/hw.c
1650
if (AR_SREV_9300(ah))
drivers/net/wireless/ath/ath9k/hw.c
1651
return !ath9k_hw_detect_mac_hang(ah);
drivers/net/wireless/ath/ath9k/hw.c
1653
if (AR_SREV_9285_12_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1656
last_val = REG_READ(ah, AR_OBS_BUS_1);
drivers/net/wireless/ath/ath9k/hw.c
1658
reg = REG_READ(ah, AR_OBS_BUS_1);
drivers/net/wireless/ath/ath9k/hw.c
167
u16 ath9k_hw_computetxtime(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
1681
static void ath9k_hw_init_mfp(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1684
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1687
REG_RMW_FIELD(ah, AR_AES_MUTE_MASK1, AR_AES_MUTE_MASK1_FC_MGMT,
drivers/net/wireless/ath/ath9k/hw.c
1689
if (AR_SREV_9271(ah) || AR_DEVID_7010(ah))
drivers/net/wireless/ath/ath9k/hw.c
1690
ah->sw_mgmt_crypto_tx = true;
drivers/net/wireless/ath/ath9k/hw.c
1692
ah->sw_mgmt_crypto_tx = false;
drivers/net/wireless/ath/ath9k/hw.c
1693
ah->sw_mgmt_crypto_rx = false;
drivers/net/wireless/ath/ath9k/hw.c
1694
} else if (AR_SREV_9160_10_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1696
REG_CLR_BIT(ah, AR_PCU_MISC_MODE2,
drivers/net/wireless/ath/ath9k/hw.c
1698
REG_SET_BIT(ah, AR_PCU_MISC_MODE2,
drivers/net/wireless/ath/ath9k/hw.c
1700
ah->sw_mgmt_crypto_tx = true;
drivers/net/wireless/ath/ath9k/hw.c
1701
ah->sw_mgmt_crypto_rx = true;
drivers/net/wireless/ath/ath9k/hw.c
1703
ah->sw_mgmt_crypto_tx = true;
drivers/net/wireless/ath/ath9k/hw.c
1704
ah->sw_mgmt_crypto_rx = true;
drivers/net/wireless/ath/ath9k/hw.c
1708
static void ath9k_hw_reset_opmode(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
1711
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1713
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1715
REG_RMW(ah, AR_STA_ID1, macStaId1
drivers/net/wireless/ath/ath9k/hw.c
1717
| ah->sta_id1_defaults,
drivers/net/wireless/ath/ath9k/hw.c
1720
REG_WRITE(ah, AR_DEF_ANTENNA, saveDefAntenna);
drivers/net/wireless/ath/ath9k/hw.c
1721
ath9k_hw_write_associd(ah);
drivers/net/wireless/ath/ath9k/hw.c
1722
REG_WRITE(ah, AR_ISR, ~0);
drivers/net/wireless/ath/ath9k/hw.c
1723
REG_WRITE(ah, AR_RSSI_THR, INIT_RSSI_THR);
drivers/net/wireless/ath/ath9k/hw.c
1725
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1727
ath9k_hw_set_operating_mode(ah, ah->opmode);
drivers/net/wireless/ath/ath9k/hw.c
1730
static void ath9k_hw_init_queues(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1734
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
1737
REG_WRITE(ah, AR_DQCUMASK(i), 1 << i);
drivers/net/wireless/ath/ath9k/hw.c
1739
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
1741
ah->intr_txqs = 0;
drivers/net/wireless/ath/ath9k/hw.c
1743
ath9k_hw_resettxqueue(ah, i);
drivers/net/wireless/ath/ath9k/hw.c
1749
static void ath9k_hw_init_desc(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
1751
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1753
if (AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1755
mask = REG_READ(ah, AR_CFG);
drivers/net/wireless/ath/ath9k/hw.c
1761
REG_WRITE(ah, AR_CFG, mask);
drivers/net/wireless/ath/ath9k/hw.c
1763
REG_READ(ah, AR_CFG));
drivers/net/wireless/ath/ath9k/hw.c
1768
if (AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
1769
REG_WRITE(ah, AR_CFG, AR_CFG_SWRB | AR_CFG_SWTB);
drivers/net/wireless/ath/ath9k/hw.c
1771
REG_WRITE(ah, AR_CFG, AR_CFG_SWTD | AR_CFG_SWRD);
drivers/net/wireless/ath/ath9k/hw.c
1774
else if (AR_SREV_9330(ah) || AR_SREV_9340(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
1775
AR_SREV_9550(ah) || AR_SREV_9531(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
1776
AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/hw.c
1777
REG_RMW(ah, AR_CFG, AR_CFG_SWRB | AR_CFG_SWTB, 0);
drivers/net/wireless/ath/ath9k/hw.c
1779
REG_WRITE(ah, AR_CFG, AR_CFG_SWTD | AR_CFG_SWRD);
drivers/net/wireless/ath/ath9k/hw.c
1788
static int ath9k_hw_do_fastcc(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
1790
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1791
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/hw.c
1794
if (AR_SREV_9280(ah) && common->bus_ops->ath_bus_type == ATH_PCI)
drivers/net/wireless/ath/ath9k/hw.c
1797
if (ah->chip_fullsleep)
drivers/net/wireless/ath/ath9k/hw.c
1800
if (!ah->curchan)
drivers/net/wireless/ath/ath9k/hw.c
1803
if (chan->channel == ah->curchan->channel)
drivers/net/wireless/ath/ath9k/hw.c
1806
if ((ah->curchan->channelFlags | chan->channelFlags) &
drivers/net/wireless/ath/ath9k/hw.c
1814
((chan->channelFlags ^ ah->curchan->channelFlags) & ~CHANNEL_HT))
drivers/net/wireless/ath/ath9k/hw.c
1817
if (!ath9k_hw_check_alive(ah))
drivers/net/wireless/ath/ath9k/hw.c
1824
if (AR_SREV_9462(ah) && (ah->caldata &&
drivers/net/wireless/ath/ath9k/hw.c
1825
(!test_bit(TXIQCAL_DONE, &ah->caldata->cal_flags) ||
drivers/net/wireless/ath/ath9k/hw.c
1826
!test_bit(TXCLCAL_DONE, &ah->caldata->cal_flags) ||
drivers/net/wireless/ath/ath9k/hw.c
1827
!test_bit(RTT_DONE, &ah->caldata->cal_flags))))
drivers/net/wireless/ath/ath9k/hw.c
1831
ah->curchan->channel, chan->channel);
drivers/net/wireless/ath/ath9k/hw.c
1833
ret = ath9k_hw_channel_change(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1837
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
1838
ar9003_mci_2g5g_switch(ah, false);
drivers/net/wireless/ath/ath9k/hw.c
1840
ath9k_hw_loadnf(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/hw.c
1841
ath9k_hw_start_nfcal(ah, true);
drivers/net/wireless/ath/ath9k/hw.c
1843
if (AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
1844
ar9002_hw_load_ani_reg(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1859
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.c
186
if (ah->curchan && IS_CHAN_QUARTER_RATE(ah->curchan)) {
drivers/net/wireless/ath/ath9k/hw.c
1862
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
1871
bool save_fullsleep = ah->chip_fullsleep;
drivers/net/wireless/ath/ath9k/hw.c
1873
if (ath9k_hw_mci_is_enabled(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1874
start_mci_reset = ar9003_mci_start_reset(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1879
if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE))
drivers/net/wireless/ath/ath9k/hw.c
1882
if (ah->curchan && !ah->chip_fullsleep)
drivers/net/wireless/ath/ath9k/hw.c
1883
ath9k_hw_getnf(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/hw.c
1885
ah->caldata = caldata;
drivers/net/wireless/ath/ath9k/hw.c
1890
ath9k_init_nfcal_hist_buffer(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1894
ah->noise = ath9k_hw_getchan_noise(ah, chan, chan->noisefloor);
drivers/net/wireless/ath/ath9k/hw.c
1897
r = ath9k_hw_do_fastcc(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1902
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
1903
ar9003_mci_stop_bt(ah, save_fullsleep);
drivers/net/wireless/ath/ath9k/hw.c
1905
saveDefAntenna = REG_READ(ah, AR_DEF_ANTENNA);
drivers/net/wireless/ath/ath9k/hw.c
1909
macStaId1 = REG_READ(ah, AR_STA_ID1) & AR_STA_ID1_BASE_RATE_11B;
drivers/net/wireless/ath/ath9k/hw.c
1913
tsf = ath9k_hw_gettsf64(ah);
drivers/net/wireless/ath/ath9k/hw.c
1915
saveLedState = REG_READ(ah, AR_CFG_LED) &
drivers/net/wireless/ath/ath9k/hw.c
1919
ath9k_hw_mark_phy_inactive(ah);
drivers/net/wireless/ath/ath9k/hw.c
1921
ah->paprd_table_write_done = false;
drivers/net/wireless/ath/ath9k/hw.c
1924
if (AR_SREV_9271(ah) && ah->htc_reset_init) {
drivers/net/wireless/ath/ath9k/hw.c
1925
REG_WRITE(ah,
drivers/net/wireless/ath/ath9k/hw.c
1931
if (!ath9k_hw_chip_reset(ah, chan)) {
drivers/net/wireless/ath/ath9k/hw.c
1937
if (AR_SREV_9271(ah) && ah->htc_reset_init) {
drivers/net/wireless/ath/ath9k/hw.c
1938
ah->htc_reset_init = false;
drivers/net/wireless/ath/ath9k/hw.c
1939
REG_WRITE(ah,
drivers/net/wireless/ath/ath9k/hw.c
194
} else if (ah->curchan &&
drivers/net/wireless/ath/ath9k/hw.c
1947
ath9k_hw_settsf64(ah, tsf + tsf_offset);
drivers/net/wireless/ath/ath9k/hw.c
1949
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
195
IS_CHAN_HALF_RATE(ah->curchan)) {
drivers/net/wireless/ath/ath9k/hw.c
1950
REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL(ah), AR_GPIO_JTAG_DISABLE);
drivers/net/wireless/ath/ath9k/hw.c
1952
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
1953
ar9002_hw_enable_async_fifo(ah);
drivers/net/wireless/ath/ath9k/hw.c
1955
r = ath9k_hw_process_ini(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1959
ath9k_hw_set_rfmode(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1961
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
1962
ar9003_mci_reset(ah, false, IS_CHAN_2GHZ(chan), save_fullsleep);
drivers/net/wireless/ath/ath9k/hw.c
1969
if (AR_SREV_9100(ah) && (ath9k_hw_gettsf64(ah) < tsf)) {
drivers/net/wireless/ath/ath9k/hw.c
1971
ath9k_hw_settsf64(ah, tsf + tsf_offset);
drivers/net/wireless/ath/ath9k/hw.c
1974
ath9k_hw_init_mfp(ah);
drivers/net/wireless/ath/ath9k/hw.c
1976
ath9k_hw_set_delta_slope(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1977
ath9k_hw_spur_mitigate_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1978
ah->eep_ops->set_board_values(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1980
ath9k_hw_reset_opmode(ah, macStaId1, saveDefAntenna);
drivers/net/wireless/ath/ath9k/hw.c
1982
r = ath9k_hw_rf_set_freq(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
1986
ath9k_hw_set_clockrate(ah);
drivers/net/wireless/ath/ath9k/hw.c
1988
ath9k_hw_init_queues(ah);
drivers/net/wireless/ath/ath9k/hw.c
1989
ath9k_hw_init_interrupt_masks(ah, ah->opmode);
drivers/net/wireless/ath/ath9k/hw.c
1990
ath9k_hw_ani_cache_ini_regs(ah);
drivers/net/wireless/ath/ath9k/hw.c
1991
ath9k_hw_init_qos(ah);
drivers/net/wireless/ath/ath9k/hw.c
1993
if (ah->caps.hw_caps & ATH9K_HW_CAP_RFSILENT)
drivers/net/wireless/ath/ath9k/hw.c
1994
ath9k_hw_gpio_request_in(ah, ah->rfkill_gpio, "ath9k-rfkill");
drivers/net/wireless/ath/ath9k/hw.c
1996
ath9k_hw_init_global_settings(ah);
drivers/net/wireless/ath/ath9k/hw.c
1998
if (AR_SREV_9287(ah) && AR_SREV_9287_13_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
1999
REG_SET_BIT(ah, AR_MAC_PCU_LOGIC_ANALYZER,
drivers/net/wireless/ath/ath9k/hw.c
2001
REG_RMW_FIELD(ah, AR_AHB_MODE, AR_AHB_CUSTOM_BURST_EN,
drivers/net/wireless/ath/ath9k/hw.c
2003
REG_SET_BIT(ah, AR_PCU_MISC_MODE2,
drivers/net/wireless/ath/ath9k/hw.c
2007
REG_SET_BIT(ah, AR_STA_ID1, AR_STA_ID1_PRESERVE_SEQNUM);
drivers/net/wireless/ath/ath9k/hw.c
2009
ath9k_hw_set_dma(ah);
drivers/net/wireless/ath/ath9k/hw.c
2011
if (!ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2012
REG_WRITE(ah, AR_OBS(ah), 8);
drivers/net/wireless/ath/ath9k/hw.c
2014
ENABLE_REG_RMW_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
2015
if (ah->config.rx_intr_mitigation) {
drivers/net/wireless/ath/ath9k/hw.c
2016
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_LAST, ah->config.rimt_last);
drivers/net/wireless/ath/ath9k/hw.c
2017
REG_RMW_FIELD(ah, AR_RIMT, AR_RIMT_FIRST, ah->config.rimt_first);
drivers/net/wireless/ath/ath9k/hw.c
2020
if (ah->config.tx_intr_mitigation) {
drivers/net/wireless/ath/ath9k/hw.c
2021
REG_RMW_FIELD(ah, AR_TIMT, AR_TIMT_LAST, 300);
drivers/net/wireless/ath/ath9k/hw.c
2022
REG_RMW_FIELD(ah, AR_TIMT, AR_TIMT_FIRST, 750);
drivers/net/wireless/ath/ath9k/hw.c
2024
REG_RMW_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
2026
ath9k_hw_init_bb(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
2032
if (!ath9k_hw_init_cal(ah, chan))
drivers/net/wireless/ath/ath9k/hw.c
2035
if (ath9k_hw_mci_is_enabled(ah) && ar9003_mci_end_reset(ah, chan, caldata))
drivers/net/wireless/ath/ath9k/hw.c
2038
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
2040
ath9k_hw_restore_chainmask(ah);
drivers/net/wireless/ath/ath9k/hw.c
2041
REG_WRITE(ah, AR_CFG_LED, saveLedState | AR_CFG_SCLK_32KHZ);
drivers/net/wireless/ath/ath9k/hw.c
2043
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
2045
ath9k_hw_gen_timer_start_tsf2(ah);
drivers/net/wireless/ath/ath9k/hw.c
2047
ath9k_hw_init_desc(ah);
drivers/net/wireless/ath/ath9k/hw.c
2049
if (ath9k_hw_btcoex_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2050
ath9k_hw_btcoex_enable(ah);
drivers/net/wireless/ath/ath9k/hw.c
2052
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2053
ar9003_mci_check_bt(ah);
drivers/net/wireless/ath/ath9k/hw.c
2055
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2056
ath9k_hw_loadnf(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
2057
ath9k_hw_start_nfcal(ah, true);
drivers/net/wireless/ath/ath9k/hw.c
2060
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2061
ar9003_hw_bb_watchdog_config(ah);
drivers/net/wireless/ath/ath9k/hw.c
2063
if (ah->config.hw_hang_checks & HW_PHYRESTART_CLC_WAR)
drivers/net/wireless/ath/ath9k/hw.c
2064
ar9003_hw_disable_phy_restart(ah);
drivers/net/wireless/ath/ath9k/hw.c
2066
ath9k_hw_apply_gpio_override(ah);
drivers/net/wireless/ath/ath9k/hw.c
2068
if (AR_SREV_9565(ah) && common->bt_ant_diversity)
drivers/net/wireless/ath/ath9k/hw.c
2069
REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV, AR_BTCOEX_WL_LNADIV_FORCE_ON);
drivers/net/wireless/ath/ath9k/hw.c
2071
if (ah->hw->conf.radar_enabled) {
drivers/net/wireless/ath/ath9k/hw.c
2073
ah->radar_conf.ext_channel = IS_CHAN_HT40(chan);
drivers/net/wireless/ath/ath9k/hw.c
2074
ath9k_hw_set_radar_params(ah);
drivers/net/wireless/ath/ath9k/hw.c
2089
static void ath9k_set_power_sleep(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2091
REG_SET_BIT(ah, AR_STA_ID1, AR_STA_ID1_PWR_SAV);
drivers/net/wireless/ath/ath9k/hw.c
2093
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2094
REG_CLR_BIT(ah, AR_TIMER_MODE, 0xff);
drivers/net/wireless/ath/ath9k/hw.c
2095
REG_CLR_BIT(ah, AR_NDP2_TIMER_MODE, 0xff);
drivers/net/wireless/ath/ath9k/hw.c
2096
REG_CLR_BIT(ah, AR_SLP32_INC, 0xfffff);
drivers/net/wireless/ath/ath9k/hw.c
2098
REG_WRITE(ah, AR_MCI_INTERRUPT_RX_MSG_EN, 0);
drivers/net/wireless/ath/ath9k/hw.c
2106
REG_CLR_BIT(ah, AR_RTC_FORCE_WAKE(ah), AR_RTC_FORCE_WAKE_EN);
drivers/net/wireless/ath/ath9k/hw.c
2108
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2111
if (!AR_SREV_9100(ah) && !AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2112
REG_WRITE(ah, AR_RC, AR_RC_AHB | AR_RC_HOSTIF);
drivers/net/wireless/ath/ath9k/hw.c
2115
if (!AR_SREV_5416(ah) && !AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2116
REG_CLR_BIT(ah, AR_RTC_RESET(ah), AR_RTC_RESET_EN);
drivers/net/wireless/ath/ath9k/hw.c
212
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/hw.c
2121
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2122
REG_WRITE(ah, AR_WA(ah), ah->WARegVal & ~AR_WA_D3_L1_DISABLE);
drivers/net/wireless/ath/ath9k/hw.c
2130
static void ath9k_set_power_network_sleep(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2132
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/hw.c
2134
REG_SET_BIT(ah, AR_STA_ID1, AR_STA_ID1_PWR_SAV);
drivers/net/wireless/ath/ath9k/hw.c
2138
REG_WRITE(ah, AR_RTC_FORCE_WAKE(ah),
drivers/net/wireless/ath/ath9k/hw.c
2151
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2152
REG_CLR_BIT(ah, AR_MCI_INTERRUPT_RX_MSG_EN,
drivers/net/wireless/ath/ath9k/hw.c
2158
REG_CLR_BIT(ah, AR_RTC_FORCE_WAKE(ah), AR_RTC_FORCE_WAKE_EN);
drivers/net/wireless/ath/ath9k/hw.c
2160
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2165
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2166
REG_WRITE(ah, AR_WA(ah), ah->WARegVal & ~AR_WA_D3_L1_DISABLE);
drivers/net/wireless/ath/ath9k/hw.c
2169
static bool ath9k_hw_set_power_awake(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2175
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2176
REG_WRITE(ah, AR_WA(ah), ah->WARegVal);
drivers/net/wireless/ath/ath9k/hw.c
2180
if ((REG_READ(ah, AR_RTC_STATUS(ah)) &
drivers/net/wireless/ath/ath9k/hw.c
2181
AR_RTC_STATUS_M(ah)) == AR_RTC_STATUS_SHUTDOWN) {
drivers/net/wireless/ath/ath9k/hw.c
2182
if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_POWER_ON)) {
drivers/net/wireless/ath/ath9k/hw.c
2185
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2186
ath9k_hw_init_pll(ah, NULL);
drivers/net/wireless/ath/ath9k/hw.c
2188
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
2189
REG_SET_BIT(ah, AR_RTC_RESET(ah),
drivers/net/wireless/ath/ath9k/hw.c
2192
REG_SET_BIT(ah, AR_RTC_FORCE_WAKE(ah),
drivers/net/wireless/ath/ath9k/hw.c
2194
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
2200
val = REG_READ(ah, AR_RTC_STATUS(ah)) & AR_RTC_STATUS_M(ah);
drivers/net/wireless/ath/ath9k/hw.c
2204
REG_SET_BIT(ah, AR_RTC_FORCE_WAKE(ah),
drivers/net/wireless/ath/ath9k/hw.c
2208
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/hw.c
2214
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2215
ar9003_mci_set_power_awake(ah);
drivers/net/wireless/ath/ath9k/hw.c
2217
REG_CLR_BIT(ah, AR_STA_ID1, AR_STA_ID1_PWR_SAV);
drivers/net/wireless/ath/ath9k/hw.c
222
void ath9k_hw_get_channel_centers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
2222
bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode)
drivers/net/wireless/ath/ath9k/hw.c
2224
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
2233
if (ah->power_mode == mode)
drivers/net/wireless/ath/ath9k/hw.c
2237
modes[ah->power_mode], modes[mode]);
drivers/net/wireless/ath/ath9k/hw.c
2241
status = ath9k_hw_set_power_awake(ah);
drivers/net/wireless/ath/ath9k/hw.c
2244
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2245
ar9003_mci_set_full_sleep(ah);
drivers/net/wireless/ath/ath9k/hw.c
2247
ath9k_set_power_sleep(ah);
drivers/net/wireless/ath/ath9k/hw.c
2248
ah->chip_fullsleep = true;
drivers/net/wireless/ath/ath9k/hw.c
2251
ath9k_set_power_network_sleep(ah);
drivers/net/wireless/ath/ath9k/hw.c
2257
ah->power_mode = mode;
drivers/net/wireless/ath/ath9k/hw.c
2265
if (!(ah->ah_flags & AH_UNPLUGGED))
drivers/net/wireless/ath/ath9k/hw.c
2276
void ath9k_hw_beaconinit(struct ath_hw *ah, u32 next_beacon, u32 beacon_period)
drivers/net/wireless/ath/ath9k/hw.c
2280
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
2282
switch (ah->opmode) {
drivers/net/wireless/ath/ath9k/hw.c
2284
REG_SET_BIT(ah, AR_TXCFG,
drivers/net/wireless/ath/ath9k/hw.c
2289
REG_WRITE(ah, AR_NEXT_TBTT_TIMER, next_beacon);
drivers/net/wireless/ath/ath9k/hw.c
2290
REG_WRITE(ah, AR_NEXT_DMA_BEACON_ALERT, next_beacon -
drivers/net/wireless/ath/ath9k/hw.c
2291
TU_TO_USEC(ah->config.dma_beacon_response_time));
drivers/net/wireless/ath/ath9k/hw.c
2292
REG_WRITE(ah, AR_NEXT_SWBA, next_beacon -
drivers/net/wireless/ath/ath9k/hw.c
2293
TU_TO_USEC(ah->config.sw_beacon_response_time));
drivers/net/wireless/ath/ath9k/hw.c
2298
ath_dbg(ath9k_hw_common(ah), BEACON,
drivers/net/wireless/ath/ath9k/hw.c
2299
"%s: unsupported opmode: %d\n", __func__, ah->opmode);
drivers/net/wireless/ath/ath9k/hw.c
2303
REG_WRITE(ah, AR_BEACON_PERIOD, beacon_period);
drivers/net/wireless/ath/ath9k/hw.c
2304
REG_WRITE(ah, AR_DMA_BEACON_PERIOD, beacon_period);
drivers/net/wireless/ath/ath9k/hw.c
2305
REG_WRITE(ah, AR_SWBA_PERIOD, beacon_period);
drivers/net/wireless/ath/ath9k/hw.c
2307
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
2309
REG_SET_BIT(ah, AR_TIMER_MODE, flags);
drivers/net/wireless/ath/ath9k/hw.c
2313
void ath9k_hw_set_sta_beacon_timers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
2317
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/hw.c
2318
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
2320
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
2322
REG_WRITE(ah, AR_NEXT_TBTT_TIMER, bs->bs_nexttbtt);
drivers/net/wireless/ath/ath9k/hw.c
2323
REG_WRITE(ah, AR_BEACON_PERIOD, bs->bs_intval);
drivers/net/wireless/ath/ath9k/hw.c
2324
REG_WRITE(ah, AR_DMA_BEACON_PERIOD, bs->bs_intval);
drivers/net/wireless/ath/ath9k/hw.c
2326
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
2328
REG_RMW_FIELD(ah, AR_RSSI_THR,
drivers/net/wireless/ath/ath9k/hw.c
2350
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
2352
REG_WRITE(ah, AR_NEXT_DTIM, bs->bs_nextdtim - SLEEP_SLOP);
drivers/net/wireless/ath/ath9k/hw.c
2353
REG_WRITE(ah, AR_NEXT_TIM, nextTbtt - SLEEP_SLOP);
drivers/net/wireless/ath/ath9k/hw.c
2355
REG_WRITE(ah, AR_SLEEP1,
drivers/net/wireless/ath/ath9k/hw.c
2364
REG_WRITE(ah, AR_SLEEP2,
drivers/net/wireless/ath/ath9k/hw.c
2367
REG_WRITE(ah, AR_TIM_PERIOD, beaconintval);
drivers/net/wireless/ath/ath9k/hw.c
2368
REG_WRITE(ah, AR_DTIM_PERIOD, dtimperiod);
drivers/net/wireless/ath/ath9k/hw.c
2370
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
2372
REG_SET_BIT(ah, AR_TIMER_MODE,
drivers/net/wireless/ath/ath9k/hw.c
2377
REG_WRITE(ah, AR_TSFOOR_THRESHOLD, bs->bs_tsfoor_threshold);
drivers/net/wireless/ath/ath9k/hw.c
2407
static bool ath9k_hw_dfs_tested(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2410
switch (ah->hw_version.macVersion) {
drivers/net/wireless/ath/ath9k/hw.c
2421
static void ath9k_gpio_cap_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2423
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/hw.c
2425
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2428
} else if (AR_DEVID_7010(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2431
} else if (AR_SREV_9287(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2434
} else if (AR_SREV_9285(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2437
} else if (AR_SREV_9280(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2440
} else if (AR_SREV_9300(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2443
} else if (AR_SREV_9330(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2446
} else if (AR_SREV_9340(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2449
} else if (AR_SREV_9462(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2452
} else if (AR_SREV_9485(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2455
} else if (AR_SREV_9531(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2458
} else if (AR_SREV_9550(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2461
} else if (AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2464
} else if (AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2467
} else if (AR_SREV_9580(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2476
int ath9k_hw_fill_cap_info(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2478
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/hw.c
2479
struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/hw.c
2480
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
2485
eeval = ah->eep_ops->get_eeprom(ah, EEP_REG_0);
drivers/net/wireless/ath/ath9k/hw.c
2488
if (ah->opmode != NL80211_IFTYPE_AP &&
drivers/net/wireless/ath/ath9k/hw.c
2489
ah->hw_version.subvendorid == AR_SUBVENDOR_ID_NEW_A) {
drivers/net/wireless/ath/ath9k/hw.c
2499
eeval = ah->eep_ops->get_eeprom(ah, EEP_OP_MODE);
drivers/net/wireless/ath/ath9k/hw.c
2502
if (ah->disable_5ghz)
drivers/net/wireless/ath/ath9k/hw.c
2509
if (ah->disable_2ghz)
drivers/net/wireless/ath/ath9k/hw.c
2520
ath9k_gpio_cap_init(ah);
drivers/net/wireless/ath/ath9k/hw.c
2522
if (AR_SREV_9485(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
2523
AR_SREV_9285(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
2524
AR_SREV_9330(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
2525
AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/hw.c
2527
else if (!AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2529
else if (!AR_SREV_9300_20_OR_LATER(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
2530
AR_SREV_9340(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
2531
AR_SREV_9462(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
2532
AR_SREV_9531(ah))
drivers/net/wireless/ath/ath9k/hw.c
2537
pCap->tx_chainmask = ah->eep_ops->get_eeprom(ah, EEP_TX_MASK);
drivers/net/wireless/ath/ath9k/hw.c
2542
if ((ah->hw_version.devid == AR5416_DEVID_PCI) &&
drivers/net/wireless/ath/ath9k/hw.c
2544
!(AR_SREV_9271(ah)))
drivers/net/wireless/ath/ath9k/hw.c
2546
pCap->rx_chainmask = ath9k_hw_gpio_get(ah, 0) ? 0x5 : 0x7;
drivers/net/wireless/ath/ath9k/hw.c
2547
else if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
255
static bool ath9k_hw_read_revisions(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2551
pCap->rx_chainmask = ah->eep_ops->get_eeprom(ah, EEP_RX_MASK);
drivers/net/wireless/ath/ath9k/hw.c
2555
ah->txchainmask = pCap->tx_chainmask;
drivers/net/wireless/ath/ath9k/hw.c
2556
ah->rxchainmask = pCap->rx_chainmask;
drivers/net/wireless/ath/ath9k/hw.c
2558
ah->misc_mode |= AR_PCU_MIC_NEW_LOC_ENA;
drivers/net/wireless/ath/ath9k/hw.c
2561
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2562
ah->misc_mode |= AR_PCU_ALWAYS_PERFORM_KEYSEARCH;
drivers/net/wireless/ath/ath9k/hw.c
2566
if (ah->hw_version.devid != AR2427_DEVID_PCIE)
drivers/net/wireless/ath/ath9k/hw.c
2571
if (AR_SREV_9160_10_OR_LATER(ah) || AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
2577
ah->rfsilent = ah->eep_ops->get_eeprom(ah, EEP_RF_SILENT);
drivers/net/wireless/ath/ath9k/hw.c
2578
if (ah->rfsilent & EEP_RFSILENT_ENABLED) {
drivers/net/wireless/ath/ath9k/hw.c
2579
ah->rfkill_gpio =
drivers/net/wireless/ath/ath9k/hw.c
2580
MS(ah->rfsilent, EEP_RFSILENT_GPIO_SEL);
drivers/net/wireless/ath/ath9k/hw.c
2581
ah->rfkill_polarity =
drivers/net/wireless/ath/ath9k/hw.c
2582
MS(ah->rfsilent, EEP_RFSILENT_POLARITY);
drivers/net/wireless/ath/ath9k/hw.c
2587
if (AR_SREV_9271(ah) || AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2592
if (AR_SREV_9280(ah) || AR_SREV_9285(ah))
drivers/net/wireless/ath/ath9k/hw.c
2597
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2599
if (!AR_SREV_9330(ah) && !AR_SREV_9485(ah) &&
drivers/net/wireless/ath/ath9k/hw.c
260
if (ah->get_mac_revision)
drivers/net/wireless/ath/ath9k/hw.c
2600
!AR_SREV_9561(ah) && !AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/hw.c
261
ah->hw_version.macRev = ah->get_mac_revision();
drivers/net/wireless/ath/ath9k/hw.c
2610
if (AR_SREV_9280_20(ah))
drivers/net/wireless/ath/ath9k/hw.c
2614
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2617
if (AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/hw.c
2618
ah->ent_mode = 0x3BDA000;
drivers/net/wireless/ath/ath9k/hw.c
2619
else if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2620
ah->ent_mode = REG_READ(ah, AR_ENT_OTP);
drivers/net/wireless/ath/ath9k/hw.c
2622
if (AR_SREV_9287_11_OR_LATER(ah) || AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
2625
if (AR_SREV_9285(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2626
if (ah->eep_ops->get_eeprom(ah, EEP_MODAL_VER) >= 3) {
drivers/net/wireless/ath/ath9k/hw.c
2628
ah->eep_ops->get_eeprom(ah, EEP_ANT_DIV_CTL1);
drivers/net/wireless/ath/ath9k/hw.c
263
switch (ah->hw_version.devid) {
drivers/net/wireless/ath/ath9k/hw.c
2636
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2637
if (ah->eep_ops->get_eeprom(ah, EEP_CHAIN_MASK_REDUCE))
drivers/net/wireless/ath/ath9k/hw.c
2641
if (AR_SREV_9330(ah) || AR_SREV_9485(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2642
ant_div_ctl1 = ah->eep_ops->get_eeprom(ah, EEP_ANT_DIV_CTL1);
drivers/net/wireless/ath/ath9k/hw.c
2649
if (ath9k_hw_dfs_tested(ah))
drivers/net/wireless/ath/ath9k/hw.c
265
ah->hw_version.macVersion = AR_SREV_VERSION_9100;
drivers/net/wireless/ath/ath9k/hw.c
2664
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2665
if (!(ah->ent_mode & AR_ENT_OTP_49GHZ_DISABLE))
drivers/net/wireless/ath/ath9k/hw.c
2668
if (AR_SREV_9462_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2672
if (AR_SREV_9300_20_OR_LATER(ah) &&
drivers/net/wireless/ath/ath9k/hw.c
2673
ah->eep_ops->get_eeprom(ah, EEP_PAPRD))
drivers/net/wireless/ath/ath9k/hw.c
2677
if (AR_SREV_9462_20_OR_LATER(ah) || AR_SREV_9565_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2678
ah->wow.max_patterns = MAX_NUM_PATTERN;
drivers/net/wireless/ath/ath9k/hw.c
268
ah->hw_version.macVersion = AR_SREV_VERSION_9330;
drivers/net/wireless/ath/ath9k/hw.c
2680
ah->wow.max_patterns = MAX_NUM_PATTERN_LEGACY;
drivers/net/wireless/ath/ath9k/hw.c
269
if (!ah->get_mac_revision) {
drivers/net/wireless/ath/ath9k/hw.c
2690
static void ath9k_hw_gpio_cfg_output_mux(struct ath_hw *ah, u32 gpio, u32 type)
drivers/net/wireless/ath/ath9k/hw.c
2696
addr = AR_GPIO_OUTPUT_MUX3(ah);
drivers/net/wireless/ath/ath9k/hw.c
2698
addr = AR_GPIO_OUTPUT_MUX2(ah);
drivers/net/wireless/ath/ath9k/hw.c
270
val = REG_READ(ah, AR_SREV(ah));
drivers/net/wireless/ath/ath9k/hw.c
2700
addr = AR_GPIO_OUTPUT_MUX1(ah);
drivers/net/wireless/ath/ath9k/hw.c
2704
if (AR_SREV_9280_20_OR_LATER(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
2705
(addr != AR_GPIO_OUTPUT_MUX1(ah))) {
drivers/net/wireless/ath/ath9k/hw.c
2706
REG_RMW(ah, addr, (type << gpio_shift),
drivers/net/wireless/ath/ath9k/hw.c
2709
tmp = REG_READ(ah, addr);
drivers/net/wireless/ath/ath9k/hw.c
271
ah->hw_version.macRev = MS(val, AR_SREV_REVISION2);
drivers/net/wireless/ath/ath9k/hw.c
2713
REG_WRITE(ah, addr, tmp);
drivers/net/wireless/ath/ath9k/hw.c
2719
static void ath9k_hw_gpio_cfg_soc(struct ath_hw *ah, u32 gpio, bool out,
drivers/net/wireless/ath/ath9k/hw.c
2724
if (ah->caps.gpio_requested & BIT(gpio))
drivers/net/wireless/ath/ath9k/hw.c
2727
err = devm_gpio_request_one(ah->dev, gpio, out ? GPIOF_OUT_INIT_LOW : GPIOF_IN, label);
drivers/net/wireless/ath/ath9k/hw.c
2729
ath_err(ath9k_hw_common(ah), "request GPIO%d failed:%d\n",
drivers/net/wireless/ath/ath9k/hw.c
2734
ah->caps.gpio_requested |= BIT(gpio);
drivers/net/wireless/ath/ath9k/hw.c
2737
static void ath9k_hw_gpio_cfg_wmac(struct ath_hw *ah, u32 gpio, bool out,
drivers/net/wireless/ath/ath9k/hw.c
2742
if (AR_DEVID_7010(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2745
REG_RMW(ah, AR7010_GPIO_OE, gpio_set << gpio_shift,
drivers/net/wireless/ath/ath9k/hw.c
2747
} else if (AR_SREV_SOC(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
2749
REG_RMW(ah, AR_GPIO_OE_OUT(ah), gpio_set << gpio_shift,
drivers/net/wireless/ath/ath9k/hw.c
275
ah->hw_version.macVersion = AR_SREV_VERSION_9340;
drivers/net/wireless/ath/ath9k/hw.c
2755
REG_RMW(ah, AR_GPIO_OE_OUT(ah), gpio_set << gpio_shift,
drivers/net/wireless/ath/ath9k/hw.c
2759
ath9k_hw_gpio_cfg_output_mux(ah, gpio, ah_signal_type);
drivers/net/wireless/ath/ath9k/hw.c
2763
static void ath9k_hw_gpio_request(struct ath_hw *ah, u32 gpio, bool out,
drivers/net/wireless/ath/ath9k/hw.c
2766
WARN_ON(gpio >= ah->caps.num_gpio_pins);
drivers/net/wireless/ath/ath9k/hw.c
2768
if (BIT(gpio) & ah->caps.gpio_mask)
drivers/net/wireless/ath/ath9k/hw.c
2769
ath9k_hw_gpio_cfg_wmac(ah, gpio, out, ah_signal_type);
drivers/net/wireless/ath/ath9k/hw.c
2770
else if (AR_SREV_SOC(ah))
drivers/net/wireless/ath/ath9k/hw.c
2771
ath9k_hw_gpio_cfg_soc(ah, gpio, out, label);
drivers/net/wireless/ath/ath9k/hw.c
2776
void ath9k_hw_gpio_request_in(struct ath_hw *ah, u32 gpio, const char *label)
drivers/net/wireless/ath/ath9k/hw.c
2778
ath9k_hw_gpio_request(ah, gpio, false, label, 0);
drivers/net/wireless/ath/ath9k/hw.c
278
ah->hw_version.macVersion = AR_SREV_VERSION_9550;
drivers/net/wireless/ath/ath9k/hw.c
2782
void ath9k_hw_gpio_request_out(struct ath_hw *ah, u32 gpio, const char *label,
drivers/net/wireless/ath/ath9k/hw.c
2785
ath9k_hw_gpio_request(ah, gpio, true, label, ah_signal_type);
drivers/net/wireless/ath/ath9k/hw.c
2789
void ath9k_hw_gpio_free(struct ath_hw *ah, u32 gpio)
drivers/net/wireless/ath/ath9k/hw.c
2791
if (!AR_SREV_SOC(ah))
drivers/net/wireless/ath/ath9k/hw.c
2794
WARN_ON(gpio >= ah->caps.num_gpio_pins);
drivers/net/wireless/ath/ath9k/hw.c
2796
if (ah->caps.gpio_requested & BIT(gpio))
drivers/net/wireless/ath/ath9k/hw.c
2797
ah->caps.gpio_requested &= ~BIT(gpio);
drivers/net/wireless/ath/ath9k/hw.c
2801
u32 ath9k_hw_gpio_get(struct ath_hw *ah, u32 gpio)
drivers/net/wireless/ath/ath9k/hw.c
2806
(MS(REG_READ(ah, AR_GPIO_IN_OUT(ah)), x##_GPIO_IN_VAL) & BIT(y))
drivers/net/wireless/ath/ath9k/hw.c
2808
WARN_ON(gpio >= ah->caps.num_gpio_pins);
drivers/net/wireless/ath/ath9k/hw.c
281
ah->hw_version.macVersion = AR_SREV_VERSION_9531;
drivers/net/wireless/ath/ath9k/hw.c
2810
if (BIT(gpio) & ah->caps.gpio_mask) {
drivers/net/wireless/ath/ath9k/hw.c
2811
if (AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
2813
else if (AR_SREV_9287(ah))
drivers/net/wireless/ath/ath9k/hw.c
2815
else if (AR_SREV_9285(ah))
drivers/net/wireless/ath/ath9k/hw.c
2817
else if (AR_SREV_9280(ah))
drivers/net/wireless/ath/ath9k/hw.c
2819
else if (AR_DEVID_7010(ah))
drivers/net/wireless/ath/ath9k/hw.c
2820
val = REG_READ(ah, AR7010_GPIO_IN) & BIT(gpio);
drivers/net/wireless/ath/ath9k/hw.c
2821
else if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
2822
val = REG_READ(ah, AR_GPIO_IN(ah)) & BIT(gpio);
drivers/net/wireless/ath/ath9k/hw.c
2825
} else if (BIT(gpio) & ah->caps.gpio_requested) {
drivers/net/wireless/ath/ath9k/hw.c
2835
void ath9k_hw_set_gpio(struct ath_hw *ah, u32 gpio, u32 val)
drivers/net/wireless/ath/ath9k/hw.c
2837
WARN_ON(gpio >= ah->caps.num_gpio_pins);
drivers/net/wireless/ath/ath9k/hw.c
2839
if (AR_DEVID_7010(ah) || AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
284
ah->hw_version.macVersion = AR_SREV_VERSION_9561;
drivers/net/wireless/ath/ath9k/hw.c
2844
if (BIT(gpio) & ah->caps.gpio_mask) {
drivers/net/wireless/ath/ath9k/hw.c
2845
u32 out_addr = AR_DEVID_7010(ah) ?
drivers/net/wireless/ath/ath9k/hw.c
2846
AR7010_GPIO_OUT : AR_GPIO_IN_OUT(ah);
drivers/net/wireless/ath/ath9k/hw.c
2848
REG_RMW(ah, out_addr, val << gpio, BIT(gpio));
drivers/net/wireless/ath/ath9k/hw.c
2849
} else if (BIT(gpio) & ah->caps.gpio_requested) {
drivers/net/wireless/ath/ath9k/hw.c
2857
void ath9k_hw_setantenna(struct ath_hw *ah, u32 antenna)
drivers/net/wireless/ath/ath9k/hw.c
2859
REG_WRITE(ah, AR_DEF_ANTENNA, (antenna & 0x7));
drivers/net/wireless/ath/ath9k/hw.c
2867
u32 ath9k_hw_getrxfilter(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2869
u32 bits = REG_READ(ah, AR_RX_FILTER);
drivers/net/wireless/ath/ath9k/hw.c
2870
u32 phybits = REG_READ(ah, AR_PHY_ERR);
drivers/net/wireless/ath/ath9k/hw.c
288
srev = REG_READ(ah, AR_SREV(ah));
drivers/net/wireless/ath/ath9k/hw.c
2881
void ath9k_hw_setrxfilter(struct ath_hw *ah, u32 bits)
drivers/net/wireless/ath/ath9k/hw.c
2885
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
2887
REG_WRITE(ah, AR_RX_FILTER, bits);
drivers/net/wireless/ath/ath9k/hw.c
2894
REG_WRITE(ah, AR_PHY_ERR, phybits);
drivers/net/wireless/ath/ath9k/hw.c
2897
REG_SET_BIT(ah, AR_RXCFG, AR_RXCFG_ZLFDMA);
drivers/net/wireless/ath/ath9k/hw.c
2899
REG_CLR_BIT(ah, AR_RXCFG, AR_RXCFG_ZLFDMA);
drivers/net/wireless/ath/ath9k/hw.c
2901
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
2905
bool ath9k_hw_phy_disable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2907
if (ath9k_hw_mci_is_enabled(ah))
drivers/net/wireless/ath/ath9k/hw.c
2908
ar9003_mci_bt_gain_ctrl(ah);
drivers/net/wireless/ath/ath9k/hw.c
291
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/hw.c
2910
if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_WARM))
drivers/net/wireless/ath/ath9k/hw.c
2913
ath9k_hw_init_pll(ah, NULL);
drivers/net/wireless/ath/ath9k/hw.c
2914
ah->htc_reset_init = true;
drivers/net/wireless/ath/ath9k/hw.c
2919
bool ath9k_hw_disable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2921
if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE))
drivers/net/wireless/ath/ath9k/hw.c
2924
if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_COLD))
drivers/net/wireless/ath/ath9k/hw.c
2927
ath9k_hw_init_pll(ah, NULL);
drivers/net/wireless/ath/ath9k/hw.c
2932
static int get_antenna_gain(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
2941
return ah->eep_ops->get_eeprom(ah, gain_param);
drivers/net/wireless/ath/ath9k/hw.c
2944
void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.c
2947
struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/hw.c
296
val = srev & AR_SREV_ID(ah);
drivers/net/wireless/ath/ath9k/hw.c
2962
ah->eep_ops->set_txpower(ah, chan, ctl,
drivers/net/wireless/ath/ath9k/hw.c
2963
get_antenna_gain(ah, chan), new_pwr, test);
drivers/net/wireless/ath/ath9k/hw.c
2966
void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test)
drivers/net/wireless/ath/ath9k/hw.c
2968
struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/hw.c
2969
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/hw.c
2976
ath9k_hw_apply_txpower(ah, chan, test);
drivers/net/wireless/ath/ath9k/hw.c
2983
void ath9k_hw_setopmode(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2985
ath9k_hw_set_operating_mode(ah, ah->opmode);
drivers/net/wireless/ath/ath9k/hw.c
2989
void ath9k_hw_setmcastfilter(struct ath_hw *ah, u32 filter0, u32 filter1)
drivers/net/wireless/ath/ath9k/hw.c
2991
REG_WRITE(ah, AR_MCAST_FIL0, filter0);
drivers/net/wireless/ath/ath9k/hw.c
2992
REG_WRITE(ah, AR_MCAST_FIL1, filter1);
drivers/net/wireless/ath/ath9k/hw.c
2996
void ath9k_hw_write_associd(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
2998
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
300
ah->hw_version.macVersion =
drivers/net/wireless/ath/ath9k/hw.c
3000
REG_WRITE(ah, AR_BSS_ID0, get_unaligned_le32(common->curbssid));
drivers/net/wireless/ath/ath9k/hw.c
3001
REG_WRITE(ah, AR_BSS_ID1, get_unaligned_le16(common->curbssid + 4) |
drivers/net/wireless/ath/ath9k/hw.c
3008
u64 ath9k_hw_gettsf64(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
3013
tsf_upper1 = REG_READ(ah, AR_TSF_U32);
drivers/net/wireless/ath/ath9k/hw.c
3015
tsf_lower = REG_READ(ah, AR_TSF_L32);
drivers/net/wireless/ath/ath9k/hw.c
3016
tsf_upper2 = REG_READ(ah, AR_TSF_U32);
drivers/net/wireless/ath/ath9k/hw.c
302
ah->hw_version.macRev = MS(val, AR_SREV_REVISION2);
drivers/net/wireless/ath/ath9k/hw.c
3028
void ath9k_hw_settsf64(struct ath_hw *ah, u64 tsf64)
drivers/net/wireless/ath/ath9k/hw.c
3030
REG_WRITE(ah, AR_TSF_L32, tsf64 & 0xffffffff);
drivers/net/wireless/ath/ath9k/hw.c
3031
REG_WRITE(ah, AR_TSF_U32, (tsf64 >> 32) & 0xffffffff);
drivers/net/wireless/ath/ath9k/hw.c
3035
void ath9k_hw_reset_tsf(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
3037
if (!ath9k_hw_wait(ah, AR_SLP32_MODE, AR_SLP32_TSF_WRITE_STATUS, 0,
drivers/net/wireless/ath/ath9k/hw.c
3039
ath_dbg(ath9k_hw_common(ah), RESET,
drivers/net/wireless/ath/ath9k/hw.c
304
if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/hw.c
3042
REG_WRITE(ah, AR_RESET_TSF, AR_RESET_TSF_ONCE);
drivers/net/wireless/ath/ath9k/hw.c
3046
void ath9k_hw_set_tsfadjust(struct ath_hw *ah, bool set)
drivers/net/wireless/ath/ath9k/hw.c
3049
ah->misc_mode |= AR_PCU_TX_ADD_TSF;
drivers/net/wireless/ath/ath9k/hw.c
305
ah->is_pciexpress = true;
drivers/net/wireless/ath/ath9k/hw.c
3051
ah->misc_mode &= ~AR_PCU_TX_ADD_TSF;
drivers/net/wireless/ath/ath9k/hw.c
3055
void ath9k_hw_set11nmac2040(struct ath_hw *ah, struct ath9k_channel *chan)
drivers/net/wireless/ath/ath9k/hw.c
3059
if (IS_CHAN_HT40(chan) && !ah->config.cwm_ignore_extcca)
drivers/net/wireless/ath/ath9k/hw.c
3064
REG_WRITE(ah, AR_2040_MODE, macmode);
drivers/net/wireless/ath/ath9k/hw.c
307
ah->is_pciexpress = (val &
drivers/net/wireless/ath/ath9k/hw.c
3098
u32 ath9k_hw_gettsf32(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
310
if (!AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
3100
return REG_READ(ah, AR_TSF_L32);
drivers/net/wireless/ath/ath9k/hw.c
3104
void ath9k_hw_gen_timer_start_tsf2(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
3106
struct ath_gen_timer_table *timer_table = &ah->hw_gen_timers;
drivers/net/wireless/ath/ath9k/hw.c
3109
REG_SET_BIT(ah, AR_DIRECT_CONNECT, AR_DC_AP_STA_EN);
drivers/net/wireless/ath/ath9k/hw.c
311
ah->hw_version.macVersion = MS(val, AR_SREV_VERSION);
drivers/net/wireless/ath/ath9k/hw.c
3110
REG_SET_BIT(ah, AR_RESET_TSF, AR_RESET_TSF2_ONCE);
drivers/net/wireless/ath/ath9k/hw.c
3114
struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
3120
struct ath_gen_timer_table *timer_table = &ah->hw_gen_timers;
drivers/net/wireless/ath/ath9k/hw.c
3128
!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
313
ah->hw_version.macRev = val & AR_SREV_REVISION;
drivers/net/wireless/ath/ath9k/hw.c
3144
ath9k_hw_gen_timer_start_tsf2(ah);
drivers/net/wireless/ath/ath9k/hw.c
315
if (ah->hw_version.macVersion == AR_SREV_VERSION_5416_PCIE)
drivers/net/wireless/ath/ath9k/hw.c
3151
void ath9k_hw_gen_timer_start(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
3156
struct ath_gen_timer_table *timer_table = &ah->hw_gen_timers;
drivers/net/wireless/ath/ath9k/hw.c
316
ah->is_pciexpress = true;
drivers/net/wireless/ath/ath9k/hw.c
3164
REG_WRITE(ah, gen_tmr_configuration[timer->index].next_addr,
drivers/net/wireless/ath/ath9k/hw.c
3166
REG_WRITE(ah, gen_tmr_configuration[timer->index].period_addr,
drivers/net/wireless/ath/ath9k/hw.c
3168
REG_SET_BIT(ah, gen_tmr_configuration[timer->index].mode_addr,
drivers/net/wireless/ath/ath9k/hw.c
3171
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
3178
REG_CLR_BIT(ah, AR_MAC_PCU_GEN_TIMER_TSF_SEL,
drivers/net/wireless/ath/ath9k/hw.c
3181
REG_SET_BIT(ah, AR_MAC_PCU_GEN_TIMER_TSF_SEL,
drivers/net/wireless/ath/ath9k/hw.c
3192
REG_SET_BIT(ah, AR_IMR_S5, mask);
drivers/net/wireless/ath/ath9k/hw.c
3194
if ((ah->imask & ATH9K_INT_GENTIMER) == 0) {
drivers/net/wireless/ath/ath9k/hw.c
3195
ah->imask |= ATH9K_INT_GENTIMER;
drivers/net/wireless/ath/ath9k/hw.c
3196
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/hw.c
3201
void ath9k_hw_gen_timer_stop(struct ath_hw *ah, struct ath_gen_timer *timer)
drivers/net/wireless/ath/ath9k/hw.c
3203
struct ath_gen_timer_table *timer_table = &ah->hw_gen_timers;
drivers/net/wireless/ath/ath9k/hw.c
3206
REG_CLR_BIT(ah, gen_tmr_configuration[timer->index].mode_addr,
drivers/net/wireless/ath/ath9k/hw.c
3209
if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
3214
REG_CLR_BIT(ah, AR_MAC_PCU_GEN_TIMER_TSF_SEL,
drivers/net/wireless/ath/ath9k/hw.c
3220
REG_CLR_BIT(ah, AR_IMR_S5,
drivers/net/wireless/ath/ath9k/hw.c
3227
ah->imask &= ~ATH9K_INT_GENTIMER;
drivers/net/wireless/ath/ath9k/hw.c
3228
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/hw.c
3233
void ath_gen_timer_free(struct ath_hw *ah, struct ath_gen_timer *timer)
drivers/net/wireless/ath/ath9k/hw.c
3235
struct ath_gen_timer_table *timer_table = &ah->hw_gen_timers;
drivers/net/wireless/ath/ath9k/hw.c
3246
void ath_gen_timer_isr(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
3248
struct ath_gen_timer_table *timer_table = &ah->hw_gen_timers;
drivers/net/wireless/ath/ath9k/hw.c
3254
trigger_mask = ah->intr_gen_timer_trigger;
drivers/net/wireless/ath/ath9k/hw.c
3255
thresh_mask = ah->intr_gen_timer_thresh;
drivers/net/wireless/ath/ath9k/hw.c
326
static void ath9k_hw_disablepcie(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
328
if (!AR_SREV_5416(ah))
drivers/net/wireless/ath/ath9k/hw.c
331
REG_WRITE(ah, AR_PCIE_SERDES, 0x9248fc00);
drivers/net/wireless/ath/ath9k/hw.c
332
REG_WRITE(ah, AR_PCIE_SERDES, 0x24924924);
drivers/net/wireless/ath/ath9k/hw.c
333
REG_WRITE(ah, AR_PCIE_SERDES, 0x28000029);
drivers/net/wireless/ath/ath9k/hw.c
334
REG_WRITE(ah, AR_PCIE_SERDES, 0x57160824);
drivers/net/wireless/ath/ath9k/hw.c
335
REG_WRITE(ah, AR_PCIE_SERDES, 0x25980579);
drivers/net/wireless/ath/ath9k/hw.c
3355
void ath9k_hw_name(struct ath_hw *ah, char *hw_name, size_t len)
drivers/net/wireless/ath/ath9k/hw.c
336
REG_WRITE(ah, AR_PCIE_SERDES, 0x00000000);
drivers/net/wireless/ath/ath9k/hw.c
3360
if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
3363
ath9k_hw_mac_bb_name(ah->hw_version.macVersion),
drivers/net/wireless/ath/ath9k/hw.c
3364
ah->hw_version.macRev);
drivers/net/wireless/ath/ath9k/hw.c
3369
ath9k_hw_mac_bb_name(ah->hw_version.macVersion),
drivers/net/wireless/ath/ath9k/hw.c
337
REG_WRITE(ah, AR_PCIE_SERDES, 0x1aaabe40);
drivers/net/wireless/ath/ath9k/hw.c
3370
ah->hw_version.macRev,
drivers/net/wireless/ath/ath9k/hw.c
3371
ath9k_hw_rf_name((ah->hw_version.analog5GhzRev
drivers/net/wireless/ath/ath9k/hw.c
3373
ah->hw_version.phyRev);
drivers/net/wireless/ath/ath9k/hw.c
338
REG_WRITE(ah, AR_PCIE_SERDES, 0xbe105554);
drivers/net/wireless/ath/ath9k/hw.c
339
REG_WRITE(ah, AR_PCIE_SERDES, 0x000e1007);
drivers/net/wireless/ath/ath9k/hw.c
34
static bool ath9k_hw_set_reset_reg(struct ath_hw *ah, u32 type);
drivers/net/wireless/ath/ath9k/hw.c
341
REG_WRITE(ah, AR_PCIE_SERDES2, 0x00000000);
drivers/net/wireless/ath/ath9k/hw.c
345
static bool ath9k_hw_chip_test(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
347
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
355
if (!AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
365
regHold[i] = REG_READ(ah, addr);
drivers/net/wireless/ath/ath9k/hw.c
368
REG_WRITE(ah, addr, wrData);
drivers/net/wireless/ath/ath9k/hw.c
369
rdData = REG_READ(ah, addr);
drivers/net/wireless/ath/ath9k/hw.c
379
REG_WRITE(ah, addr, wrData);
drivers/net/wireless/ath/ath9k/hw.c
380
rdData = REG_READ(ah, addr);
drivers/net/wireless/ath/ath9k/hw.c
388
REG_WRITE(ah, regAddr[i], regHold[i]);
drivers/net/wireless/ath/ath9k/hw.c
395
static void ath9k_hw_init_config(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
397
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
399
ah->config.dma_beacon_response_time = 1;
drivers/net/wireless/ath/ath9k/hw.c
40
static void ath9k_hw_set_clockrate(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
400
ah->config.sw_beacon_response_time = 6;
drivers/net/wireless/ath/ath9k/hw.c
401
ah->config.cwm_ignore_extcca = false;
drivers/net/wireless/ath/ath9k/hw.c
402
ah->config.analog_shiftreg = 1;
drivers/net/wireless/ath/ath9k/hw.c
404
ah->config.rx_intr_mitigation = true;
drivers/net/wireless/ath/ath9k/hw.c
406
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
407
ah->config.rimt_last = 500;
drivers/net/wireless/ath/ath9k/hw.c
408
ah->config.rimt_first = 2000;
drivers/net/wireless/ath/ath9k/hw.c
410
ah->config.rimt_last = 250;
drivers/net/wireless/ath/ath9k/hw.c
411
ah->config.rimt_first = 700;
drivers/net/wireless/ath/ath9k/hw.c
414
if (AR_SREV_9462(ah) || AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/hw.c
415
ah->config.pll_pwrsave = 7;
drivers/net/wireless/ath/ath9k/hw.c
42
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
43
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/hw.c
434
ah->config.serialize_regmode = SER_REG_MODE_AUTO;
drivers/net/wireless/ath/ath9k/hw.c
436
if (NR_CPUS > 1 && ah->config.serialize_regmode == SER_REG_MODE_AUTO) {
drivers/net/wireless/ath/ath9k/hw.c
437
if (ah->hw_version.macVersion == AR_SREV_VERSION_5416_PCI ||
drivers/net/wireless/ath/ath9k/hw.c
438
((AR_SREV_9160(ah) || AR_SREV_9280(ah) || AR_SREV_9287(ah)) &&
drivers/net/wireless/ath/ath9k/hw.c
439
!ah->is_pciexpress)) {
drivers/net/wireless/ath/ath9k/hw.c
440
ah->config.serialize_regmode = SER_REG_MODE_ON;
drivers/net/wireless/ath/ath9k/hw.c
442
ah->config.serialize_regmode = SER_REG_MODE_OFF;
drivers/net/wireless/ath/ath9k/hw.c
447
ah->config.serialize_regmode);
drivers/net/wireless/ath/ath9k/hw.c
449
if (AR_SREV_9285(ah) || AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
450
ah->config.max_txtrig_level = MAX_TX_FIFO_THRESHOLD >> 1;
drivers/net/wireless/ath/ath9k/hw.c
452
ah->config.max_txtrig_level = MAX_TX_FIFO_THRESHOLD;
drivers/net/wireless/ath/ath9k/hw.c
455
static void ath9k_hw_init_defaults(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
457
struct ath_regulatory *regulatory = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/hw.c
462
ah->hw_version.magic = AR5416_MAGIC;
drivers/net/wireless/ath/ath9k/hw.c
463
ah->hw_version.subvendorid = 0;
drivers/net/wireless/ath/ath9k/hw.c
465
ah->sta_id1_defaults = AR_STA_ID1_CRPT_MIC_ENABLE |
drivers/net/wireless/ath/ath9k/hw.c
467
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/hw.c
468
ah->sta_id1_defaults |= AR_STA_ID1_AR9100_BA_FIX;
drivers/net/wireless/ath/ath9k/hw.c
47
if (AR_SREV_9287(ah) && AR_SREV_9287_13_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
470
ah->slottime = 9;
drivers/net/wireless/ath/ath9k/hw.c
471
ah->globaltxtimeout = (u32) -1;
drivers/net/wireless/ath/ath9k/hw.c
472
ah->power_mode = ATH9K_PM_UNDEFINED;
drivers/net/wireless/ath/ath9k/hw.c
473
ah->htc_reset_init = true;
drivers/net/wireless/ath/ath9k/hw.c
475
ah->tpc_enabled = false;
drivers/net/wireless/ath/ath9k/hw.c
477
ah->ani_function = ATH9K_ANI_ALL;
drivers/net/wireless/ath/ath9k/hw.c
478
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
479
ah->ani_function &= ~ATH9K_ANI_MRC_CCK;
drivers/net/wireless/ath/ath9k/hw.c
481
if (AR_SREV_9285(ah) || AR_SREV_9271(ah))
drivers/net/wireless/ath/ath9k/hw.c
482
ah->tx_trig_level = (AR_FTRIG_256B >> AR_FTRIG_S);
drivers/net/wireless/ath/ath9k/hw.c
484
ah->tx_trig_level = (AR_FTRIG_512B >> AR_FTRIG_S);
drivers/net/wireless/ath/ath9k/hw.c
487
static void ath9k_hw_init_macaddr(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
489
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
499
eeval = ah->eep_ops->get_eeprom(ah, EEP_MAC[i]);
drivers/net/wireless/ath/ath9k/hw.c
517
static int ath9k_hw_post_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
519
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
523
if (!ath9k_hw_chip_test(ah))
drivers/net/wireless/ath/ath9k/hw.c
527
if (!AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
528
ecode = ar9002_hw_rf_claim(ah);
drivers/net/wireless/ath/ath9k/hw.c
53
else if (ah->caps.hw_caps & ATH9K_HW_CAP_FASTCLOCK)
drivers/net/wireless/ath/ath9k/hw.c
533
ecode = ath9k_hw_eeprom_init(ah);
drivers/net/wireless/ath/ath9k/hw.c
537
ath_dbg(ath9k_hw_common(ah), CONFIG, "Eeprom VER: %d, REV: %d\n",
drivers/net/wireless/ath/ath9k/hw.c
538
ah->eep_ops->get_eeprom_ver(ah),
drivers/net/wireless/ath/ath9k/hw.c
539
ah->eep_ops->get_eeprom_rev(ah));
drivers/net/wireless/ath/ath9k/hw.c
541
ath9k_hw_ani_init(ah);
drivers/net/wireless/ath/ath9k/hw.c
547
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
548
u16 regdmn = ah->eep_ops->get_eeprom(ah, EEP_REG_0);
drivers/net/wireless/ath/ath9k/hw.c
550
ah->nf_2g.max = AR_PHY_CCA_MAX_GOOD_VAL_9300_FCC_2GHZ;
drivers/net/wireless/ath/ath9k/hw.c
551
ah->nf_5g.max = AR_PHY_CCA_MAX_GOOD_VAL_9300_FCC_5GHZ;
drivers/net/wireless/ath/ath9k/hw.c
558
static int ath9k_hw_attach_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
560
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/hw.c
561
return ar9002_hw_attach_ops(ah);
drivers/net/wireless/ath/ath9k/hw.c
563
ar9003_hw_attach_ops(ah);
drivers/net/wireless/ath/ath9k/hw.c
568
static int __ath9k_hw_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
570
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
573
if (!ath9k_hw_read_revisions(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
578
switch (ah->hw_version.macVersion) {
drivers/net/wireless/ath/ath9k/hw.c
600
ah->hw_version.macVersion, ah->hw_version.macRev);
drivers/net/wireless/ath/ath9k/hw.c
609
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
610
ah->WARegVal = REG_READ(ah, AR_WA(ah));
drivers/net/wireless/ath/ath9k/hw.c
611
ah->WARegVal |= (AR_WA_D3_L1_DISABLE |
drivers/net/wireless/ath/ath9k/hw.c
615
if (!ath9k_hw_set_reset_reg(ah, ATH9K_RESET_POWER_ON)) {
drivers/net/wireless/ath/ath9k/hw.c
620
if (AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
621
ah->WARegVal |= AR_WA_BIT22;
drivers/net/wireless/ath/ath9k/hw.c
622
REG_WRITE(ah, AR_WA(ah), ah->WARegVal);
drivers/net/wireless/ath/ath9k/hw.c
625
ath9k_hw_init_defaults(ah);
drivers/net/wireless/ath/ath9k/hw.c
626
ath9k_hw_init_config(ah);
drivers/net/wireless/ath/ath9k/hw.c
628
r = ath9k_hw_attach_ops(ah);
drivers/net/wireless/ath/ath9k/hw.c
632
if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE)) {
drivers/net/wireless/ath/ath9k/hw.c
637
if (AR_SREV_9271(ah) || AR_SREV_9100(ah) || AR_SREV_9340(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
638
AR_SREV_9330(ah) || AR_SREV_9550(ah))
drivers/net/wireless/ath/ath9k/hw.c
639
ah->is_pciexpress = false;
drivers/net/wireless/ath/ath9k/hw.c
641
ah->hw_version.phyRev = REG_READ(ah, AR_PHY_CHIP_ID);
drivers/net/wireless/ath/ath9k/hw.c
642
ath9k_hw_init_cal_settings(ah);
drivers/net/wireless/ath/ath9k/hw.c
644
if (!ah->is_pciexpress)
drivers/net/wireless/ath/ath9k/hw.c
645
ath9k_hw_disablepcie(ah);
drivers/net/wireless/ath/ath9k/hw.c
647
r = ath9k_hw_post_init(ah);
drivers/net/wireless/ath/ath9k/hw.c
651
ath9k_hw_init_mode_gain_regs(ah);
drivers/net/wireless/ath/ath9k/hw.c
652
r = ath9k_hw_fill_cap_info(ah);
drivers/net/wireless/ath/ath9k/hw.c
656
ath9k_hw_init_macaddr(ah);
drivers/net/wireless/ath/ath9k/hw.c
657
ath9k_hw_init_hang_checks(ah);
drivers/net/wireless/ath/ath9k/hw.c
664
int ath9k_hw_init(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
667
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
670
switch (ah->hw_version.devid) {
drivers/net/wireless/ath/ath9k/hw.c
697
ah->hw_version.devid);
drivers/net/wireless/ath/ath9k/hw.c
70
static u32 ath9k_hw_mac_to_clks(struct ath_hw *ah, u32 usecs)
drivers/net/wireless/ath/ath9k/hw.c
701
ret = __ath9k_hw_init(ah);
drivers/net/wireless/ath/ath9k/hw.c
709
ath_dynack_init(ah);
drivers/net/wireless/ath/ath9k/hw.c
715
static void ath9k_hw_init_qos(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
717
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
719
REG_WRITE(ah, AR_MIC_QOS_CONTROL, 0x100aa);
drivers/net/wireless/ath/ath9k/hw.c
72
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
720
REG_WRITE(ah, AR_MIC_QOS_SELECT, 0x3210);
drivers/net/wireless/ath/ath9k/hw.c
722
REG_WRITE(ah, AR_QOS_NO_ACK,
drivers/net/wireless/ath/ath9k/hw.c
727
REG_WRITE(ah, AR_TXOP_X, AR_TXOP_X_VAL);
drivers/net/wireless/ath/ath9k/hw.c
728
REG_WRITE(ah, AR_TXOP_0_3, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/hw.c
729
REG_WRITE(ah, AR_TXOP_4_7, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/hw.c
730
REG_WRITE(ah, AR_TXOP_8_11, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/hw.c
731
REG_WRITE(ah, AR_TXOP_12_15, 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/hw.c
733
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
736
u32 ar9003_get_pll_sqsum_dvc(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.c
738
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/hw.c
741
REG_CLR_BIT(ah, PLL3, PLL3_DO_MEAS_MASK);
drivers/net/wireless/ath/ath9k/hw.c
743
REG_SET_BIT(ah, PLL3, PLL3_DO_MEAS_MASK);
drivers/net/wireless/ath/ath9k/hw.c
745
while ((REG_READ(ah, PLL4) & PLL4_MEAS_DONE) == 0) {
drivers/net/wireless/ath/ath9k/hw.c
757
return (REG_READ(ah, PLL3) & SQSUM_DVC_MASK) >> 3;
drivers/net/wireless/ath/ath9k/hw.c
761
static void ath9k_hw_init_pll(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
766
pll = ath9k_hw_compute_pll_control(ah, chan);
drivers/net/wireless/ath/ath9k/hw.c
768
if (AR_SREV_9485(ah) || AR_SREV_9565(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
77
bool ath9k_hw_wait(struct ath_hw *ah, u32 reg, u32 mask, u32 val, u32 timeout)
drivers/net/wireless/ath/ath9k/hw.c
770
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
drivers/net/wireless/ath/ath9k/hw.c
772
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
drivers/net/wireless/ath/ath9k/hw.c
774
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
drivers/net/wireless/ath/ath9k/hw.c
777
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL1,
drivers/net/wireless/ath/ath9k/hw.c
779
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL1,
drivers/net/wireless/ath/ath9k/hw.c
781
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL1,
drivers/net/wireless/ath/ath9k/hw.c
784
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
drivers/net/wireless/ath/ath9k/hw.c
786
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
drivers/net/wireless/ath/ath9k/hw.c
788
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
drivers/net/wireless/ath/ath9k/hw.c
792
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL3,
drivers/net/wireless/ath/ath9k/hw.c
795
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2,
drivers/net/wireless/ath/ath9k/hw.c
798
} else if (AR_SREV_9330(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
801
if (ah->is_clk_25mhz) {
drivers/net/wireless/ath/ath9k/hw.c
812
REG_WRITE(ah, AR_CH0_DDR_DPLL2, ddr_dpll2);
drivers/net/wireless/ath/ath9k/hw.c
815
REG_RMW_FIELD(ah, AR_CH0_DDR_DPLL3,
drivers/net/wireless/ath/ath9k/hw.c
818
REG_WRITE(ah, AR_RTC_PLL_CONTROL(ah),
drivers/net/wireless/ath/ath9k/hw.c
823
REG_WRITE(ah, AR_RTC_PLL_CONTROL2, pll_control2);
drivers/net/wireless/ath/ath9k/hw.c
826
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2, AR_CH0_DPLL2_KD, kd);
drivers/net/wireless/ath/ath9k/hw.c
827
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL2, AR_CH0_DPLL2_KI, 0x06);
drivers/net/wireless/ath/ath9k/hw.c
830
REG_RMW_FIELD(ah, AR_CH0_BB_DPLL3,
drivers/net/wireless/ath/ath9k/hw.c
832
} else if (AR_SREV_9340(ah) || AR_SREV_9550(ah) || AR_SREV_9531(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
833
AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
836
REG_WRITE(ah, AR_RTC_PLL_CONTROL(ah),
drivers/net/wireless/ath/ath9k/hw.c
84
if ((REG_READ(ah, reg) & mask) == val)
drivers/net/wireless/ath/ath9k/hw.c
840
REG_SET_BIT(ah, AR_PHY_PLL_MODE, 0x1 << 16);
drivers/net/wireless/ath/ath9k/hw.c
843
if (ah->is_clk_25mhz) {
drivers/net/wireless/ath/ath9k/hw.c
844
if (AR_SREV_9531(ah) || AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
854
if (AR_SREV_9340(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
860
pll2_divfrac = (AR_SREV_9531(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
861
AR_SREV_9561(ah)) ?
drivers/net/wireless/ath/ath9k/hw.c
867
regval = REG_READ(ah, AR_PHY_PLL_MODE);
drivers/net/wireless/ath/ath9k/hw.c
868
if (AR_SREV_9531(ah) || AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/hw.c
872
REG_WRITE(ah, AR_PHY_PLL_MODE, regval);
drivers/net/wireless/ath/ath9k/hw.c
875
REG_WRITE(ah, AR_PHY_PLL_CONTROL, (refdiv << 27) |
drivers/net/wireless/ath/ath9k/hw.c
879
regval = REG_READ(ah, AR_PHY_PLL_MODE);
drivers/net/wireless/ath/ath9k/hw.c
880
if (AR_SREV_9340(ah))
drivers/net/wireless/ath/ath9k/hw.c
886
else if (AR_SREV_9531(ah) || AR_SREV_9561(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
893
if (AR_SREV_9531(ah))
drivers/net/wireless/ath/ath9k/hw.c
90
ath_dbg(ath9k_hw_common(ah), ANY,
drivers/net/wireless/ath/ath9k/hw.c
901
REG_WRITE(ah, AR_PHY_PLL_MODE, regval);
drivers/net/wireless/ath/ath9k/hw.c
903
if (AR_SREV_9531(ah) || AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/hw.c
904
REG_WRITE(ah, AR_PHY_PLL_MODE,
drivers/net/wireless/ath/ath9k/hw.c
905
REG_READ(ah, AR_PHY_PLL_MODE) & 0xffbfffff);
drivers/net/wireless/ath/ath9k/hw.c
907
REG_WRITE(ah, AR_PHY_PLL_MODE,
drivers/net/wireless/ath/ath9k/hw.c
908
REG_READ(ah, AR_PHY_PLL_MODE) & 0xfffeffff);
drivers/net/wireless/ath/ath9k/hw.c
913
if (AR_SREV_9565(ah))
drivers/net/wireless/ath/ath9k/hw.c
915
REG_WRITE(ah, AR_RTC_PLL_CONTROL(ah), pll);
drivers/net/wireless/ath/ath9k/hw.c
917
if (AR_SREV_9485(ah) || AR_SREV_9340(ah) || AR_SREV_9330(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
918
AR_SREV_9550(ah))
drivers/net/wireless/ath/ath9k/hw.c
92
timeout, reg, REG_READ(ah, reg), mask, val);
drivers/net/wireless/ath/ath9k/hw.c
922
if (AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
924
REG_WRITE(ah, 0x50040, 0x304);
drivers/net/wireless/ath/ath9k/hw.c
929
REG_WRITE(ah, AR_RTC_SLEEP_CLK(ah), AR_RTC_FORCE_DERIVED_CLK);
drivers/net/wireless/ath/ath9k/hw.c
932
static void ath9k_hw_init_interrupt_masks(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.c
943
if (AR_SREV_9340(ah) || AR_SREV_9550(ah) || AR_SREV_9531(ah) ||
drivers/net/wireless/ath/ath9k/hw.c
944
AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/hw.c
947
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
949
if (ah->config.rx_intr_mitigation) {
drivers/net/wireless/ath/ath9k/hw.c
957
if (ah->config.rx_intr_mitigation) {
drivers/net/wireless/ath/ath9k/hw.c
966
if (ah->config.tx_intr_mitigation) {
drivers/net/wireless/ath/ath9k/hw.c
974
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/hw.c
976
REG_WRITE(ah, AR_IMR, imr_reg);
drivers/net/wireless/ath/ath9k/hw.c
977
ah->imrs2_reg |= AR_IMR_S2_GTT;
drivers/net/wireless/ath/ath9k/hw.c
978
REG_WRITE(ah, AR_IMR_S2, ah->imrs2_reg);
drivers/net/wireless/ath/ath9k/hw.c
98
void ath9k_hw_synth_delay(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.c
980
if (ah->msi_enabled) {
drivers/net/wireless/ath/ath9k/hw.c
981
ah->msi_reg = REG_READ(ah, AR_PCIE_MSI(ah));
drivers/net/wireless/ath/ath9k/hw.c
982
ah->msi_reg |= AR_PCIE_MSI_HW_DBI_WR_EN;
drivers/net/wireless/ath/ath9k/hw.c
983
ah->msi_reg &= AR_PCIE_MSI_HW_INT_PENDING_ADDR_MSI_64;
drivers/net/wireless/ath/ath9k/hw.c
984
REG_WRITE(ah, AR_INTCFG, msi_cfg);
drivers/net/wireless/ath/ath9k/hw.c
985
ath_dbg(ath9k_hw_common(ah), ANY,
drivers/net/wireless/ath/ath9k/hw.c
987
REG_READ(ah, AR_INTCFG), msi_cfg);
drivers/net/wireless/ath/ath9k/hw.c
990
if (!AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
991
REG_WRITE(ah, AR_INTR_SYNC_CAUSE(ah), 0xFFFFFFFF);
drivers/net/wireless/ath/ath9k/hw.c
992
REG_WRITE(ah, AR_INTR_SYNC_ENABLE(ah), sync_default);
drivers/net/wireless/ath/ath9k/hw.c
993
REG_WRITE(ah, AR_INTR_SYNC_MASK(ah), 0);
drivers/net/wireless/ath/ath9k/hw.c
996
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/hw.c
998
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/hw.c
999
REG_WRITE(ah, AR_INTR_PRIO_ASYNC_ENABLE(ah), 0);
drivers/net/wireless/ath/ath9k/hw.h
1001
static inline struct ath_common *ath9k_hw_common(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1003
return &ah->common;
drivers/net/wireless/ath/ath9k/hw.h
1006
static inline struct ath_regulatory *ath9k_hw_regulatory(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1008
return &(ath9k_hw_common(ah)->regulatory);
drivers/net/wireless/ath/ath9k/hw.h
1011
static inline struct ath_hw_private_ops *ath9k_hw_private_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1013
return &ah->private_ops;
drivers/net/wireless/ath/ath9k/hw.h
1016
static inline struct ath_hw_ops *ath9k_hw_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1018
return &ah->ops;
drivers/net/wireless/ath/ath9k/hw.h
1027
void ath9k_hw_deinit(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1028
int ath9k_hw_init(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1029
int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1031
int ath9k_hw_fill_cap_info(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1035
void ath9k_hw_gpio_request_in(struct ath_hw *ah, u32 gpio, const char *label);
drivers/net/wireless/ath/ath9k/hw.h
1036
void ath9k_hw_gpio_request_out(struct ath_hw *ah, u32 gpio, const char *label,
drivers/net/wireless/ath/ath9k/hw.h
1038
void ath9k_hw_gpio_free(struct ath_hw *ah, u32 gpio);
drivers/net/wireless/ath/ath9k/hw.h
1039
u32 ath9k_hw_gpio_get(struct ath_hw *ah, u32 gpio);
drivers/net/wireless/ath/ath9k/hw.h
1040
void ath9k_hw_set_gpio(struct ath_hw *ah, u32 gpio, u32 val);
drivers/net/wireless/ath/ath9k/hw.h
1041
void ath9k_hw_setantenna(struct ath_hw *ah, u32 antenna);
drivers/net/wireless/ath/ath9k/hw.h
1044
void ath9k_hw_synth_delay(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1046
bool ath9k_hw_wait(struct ath_hw *ah, u32 reg, u32 mask, u32 val, u32 timeout);
drivers/net/wireless/ath/ath9k/hw.h
1047
void ath9k_hw_write_array(struct ath_hw *ah, const struct ar5416IniArray *array,
drivers/net/wireless/ath/ath9k/hw.h
1049
void ath9k_hw_read_array(struct ath_hw *ah, u32 array[][2], int size);
drivers/net/wireless/ath/ath9k/hw.h
1051
u16 ath9k_hw_computetxtime(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1054
void ath9k_hw_get_channel_centers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1057
u32 ath9k_hw_getrxfilter(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1058
void ath9k_hw_setrxfilter(struct ath_hw *ah, u32 bits);
drivers/net/wireless/ath/ath9k/hw.h
1059
bool ath9k_hw_phy_disable(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1060
bool ath9k_hw_disable(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1061
void ath9k_hw_set_txpowerlimit(struct ath_hw *ah, u32 limit, bool test);
drivers/net/wireless/ath/ath9k/hw.h
1062
void ath9k_hw_setopmode(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1063
void ath9k_hw_setmcastfilter(struct ath_hw *ah, u32 filter0, u32 filter1);
drivers/net/wireless/ath/ath9k/hw.h
1064
void ath9k_hw_write_associd(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1065
u32 ath9k_hw_gettsf32(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1066
u64 ath9k_hw_gettsf64(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1067
void ath9k_hw_settsf64(struct ath_hw *ah, u64 tsf64);
drivers/net/wireless/ath/ath9k/hw.h
1068
void ath9k_hw_reset_tsf(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1070
void ath9k_hw_set_tsfadjust(struct ath_hw *ah, bool set);
drivers/net/wireless/ath/ath9k/hw.h
1071
void ath9k_hw_init_global_settings(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1072
u32 ar9003_get_pll_sqsum_dvc(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1073
void ath9k_hw_set11nmac2040(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
1074
void ath9k_hw_beaconinit(struct ath_hw *ah, u32 next_beacon, u32 beacon_period);
drivers/net/wireless/ath/ath9k/hw.h
1075
void ath9k_hw_set_sta_beacon_timers(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1077
void ath9k_hw_check_nav(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1078
bool ath9k_hw_check_alive(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1080
bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode);
drivers/net/wireless/ath/ath9k/hw.h
1083
struct ath_gen_timer *ath_gen_timer_alloc(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1088
void ath9k_hw_gen_timer_start(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1092
void ath9k_hw_gen_timer_start_tsf2(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1093
void ath9k_hw_gen_timer_stop(struct ath_hw *ah, struct ath_gen_timer *timer);
drivers/net/wireless/ath/ath9k/hw.h
1095
void ath_gen_timer_free(struct ath_hw *ah, struct ath_gen_timer *timer);
drivers/net/wireless/ath/ath9k/hw.h
1098
void ath9k_hw_name(struct ath_hw *ah, char *hw_name, size_t len);
drivers/net/wireless/ath/ath9k/hw.h
1101
void ath9k_hw_get_delta_slope_vals(struct ath_hw *ah, u32 coef_scaled,
drivers/net/wireless/ath/ath9k/hw.h
1103
void ath9k_hw_apply_txpower(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
1110
int ar9002_hw_rf_claim(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1111
void ar9002_hw_enable_async_fifo(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1117
bool ar9003_hw_bb_watchdog_check(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1118
void ar9003_hw_bb_watchdog_config(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1119
void ar9003_hw_bb_watchdog_read(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1120
void ar9003_hw_bb_watchdog_dbg_info(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1121
void ar9003_hw_disable_phy_restart(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1122
void ar9003_paprd_enable(struct ath_hw *ah, bool val);
drivers/net/wireless/ath/ath9k/hw.h
1123
void ar9003_paprd_populate_single_table(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1126
int ar9003_paprd_create_curve(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1128
void ar9003_paprd_setup_gain_table(struct ath_hw *ah, int chain);
drivers/net/wireless/ath/ath9k/hw.h
1129
int ar9003_paprd_init_table(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1130
bool ar9003_paprd_is_done(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1131
bool ar9003_is_paprd_enabled(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1132
void ar9003_hw_set_chain_masks(struct ath_hw *ah, u8 rx, u8 tx);
drivers/net/wireless/ath/ath9k/hw.h
1133
void ar9003_hw_init_rate_txpower(struct ath_hw *ah, u8 *rate_array,
drivers/net/wireless/ath/ath9k/hw.h
1135
void ar5008_hw_cmn_spur_mitigate(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1137
void ar5008_hw_init_rate_txpower(struct ath_hw *ah, int16_t *rate_array,
drivers/net/wireless/ath/ath9k/hw.h
1141
int ar5008_hw_attach_phy_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1142
void ar9002_hw_attach_phy_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1143
void ar9003_hw_attach_phy_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1145
void ar9002_hw_attach_calib_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1146
void ar9003_hw_attach_calib_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1148
int ar9002_hw_attach_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1149
void ar9003_hw_attach_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1151
void ar9002_hw_load_ani_reg(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
1153
void ath9k_ani_reset(struct ath_hw *ah, bool is_scanning);
drivers/net/wireless/ath/ath9k/hw.h
1154
void ath9k_hw_ani_monitor(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
1156
void ath9k_hw_set_ack_timeout(struct ath_hw *ah, u32 us);
drivers/net/wireless/ath/ath9k/hw.h
1157
void ath9k_hw_set_cts_timeout(struct ath_hw *ah, u32 us);
drivers/net/wireless/ath/ath9k/hw.h
1158
void ath9k_hw_setslottime(struct ath_hw *ah, u32 us);
drivers/net/wireless/ath/ath9k/hw.h
1161
void ar9003_hw_attach_aic_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1162
static inline bool ath9k_hw_btcoex_is_enabled(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1164
return ah->btcoex_hw.enabled;
drivers/net/wireless/ath/ath9k/hw.h
1166
static inline bool ath9k_hw_mci_is_enabled(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1168
return ah->common.btcoex_enabled &&
drivers/net/wireless/ath/ath9k/hw.h
1169
(ah->caps.hw_caps & ATH9K_HW_CAP_MCI);
drivers/net/wireless/ath/ath9k/hw.h
1172
void ath9k_hw_btcoex_enable(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1174
ath9k_hw_get_btcoex_scheme(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1176
return ah->btcoex_hw.scheme;
drivers/net/wireless/ath/ath9k/hw.h
1179
static inline void ar9003_hw_attach_aic_ops(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1182
static inline bool ath9k_hw_btcoex_is_enabled(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1186
static inline bool ath9k_hw_mci_is_enabled(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1190
static inline void ath9k_hw_btcoex_enable(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1194
ath9k_hw_get_btcoex_scheme(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1202
int ath9k_hw_wow_apply_pattern(struct ath_hw *ah, u8 *user_pattern,
drivers/net/wireless/ath/ath9k/hw.h
1205
u32 ath9k_hw_wow_wakeup(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
1206
void ath9k_hw_wow_enable(struct ath_hw *ah, u32 pattern_enable);
drivers/net/wireless/ath/ath9k/hw.h
1208
static inline int ath9k_hw_wow_apply_pattern(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
1216
static inline u32 ath9k_hw_wow_wakeup(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/hw.h
1220
static inline void ath9k_hw_wow_enable(struct ath_hw *ah, u32 pattern_enable)
drivers/net/wireless/ath/ath9k/hw.h
134
(ath9k_hw_common(ah)->bus_ops->ath_bus_type \
drivers/net/wireless/ath/ath9k/hw.h
140
ath9k_hw_write_array(ah, iniarray, column, &(regWr))
drivers/net/wireless/ath/ath9k/hw.h
141
#define REG_READ_ARRAY(ah, array, size) \
drivers/net/wireless/ath/ath9k/hw.h
142
ath9k_hw_read_array(ah, array, size)
drivers/net/wireless/ath/ath9k/hw.h
165
#define RTC_PLL_SETTLE_DELAY (AR_SREV_9340(ah) ? 1000 : 100)
drivers/net/wireless/ath/ath9k/hw.h
630
void (*init_hang_checks)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
631
bool (*detect_mac_hang)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
632
bool (*detect_bb_hang)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
635
void (*init_cal_settings)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
636
bool (*init_cal)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
638
void (*init_mode_gain_regs)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
639
void (*setup_calibration)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
643
int (*rf_set_freq)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
645
void (*spur_mitigate_freq)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
647
bool (*set_rf_regs)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
650
void (*set_channel_regs)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
651
void (*init_bb)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
653
int (*process_ini)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
654
void (*olc_init)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
655
void (*set_rfmode)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
656
void (*mark_phy_inactive)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
657
void (*set_delta_slope)(struct ath_hw *ah, struct ath9k_channel *chan);
drivers/net/wireless/ath/ath9k/hw.h
658
bool (*rfbus_req)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
659
void (*rfbus_done)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
660
void (*restore_chainmask)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
661
u32 (*compute_pll_control)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
663
bool (*ani_control)(struct ath_hw *ah, enum ath9k_ani_cmd cmd,
drivers/net/wireless/ath/ath9k/hw.h
665
void (*do_getnf)(struct ath_hw *ah, int16_t nfarray[NUM_NF_READINGS]);
drivers/net/wireless/ath/ath9k/hw.h
666
void (*set_radar_params)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
668
int (*fast_chan_change)(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
672
void (*ani_cache_ini_regs)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
675
bool (*is_aic_enabled)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
724
void (*config_pci_powersave)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
726
void (*rx_enable)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
728
int (*calibrate)(struct ath_hw *ah, struct ath9k_channel *chan,
drivers/net/wireless/ath/ath9k/hw.h
730
bool (*get_isr)(struct ath_hw *ah, enum ath9k_int *masked,
drivers/net/wireless/ath/ath9k/hw.h
732
void (*set_txdesc)(struct ath_hw *ah, void *ds,
drivers/net/wireless/ath/ath9k/hw.h
734
int (*proc_txdesc)(struct ath_hw *ah, void *ds,
drivers/net/wireless/ath/ath9k/hw.h
736
int (*get_duration)(struct ath_hw *ah, const void *ds, int index);
drivers/net/wireless/ath/ath9k/hw.h
737
void (*antdiv_comb_conf_get)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
739
void (*antdiv_comb_conf_set)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
741
void (*spectral_scan_config)(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/hw.h
743
void (*spectral_scan_trigger)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
744
void (*spectral_scan_wait)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
746
void (*tx99_start)(struct ath_hw *ah, u32 qnum);
drivers/net/wireless/ath/ath9k/hw.h
747
void (*tx99_stop)(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/hw.h
748
void (*tx99_set_txpower)(struct ath_hw *ah, u8 power);
drivers/net/wireless/ath/ath9k/init.c
1011
struct ath_hw *ah;
drivers/net/wireless/ath/ath9k/init.c
1020
ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
1021
common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
1058
error = ath9k_init_debug(ah);
drivers/net/wireless/ath/ath9k/init.c
174
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/init.c
175
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
178
if (NR_CPUS > 1 && ah->config.serialize_regmode == SER_REG_MODE_ON) {
drivers/net/wireless/ath/ath9k/init.c
189
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/init.c
190
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
194
if (NR_CPUS > 1 && ah->config.serialize_regmode == SER_REG_MODE_ON) {
drivers/net/wireless/ath/ath9k/init.c
229
struct ath_hw *ah = hw_priv;
drivers/net/wireless/ath/ath9k/init.c
230
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
235
if (NR_CPUS > 1 && ah->config.serialize_regmode == SER_REG_MODE_ON) {
drivers/net/wireless/ath/ath9k/init.c
254
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
255
struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/init.c
265
if (!ah->curchan)
drivers/net/wireless/ath/ath9k/init.c
268
sc->cur_chan->txpower = 2 * ah->curchan->chan->max_power;
drivers/net/wireless/ath/ath9k/init.c
270
ath9k_hw_set_txpowerlimit(ah, sc->cur_chan->txpower, false);
drivers/net/wireless/ath/ath9k/init.c
271
ath9k_cmn_update_txpow(ah, sc->cur_chan->cur_txpower,
drivers/net/wireless/ath/ath9k/init.c
33
struct ath_hw *ah;
drivers/net/wireless/ath/ath9k/init.c
439
sc->spec_priv.ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
450
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
451
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/init.c
452
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
462
ah->config.xlna_gpio = 9;
drivers/net/wireless/ath/ath9k/init.c
463
ah->config.xatten_margin_cfg = true;
drivers/net/wireless/ath/ath9k/init.c
464
ah->config.alt_mingainidx = true;
drivers/net/wireless/ath/ath9k/init.c
465
ah->config.ant_ctrl_comm2g_switch_enable = 0x000BBB88;
drivers/net/wireless/ath/ath9k/init.c
506
ah->config.pcie_waen = 0x0040473b;
drivers/net/wireless/ath/ath9k/init.c
515
ah->config.pll_pwrsave = 1;
drivers/net/wireless/ath/ath9k/init.c
518
ah->config.pll_pwrsave = 0;
drivers/net/wireless/ath/ath9k/init.c
523
ah->config.led_active_high = true;
drivers/net/wireless/ath/ath9k/init.c
532
ec->ah->eeprom_blob = eeprom_blob;
drivers/net/wireless/ath/ath9k/init.c
540
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
545
ec.ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
550
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/init.c
557
if (!ah->eeprom_blob) {
drivers/net/wireless/ath/ath9k/init.c
558
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/init.c
573
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
610
ah->nvmem_blob = devm_kmemdup(sc->dev, buf, len, GFP_KERNEL);
drivers/net/wireless/ath/ath9k/init.c
612
if (!ah->nvmem_blob)
drivers/net/wireless/ath/ath9k/init.c
615
ah->nvmem_blob_len = len;
drivers/net/wireless/ath/ath9k/init.c
616
ah->ah_flags &= ~AH_USE_EEPROM;
drivers/net/wireless/ath/ath9k/init.c
617
ah->ah_flags |= AH_NO_EEP_SWAP;
drivers/net/wireless/ath/ath9k/init.c
625
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
626
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
640
ath_bus_type_to_string(bus_type), dev_name(ah->dev));
drivers/net/wireless/ath/ath9k/init.c
646
ah->ah_flags &= ~AH_USE_EEPROM;
drivers/net/wireless/ath/ath9k/init.c
647
ah->ah_flags |= AH_NO_EEP_SWAP;
drivers/net/wireless/ath/ath9k/init.c
660
struct ath_hw *ah = NULL;
drivers/net/wireless/ath/ath9k/init.c
666
ah = devm_kzalloc(sc->dev, sizeof(struct ath_hw), GFP_KERNEL);
drivers/net/wireless/ath/ath9k/init.c
667
if (!ah)
drivers/net/wireless/ath/ath9k/init.c
670
ah->dev = sc->dev;
drivers/net/wireless/ath/ath9k/init.c
671
ah->hw = sc->hw;
drivers/net/wireless/ath/ath9k/init.c
672
ah->hw_version.devid = devid;
drivers/net/wireless/ath/ath9k/init.c
673
ah->ah_flags |= AH_USE_EEPROM;
drivers/net/wireless/ath/ath9k/init.c
674
ah->led_pin = -1;
drivers/net/wireless/ath/ath9k/init.c
675
ah->reg_ops.read = ath9k_ioread32;
drivers/net/wireless/ath/ath9k/init.c
676
ah->reg_ops.multi_read = ath9k_multi_ioread32;
drivers/net/wireless/ath/ath9k/init.c
677
ah->reg_ops.write = ath9k_iowrite32;
drivers/net/wireless/ath/ath9k/init.c
678
ah->reg_ops.rmw = ath9k_reg_rmw;
drivers/net/wireless/ath/ath9k/init.c
679
pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/init.c
681
common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
686
sc->sc_ah = ah;
drivers/net/wireless/ath/ath9k/init.c
694
common->ops = &ah->reg_ops;
drivers/net/wireless/ath/ath9k/init.c
697
common->ah = ah;
drivers/net/wireless/ath/ath9k/init.c
718
ah->config.led_active_high = ath9k_led_active_high == 1;
drivers/net/wireless/ath/ath9k/init.c
756
ret = ath9k_hw_init(ah);
drivers/net/wireless/ath/ath9k/init.c
791
ath9k_hw_deinit(ah);
drivers/net/wireless/ath/ath9k/init.c
802
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
803
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
810
ah->curchan = &ah->channels[chan->hw_value];
drivers/net/wireless/ath/ath9k/init.c
812
ath9k_cmn_get_channel(sc->hw, ah, &chandef);
drivers/net/wireless/ath/ath9k/init.c
813
ath9k_hw_set_txpowerlimit(ah, MAX_COMBINED_POWER, true);
drivers/net/wireless/ath/ath9k/init.c
819
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
820
struct ath9k_channel *curchan = ah->curchan;
drivers/net/wireless/ath/ath9k/init.c
822
if (ah->caps.hw_caps & ATH9K_HW_CAP_2GHZ)
drivers/net/wireless/ath/ath9k/init.c
824
if (ah->caps.hw_caps & ATH9K_HW_CAP_5GHZ)
drivers/net/wireless/ath/ath9k/init.c
827
ah->curchan = curchan;
drivers/net/wireless/ath/ath9k/init.c
882
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
883
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
906
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/init.c
907
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/init.c
926
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/init.c
974
hw->wiphy->available_antennas_rx = BIT(ah->caps.max_rxchains) - 1;
drivers/net/wireless/ath/ath9k/init.c
975
hw->wiphy->available_antennas_tx = BIT(ah->caps.max_txchains) - 1;
drivers/net/wireless/ath/ath9k/init.c
978
if (ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB)
drivers/net/wireless/ath/ath9k/init.c
995
ath9k_cmn_reload_chainmask(ah);
drivers/net/wireless/ath/ath9k/link.c
179
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
180
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/link.c
181
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/link.c
189
ar9003_paprd_enable(ah, false);
drivers/net/wireless/ath/ath9k/link.c
191
if (!(ah->txchainmask & BIT(chain)))
drivers/net/wireless/ath/ath9k/link.c
194
ar9003_paprd_populate_single_table(ah, caldata, chain);
drivers/net/wireless/ath/ath9k/link.c
198
ar9003_paprd_enable(ah, true);
drivers/net/wireless/ath/ath9k/link.c
205
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
206
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/link.c
245
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
248
struct ath9k_hw_cal_data *caldata = ah->caldata;
drivers/net/wireless/ath/ath9k/link.c
249
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/link.c
265
if (ar9003_paprd_init_table(ah) < 0)
drivers/net/wireless/ath/ath9k/link.c
283
if (!(ah->txchainmask & BIT(chain)))
drivers/net/wireless/ath/ath9k/link.c
287
ar9003_paprd_setup_gain_table(ah, chain);
drivers/net/wireless/ath/ath9k/link.c
294
if (!ar9003_paprd_is_done(ah)) {
drivers/net/wireless/ath/ath9k/link.c
300
ret = ar9003_paprd_create_curve(ah, caldata, chain);
drivers/net/wireless/ath/ath9k/link.c
337
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
345
if (ah->caldata && test_bit(NFCAL_INTF, &ah->caldata->cal_flags))
drivers/net/wireless/ath/ath9k/link.c
350
short_cal_interval = (ah->opmode == NL80211_IFTYPE_AP) ?
drivers/net/wireless/ath/ath9k/link.c
355
if (++ah->ani_skip_count >= ATH_ANI_MAX_SKIP_COUNT) {
drivers/net/wireless/ath/ath9k/link.c
362
ah->ani_skip_count = 0;
drivers/net/wireless/ath/ath9k/link.c
385
common->ani.caldone = ath9k_hw_reset_calvalid(ah);
drivers/net/wireless/ath/ath9k/link.c
392
if ((timestamp - common->ani.checkani_timer) >= ah->config.ani_poll_interval) {
drivers/net/wireless/ath/ath9k/link.c
400
ath9k_hw_ani_monitor(ah, ah->curchan);
drivers/net/wireless/ath/ath9k/link.c
407
int ret = ath9k_hw_calibrate(ah, ah->curchan, ah->rxchainmask,
drivers/net/wireless/ath/ath9k/link.c
433
cal_interval = min(cal_interval, (u32)ah->config.ani_poll_interval);
drivers/net/wireless/ath/ath9k/link.c
439
if (ar9003_is_paprd_enabled(ah) && ah->caldata) {
drivers/net/wireless/ath/ath9k/link.c
440
if (!test_bit(PAPRD_DONE, &ah->caldata->cal_flags)) {
drivers/net/wireless/ath/ath9k/link.c
442
} else if (!ah->paprd_table_write_done) {
drivers/net/wireless/ath/ath9k/link.c
452
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
453
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/link.c
467
jiffies + msecs_to_jiffies((u32)ah->config.ani_poll_interval));
drivers/net/wireless/ath/ath9k/link.c
480
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
488
if (ah->opmode == NL80211_IFTYPE_ADHOC) {
drivers/net/wireless/ath/ath9k/link.c
491
} else if (ah->opmode == NL80211_IFTYPE_AP) {
drivers/net/wireless/ath/ath9k/link.c
500
} else if (ah->opmode == NL80211_IFTYPE_STATION) {
drivers/net/wireless/ath/ath9k/link.c
519
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
520
struct ath9k_channel *chan = &ah->channels[channel];
drivers/net/wireless/ath/ath9k/link.c
525
survey->noise = ath9k_hw_getchan_noise(ah, chan,
drivers/net/wireless/ath/ath9k/link.c
537
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/link.c
538
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/link.c
539
int pos = ah->curchan - &ah->channels[0];
drivers/net/wireless/ath/ath9k/link.c
545
if (!ah->curchan)
drivers/net/wireless/ath/ath9k/link.c
548
if (ah->power_mode == ATH9K_PM_AWAKE)
drivers/net/wireless/ath/ath9k/mac.c
1000
ah->imrs2_reg &= ~(AR_IMR_S2_TIM |
drivers/net/wireless/ath/ath9k/mac.c
1009
if (ah->config.hw_hang_checks & HW_BB_WATCHDOG) {
drivers/net/wireless/ath/ath9k/mac.c
1011
ah->imrs2_reg &= ~AR_IMR_S2_BB_WATCHDOG;
drivers/net/wireless/ath/ath9k/mac.c
1014
ah->imrs2_reg |= mask2;
drivers/net/wireless/ath/ath9k/mac.c
1015
REG_WRITE(ah, AR_IMR_S2, ah->imrs2_reg);
drivers/net/wireless/ath/ath9k/mac.c
1019
REG_SET_BIT(ah, AR_IMR_S5, AR_IMR_S5_TIM_TIMER);
drivers/net/wireless/ath/ath9k/mac.c
1021
REG_CLR_BIT(ah, AR_IMR_S5, AR_IMR_S5_TIM_TIMER);
drivers/net/wireless/ath/ath9k/mac.c
1031
void ath9k_hw_set_tx_filter(struct ath_hw *ah, u8 destidx, bool set)
drivers/net/wireless/ath/ath9k/mac.c
1042
ath_dbg(ath9k_hw_common(ah), PS,
drivers/net/wireless/ath/ath9k/mac.c
1045
REG_WRITE(ah, AR_D_TXBLK_BASE, filter);
drivers/net/wireless/ath/ath9k/mac.c
105
bool ath9k_hw_updatetxtriglevel(struct ath_hw *ah, bool bIncTrigLevel)
drivers/net/wireless/ath/ath9k/mac.c
109
if (ah->tx_trig_level >= ah->config.max_txtrig_level)
drivers/net/wireless/ath/ath9k/mac.c
112
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/mac.c
114
txcfg = REG_READ(ah, AR_TXCFG);
drivers/net/wireless/ath/ath9k/mac.c
118
if (curLevel < ah->config.max_txtrig_level)
drivers/net/wireless/ath/ath9k/mac.c
123
REG_WRITE(ah, AR_TXCFG,
drivers/net/wireless/ath/ath9k/mac.c
126
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/mac.c
128
ah->tx_trig_level = newLevel;
drivers/net/wireless/ath/ath9k/mac.c
134
void ath9k_hw_abort_tx_dma(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
139
if (ah->curchan) {
drivers/net/wireless/ath/ath9k/mac.c
140
if (IS_CHAN_HALF_RATE(ah->curchan))
drivers/net/wireless/ath/ath9k/mac.c
142
else if (IS_CHAN_QUARTER_RATE(ah->curchan))
drivers/net/wireless/ath/ath9k/mac.c
146
REG_WRITE(ah, AR_Q_TXD, AR_Q_TXD_M);
drivers/net/wireless/ath/ath9k/mac.c
148
REG_SET_BIT(ah, AR_PCU_MISC, AR_PCU_FORCE_QUIET_COLL | AR_PCU_CLEAR_VMF);
drivers/net/wireless/ath/ath9k/mac.c
149
REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);
drivers/net/wireless/ath/ath9k/mac.c
150
REG_SET_BIT(ah, AR_D_GBL_IFS_MISC, AR_D_GBL_IFS_MISC_IGNORE_BACKOFF);
drivers/net/wireless/ath/ath9k/mac.c
157
if (!ath9k_hw_numtxpending(ah, q))
drivers/net/wireless/ath/ath9k/mac.c
162
REG_CLR_BIT(ah, AR_PCU_MISC, AR_PCU_FORCE_QUIET_COLL | AR_PCU_CLEAR_VMF);
drivers/net/wireless/ath/ath9k/mac.c
163
REG_CLR_BIT(ah, AR_DIAG_SW, AR_DIAG_FORCE_CH_IDLE_HIGH);
drivers/net/wireless/ath/ath9k/mac.c
164
REG_CLR_BIT(ah, AR_D_GBL_IFS_MISC, AR_D_GBL_IFS_MISC_IGNORE_BACKOFF);
drivers/net/wireless/ath/ath9k/mac.c
166
REG_WRITE(ah, AR_Q_TXD, 0);
drivers/net/wireless/ath/ath9k/mac.c
170
bool ath9k_hw_stop_dma_queue(struct ath_hw *ah, u32 q)
drivers/net/wireless/ath/ath9k/mac.c
177
REG_WRITE(ah, AR_Q_TXD, 1 << q);
drivers/net/wireless/ath/ath9k/mac.c
183
if (ath9k_hw_numtxpending(ah, q) == 0)
drivers/net/wireless/ath/ath9k/mac.c
187
REG_WRITE(ah, AR_Q_TXD, 0);
drivers/net/wireless/ath/ath9k/mac.c
196
bool ath9k_hw_set_txq_props(struct ath_hw *ah, int q,
drivers/net/wireless/ath/ath9k/mac.c
200
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
203
qi = &ah->txq[q];
drivers/net/wireless/ath/ath9k/mac.c
21
static void ath9k_hw_set_txq_interrupts(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/mac.c
24
ath_dbg(ath9k_hw_common(ah), INTERRUPT,
drivers/net/wireless/ath/ath9k/mac.c
26
ah->txok_interrupt_mask, ah->txerr_interrupt_mask,
drivers/net/wireless/ath/ath9k/mac.c
261
bool ath9k_hw_get_txq_props(struct ath_hw *ah, int q,
drivers/net/wireless/ath/ath9k/mac.c
264
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
267
qi = &ah->txq[q];
drivers/net/wireless/ath/ath9k/mac.c
27
ah->txdesc_interrupt_mask, ah->txeol_interrupt_mask,
drivers/net/wireless/ath/ath9k/mac.c
28
ah->txurn_interrupt_mask);
drivers/net/wireless/ath/ath9k/mac.c
293
int ath9k_hw_setuptxqueue(struct ath_hw *ah, enum ath9k_tx_queue type,
drivers/net/wireless/ath/ath9k/mac.c
296
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
30
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/mac.c
32
REG_WRITE(ah, AR_IMR_S0,
drivers/net/wireless/ath/ath9k/mac.c
323
qi = &ah->txq[q];
drivers/net/wireless/ath/ath9k/mac.c
33
SM(ah->txok_interrupt_mask, AR_IMR_S0_QCU_TXOK)
drivers/net/wireless/ath/ath9k/mac.c
331
(void) ath9k_hw_set_txq_props(ah, q, qinfo);
drivers/net/wireless/ath/ath9k/mac.c
337
static void ath9k_hw_clear_queue_interrupts(struct ath_hw *ah, u32 q)
drivers/net/wireless/ath/ath9k/mac.c
339
ah->txok_interrupt_mask &= ~(1 << q);
drivers/net/wireless/ath/ath9k/mac.c
34
| SM(ah->txdesc_interrupt_mask, AR_IMR_S0_QCU_TXDESC));
drivers/net/wireless/ath/ath9k/mac.c
340
ah->txerr_interrupt_mask &= ~(1 << q);
drivers/net/wireless/ath/ath9k/mac.c
341
ah->txdesc_interrupt_mask &= ~(1 << q);
drivers/net/wireless/ath/ath9k/mac.c
342
ah->txeol_interrupt_mask &= ~(1 << q);
drivers/net/wireless/ath/ath9k/mac.c
343
ah->txurn_interrupt_mask &= ~(1 << q);
drivers/net/wireless/ath/ath9k/mac.c
346
bool ath9k_hw_releasetxqueue(struct ath_hw *ah, u32 q)
drivers/net/wireless/ath/ath9k/mac.c
348
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
35
REG_WRITE(ah, AR_IMR_S1,
drivers/net/wireless/ath/ath9k/mac.c
351
qi = &ah->txq[q];
drivers/net/wireless/ath/ath9k/mac.c
36
SM(ah->txerr_interrupt_mask, AR_IMR_S1_QCU_TXERR)
drivers/net/wireless/ath/ath9k/mac.c
360
ath9k_hw_clear_queue_interrupts(ah, q);
drivers/net/wireless/ath/ath9k/mac.c
361
ath9k_hw_set_txq_interrupts(ah, qi);
drivers/net/wireless/ath/ath9k/mac.c
367
bool ath9k_hw_resettxqueue(struct ath_hw *ah, u32 q)
drivers/net/wireless/ath/ath9k/mac.c
369
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
37
| SM(ah->txeol_interrupt_mask, AR_IMR_S1_QCU_TXEOL));
drivers/net/wireless/ath/ath9k/mac.c
373
qi = &ah->txq[q];
drivers/net/wireless/ath/ath9k/mac.c
388
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/mac.c
39
ah->imrs2_reg &= ~AR_IMR_S2_QCU_TXURN;
drivers/net/wireless/ath/ath9k/mac.c
390
REG_WRITE(ah, AR_DLCL_IFS(q),
drivers/net/wireless/ath/ath9k/mac.c
395
REG_WRITE(ah, AR_DRETRY_LIMIT(q),
drivers/net/wireless/ath/ath9k/mac.c
40
ah->imrs2_reg |= (ah->txurn_interrupt_mask & AR_IMR_S2_QCU_TXURN);
drivers/net/wireless/ath/ath9k/mac.c
400
REG_WRITE(ah, AR_QMISC(q), AR_Q_MISC_DCU_EARLY_TERM_REQ);
drivers/net/wireless/ath/ath9k/mac.c
402
if (AR_SREV_9340(ah) && !AR_SREV_9340_13_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/mac.c
403
REG_WRITE(ah, AR_DMISC(q),
drivers/net/wireless/ath/ath9k/mac.c
406
REG_WRITE(ah, AR_DMISC(q),
drivers/net/wireless/ath/ath9k/mac.c
41
REG_WRITE(ah, AR_IMR_S2, ah->imrs2_reg);
drivers/net/wireless/ath/ath9k/mac.c
410
REG_WRITE(ah, AR_QCBRCFG(q),
drivers/net/wireless/ath/ath9k/mac.c
413
REG_SET_BIT(ah, AR_QMISC(q), AR_Q_MISC_FSP_CBR |
drivers/net/wireless/ath/ath9k/mac.c
418
REG_WRITE(ah, AR_QRDYTIMECFG(q),
drivers/net/wireless/ath/ath9k/mac.c
423
REG_WRITE(ah, AR_DCHNTIME(q),
drivers/net/wireless/ath/ath9k/mac.c
429
REG_SET_BIT(ah, AR_QMISC(q), AR_Q_MISC_RDYTIME_EXP_POLICY);
drivers/net/wireless/ath/ath9k/mac.c
43
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/mac.c
432
REG_SET_BIT(ah, AR_DMISC(q), AR_D_MISC_POST_FR_BKOFF_DIS);
drivers/net/wireless/ath/ath9k/mac.c
434
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/mac.c
437
REG_SET_BIT(ah, AR_DMISC(q), AR_D_MISC_FRAG_BKOFF_EN);
drivers/net/wireless/ath/ath9k/mac.c
441
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/mac.c
443
REG_SET_BIT(ah, AR_QMISC(q),
drivers/net/wireless/ath/ath9k/mac.c
448
REG_SET_BIT(ah, AR_DMISC(q),
drivers/net/wireless/ath/ath9k/mac.c
454
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/mac.c
46
u32 ath9k_hw_gettxbuf(struct ath_hw *ah, u32 q)
drivers/net/wireless/ath/ath9k/mac.c
461
if (AR_SREV_9300_20_OR_LATER(ah) &&
drivers/net/wireless/ath/ath9k/mac.c
462
ah->opmode != NL80211_IFTYPE_ADHOC) {
drivers/net/wireless/ath/ath9k/mac.c
463
REG_WRITE(ah, AR_DLCL_IFS(q), SM(0, AR_D_LCL_IFS_CWMIN)
drivers/net/wireless/ath/ath9k/mac.c
469
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/ath9k/mac.c
471
REG_SET_BIT(ah, AR_QMISC(q),
drivers/net/wireless/ath/ath9k/mac.c
476
(ah->config.sw_beacon_response_time -
drivers/net/wireless/ath/ath9k/mac.c
477
ah->config.dma_beacon_response_time)) * 1024;
drivers/net/wireless/ath/ath9k/mac.c
478
REG_WRITE(ah, AR_QRDYTIMECFG(q),
drivers/net/wireless/ath/ath9k/mac.c
48
return REG_READ(ah, AR_QTXDP(q));
drivers/net/wireless/ath/ath9k/mac.c
480
REG_SET_BIT(ah, AR_DMISC(q),
drivers/net/wireless/ath/ath9k/mac.c
484
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/ath9k/mac.c
488
REG_SET_BIT(ah, AR_QMISC(q), AR_Q_MISC_CBR_INCR_DIS1);
drivers/net/wireless/ath/ath9k/mac.c
491
REG_SET_BIT(ah, AR_DMISC(q), AR_D_MISC_POST_FR_BKOFF_DIS);
drivers/net/wireless/ath/ath9k/mac.c
498
REG_SET_BIT(ah, AR_DMISC(q),
drivers/net/wireless/ath/ath9k/mac.c
504
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/mac.c
505
REG_WRITE(ah, AR_Q_DESC_CRCCHK, AR_Q_DESC_CRCCHK_EN);
drivers/net/wireless/ath/ath9k/mac.c
507
ath9k_hw_clear_queue_interrupts(ah, q);
drivers/net/wireless/ath/ath9k/mac.c
509
ah->txok_interrupt_mask |= 1 << q;
drivers/net/wireless/ath/ath9k/mac.c
510
ah->txerr_interrupt_mask |= 1 << q;
drivers/net/wireless/ath/ath9k/mac.c
513
ah->txdesc_interrupt_mask |= 1 << q;
drivers/net/wireless/ath/ath9k/mac.c
515
ah->txeol_interrupt_mask |= 1 << q;
drivers/net/wireless/ath/ath9k/mac.c
517
ah->txurn_interrupt_mask |= 1 << q;
drivers/net/wireless/ath/ath9k/mac.c
518
ath9k_hw_set_txq_interrupts(ah, qi);
drivers/net/wireless/ath/ath9k/mac.c
52
void ath9k_hw_puttxbuf(struct ath_hw *ah, u32 q, u32 txdp)
drivers/net/wireless/ath/ath9k/mac.c
524
int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
drivers/net/wireless/ath/ath9k/mac.c
54
REG_WRITE(ah, AR_QTXDP(q), txdp);
drivers/net/wireless/ath/ath9k/mac.c
58
void ath9k_hw_txstart(struct ath_hw *ah, u32 q)
drivers/net/wireless/ath/ath9k/mac.c
585
if (AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/mac.c
60
ath_dbg(ath9k_hw_common(ah), QUEUE, "Enable TXE on queue: %u\n", q);
drivers/net/wireless/ath/ath9k/mac.c
61
REG_WRITE(ah, AR_Q_TXE, 1 << q);
drivers/net/wireless/ath/ath9k/mac.c
639
bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set)
drivers/net/wireless/ath/ath9k/mac.c
644
REG_SET_BIT(ah, AR_DIAG_SW,
drivers/net/wireless/ath/ath9k/mac.c
647
if (!ath9k_hw_wait(ah, AR_OBS_BUS_1, AR_OBS_BUS_1_RX_STATE,
drivers/net/wireless/ath/ath9k/mac.c
649
REG_CLR_BIT(ah, AR_DIAG_SW,
drivers/net/wireless/ath/ath9k/mac.c
65
u32 ath9k_hw_numtxpending(struct ath_hw *ah, u32 q)
drivers/net/wireless/ath/ath9k/mac.c
653
reg = REG_READ(ah, AR_OBS_BUS_1);
drivers/net/wireless/ath/ath9k/mac.c
654
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/mac.c
661
REG_CLR_BIT(ah, AR_DIAG_SW,
drivers/net/wireless/ath/ath9k/mac.c
669
void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp)
drivers/net/wireless/ath/ath9k/mac.c
671
REG_WRITE(ah, AR_RXDP, rxdp);
drivers/net/wireless/ath/ath9k/mac.c
675
void ath9k_hw_startpcureceive(struct ath_hw *ah, bool is_scanning)
drivers/net/wireless/ath/ath9k/mac.c
677
ath9k_enable_mib_counters(ah);
drivers/net/wireless/ath/ath9k/mac.c
679
ath9k_ani_reset(ah, is_scanning);
drivers/net/wireless/ath/ath9k/mac.c
681
REG_CLR_BIT(ah, AR_DIAG_SW, (AR_DIAG_RX_DIS | AR_DIAG_RX_ABORT));
drivers/net/wireless/ath/ath9k/mac.c
685
void ath9k_hw_abortpcurecv(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
687
REG_SET_BIT(ah, AR_DIAG_SW, AR_DIAG_RX_ABORT | AR_DIAG_RX_DIS);
drivers/net/wireless/ath/ath9k/mac.c
689
ath9k_hw_disable_mib_counters(ah);
drivers/net/wireless/ath/ath9k/mac.c
69
npend = REG_READ(ah, AR_QSTS(q)) & AR_Q_STS_PEND_FR_CNT;
drivers/net/wireless/ath/ath9k/mac.c
693
bool ath9k_hw_stopdmarecv(struct ath_hw *ah, bool *reset)
drivers/net/wireless/ath/ath9k/mac.c
696
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
701
REG_WRITE(ah, AR_MACMISC,
drivers/net/wireless/ath/ath9k/mac.c
706
REG_WRITE(ah, AR_CR, AR_CR_RXD);
drivers/net/wireless/ath/ath9k/mac.c
710
if ((REG_READ(ah, AR_CR) & AR_CR_RXE(ah)) == 0)
drivers/net/wireless/ath/ath9k/mac.c
713
if (!AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/mac.c
714
mac_status = REG_READ(ah, AR_DMADBG_7) & 0x7f0;
drivers/net/wireless/ath/ath9k/mac.c
72
if (REG_READ(ah, AR_Q_TXE) & (1 << q))
drivers/net/wireless/ath/ath9k/mac.c
730
REG_READ(ah, AR_CR),
drivers/net/wireless/ath/ath9k/mac.c
731
REG_READ(ah, AR_DIAG_SW),
drivers/net/wireless/ath/ath9k/mac.c
732
REG_READ(ah, AR_DMADBG_7));
drivers/net/wireless/ath/ath9k/mac.c
742
int ath9k_hw_beaconq_setup(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
751
if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
drivers/net/wireless/ath/ath9k/mac.c
754
return ath9k_hw_setuptxqueue(ah, ATH9K_TX_QUEUE_BEACON, &qi);
drivers/net/wireless/ath/ath9k/mac.c
758
bool ath9k_hw_intrpend(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
762
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/mac.c
765
host_isr = REG_READ(ah, AR_INTR_ASYNC_CAUSE(ah));
drivers/net/wireless/ath/ath9k/mac.c
772
host_isr = REG_READ(ah, AR_INTR_SYNC_CAUSE(ah));
drivers/net/wireless/ath/ath9k/mac.c
781
void ath9k_hw_kill_interrupts(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
783
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
786
REG_WRITE(ah, AR_IER, AR_IER_DISABLE);
drivers/net/wireless/ath/ath9k/mac.c
787
(void) REG_READ(ah, AR_IER);
drivers/net/wireless/ath/ath9k/mac.c
788
if (!AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/mac.c
789
REG_WRITE(ah, AR_INTR_ASYNC_ENABLE(ah), 0);
drivers/net/wireless/ath/ath9k/mac.c
790
(void) REG_READ(ah, AR_INTR_ASYNC_ENABLE(ah));
drivers/net/wireless/ath/ath9k/mac.c
792
REG_WRITE(ah, AR_INTR_SYNC_ENABLE(ah), 0);
drivers/net/wireless/ath/ath9k/mac.c
793
(void) REG_READ(ah, AR_INTR_SYNC_ENABLE(ah));
drivers/net/wireless/ath/ath9k/mac.c
798
void ath9k_hw_disable_interrupts(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
800
if (!(ah->imask & ATH9K_INT_GLOBAL))
drivers/net/wireless/ath/ath9k/mac.c
801
atomic_set(&ah->intr_ref_cnt, -1);
drivers/net/wireless/ath/ath9k/mac.c
803
atomic_dec(&ah->intr_ref_cnt);
drivers/net/wireless/ath/ath9k/mac.c
805
ath9k_hw_kill_interrupts(ah);
drivers/net/wireless/ath/ath9k/mac.c
809
static void __ath9k_hw_enable_interrupts(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
811
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
815
if (AR_SREV_9340(ah) || AR_SREV_9550(ah) || AR_SREV_9531(ah) ||
drivers/net/wireless/ath/ath9k/mac.c
816
AR_SREV_9561(ah))
drivers/net/wireless/ath/ath9k/mac.c
821
if (ah->imask & ATH9K_INT_MCI)
drivers/net/wireless/ath/ath9k/mac.c
825
REG_WRITE(ah, AR_IER, AR_IER_ENABLE);
drivers/net/wireless/ath/ath9k/mac.c
826
if (!AR_SREV_9100(ah)) {
drivers/net/wireless/ath/ath9k/mac.c
827
REG_WRITE(ah, AR_INTR_ASYNC_ENABLE(ah), async_mask);
drivers/net/wireless/ath/ath9k/mac.c
828
REG_WRITE(ah, AR_INTR_ASYNC_MASK(ah), async_mask);
drivers/net/wireless/ath/ath9k/mac.c
830
REG_WRITE(ah, AR_INTR_SYNC_ENABLE(ah), sync_default);
drivers/net/wireless/ath/ath9k/mac.c
831
REG_WRITE(ah, AR_INTR_SYNC_MASK(ah), sync_default);
drivers/net/wireless/ath/ath9k/mac.c
834
REG_READ(ah, AR_IMR), REG_READ(ah, AR_IER));
drivers/net/wireless/ath/ath9k/mac.c
836
if (ah->msi_enabled) {
drivers/net/wireless/ath/ath9k/mac.c
841
ath_dbg(ath9k_hw_common(ah), INTERRUPT,
drivers/net/wireless/ath/ath9k/mac.c
842
"Enabling MSI, msi_mask=0x%X\n", ah->msi_mask);
drivers/net/wireless/ath/ath9k/mac.c
844
REG_WRITE(ah, AR_INTR_PRIO_ASYNC_ENABLE(ah), ah->msi_mask);
drivers/net/wireless/ath/ath9k/mac.c
845
REG_WRITE(ah, AR_INTR_PRIO_ASYNC_MASK(ah), ah->msi_mask);
drivers/net/wireless/ath/ath9k/mac.c
846
ath_dbg(ath9k_hw_common(ah), INTERRUPT,
drivers/net/wireless/ath/ath9k/mac.c
848
REG_READ(ah, AR_INTR_PRIO_ASYNC_ENABLE(ah)),
drivers/net/wireless/ath/ath9k/mac.c
849
REG_READ(ah, AR_INTR_PRIO_ASYNC_MASK(ah)));
drivers/net/wireless/ath/ath9k/mac.c
851
if (ah->msi_reg == 0)
drivers/net/wireless/ath/ath9k/mac.c
852
ah->msi_reg = REG_READ(ah, AR_PCIE_MSI(ah));
drivers/net/wireless/ath/ath9k/mac.c
854
ath_dbg(ath9k_hw_common(ah), INTERRUPT,
drivers/net/wireless/ath/ath9k/mac.c
856
AR_PCIE_MSI(ah), ah->msi_reg);
drivers/net/wireless/ath/ath9k/mac.c
860
REG_WRITE(ah, AR_PCIE_MSI(ah),
drivers/net/wireless/ath/ath9k/mac.c
861
(ah->msi_reg | AR_PCIE_MSI_ENABLE)
drivers/net/wireless/ath/ath9k/mac.c
863
_msi_reg = REG_READ(ah, AR_PCIE_MSI(ah));
drivers/net/wireless/ath/ath9k/mac.c
868
ath_err(ath9k_hw_common(ah),
drivers/net/wireless/ath/ath9k/mac.c
874
void ath9k_hw_resume_interrupts(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
876
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
878
if (!(ah->imask & ATH9K_INT_GLOBAL))
drivers/net/wireless/ath/ath9k/mac.c
881
if (atomic_read(&ah->intr_ref_cnt) != 0) {
drivers/net/wireless/ath/ath9k/mac.c
883
atomic_read(&ah->intr_ref_cnt));
drivers/net/wireless/ath/ath9k/mac.c
887
__ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/mac.c
891
void ath9k_hw_enable_interrupts(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
893
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
895
if (!(ah->imask & ATH9K_INT_GLOBAL))
drivers/net/wireless/ath/ath9k/mac.c
898
if (!atomic_inc_and_test(&ah->intr_ref_cnt)) {
drivers/net/wireless/ath/ath9k/mac.c
900
atomic_read(&ah->intr_ref_cnt));
drivers/net/wireless/ath/ath9k/mac.c
904
__ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/mac.c
908
void ath9k_hw_set_interrupts(struct ath_hw *ah)
drivers/net/wireless/ath/ath9k/mac.c
910
enum ath9k_int ints = ah->imask;
drivers/net/wireless/ath/ath9k/mac.c
912
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/mac.c
913
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mac.c
916
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/mac.c
918
if (ah->msi_enabled) {
drivers/net/wireless/ath/ath9k/mac.c
921
REG_WRITE(ah, AR_INTR_PRIO_ASYNC_ENABLE(ah), 0);
drivers/net/wireless/ath/ath9k/mac.c
922
REG_READ(ah, AR_INTR_PRIO_ASYNC_ENABLE(ah));
drivers/net/wireless/ath/ath9k/mac.c
930
ah->msi_mask = 0;
drivers/net/wireless/ath/ath9k/mac.c
932
ah->msi_mask |= AR_INTR_PRIO_TX;
drivers/net/wireless/ath/ath9k/mac.c
933
if (ah->config.tx_intr_mitigation)
drivers/net/wireless/ath/ath9k/mac.c
936
if (ah->txok_interrupt_mask)
drivers/net/wireless/ath/ath9k/mac.c
938
if (ah->txdesc_interrupt_mask)
drivers/net/wireless/ath/ath9k/mac.c
941
if (ah->txerr_interrupt_mask)
drivers/net/wireless/ath/ath9k/mac.c
943
if (ah->txeol_interrupt_mask)
drivers/net/wireless/ath/ath9k/mac.c
947
ah->msi_mask |= AR_INTR_PRIO_RXLP | AR_INTR_PRIO_RXHP;
drivers/net/wireless/ath/ath9k/mac.c
948
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/mac.c
950
if (ah->config.rx_intr_mitigation) {
drivers/net/wireless/ath/ath9k/mac.c
957
if (ah->config.rx_intr_mitigation)
drivers/net/wireless/ath/ath9k/mac.c
991
if (ah->config.hw_hang_checks & HW_BB_WATCHDOG) {
drivers/net/wireless/ath/ath9k/mac.c
999
REG_WRITE(ah, AR_IMR, mask);
drivers/net/wireless/ath/ath9k/mac.h
720
u32 ath9k_hw_gettxbuf(struct ath_hw *ah, u32 q);
drivers/net/wireless/ath/ath9k/mac.h
721
void ath9k_hw_puttxbuf(struct ath_hw *ah, u32 q, u32 txdp);
drivers/net/wireless/ath/ath9k/mac.h
722
void ath9k_hw_txstart(struct ath_hw *ah, u32 q);
drivers/net/wireless/ath/ath9k/mac.h
723
u32 ath9k_hw_numtxpending(struct ath_hw *ah, u32 q);
drivers/net/wireless/ath/ath9k/mac.h
724
bool ath9k_hw_updatetxtriglevel(struct ath_hw *ah, bool bIncTrigLevel);
drivers/net/wireless/ath/ath9k/mac.h
725
bool ath9k_hw_stop_dma_queue(struct ath_hw *ah, u32 q);
drivers/net/wireless/ath/ath9k/mac.h
726
void ath9k_hw_abort_tx_dma(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
727
bool ath9k_hw_set_txq_props(struct ath_hw *ah, int q,
drivers/net/wireless/ath/ath9k/mac.h
729
bool ath9k_hw_get_txq_props(struct ath_hw *ah, int q,
drivers/net/wireless/ath/ath9k/mac.h
731
int ath9k_hw_setuptxqueue(struct ath_hw *ah, enum ath9k_tx_queue type,
drivers/net/wireless/ath/ath9k/mac.h
733
bool ath9k_hw_releasetxqueue(struct ath_hw *ah, u32 q);
drivers/net/wireless/ath/ath9k/mac.h
734
bool ath9k_hw_resettxqueue(struct ath_hw *ah, u32 q);
drivers/net/wireless/ath/ath9k/mac.h
735
int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
drivers/net/wireless/ath/ath9k/mac.h
737
void ath9k_hw_setuprxdesc(struct ath_hw *ah, struct ath_desc *ds,
drivers/net/wireless/ath/ath9k/mac.h
739
bool ath9k_hw_setrxabort(struct ath_hw *ah, bool set);
drivers/net/wireless/ath/ath9k/mac.h
740
void ath9k_hw_putrxbuf(struct ath_hw *ah, u32 rxdp);
drivers/net/wireless/ath/ath9k/mac.h
741
void ath9k_hw_startpcureceive(struct ath_hw *ah, bool is_scanning);
drivers/net/wireless/ath/ath9k/mac.h
742
void ath9k_hw_abortpcurecv(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
743
bool ath9k_hw_stopdmarecv(struct ath_hw *ah, bool *reset);
drivers/net/wireless/ath/ath9k/mac.h
744
int ath9k_hw_beaconq_setup(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
745
void ath9k_hw_set_tx_filter(struct ath_hw *ah, u8 destidx, bool set);
drivers/net/wireless/ath/ath9k/mac.h
748
bool ath9k_hw_intrpend(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
749
void ath9k_hw_set_interrupts(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
750
void ath9k_hw_enable_interrupts(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
751
void ath9k_hw_disable_interrupts(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
752
void ath9k_hw_kill_interrupts(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
753
void ath9k_hw_resume_interrupts(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/mac.h
755
void ar9002_hw_attach_mac_ops(struct ath_hw *ah);
drivers/net/wireless/ath/ath9k/main.c
1146
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1147
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
1164
ah->opmode = vif->type;
drivers/net/wireless/ath/ath9k/main.c
1165
ah->imask &= ~ATH9K_INT_SWBA;
drivers/net/wireless/ath/ath9k/main.c
1166
ah->imask &= ~ATH9K_INT_TSFOOR;
drivers/net/wireless/ath/ath9k/main.c
1167
ah->slottime = 9;
drivers/net/wireless/ath/ath9k/main.c
1170
ath9k_hw_setopmode(ah);
drivers/net/wireless/ath/ath9k/main.c
1172
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
1173
ath9k_hw_init_global_settings(ah);
drivers/net/wireless/ath/ath9k/main.c
1184
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1185
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
1208
ath9k_hw_set_tsfadjust(ah, true);
drivers/net/wireless/ath/ath9k/main.c
1209
ah->opmode = NL80211_IFTYPE_AP;
drivers/net/wireless/ath/ath9k/main.c
1211
ath9k_hw_set_tsfadjust(ah, false);
drivers/net/wireless/ath/ath9k/main.c
1216
ah->opmode = NL80211_IFTYPE_MESH_POINT;
drivers/net/wireless/ath/ath9k/main.c
1218
ah->opmode = NL80211_IFTYPE_OCB;
drivers/net/wireless/ath/ath9k/main.c
1220
ah->opmode = NL80211_IFTYPE_ADHOC;
drivers/net/wireless/ath/ath9k/main.c
1222
ah->opmode = NL80211_IFTYPE_STATION;
drivers/net/wireless/ath/ath9k/main.c
1225
ath9k_hw_setopmode(ah);
drivers/net/wireless/ath/ath9k/main.c
1229
ah->imask |= ATH9K_INT_TSFOOR;
drivers/net/wireless/ath/ath9k/main.c
1231
ah->imask &= ~ATH9K_INT_TSFOOR;
drivers/net/wireless/ath/ath9k/main.c
1236
if (ah->opmode == NL80211_IFTYPE_STATION) {
drivers/net/wireless/ath/ath9k/main.c
1257
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
1259
if (ah->slottime != iter_data.slottime) {
drivers/net/wireless/ath/ath9k/main.c
1260
ah->slottime = iter_data.slottime;
drivers/net/wireless/ath/ath9k/main.c
1261
ath9k_hw_init_global_settings(ah);
drivers/net/wireless/ath/ath9k/main.c
1291
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1292
struct ath_regulatory *reg = ath9k_hw_regulatory(ah);
drivers/net/wireless/ath/ath9k/main.c
1295
if (ah->tpc_enabled) {
drivers/net/wireless/ath/ath9k/main.c
1306
ath9k_hw_set_txpowerlimit(ah, sc->cur_chan->txpower, false);
drivers/net/wireless/ath/ath9k/main.c
1333
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1334
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
1446
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1447
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
1453
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) {
drivers/net/wireless/ath/ath9k/main.c
1454
if ((ah->imask & ATH9K_INT_TIM_TIMER) == 0) {
drivers/net/wireless/ath/ath9k/main.c
1455
ah->imask |= ATH9K_INT_TIM_TIMER;
drivers/net/wireless/ath/ath9k/main.c
1456
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
1458
ath9k_hw_setrxabort(ah, 1);
drivers/net/wireless/ath/ath9k/main.c
1465
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1466
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
1472
ath9k_hw_setpower(ah, ATH9K_PM_AWAKE);
drivers/net/wireless/ath/ath9k/main.c
1473
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP)) {
drivers/net/wireless/ath/ath9k/main.c
1474
ath9k_hw_setrxabort(ah, 0);
drivers/net/wireless/ath/ath9k/main.c
1479
if (ah->imask & ATH9K_INT_TIM_TIMER) {
drivers/net/wireless/ath/ath9k/main.c
1480
ah->imask &= ~ATH9K_INT_TIM_TIMER;
drivers/net/wireless/ath/ath9k/main.c
1481
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
1490
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1491
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
1678
static void ath9k_sta_set_tx_filter(struct ath_hw *ah,
drivers/net/wireless/ath/ath9k/main.c
1687
ath9k_hw_set_tx_filter(ah, an->key_idx[i], set);
drivers/net/wireless/ath/ath9k/main.c
1874
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
1875
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
1922
ah->slottime = slottime;
drivers/net/wireless/ath/ath9k/main.c
1923
ath9k_hw_init_global_settings(ah);
drivers/net/wireless/ath/ath9k/main.c
2106
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2108
ath_dynack_reset(ah);
drivers/net/wireless/ath/ath9k/main.c
2110
ah->dynack.enabled = true;
drivers/net/wireless/ath/ath9k/main.c
2112
ath9k_hw_setrxfilter(ah, rfilt);
drivers/net/wireless/ath/ath9k/main.c
2121
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2129
ah->coverage_class = coverage_class;
drivers/net/wireless/ath/ath9k/main.c
2130
if (ah->dynack.enabled) {
drivers/net/wireless/ath/ath9k/main.c
2133
ah->dynack.enabled = false;
drivers/net/wireless/ath/ath9k/main.c
2135
ath9k_hw_setrxfilter(ah, rfilt);
drivers/net/wireless/ath/ath9k/main.c
2138
ath9k_hw_init_global_settings(ah);
drivers/net/wireless/ath/ath9k/main.c
2140
} else if (!ah->dynack.enabled) {
drivers/net/wireless/ath/ath9k/main.c
216
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2198
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2199
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
2205
if (ah->ah_flags & AH_UNPLUGGED) {
drivers/net/wireless/ath/ath9k/main.c
221
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
223
if (AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/main.c
2255
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2260
bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA);
drivers/net/wireless/ath/ath9k/main.c
2279
status = ath9k_hw_txprocdesc(ah, bf->bf_desc, &ts);
drivers/net/wireless/ath/ath9k/main.c
2297
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2298
struct ath9k_mib_stats *mib_stats = &ah->ah_mibStats;
drivers/net/wireless/ath/ath9k/main.c
2325
static bool validate_antenna_mask(struct ath_hw *ah, u32 val)
drivers/net/wireless/ath/ath9k/main.c
2327
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/main.c
2336
return (ah->caps.rx_chainmask == 1);
drivers/net/wireless/ath/ath9k/main.c
2346
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2348
if (ah->caps.rx_chainmask != 1)
drivers/net/wireless/ath/ath9k/main.c
2351
if (!validate_antenna_mask(ah, rx_ant) || !tx_ant)
drivers/net/wireless/ath/ath9k/main.c
2357
if (ah->caps.rx_chainmask == 1)
drivers/net/wireless/ath/ath9k/main.c
236
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
2361
if (AR_SREV_9100(ah))
drivers/net/wireless/ath/ath9k/main.c
2362
ah->rxchainmask = 0x7;
drivers/net/wireless/ath/ath9k/main.c
2364
ah->rxchainmask = fill_chainmask(ah->caps.rx_chainmask, rx_ant);
drivers/net/wireless/ath/ath9k/main.c
2366
ah->txchainmask = fill_chainmask(ah->caps.tx_chainmask, tx_ant);
drivers/net/wireless/ath/ath9k/main.c
2367
ath9k_cmn_reload_chainmask(ah);
drivers/net/wireless/ath/ath9k/main.c
237
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
242
ath9k_cmn_update_txpow(ah, sc->cur_chan->cur_txpower,
drivers/net/wireless/ath/ath9k/main.c
253
ath9k_hw_settsf64(ah, sc->cur_chan->tsf_val + offset);
drivers/net/wireless/ath/ath9k/main.c
260
if (ah->opmode == NL80211_IFTYPE_STATION &&
drivers/net/wireless/ath/ath9k/main.c
275
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
276
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
285
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
286
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
305
hchan = ah->curchan;
drivers/net/wireless/ath/ath9k/main.c
310
hchan = ath9k_cmn_get_channel(sc->hw, ah, &sc->cur_chan->chandef);
drivers/net/wireless/ath/ath9k/main.c
326
r = ath9k_hw_reset(ah, hchan, caldata, fastcc);
drivers/net/wireless/ath/ath9k/main.c
331
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
380
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
381
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
402
if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) &&
drivers/net/wireless/ath/ath9k/main.c
406
ar9003_hw_bb_watchdog_dbg_info(ah);
drivers/net/wireless/ath/ath9k/main.c
409
if (ar9003_hw_bb_watchdog_check(ah)) {
drivers/net/wireless/ath/ath9k/main.c
422
if ((sc->gtt_cnt >= MAX_GTT_CNT) && !ath9k_hw_check_alive(ah)) {
drivers/net/wireless/ath/ath9k/main.c
442
if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
drivers/net/wireless/ath/ath9k/main.c
450
if ((ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) &&
drivers/net/wireless/ath/ath9k/main.c
459
if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/main.c
482
ath9k_hw_resume_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
507
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
508
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
518
if (!ah || test_bit(ATH_OP_INVALID, &common->op_flags))
drivers/net/wireless/ath/ath9k/main.c
522
if (!ath9k_hw_intrpend(ah))
drivers/net/wireless/ath/ath9k/main.c
531
ath9k_hw_getisr(ah, &status, &sync_cause); /* NB: clears ISR too */
drivers/net/wireless/ath/ath9k/main.c
533
status &= ah->imask; /* discard unasked-for bits */
drivers/net/wireless/ath/ath9k/main.c
562
if ((ah->config.hw_hang_checks & HW_BB_WATCHDOG) &&
drivers/net/wireless/ath/ath9k/main.c
570
ath9k_hw_updatetxtriglevel(ah, true);
drivers/net/wireless/ath/ath9k/main.c
573
ah->imask &= ~(ATH9K_INT_RXEOL | ATH9K_INT_RXORN);
drivers/net/wireless/ath/ath9k/main.c
574
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
577
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_AUTOSLEEP))
drivers/net/wireless/ath/ath9k/main.c
596
ath9k_hw_kill_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
656
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
657
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
670
init_channel = ath9k_cmn_get_channel(hw, ah, &ctx->chandef);
drivers/net/wireless/ath/ath9k/main.c
674
ath9k_hw_configpcipowersave(ah, false);
drivers/net/wireless/ath/ath9k/main.c
685
atomic_set(&ah->intr_ref_cnt, -1);
drivers/net/wireless/ath/ath9k/main.c
687
r = ath9k_hw_reset(ah, init_channel, ah->caldata, false);
drivers/net/wireless/ath/ath9k/main.c
692
ah->reset_power_on = false;
drivers/net/wireless/ath/ath9k/main.c
696
ah->imask = ATH9K_INT_TX | ATH9K_INT_RXEOL |
drivers/net/wireless/ath/ath9k/main.c
700
if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
drivers/net/wireless/ath/ath9k/main.c
701
ah->imask |= ATH9K_INT_RXHP |
drivers/net/wireless/ath/ath9k/main.c
704
ah->imask |= ATH9K_INT_RX;
drivers/net/wireless/ath/ath9k/main.c
706
if (ah->config.hw_hang_checks & HW_BB_WATCHDOG)
drivers/net/wireless/ath/ath9k/main.c
707
ah->imask |= ATH9K_INT_BB_WATCHDOG;
drivers/net/wireless/ath/ath9k/main.c
713
if (AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/main.c
714
ah->imask |= ATH9K_INT_GTT;
drivers/net/wireless/ath/ath9k/main.c
716
if (ah->caps.hw_caps & ATH9K_HW_CAP_HT)
drivers/net/wireless/ath/ath9k/main.c
717
ah->imask |= ATH9K_INT_CST;
drivers/net/wireless/ath/ath9k/main.c
725
ah->reset_power_on = false;
drivers/net/wireless/ath/ath9k/main.c
727
if (ah->led_pin >= 0) {
drivers/net/wireless/ath/ath9k/main.c
728
ath9k_hw_set_gpio(ah, ah->led_pin,
drivers/net/wireless/ath/ath9k/main.c
729
(ah->config.led_active_high) ? 1 : 0);
drivers/net/wireless/ath/ath9k/main.c
730
ath9k_hw_gpio_request_out(ah, ah->led_pin, NULL,
drivers/net/wireless/ath/ath9k/main.c
740
ath9k_hw_reset_tsf(ah);
drivers/net/wireless/ath/ath9k/main.c
851
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
862
if (!ath9k_hw_numtxpending(ah, txq->axq_qnum))
drivers/net/wireless/ath/ath9k/main.c
886
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
887
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
889
if (!test_bit(keyix, ah->pending_del_keymap) ||
drivers/net/wireless/ath/ath9k/main.c
894
clear_bit(keyix, ah->pending_del_keymap);
drivers/net/wireless/ath/ath9k/main.c
901
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/main.c
902
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/main.c
926
ah->imask &= ~ATH9K_INT_GLOBAL;
drivers/net/wireless/ath/ath9k/main.c
930
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/main.c
945
if (ah->led_pin >= 0) {
drivers/net/wireless/ath/ath9k/main.c
946
ath9k_hw_set_gpio(ah, ah->led_pin,
drivers/net/wireless/ath/ath9k/main.c
947
(ah->config.led_active_high) ? 0 : 1);
drivers/net/wireless/ath/ath9k/main.c
948
ath9k_hw_gpio_request_in(ah, ah->led_pin, NULL);
drivers/net/wireless/ath/ath9k/main.c
958
if (!ah->curchan)
drivers/net/wireless/ath/ath9k/main.c
959
ah->curchan = ath9k_cmn_get_channel(hw, ah,
drivers/net/wireless/ath/ath9k/main.c
962
ath9k_hw_reset(ah, ah->curchan, ah->caldata, false);
drivers/net/wireless/ath/ath9k/main.c
966
ath9k_hw_phy_disable(ah);
drivers/net/wireless/ath/ath9k/main.c
968
ath9k_hw_configpcipowersave(ah, true);
drivers/net/wireless/ath/ath9k/mci.c
212
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
213
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mci.c
214
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
371
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
378
if (ar9003_mci_state(ah, MCI_STATE_NEED_FLUSH_BT_INFO) &&
drivers/net/wireless/ath/ath9k/mci.c
379
ar9003_mci_state(ah, MCI_STATE_ENABLE)) {
drivers/net/wireless/ath/ath9k/mci.c
382
ar9003_mci_state(ah, MCI_STATE_SEND_STATUS_QUERY);
drivers/net/wireless/ath/ath9k/mci.c
387
ar9003_mci_state(ah, MCI_STATE_SEND_WLAN_COEX_VERSION);
drivers/net/wireless/ath/ath9k/mci.c
392
ar9003_mci_set_bt_version(ah, major, minor);
drivers/net/wireless/ath/ath9k/mci.c
395
ar9003_mci_send_wlan_channels(ah);
drivers/net/wireless/ath/ath9k/mci.c
478
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
480
ar9003_mci_cleanup(ah);
drivers/net/wireless/ath/ath9k/mci.c
488
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
489
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/mci.c
490
struct ath9k_hw_mci *mci_hw = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
499
if (ar9003_mci_state(ah, MCI_STATE_ENABLE) == 0) {
drivers/net/wireless/ath/ath9k/mci.c
500
ar9003_mci_state(ah, MCI_STATE_INIT_GPM_OFFSET);
drivers/net/wireless/ath/ath9k/mci.c
513
ar9003_mci_send_message(ah, MCI_REMOTE_RESET, 0,
drivers/net/wireless/ath/ath9k/mci.c
515
ar9003_mci_send_message(ah, MCI_SYS_WAKING, 0,
drivers/net/wireless/ath/ath9k/mci.c
519
ar9003_mci_state(ah, MCI_STATE_RESET_REQ_WAKE);
drivers/net/wireless/ath/ath9k/mci.c
524
ar9003_mci_state(ah, MCI_STATE_SET_BT_AWAKE);
drivers/net/wireless/ath/ath9k/mci.c
531
(ar9003_mci_state(ah, MCI_STATE_REMOTE_SLEEP) !=
drivers/net/wireless/ath/ath9k/mci.c
533
ar9003_mci_state(ah, MCI_STATE_SET_BT_AWAKE);
drivers/net/wireless/ath/ath9k/mci.c
540
(ar9003_mci_state(ah, MCI_STATE_REMOTE_SLEEP) !=
drivers/net/wireless/ath/ath9k/mci.c
547
ar9003_mci_state(ah, MCI_STATE_RECOVER_RX);
drivers/net/wireless/ath/ath9k/mci.c
553
ar9003_mci_state(ah, MCI_STATE_LAST_SCHD_MSG_OFFSET);
drivers/net/wireless/ath/ath9k/mci.c
564
offset = ar9003_mci_get_next_gpm_offset(ah, &more_data);
drivers/net/wireless/ath/ath9k/mci.c
646
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
647
struct ath9k_hw_mci *mci = &ah->btcoex_hw.mci;
drivers/net/wireless/ath/ath9k/mci.c
648
struct ath9k_channel *chan = ah->curchan;
drivers/net/wireless/ath/ath9k/mci.c
679
ath_dbg(ath9k_hw_common(ah), MCI,
drivers/net/wireless/ath/ath9k/mci.c
690
ar9003_mci_send_wlan_channels(ah);
drivers/net/wireless/ath/ath9k/mci.c
691
ar9003_mci_state(ah, MCI_STATE_SEND_VERSION_QUERY);
drivers/net/wireless/ath/ath9k/mci.c
697
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
706
if (!IS_CHAN_2GHZ(ah->curchan))
drivers/net/wireless/ath/ath9k/mci.c
711
if (IS_CHAN_HT40PLUS(ah->curchan) &&
drivers/net/wireless/ath/ath9k/mci.c
712
(ah->curchan->channel > caldata->channel) &&
drivers/net/wireless/ath/ath9k/mci.c
713
(ah->curchan->channel <= caldata->channel + 20))
drivers/net/wireless/ath/ath9k/mci.c
715
if (IS_CHAN_HT40MINUS(ah->curchan) &&
drivers/net/wireless/ath/ath9k/mci.c
716
(ah->curchan->channel < caldata->channel) &&
drivers/net/wireless/ath/ath9k/mci.c
717
(ah->curchan->channel >= caldata->channel - 20))
drivers/net/wireless/ath/ath9k/mci.c
724
ath9k_hw_set_txpowerlimit(ah, sc->cur_chan->txpower, false);
drivers/net/wireless/ath/ath9k/mci.c
729
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
736
if (ah->stats.avgbrssi > 25) {
drivers/net/wireless/ath/ath9k/mci.c
745
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/mci.c
754
if (ah->stats.avgbrssi >= 40) {
drivers/net/wireless/ath/ath9k/pci.c
1043
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/pci.c
1044
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/pci.c
1057
ah->reset_power_on = false;
drivers/net/wireless/ath/ath9k/pci.c
800
struct ath_hw *ah = common->ah;
drivers/net/wireless/ath/ath9k/pci.c
802
common->ops->read(ah, AR5416_EEPROM_OFFSET + (off << AR5416_EEPROM_S));
drivers/net/wireless/ath/ath9k/pci.c
804
if (!ath9k_hw_wait(ah,
drivers/net/wireless/ath/ath9k/pci.c
805
AR_EEPROM_STATUS_DATA(ah),
drivers/net/wireless/ath/ath9k/pci.c
812
*data = MS(common->ops->read(ah, AR_EEPROM_STATUS_DATA(ah)),
drivers/net/wireless/ath/ath9k/pci.c
822
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/pci.c
828
if (!ah->is_pciexpress)
drivers/net/wireless/ath/ath9k/pci.c
835
if ((ath9k_hw_get_btcoex_scheme(ah) != ATH_BTCOEX_CFG_NONE) &&
drivers/net/wireless/ath/ath9k/pci.c
836
(AR_SREV_9285(ah))) {
drivers/net/wireless/ath/ath9k/pci.c
865
if (AR_SREV_9462(ah))
drivers/net/wireless/ath/ath9k/pci.c
866
pci_read_config_dword(pdev, 0x70c, &ah->config.aspm_l1_fix);
drivers/net/wireless/ath/ath9k/pci.c
870
ah->aspm_enabled = true;
drivers/net/wireless/ath/ath9k/pci.c
872
ath9k_hw_configpcipowersave(ah, false);
drivers/net/wireless/ath/ath9k/recv.c
1015
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
1016
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
103
ath9k_hw_setopmode(ah);
drivers/net/wireless/ath/ath9k/recv.c
1051
airtime += ath9k_hw_computetxtime(ah, phy, rate->bitrate * 100,
drivers/net/wireless/ath/ath9k/recv.c
1065
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
1066
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
107
ath9k_hw_setmcastfilter(ah, mfilt[0], mfilt[1]);
drivers/net/wireless/ath/ath9k/recv.c
1071
bool edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA);
drivers/net/wireless/ath/ath9k/recv.c
1086
tsf = ath9k_hw_gettsf64(ah);
drivers/net/wireless/ath/ath9k/recv.c
113
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
1149
skb_put(skb, rs.rs_datalen + ah->caps.rx_status_len);
drivers/net/wireless/ath/ath9k/recv.c
1150
if (ah->caps.rx_status_len)
drivers/net/wireless/ath/ath9k/recv.c
1151
skb_pull(skb, ah->caps.rx_status_len);
drivers/net/wireless/ath/ath9k/recv.c
1225
ath9k_hw_rxena(ah);
drivers/net/wireless/ath/ath9k/recv.c
1234
if (!(ah->imask & ATH9K_INT_RXEOL)) {
drivers/net/wireless/ath/ath9k/recv.c
1235
ah->imask |= (ATH9K_INT_RXEOL | ATH9K_INT_RXORN);
drivers/net/wireless/ath/ath9k/recv.c
1236
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/recv.c
127
memset(skb->data, 0, ah->caps.rx_status_len);
drivers/net/wireless/ath/ath9k/recv.c
129
ah->caps.rx_status_len, DMA_TO_DEVICE);
drivers/net/wireless/ath/ath9k/recv.c
132
ath9k_hw_addrxbuf_edma(ah, bf->bf_buf_addr, qtype);
drivers/net/wireless/ath/ath9k/recv.c
173
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
174
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
201
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
207
ath9k_hw_set_rx_bufsize(ah, common->rx_bufsize -
drivers/net/wireless/ath/ath9k/recv.c
208
ah->caps.rx_status_len);
drivers/net/wireless/ath/ath9k/recv.c
211
ah->caps.rx_lp_qdepth);
drivers/net/wireless/ath/ath9k/recv.c
213
ah->caps.rx_hp_qdepth);
drivers/net/wireless/ath/ath9k/recv.c
333
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
334
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
40
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
41
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
443
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
446
if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/recv.c
465
ath9k_hw_putrxbuf(ah, bf->bf_daddr);
drivers/net/wireless/ath/ath9k/recv.c
466
ath9k_hw_rxena(ah);
drivers/net/wireless/ath/ath9k/recv.c
470
ath9k_hw_startpcureceive(ah, sc->cur_chan->offchannel);
drivers/net/wireless/ath/ath9k/recv.c
482
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
485
ath9k_hw_abortpcurecv(ah);
drivers/net/wireless/ath/ath9k/recv.c
486
ath9k_hw_setrxfilter(ah, 0);
drivers/net/wireless/ath/ath9k/recv.c
487
stopped = ath9k_hw_stopdmarecv(ah, &reset);
drivers/net/wireless/ath/ath9k/recv.c
496
if (!(ah->ah_flags & AH_UNPLUGGED) &&
drivers/net/wireless/ath/ath9k/recv.c
59
ath9k_hw_setuprxdesc(ah, ds,
drivers/net/wireless/ath/ath9k/recv.c
633
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
634
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
649
ret = ath9k_hw_process_rxdesc_edma(ah, rs, skb->data);
drivers/net/wireless/ath/ath9k/recv.c
66
ath9k_hw_putrxbuf(ah, bf->bf_daddr);
drivers/net/wireless/ath/ath9k/recv.c
698
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
699
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
726
ret = ath9k_hw_rxprocdesc(ah, ds, rs);
drivers/net/wireless/ath/ath9k/recv.c
752
ret = ath9k_hw_rxprocdesc(ah, tds, &trs);
drivers/net/wireless/ath/ath9k/recv.c
760
ret = ath9k_hw_rxprocdesc(ah, ds, rs);
drivers/net/wireless/ath/ath9k/recv.c
815
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
816
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
846
if (rx_stats->rs_datalen > (common->rx_bufsize - ah->caps.rx_status_len)) {
drivers/net/wireless/ath/ath9k/recv.c
865
hdr = (struct ieee80211_hdr *) (skb->data + ah->caps.rx_status_len);
drivers/net/wireless/ath/ath9k/recv.c
90
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
91
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
913
if (WARN_ON(!ah->curchan))
drivers/net/wireless/ath/ath9k/recv.c
935
rx_status->band = ah->curchan->chan->band;
drivers/net/wireless/ath/ath9k/recv.c
936
rx_status->freq = ah->curchan->chan->center_freq;
drivers/net/wireless/ath/ath9k/recv.c
966
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/recv.c
967
struct ath9k_hw_capabilities *pCap = &ah->caps;
drivers/net/wireless/ath/ath9k/recv.c
968
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/recv.c
97
ath9k_hw_setrxfilter(ah, rfilt);
drivers/net/wireless/ath/ath9k/recv.c
970
if (!(ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB))
drivers/net/wireless/ath/ath9k/rng.c
103
if (!AR_SREV_9300_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/rng.c
28
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/rng.c
32
REG_RMW_FIELD(ah, AR_PHY_TEST(ah), AR_PHY_TEST_BBB_OBS_SEL, 1);
drivers/net/wireless/ath/ath9k/rng.c
33
REG_CLR_BIT(ah, AR_PHY_TEST(ah), AR_PHY_TEST_RX_OBS_SEL_BIT5);
drivers/net/wireless/ath/ath9k/rng.c
34
REG_RMW_FIELD(ah, AR_PHY_TEST_CTL_STATUS(ah), AR_PHY_TEST_CTL_RX_OBS_SEL, 0);
drivers/net/wireless/ath/ath9k/rng.c
37
v1 = REG_READ(ah, AR_PHY_TST_ADC) & 0xffff;
drivers/net/wireless/ath/ath9k/rng.c
38
v2 = REG_READ(ah, AR_PHY_TST_ADC) & 0xffff;
drivers/net/wireless/ath/ath9k/rng.c
98
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
110
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
111
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/tx99.c
132
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/tx99.c
143
ath9k_hw_tx99_set_txpower(ah, sc->tx99_power);
drivers/net/wireless/ath/ath9k/tx99.c
21
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
22
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/tx99.c
27
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/tx99.c
28
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/tx99.c
53
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/tx99.c
87
if (ah->curchan && IS_CHAN_HT(ah->curchan)) {
drivers/net/wireless/ath/ath9k/tx99.c
89
if (IS_CHAN_HT40(ah->curchan))
drivers/net/wireless/ath/ath9k/wmi.c
199
struct ath_common *common = ath9k_hw_common(priv->ah);
drivers/net/wireless/ath/ath9k/wmi.c
315
struct ath_hw *ah = wmi->drv_priv->ah;
drivers/net/wireless/ath/ath9k/wmi.c
316
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/wmi.c
323
if (ah->ah_flags & AH_UNPLUGGED)
drivers/net/wireless/ath/ath9k/wow.c
120
ret = ath9k_hw_wow_apply_pattern(ah, dis_deauth_pattern, dis_deauth_mask,
drivers/net/wireless/ath/ath9k/wow.c
132
ret = ath9k_hw_wow_apply_pattern(ah, dis_deauth_pattern, dis_deauth_mask,
drivers/net/wireless/ath/ath9k/wow.c
141
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
155
ret = ath9k_hw_wow_apply_pattern(ah,
drivers/net/wireless/ath/ath9k/wow.c
171
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
172
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/wow.c
253
sc->wow_intr_before_sleep = ah->imask;
drivers/net/wireless/ath/ath9k/wow.c
254
ah->imask &= ~ATH9K_INT_GLOBAL;
drivers/net/wireless/ath/ath9k/wow.c
255
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/wow.c
256
ah->imask = ATH9K_INT_BMISS | ATH9K_INT_GLOBAL;
drivers/net/wireless/ath/ath9k/wow.c
257
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/wow.c
258
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/wow.c
269
ath9k_hw_wow_enable(ah, triggers);
drivers/net/wireless/ath/ath9k/wow.c
283
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
284
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/wow.c
293
ath9k_hw_disable_interrupts(ah);
drivers/net/wireless/ath/ath9k/wow.c
294
ah->imask = sc->wow_intr_before_sleep;
drivers/net/wireless/ath/ath9k/wow.c
295
ath9k_hw_set_interrupts(ah);
drivers/net/wireless/ath/ath9k/wow.c
296
ath9k_hw_enable_interrupts(ah);
drivers/net/wireless/ath/ath9k/wow.c
300
status = ath9k_hw_wow_wakeup(ah);
drivers/net/wireless/ath/ath9k/wow.c
330
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
333
if (AR_SREV_9462_20_OR_LATER(ah) || AR_SREV_9565_11_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/wow.c
52
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/wow.c
53
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/xmit.c
1181
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1184
if (sc->tx99_state || !ah->tpc_enabled)
drivers/net/wireless/ath/ath9k/xmit.c
1204
if (!AR_SREV_9300_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/xmit.c
1209
struct ar5416_eeprom_def *eep = &ah->eeprom.def;
drivers/net/wireless/ath/ath9k/xmit.c
1210
u16 eeprom_rev = ah->eep_ops->get_eeprom_rev(ah);
drivers/net/wireless/ath/ath9k/xmit.c
1223
if (AR_SREV_9287(ah) || AR_SREV_9285(ah) ||
drivers/net/wireless/ath/ath9k/xmit.c
1224
AR_SREV_9271(ah)) {
drivers/net/wireless/ath/ath9k/xmit.c
1226
} else if (AR_SREV_9280_20_OR_LATER(ah)) {
drivers/net/wireless/ath/ath9k/xmit.c
1229
power_offset = ah->eep_ops->get_eeprom(ah,
drivers/net/wireless/ath/ath9k/xmit.c
1234
if (OLC_FOR_AR9280_20_LATER(ah) && is_cck)
drivers/net/wireless/ath/ath9k/xmit.c
1238
max_power = min_t(u8, ah->tx_power[rateidx], txpower);
drivers/net/wireless/ath/ath9k/xmit.c
1244
if (!max_power && !AR_SREV_9280_20_OR_LATER(ah))
drivers/net/wireless/ath/ath9k/xmit.c
1248
max_power = min_t(u8, ah->tx_power_stbc[rateidx],
drivers/net/wireless/ath/ath9k/xmit.c
1251
max_power = min_t(u8, ah->tx_power[rateidx],
drivers/net/wireless/ath/ath9k/xmit.c
1254
max_power = ah->paprd_training_power;
drivers/net/wireless/ath/ath9k/xmit.c
1263
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1264
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/xmit.c
1325
ah->txchainmask, info->rates[i].Rate);
drivers/net/wireless/ath/ath9k/xmit.c
1358
info->rates[i].ChSel = ah->txchainmask;
drivers/net/wireless/ath/ath9k/xmit.c
1361
ah->txchainmask, info->rates[i].Rate);
drivers/net/wireless/ath/ath9k/xmit.c
1406
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1490
ath9k_hw_set_txdesc(ah, bf->bf_desc, &info);
drivers/net/wireless/ath/ath9k/xmit.c
1760
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1792
if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) {
drivers/net/wireless/ath/ath9k/xmit.c
1801
axq_qnum = ath9k_hw_setuptxqueue(ah, qtype, &qi);
drivers/net/wireless/ath/ath9k/xmit.c
1833
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1839
ath9k_hw_get_txq_props(ah, qnum, &qi);
drivers/net/wireless/ath/ath9k/xmit.c
1846
if (!ath9k_hw_set_txq_props(ah, qnum, &qi)) {
drivers/net/wireless/ath/ath9k/xmit.c
1851
ath9k_hw_resettxqueue(ah, qnum);
drivers/net/wireless/ath/ath9k/xmit.c
1931
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
1940
ath9k_hw_abort_tx_dma(ah);
drivers/net/wireless/ath/ath9k/xmit.c
1950
if (ath9k_hw_numtxpending(ah, sc->tx.txq[i].axq_qnum))
drivers/net/wireless/ath/ath9k/xmit.c
2044
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2045
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/xmit.c
2058
edma = !!(ah->caps.hw_caps & ATH9K_HW_CAP_EDMA);
drivers/net/wireless/ath/ath9k/xmit.c
2073
ath9k_hw_set_desc_link(ah, txq->axq_link, bf->bf_daddr);
drivers/net/wireless/ath/ath9k/xmit.c
2085
ath9k_hw_puttxbuf(ah, txq->axq_qnum, bf->bf_daddr);
drivers/net/wireless/ath/ath9k/xmit.c
2092
ath9k_hw_txstart(ah, txq->axq_qnum);
drivers/net/wireless/ath/ath9k/xmit.c
2196
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2197
struct ath9k_channel *curchan = ah->curchan;
drivers/net/wireless/ath/ath9k/xmit.c
2199
if ((ah->caps.hw_caps & ATH9K_HW_CAP_APM) && IS_CHAN_5GHZ(curchan) &&
drivers/net/wireless/ath/ath9k/xmit.c
2202
else if (AR_SREV_9462(ah) && ath9k_hw_btcoex_is_enabled(ah) &&
drivers/net/wireless/ath/ath9k/xmit.c
2573
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2616
ah->tx_trig_level >= sc->sc_ah->config.max_txtrig_level)
drivers/net/wireless/ath/ath9k/xmit.c
2624
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2625
struct ath_common *common = ath9k_hw_common(ah);
drivers/net/wireless/ath/ath9k/xmit.c
2670
status = ath9k_hw_txprocdesc(ah, ds, &ts);
drivers/net/wireless/ath/ath9k/xmit.c
2699
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2700
u32 qcumask = ((1 << ATH9K_NUM_TX_QUEUES) - 1) & ah->intr_txqs;
drivers/net/wireless/ath/ath9k/xmit.c
2715
struct ath_hw *ah = sc->sc_ah;
drivers/net/wireless/ath/ath9k/xmit.c
2727
status = ath9k_hw_txprocdesc(ah, NULL, (void *)&ts);
drivers/net/wireless/ath/hw.c
120
void *ah = common->ah;
drivers/net/wireless/ath/hw.c
123
REG_WRITE(ah, AR_STA_ID0, get_unaligned_le32(common->macaddr));
drivers/net/wireless/ath/hw.c
124
id1 = REG_READ(ah, AR_STA_ID1) & ~AR_STA_ID1_SADH_MASK;
drivers/net/wireless/ath/hw.c
126
REG_WRITE(ah, AR_STA_ID1, id1);
drivers/net/wireless/ath/hw.c
128
REG_WRITE(ah, AR_BSSMSKL, get_unaligned_le32(common->bssidmask));
drivers/net/wireless/ath/hw.c
129
REG_WRITE(ah, AR_BSSMSKU, get_unaligned_le16(common->bssidmask + 4));
drivers/net/wireless/ath/hw.c
145
void *ah = common->ah;
drivers/net/wireless/ath/hw.c
148
REG_WRITE(ah, AR_MIBC, AR_MIBC_FMC);
drivers/net/wireless/ath/hw.c
151
cycles = REG_READ(ah, AR_CCCNT);
drivers/net/wireless/ath/hw.c
152
busy = REG_READ(ah, AR_RCCNT);
drivers/net/wireless/ath/hw.c
153
rx = REG_READ(ah, AR_RFCNT);
drivers/net/wireless/ath/hw.c
154
tx = REG_READ(ah, AR_TFCNT);
drivers/net/wireless/ath/hw.c
157
REG_WRITE(ah, AR_CCCNT, 0);
drivers/net/wireless/ath/hw.c
158
REG_WRITE(ah, AR_RFCNT, 0);
drivers/net/wireless/ath/hw.c
159
REG_WRITE(ah, AR_RCCNT, 0);
drivers/net/wireless/ath/hw.c
160
REG_WRITE(ah, AR_TFCNT, 0);
drivers/net/wireless/ath/hw.c
163
REG_WRITE(ah, AR_MIBC, 0);
drivers/net/wireless/ath/key.c
118
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/key.c
120
REG_WRITE(ah, AR_KEYTABLE_MAC0(entry), macLo);
drivers/net/wireless/ath/key.c
121
REG_WRITE(ah, AR_KEYTABLE_MAC1(entry), macHi | unicast_flag);
drivers/net/wireless/ath/key.c
123
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/key.c
133
void *ah = common->ah;
drivers/net/wireless/ath/key.c
208
REG_WRITE(ah, AR_KEYTABLE_KEY0(entry), ~key0);
drivers/net/wireless/ath/key.c
209
REG_WRITE(ah, AR_KEYTABLE_KEY1(entry), ~key1);
drivers/net/wireless/ath/key.c
212
REG_WRITE(ah, AR_KEYTABLE_KEY2(entry), key2);
drivers/net/wireless/ath/key.c
213
REG_WRITE(ah, AR_KEYTABLE_KEY3(entry), key3);
drivers/net/wireless/ath/key.c
216
REG_WRITE(ah, AR_KEYTABLE_KEY4(entry), key4);
drivers/net/wireless/ath/key.c
217
REG_WRITE(ah, AR_KEYTABLE_TYPE(entry), keyType);
drivers/net/wireless/ath/key.c
243
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/key.c
246
REG_WRITE(ah, AR_KEYTABLE_KEY0(micentry), mic0);
drivers/net/wireless/ath/key.c
247
REG_WRITE(ah, AR_KEYTABLE_KEY1(micentry), mic1);
drivers/net/wireless/ath/key.c
250
REG_WRITE(ah, AR_KEYTABLE_KEY2(micentry), mic2);
drivers/net/wireless/ath/key.c
251
REG_WRITE(ah, AR_KEYTABLE_KEY3(micentry), mic3);
drivers/net/wireless/ath/key.c
254
REG_WRITE(ah, AR_KEYTABLE_KEY4(micentry), mic4);
drivers/net/wireless/ath/key.c
255
REG_WRITE(ah, AR_KEYTABLE_TYPE(micentry),
drivers/net/wireless/ath/key.c
258
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/key.c
282
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/key.c
285
REG_WRITE(ah, AR_KEYTABLE_KEY0(micentry), mic0);
drivers/net/wireless/ath/key.c
286
REG_WRITE(ah, AR_KEYTABLE_KEY1(micentry), 0);
drivers/net/wireless/ath/key.c
289
REG_WRITE(ah, AR_KEYTABLE_KEY2(micentry), mic2);
drivers/net/wireless/ath/key.c
290
REG_WRITE(ah, AR_KEYTABLE_KEY3(micentry), 0);
drivers/net/wireless/ath/key.c
293
REG_WRITE(ah, AR_KEYTABLE_KEY4(micentry), 0);
drivers/net/wireless/ath/key.c
294
REG_WRITE(ah, AR_KEYTABLE_TYPE(micentry),
drivers/net/wireless/ath/key.c
297
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/key.c
300
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/key.c
303
REG_WRITE(ah, AR_KEYTABLE_MAC0(micentry), 0);
drivers/net/wireless/ath/key.c
304
REG_WRITE(ah, AR_KEYTABLE_MAC1(micentry), 0);
drivers/net/wireless/ath/key.c
311
REG_WRITE(ah, AR_KEYTABLE_KEY0(entry), key0);
drivers/net/wireless/ath/key.c
312
REG_WRITE(ah, AR_KEYTABLE_KEY1(entry), key1);
drivers/net/wireless/ath/key.c
314
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/key.c
316
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/key.c
319
REG_WRITE(ah, AR_KEYTABLE_KEY0(entry), key0);
drivers/net/wireless/ath/key.c
320
REG_WRITE(ah, AR_KEYTABLE_KEY1(entry), key1);
drivers/net/wireless/ath/key.c
323
REG_WRITE(ah, AR_KEYTABLE_KEY2(entry), key2);
drivers/net/wireless/ath/key.c
324
REG_WRITE(ah, AR_KEYTABLE_KEY3(entry), key3);
drivers/net/wireless/ath/key.c
327
REG_WRITE(ah, AR_KEYTABLE_KEY4(entry), key4);
drivers/net/wireless/ath/key.c
328
REG_WRITE(ah, AR_KEYTABLE_TYPE(entry), keyType);
drivers/net/wireless/ath/key.c
330
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/key.c
45
void *ah = common->ah;
drivers/net/wireless/ath/key.c
53
keyType = REG_READ(ah, AR_KEYTABLE_TYPE(entry));
drivers/net/wireless/ath/key.c
55
ENABLE_REGWRITE_BUFFER(ah);
drivers/net/wireless/ath/key.c
57
REG_WRITE(ah, AR_KEYTABLE_KEY0(entry), 0);
drivers/net/wireless/ath/key.c
58
REG_WRITE(ah, AR_KEYTABLE_KEY1(entry), 0);
drivers/net/wireless/ath/key.c
59
REG_WRITE(ah, AR_KEYTABLE_KEY2(entry), 0);
drivers/net/wireless/ath/key.c
60
REG_WRITE(ah, AR_KEYTABLE_KEY3(entry), 0);
drivers/net/wireless/ath/key.c
61
REG_WRITE(ah, AR_KEYTABLE_KEY4(entry), 0);
drivers/net/wireless/ath/key.c
62
REG_WRITE(ah, AR_KEYTABLE_TYPE(entry), AR_KEYTABLE_TYPE_CLR);
drivers/net/wireless/ath/key.c
63
REG_WRITE(ah, AR_KEYTABLE_MAC0(entry), 0);
drivers/net/wireless/ath/key.c
64
REG_WRITE(ah, AR_KEYTABLE_MAC1(entry), 0);
drivers/net/wireless/ath/key.c
69
REG_WRITE(ah, AR_KEYTABLE_KEY0(micentry), 0);
drivers/net/wireless/ath/key.c
70
REG_WRITE(ah, AR_KEYTABLE_KEY1(micentry), 0);
drivers/net/wireless/ath/key.c
71
REG_WRITE(ah, AR_KEYTABLE_KEY2(micentry), 0);
drivers/net/wireless/ath/key.c
72
REG_WRITE(ah, AR_KEYTABLE_KEY3(micentry), 0);
drivers/net/wireless/ath/key.c
74
REG_WRITE(ah, AR_KEYTABLE_KEY4(micentry), 0);
drivers/net/wireless/ath/key.c
75
REG_WRITE(ah, AR_KEYTABLE_TYPE(micentry),
drivers/net/wireless/ath/key.c
81
REGWRITE_BUFFER_FLUSH(ah);
drivers/net/wireless/ath/key.c
91
void *ah = common->ah;
drivers/perf/arm-ccn.c
511
static CCN_CMP_MASK_ATTR_RO(ah);
drivers/s390/char/raw3270.c
428
char ah;
drivers/video/fbdev/sis/init.c
2857
unsigned short dl, unsigned short ah, unsigned short al, unsigned short dh)
drivers/video/fbdev/sis/init.c
2862
case 0: d1 = dh; d2 = ah; d3 = al; break;
drivers/video/fbdev/sis/init.c
2863
case 1: d1 = ah; d2 = al; d3 = dh; break;
drivers/video/fbdev/sis/init.c
2864
default: d1 = al; d2 = dh; d3 = ah;
include/linux/math64.h
193
u32 ah = a >> 32, al = a;
include/linux/math64.h
197
if (ah)
include/linux/math64.h
198
ret += mul_u32_u32(ah, mul) << (32 - shift);
include/linux/qed/qed_if.h
1403
struct qed_eth_stats_ah ah;
include/rdma/ib_mad.h
470
struct ib_ah *ah;
include/rdma/ib_verbs.h
1459
struct ib_ah *ah;
include/rdma/ib_verbs.h
2516
int (*create_ah)(struct ib_ah *ah, struct rdma_ah_init_attr *attr,
include/rdma/ib_verbs.h
2518
int (*create_user_ah)(struct ib_ah *ah, struct rdma_ah_init_attr *attr,
include/rdma/ib_verbs.h
2520
int (*modify_ah)(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
include/rdma/ib_verbs.h
2521
int (*query_ah)(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
include/rdma/ib_verbs.h
2522
int (*destroy_ah)(struct ib_ah *ah, u32 flags);
include/rdma/ib_verbs.h
3755
int rdma_modify_ah(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
include/rdma/ib_verbs.h
3764
int rdma_query_ah(struct ib_ah *ah, struct rdma_ah_attr *ah_attr);
include/rdma/ib_verbs.h
3777
int rdma_destroy_ah_user(struct ib_ah *ah, u32 flags, struct ib_udata *udata);
include/rdma/ib_verbs.h
3786
static inline void rdma_destroy_ah(struct ib_ah *ah, u32 flags)
include/rdma/ib_verbs.h
3788
int ret = rdma_destroy_ah_user(ah, flags, NULL);
include/rdma/rdmavt_qp.h
215
return ibah_to_rvtah(swqe->ud_wr.wr.ah);
include/uapi/rdma/ib_user_verbs.h
845
__u32 ah;
include/vdso/math64.h
45
u32 ah = a >> 32, al = a;
include/vdso/math64.h
53
if (ah)
include/vdso/math64.h
54
ret += mul_u32_u32(ah, mul) << (32 - shift);
lib/crypto/mpi/longlong.h
114
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1145
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1150
: "%0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
1154
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1159
: "0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
119
: "%r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
1193
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1197
: "%0" ((unsigned int)(ah)), \
lib/crypto/mpi/longlong.h
1201
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1205
: "0" ((unsigned int)(ah)), \
lib/crypto/mpi/longlong.h
123
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1250
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1254
(sh) = (ah) + (bh) + (__x < (al)); \
lib/crypto/mpi/longlong.h
1260
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
1264
(sh) = (ah) - (bh) - (__x > (al)); \
lib/crypto/mpi/longlong.h
128
: "r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
176
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
181
: "%r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
185
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
190
: "r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
263
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
268
: "%0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
272
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
277
: "0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
300
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
305
: "%rM" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
309
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
314
: "rM" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
397
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
402
: "%0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
406
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
411
: "0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
450
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
456
: "%dI" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
460
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
466
: "dI" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
515
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
520
: "%0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
524
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
529
: "0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
594
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
599
: "%rJ" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
603
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
608
: "rJ" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
721
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
727
: "%r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
734
: "%r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
741
: "%r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
746
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
748
if (__builtin_constant_p(ah) && (ah) == 0) \
lib/crypto/mpi/longlong.h
755
else if (__builtin_constant_p(ah) && (ah) == ~(USItype) 0) \
lib/crypto/mpi/longlong.h
766
: "r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
773
: "r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
780
: "r" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
839
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
844
: "%0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
848
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
853
: "0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
874
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
879
: "%0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
883
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
888
: "0" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
950
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
955
: "%rJ" ((USItype)(ah)), \
lib/crypto/mpi/longlong.h
960
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
lib/crypto/mpi/longlong.h
965
: "rJ" ((USItype)(ah)), \
net/bridge/netfilter/ebt_among.c
113
const struct arphdr *ah;
net/bridge/netfilter/ebt_among.c
118
ah = skb_header_pointer(skb, 0, sizeof(_arph), &_arph);
net/bridge/netfilter/ebt_among.c
119
if (ah == NULL ||
net/bridge/netfilter/ebt_among.c
120
ah->ar_pln != sizeof(__be32) ||
net/bridge/netfilter/ebt_among.c
121
ah->ar_hln != ETH_ALEN)
net/bridge/netfilter/ebt_among.c
82
const struct arphdr *ah;
net/bridge/netfilter/ebt_among.c
87
ah = skb_header_pointer(skb, 0, sizeof(_arph), &_arph);
net/bridge/netfilter/ebt_among.c
88
if (ah == NULL ||
net/bridge/netfilter/ebt_among.c
89
ah->ar_pln != sizeof(__be32) ||
net/bridge/netfilter/ebt_among.c
90
ah->ar_hln != ETH_ALEN)
net/bridge/netfilter/ebt_arp.c
23
const struct arphdr *ah;
net/bridge/netfilter/ebt_arp.c
26
ah = skb_header_pointer(skb, 0, sizeof(_arph), &_arph);
net/bridge/netfilter/ebt_arp.c
27
if (ah == NULL)
net/bridge/netfilter/ebt_arp.c
30
NF_INVF(info, EBT_ARP_OPCODE, info->opcode != ah->ar_op))
net/bridge/netfilter/ebt_arp.c
33
NF_INVF(info, EBT_ARP_HTYPE, info->htype != ah->ar_hrd))
net/bridge/netfilter/ebt_arp.c
36
NF_INVF(info, EBT_ARP_PTYPE, info->ptype != ah->ar_pro))
net/bridge/netfilter/ebt_arp.c
43
if (ah->ar_pln != sizeof(__be32) || ah->ar_pro != htons(ETH_P_IP))
net/bridge/netfilter/ebt_arp.c
46
ah->ar_hln, sizeof(saddr),
net/bridge/netfilter/ebt_arp.c
51
2*ah->ar_hln+sizeof(saddr),
net/bridge/netfilter/ebt_arp.c
72
if (ah->ar_hln != ETH_ALEN || ah->ar_hrd != htons(ARPHRD_ETHER))
net/bridge/netfilter/ebt_arp.c
87
ah->ar_hln + ah->ar_pln,
net/bridge/netfilter/ebt_log.c
141
const struct arphdr *ah;
net/bridge/netfilter/ebt_log.c
144
ah = skb_header_pointer(skb, 0, sizeof(_arph), &_arph);
net/bridge/netfilter/ebt_log.c
145
if (ah == NULL) {
net/bridge/netfilter/ebt_log.c
150
ntohs(ah->ar_hrd), ntohs(ah->ar_pro),
net/bridge/netfilter/ebt_log.c
151
ntohs(ah->ar_op));
net/bridge/netfilter/ebt_log.c
156
if (ah->ar_hrd == htons(1) &&
net/bridge/netfilter/ebt_log.c
157
ah->ar_hln == ETH_ALEN &&
net/bridge/netfilter/ebt_log.c
158
ah->ar_pln == sizeof(__be32)) {
net/ipv4/ah4.c
125
struct ip_auth_hdr *ah = ip_auth_hdr(skb);
net/ipv4/ah4.c
130
memcpy(ah->auth_data, icv, ahp->icv_trunc_len);
net/ipv4/ah4.c
155
struct ip_auth_hdr *ah;
net/ipv4/ah4.c
170
ah = ip_auth_hdr(skb);
net/ipv4/ah4.c
187
memset(ah->auth_data, 0, ahp->icv_trunc_len);
net/ipv4/ah4.c
203
ah->nexthdr = *skb_mac_header(skb);
net/ipv4/ah4.c
213
ah->hdrlen = (XFRM_ALIGN4(sizeof(*ah) + ahp->icv_trunc_len) >> 2) - 2;
net/ipv4/ah4.c
215
ah->hdrlen = (XFRM_ALIGN8(sizeof(*ah) + ahp->icv_trunc_len) >> 2) - 2;
net/ipv4/ah4.c
217
ah->reserved = 0;
net/ipv4/ah4.c
218
ah->spi = x->id.spi;
net/ipv4/ah4.c
219
ah->seq_no = htonl(XFRM_SKB_CB(skb)->seq.output.low);
net/ipv4/ah4.c
246
memcpy(ah->auth_data, icv, ahp->icv_trunc_len);
net/ipv4/ah4.c
270
struct ip_auth_hdr *ah = ip_auth_hdr(skb);
net/ipv4/ah4.c
272
int ah_hlen = (ah->hdrlen + 2) << 2;
net/ipv4/ah4.c
285
err = ah->nexthdr;
net/ipv4/ah4.c
313
struct ip_auth_hdr *ah;
net/ipv4/ah4.c
321
if (!pskb_may_pull(skb, sizeof(*ah)))
net/ipv4/ah4.c
324
ah = (struct ip_auth_hdr *)skb->data;
net/ipv4/ah4.c
328
nexthdr = ah->nexthdr;
net/ipv4/ah4.c
329
ah_hlen = (ah->hdrlen + 2) << 2;
net/ipv4/ah4.c
332
if (ah_hlen != XFRM_ALIGN4(sizeof(*ah) + ahp->icv_full_len) &&
net/ipv4/ah4.c
333
ah_hlen != XFRM_ALIGN4(sizeof(*ah) + ahp->icv_trunc_len))
net/ipv4/ah4.c
336
if (ah_hlen != XFRM_ALIGN8(sizeof(*ah) + ahp->icv_full_len) &&
net/ipv4/ah4.c
337
ah_hlen != XFRM_ALIGN8(sizeof(*ah) + ahp->icv_trunc_len))
net/ipv4/ah4.c
356
ah = (struct ip_auth_hdr *)skb->data;
net/ipv4/ah4.c
380
memcpy(auth_data, ah->auth_data, ahp->icv_trunc_len);
net/ipv4/ah4.c
381
memset(ah->auth_data, 0, ahp->icv_trunc_len);
net/ipv4/ah4.c
443
struct ip_auth_hdr *ah = (struct ip_auth_hdr *)(skb->data+(iph->ihl<<2));
net/ipv4/ah4.c
458
ah->spi, IPPROTO_AH, AF_INET);
net/ipv4/ip_vti.c
322
struct ip_auth_hdr *ah ;
net/ipv4/ip_vti.c
345
ah = (struct ip_auth_hdr *)(skb->data+(iph->ihl<<2));
net/ipv4/ip_vti.c
346
spi = ah->spi;
net/ipv4/netfilter/ipt_ah.c
33
const struct ip_auth_hdr *ah;
net/ipv4/netfilter/ipt_ah.c
40
ah = skb_header_pointer(skb, par->thoff, sizeof(_ahdr), &_ahdr);
net/ipv4/netfilter/ipt_ah.c
41
if (ah == NULL) {
net/ipv4/netfilter/ipt_ah.c
51
ntohl(ah->spi),
net/ipv6/ah6.c
318
struct ip_auth_hdr *ah = ip_auth_hdr(skb);
net/ipv6/ah6.c
329
memcpy(ah->auth_data, icv, ahp->icv_trunc_len);
net/ipv6/ah6.c
351
struct ip_auth_hdr *ah;
net/ipv6/ah6.c
389
ah = ip_auth_hdr(skb);
net/ipv6/ah6.c
390
memset(ah->auth_data, 0, ahp->icv_trunc_len);
net/ipv6/ah6.c
413
ah->nexthdr = nexthdr;
net/ipv6/ah6.c
421
ah->hdrlen = (XFRM_ALIGN8(sizeof(*ah) + ahp->icv_trunc_len) >> 2) - 2;
net/ipv6/ah6.c
423
ah->reserved = 0;
net/ipv6/ah6.c
424
ah->spi = x->id.spi;
net/ipv6/ah6.c
425
ah->seq_no = htonl(XFRM_SKB_CB(skb)->seq.output.low);
net/ipv6/ah6.c
452
memcpy(ah->auth_data, icv, ahp->icv_trunc_len);
net/ipv6/ah6.c
471
struct ip_auth_hdr *ah = ip_auth_hdr(skb);
net/ipv6/ah6.c
473
int ah_hlen = ipv6_authlen(ah);
net/ipv6/ah6.c
486
err = ah->nexthdr;
net/ipv6/ah6.c
526
struct ip_auth_hdr *ah;
net/ipv6/ah6.c
550
ah = (struct ip_auth_hdr *)skb->data;
net/ipv6/ah6.c
554
nexthdr = ah->nexthdr;
net/ipv6/ah6.c
555
ah_hlen = ipv6_authlen(ah);
net/ipv6/ah6.c
557
if (ah_hlen != XFRM_ALIGN8(sizeof(*ah) + ahp->icv_full_len) &&
net/ipv6/ah6.c
558
ah_hlen != XFRM_ALIGN8(sizeof(*ah) + ahp->icv_trunc_len))
net/ipv6/ah6.c
569
ah = (struct ip_auth_hdr *)skb->data;
net/ipv6/ah6.c
594
memcpy(auth_data, ah->auth_data, ahp->icv_trunc_len);
net/ipv6/ah6.c
595
memset(ah->auth_data, 0, ahp->icv_trunc_len);
net/ipv6/ah6.c
657
struct ip_auth_hdr *ah = (struct ip_auth_hdr *)(skb->data+offset);
net/ipv6/ah6.c
664
x = xfrm_state_lookup(net, skb->mark, (xfrm_address_t *)&iph->daddr, ah->spi, IPPROTO_AH, AF_INET6);
net/ipv6/ip6_vti.c
601
struct ip_auth_hdr *ah;
net/ipv6/ip6_vti.c
619
ah = (struct ip_auth_hdr *)(skb->data + offset);
net/ipv6/ip6_vti.c
620
spi = ah->spi;
net/ipv6/netfilter/ip6t_ah.c
39
const struct ip_auth_hdr *ah;
net/ipv6/netfilter/ip6t_ah.c
52
ah = skb_header_pointer(skb, ptr, sizeof(_ah), &_ah);
net/ipv6/netfilter/ip6t_ah.c
53
if (ah == NULL) {
net/ipv6/netfilter/ip6t_ah.c
58
hdrlen = ipv6_authlen(ah);
net/ipv6/netfilter/ip6t_ah.c
60
pr_debug("IPv6 AH LEN %u %u ", hdrlen, ah->hdrlen);
net/ipv6/netfilter/ip6t_ah.c
61
pr_debug("RES %04X ", ah->reserved);
net/ipv6/netfilter/ip6t_ah.c
62
pr_debug("SPI %u %08X\n", ntohl(ah->spi), ntohl(ah->spi));
net/ipv6/netfilter/ip6t_ah.c
66
ntohl(ah->spi),
net/ipv6/netfilter/ip6t_ah.c
74
ahinfo->hdrres, ah->reserved,
net/ipv6/netfilter/ip6t_ah.c
75
!(ahinfo->hdrres && ah->reserved));
net/ipv6/netfilter/ip6t_ah.c
78
ntohl(ah->spi),
net/ipv6/netfilter/ip6t_ah.c
83
!(ahinfo->hdrres && ah->reserved);
net/netfilter/nf_log_syslog.c
461
const struct ip_auth_hdr *ah;
net/netfilter/nf_log_syslog.c
471
ah = skb_header_pointer(skb, iphoff + ih->ihl * 4,
net/netfilter/nf_log_syslog.c
473
if (!ah) {
net/netfilter/nf_log_syslog.c
480
nf_log_buf_add(m, "SPI=0x%x ", ntohl(ah->spi));
net/netfilter/nf_log_syslog.c
629
const struct ip_auth_hdr *ah;
net/netfilter/nf_log_syslog.c
639
ah = skb_header_pointer(skb, ptr, sizeof(_ahdr),
net/netfilter/nf_log_syslog.c
641
if (!ah) {
net/netfilter/nf_log_syslog.c
649
nf_log_buf_add(m, "SPI=0x%x ", ntohl(ah->spi));
net/netfilter/nf_log_syslog.c
66
const struct arphdr *ah;
net/netfilter/nf_log_syslog.c
70
ah = skb_header_pointer(skb, nhoff, sizeof(_arph), &_arph);
net/netfilter/nf_log_syslog.c
71
if (!ah) {
net/netfilter/nf_log_syslog.c
90
ntohs(ah->ar_hrd), ntohs(ah->ar_pro), ntohs(ah->ar_op));
net/netfilter/nf_log_syslog.c
94
if (ah->ar_hrd != htons(ARPHRD_ETHER) ||
net/netfilter/nf_log_syslog.c
95
ah->ar_hln != ETH_ALEN ||
net/netfilter/nf_log_syslog.c
96
ah->ar_pln != sizeof(__be32))
net/xfrm/xfrm_interface_core.c
592
struct ip_auth_hdr *ah ;
net/xfrm/xfrm_interface_core.c
603
ah = (struct ip_auth_hdr *)(skb->data+(iph->ihl<<2));
net/xfrm/xfrm_interface_core.c
604
spi = ah->spi;
net/xfrm/xfrm_interface_core.c
653
struct ip_auth_hdr *ah;
net/xfrm/xfrm_interface_core.c
664
ah = (struct ip_auth_hdr *)(skb->data + offset);
net/xfrm/xfrm_interface_core.c
665
spi = ah->spi;
net/xfrm/xfrm_state.c
254
X(afinfo, type, ah);
net/xfrm/xfrm_state.c
299
X(afinfo, type, ah);
tools/include/linux/math64.h
48
u32 ah, al;
tools/include/linux/math64.h
52
ah = a >> 32;
tools/include/linux/math64.h
55
if (ah)
tools/include/linux/math64.h
56
ret += mul_u32_u32(ah, b) << (32 - shift);
tools/perf/util/perf-regs-arch/perf_regs_x86.c
28
SDT_NAME_REG(ah, ax),