Lines Matching refs:priv
32 struct p54_common *priv = dev->priv; in p54_parse_firmware() local
42 if (priv->rx_start) in p54_parse_firmware()
58 priv->fw_interface = be32_to_cpup((__be32 *) in p54_parse_firmware()
60 switch (priv->fw_interface) { in p54_parse_firmware()
65 wiphy_info(priv->hw->wiphy, in p54_parse_firmware()
72 wiphy_err(priv->hw->wiphy, in p54_parse_firmware()
85 priv->rx_start = le32_to_cpu(desc->rx_start); in p54_parse_firmware()
87 priv->rx_end = le32_to_cpu(desc->rx_end) - 0x3500; in p54_parse_firmware()
88 priv->headroom = desc->headroom; in p54_parse_firmware()
89 priv->tailroom = desc->tailroom; in p54_parse_firmware()
90 priv->privacy_caps = desc->privacy_caps; in p54_parse_firmware()
91 priv->rx_keycache_size = desc->rx_keycache_size; in p54_parse_firmware()
93 priv->rx_mtu = le16_to_cpu(desc->rx_mtu); in p54_parse_firmware()
95 priv->rx_mtu = (size_t) in p54_parse_firmware()
96 0x620 - priv->tx_hdr_len; in p54_parse_firmware()
97 maxlen = priv->tx_hdr_len + /* USB devices */ in p54_parse_firmware()
101 if (priv->rx_mtu > maxlen && PAGE_SIZE == 4096) { in p54_parse_firmware()
103 "to %d\n", priv->rx_mtu, maxlen); in p54_parse_firmware()
104 priv->rx_mtu = maxlen; in p54_parse_firmware()
112 priv->fw_var = le16_to_cpu(exp_if[i].variant); in p54_parse_firmware()
127 wiphy_info(priv->hw->wiphy, in p54_parse_firmware()
129 fw_version, priv->fw_var >> 8, priv->fw_var & 0xff); in p54_parse_firmware()
132 priv->fw_var >> 8, priv->fw_var & 0xff); in p54_parse_firmware()
135 if (priv->fw_var < 0x500) in p54_parse_firmware()
136 wiphy_info(priv->hw->wiphy, in p54_parse_firmware()
141 if (priv->fw_var >= 0x300) { in p54_parse_firmware()
144 if (priv->fw_var >= 0x500) { in p54_parse_firmware()
145 priv->tx_stats[P54_QUEUE_AC_VO].limit = 16; in p54_parse_firmware()
146 priv->tx_stats[P54_QUEUE_AC_VI].limit = 16; in p54_parse_firmware()
147 priv->tx_stats[P54_QUEUE_AC_BE].limit = 16; in p54_parse_firmware()
148 priv->tx_stats[P54_QUEUE_AC_BK].limit = 16; in p54_parse_firmware()
150 priv->tx_stats[P54_QUEUE_AC_VO].limit = 3; in p54_parse_firmware()
151 priv->tx_stats[P54_QUEUE_AC_VI].limit = 4; in p54_parse_firmware()
152 priv->tx_stats[P54_QUEUE_AC_BE].limit = 3; in p54_parse_firmware()
153 priv->tx_stats[P54_QUEUE_AC_BK].limit = 2; in p54_parse_firmware()
155 priv->hw->queues = P54_QUEUE_AC_NUM; in p54_parse_firmware()
158 wiphy_info(priv->hw->wiphy, in p54_parse_firmware()
160 (priv->privacy_caps & BR_DESC_PRIV_CAP_WEP) ? "YES" : "no", in p54_parse_firmware()
161 (priv->privacy_caps & in p54_parse_firmware()
164 (priv->privacy_caps & BR_DESC_PRIV_CAP_AESCCMP) in p54_parse_firmware()
167 if (priv->rx_keycache_size) { in p54_parse_firmware()
179 priv->used_rxkeys = kzalloc(BITS_TO_LONGS( in p54_parse_firmware()
180 priv->rx_keycache_size), GFP_KERNEL); in p54_parse_firmware()
182 if (!priv->used_rxkeys) in p54_parse_firmware()
190 static struct sk_buff *p54_alloc_skb(struct p54_common *priv, u16 hdr_flags, in p54_alloc_skb() argument
200 if (unlikely(skb_queue_len(&priv->tx_pending) > 64)) in p54_alloc_skb()
203 skb = __dev_alloc_skb(priv->tx_hdr_len + frame_len, memflags); in p54_alloc_skb()
206 skb_reserve(skb, priv->tx_hdr_len); in p54_alloc_skb()
216 int p54_download_eeprom(struct p54_common *priv, void *buf, in p54_download_eeprom() argument
225 if (priv->fw_var >= 0x509) in p54_download_eeprom()
230 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL, eeprom_hdr_size + in p54_download_eeprom()
236 mutex_lock(&priv->eeprom_mutex); in p54_download_eeprom()
237 priv->eeprom = buf; in p54_download_eeprom()
241 if (priv->fw_var < 0x509) { in p54_download_eeprom()
251 p54_tx(priv, skb); in p54_download_eeprom()
254 &priv->eeprom_comp, HZ); in p54_download_eeprom()
256 wiphy_err(priv->hw->wiphy, in p54_download_eeprom()
260 priv->eeprom = NULL; in p54_download_eeprom()
261 mutex_unlock(&priv->eeprom_mutex); in p54_download_eeprom()
265 int p54_update_beacon_tim(struct p54_common *priv, u16 aid, bool set) in p54_update_beacon_tim() argument
270 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*tim), in p54_update_beacon_tim()
278 p54_tx(priv, skb); in p54_update_beacon_tim()
282 int p54_sta_unlock(struct p54_common *priv, u8 *addr) in p54_sta_unlock() argument
287 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*sta), in p54_sta_unlock()
294 p54_tx(priv, skb); in p54_sta_unlock()
298 int p54_tx_cancel(struct p54_common *priv, __le32 req_id) in p54_tx_cancel() argument
304 if (unlikely(_req_id < priv->rx_start || _req_id > priv->rx_end)) in p54_tx_cancel()
307 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*cancel), in p54_tx_cancel()
314 p54_tx(priv, skb); in p54_tx_cancel()
318 int p54_setup_mac(struct p54_common *priv) in p54_setup_mac() argument
324 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*setup), in p54_setup_mac()
330 if (!(priv->hw->conf.flags & IEEE80211_CONF_IDLE)) { in p54_setup_mac()
331 switch (priv->mode) { in p54_setup_mac()
354 if (priv->filter_flags & FIF_OTHER_BSS && in p54_setup_mac()
362 memcpy(setup->mac_addr, priv->mac_addr, ETH_ALEN); in p54_setup_mac()
363 memcpy(setup->bssid, priv->bssid, ETH_ALEN); in p54_setup_mac()
364 setup->rx_antenna = 2 & priv->rx_diversity_mask; /* automatic */ in p54_setup_mac()
366 if (priv->fw_var < 0x500) { in p54_setup_mac()
367 setup->v1.basic_rate_mask = cpu_to_le32(priv->basic_rate_mask); in p54_setup_mac()
369 setup->v1.rx_addr = cpu_to_le32(priv->rx_end); in p54_setup_mac()
370 setup->v1.max_rx = cpu_to_le16(priv->rx_mtu); in p54_setup_mac()
371 setup->v1.rxhw = cpu_to_le16(priv->rxhw); in p54_setup_mac()
372 setup->v1.wakeup_timer = cpu_to_le16(priv->wakeup_timer); in p54_setup_mac()
375 setup->v2.rx_addr = cpu_to_le32(priv->rx_end); in p54_setup_mac()
376 setup->v2.max_rx = cpu_to_le16(priv->rx_mtu); in p54_setup_mac()
377 setup->v2.rxhw = cpu_to_le16(priv->rxhw); in p54_setup_mac()
378 setup->v2.timer = cpu_to_le16(priv->wakeup_timer); in p54_setup_mac()
380 setup->v2.basic_rate_mask = cpu_to_le32(priv->basic_rate_mask); in p54_setup_mac()
389 p54_tx(priv, skb); in p54_setup_mac()
390 priv->phy_idle = mode == P54_FILTER_TYPE_HIBERNATE; in p54_setup_mac()
394 int p54_scan(struct p54_common *priv, u16 mode, u16 dwell) in p54_scan() argument
406 __le16 freq = cpu_to_le16(priv->hw->conf.chandef.chan->center_freq); in p54_scan()
408 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*head) + in p54_scan()
421 if (priv->rxhw == PDR_SYNTH_FRONTEND_LONGBOW) { in p54_scan()
427 for (i = 0; i < priv->iq_autocal_len; i++) { in p54_scan()
428 if (priv->iq_autocal[i].freq != freq) in p54_scan()
431 memcpy(iq_autocal, &priv->iq_autocal[i].params, in p54_scan()
435 if (i == priv->iq_autocal_len) in p54_scan()
438 if (priv->rxhw == PDR_SYNTH_FRONTEND_LONGBOW) in p54_scan()
443 for (i = 0; i < priv->output_limit->entries; i++) { in p54_scan()
444 __le16 *entry_freq = (void *) (priv->output_limit->data + in p54_scan()
445 priv->output_limit->entry_size * i); in p54_scan()
450 if (priv->rxhw == PDR_SYNTH_FRONTEND_LONGBOW) { in p54_scan()
453 priv->output_limit->entry_size); in p54_scan()
470 if (i == priv->output_limit->entries) in p54_scan()
473 entry = (void *)(priv->curve_data->data + priv->curve_data->offset); in p54_scan()
474 for (i = 0; i < priv->curve_data->entries; i++) { in p54_scan()
476 entry += priv->curve_data->entry_size; in p54_scan()
480 if (priv->rxhw == PDR_SYNTH_FRONTEND_LONGBOW) { in p54_scan()
483 priv->curve_data->entry_size); in p54_scan()
487 (void *) priv->curve_data->data; in p54_scan()
498 if (i == priv->curve_data->entries) in p54_scan()
501 if ((priv->fw_var >= 0x500) && (priv->fw_var < 0x509)) { in p54_scan()
503 rate->basic_rate_mask = cpu_to_le32(priv->basic_rate_mask); in p54_scan()
509 rssi_data = p54_rssi_find(priv, le16_to_cpu(freq)); in p54_scan()
512 if (priv->rxhw == PDR_SYNTH_FRONTEND_LONGBOW) { in p54_scan()
519 if (priv->fw_var >= 0x509) { in p54_scan()
521 rate->basic_rate_mask = cpu_to_le32(priv->basic_rate_mask); in p54_scan()
529 p54_tx(priv, skb); in p54_scan()
530 priv->cur_rssi = rssi_data; in p54_scan()
534 wiphy_err(priv->hw->wiphy, "frequency change to channel %d failed.\n", in p54_scan()
536 priv->hw->conf.chandef.chan->center_freq)); in p54_scan()
542 int p54_set_leds(struct p54_common *priv) in p54_set_leds() argument
547 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*led), in p54_set_leds()
554 led->mask[0] = led->mask[1] = cpu_to_le16(priv->softled_state); in p54_set_leds()
557 p54_tx(priv, skb); in p54_set_leds()
561 int p54_set_edcf(struct p54_common *priv) in p54_set_edcf() argument
567 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*edcf), in p54_set_edcf()
573 if (priv->use_short_slot) { in p54_set_edcf()
586 rtd = 3 * priv->coverage_class; in p54_set_edcf()
593 memcpy(edcf->queue, priv->qos_params, sizeof(edcf->queue)); in p54_set_edcf()
594 p54_tx(priv, skb); in p54_set_edcf()
598 int p54_set_ps(struct p54_common *priv) in p54_set_ps() argument
605 if (priv->hw->conf.flags & IEEE80211_CONF_PS && in p54_set_ps()
606 !priv->powersave_override) in p54_set_ps()
612 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*psm), in p54_set_ps()
619 psm->aid = cpu_to_le16(priv->aid); in p54_set_ps()
622 cpu_to_le16(priv->hw->conf.listen_interval); in p54_set_ps()
631 p54_tx(priv, skb); in p54_set_ps()
632 priv->phy_ps = mode != P54_PSM_CAM; in p54_set_ps()
636 int p54_init_xbow_synth(struct p54_common *priv) in p54_init_xbow_synth() argument
641 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*xbow), in p54_init_xbow_synth()
651 p54_tx(priv, skb); in p54_init_xbow_synth()
655 int p54_upload_key(struct p54_common *priv, u8 algo, int slot, u8 idx, u8 len, in p54_upload_key() argument
661 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*rxkey), in p54_upload_key()
695 wiphy_err(priv->hw->wiphy, in p54_upload_key()
701 p54_tx(priv, skb); in p54_upload_key()
705 int p54_fetch_statistics(struct p54_common *priv) in p54_fetch_statistics() argument
711 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL, in p54_fetch_statistics()
731 p54_tx(priv, skb); in p54_fetch_statistics()
735 int p54_set_groupfilter(struct p54_common *priv) in p54_set_groupfilter() argument
741 skb = p54_alloc_skb(priv, P54_HDR_FLAG_CONTROL_OPSET, sizeof(*grp), in p54_set_groupfilter()
748 on = !(priv->filter_flags & FIF_ALLMULTI) && in p54_set_groupfilter()
749 (priv->mc_maclist_num > 0 && in p54_set_groupfilter()
750 priv->mc_maclist_num <= MC_FILTER_ADDRESS_NUM); in p54_set_groupfilter()
754 grp->num_address = cpu_to_le16(priv->mc_maclist_num); in p54_set_groupfilter()
755 memcpy(grp->mac_list, priv->mc_maclist, sizeof(grp->mac_list)); in p54_set_groupfilter()
762 p54_tx(priv, skb); in p54_set_groupfilter()