• Home
  • Raw
  • Download

Lines Matching refs:wl

287 static void brcms_free(struct brcms_info *wl)  in brcms_free()  argument
292 if (wl->fw.fw_cnt) in brcms_free()
293 brcms_ucode_data_free(&wl->ucode); in brcms_free()
294 if (wl->irq) in brcms_free()
295 free_irq(wl->irq, wl); in brcms_free()
298 tasklet_kill(&wl->tasklet); in brcms_free()
300 if (wl->pub) { in brcms_free()
301 brcms_debugfs_detach(wl->pub); in brcms_free()
302 brcms_c_module_unregister(wl->pub, "linux", wl); in brcms_free()
306 if (wl->wlc) { in brcms_free()
307 brcms_c_detach(wl->wlc); in brcms_free()
308 wl->wlc = NULL; in brcms_free()
309 wl->pub = NULL; in brcms_free()
315 while (atomic_read(&wl->callbacks) > 0) in brcms_free()
319 for (t = wl->timers; t; t = next) { in brcms_free()
335 struct brcms_info *wl = hw->priv; in brcms_remove() local
337 if (wl->wlc) { in brcms_remove()
338 brcms_led_unregister(wl); in brcms_remove()
339 wiphy_rfkill_set_hw_state(wl->pub->ieee_hw->wiphy, false); in brcms_remove()
340 wiphy_rfkill_stop_polling(wl->pub->ieee_hw->wiphy); in brcms_remove()
344 brcms_free(wl); in brcms_remove()
354 static void brcms_release_fw(struct brcms_info *wl) in brcms_release_fw() argument
358 release_firmware(wl->fw.fw_bin[i]); in brcms_release_fw()
359 release_firmware(wl->fw.fw_hdr[i]); in brcms_release_fw()
367 static int brcms_request_fw(struct brcms_info *wl, struct bcma_device *pdev) in brcms_request_fw() argument
374 memset(&wl->fw, 0, sizeof(struct brcms_firmware)); in brcms_request_fw()
380 status = request_firmware(&wl->fw.fw_bin[i], fw_name, device); in brcms_request_fw()
382 wiphy_err(wl->wiphy, "%s: fail to load firmware %s\n", in brcms_request_fw()
388 status = request_firmware(&wl->fw.fw_hdr[i], fw_name, device); in brcms_request_fw()
390 wiphy_err(wl->wiphy, "%s: fail to load firmware %s\n", in brcms_request_fw()
394 wl->fw.hdr_num_entries[i] = in brcms_request_fw()
395 wl->fw.fw_hdr[i]->size / (sizeof(struct firmware_hdr)); in brcms_request_fw()
397 wl->fw.fw_cnt = i; in brcms_request_fw()
398 status = brcms_ucode_data_init(wl, &wl->ucode); in brcms_request_fw()
399 brcms_release_fw(wl); in brcms_request_fw()
407 struct brcms_info *wl = hw->priv; in brcms_ops_tx() local
410 spin_lock_bh(&wl->lock); in brcms_ops_tx()
411 if (!wl->pub->up) { in brcms_ops_tx()
412 brcms_err(wl->wlc->hw->d11core, "ops->tx called while down\n"); in brcms_ops_tx()
416 if (brcms_c_sendpkt_mac80211(wl->wlc, skb, hw)) in brcms_ops_tx()
419 spin_unlock_bh(&wl->lock); in brcms_ops_tx()
424 struct brcms_info *wl = hw->priv; in brcms_ops_start() local
428 if (!wl->ucode.bcm43xx_bomminor) { in brcms_ops_start()
429 err = brcms_request_fw(wl, wl->wlc->hw->d11core); in brcms_ops_start()
435 spin_lock_bh(&wl->lock); in brcms_ops_start()
436 blocked = brcms_rfkill_set_hw_state(wl); in brcms_ops_start()
437 spin_unlock_bh(&wl->lock); in brcms_ops_start()
439 wiphy_rfkill_stop_polling(wl->pub->ieee_hw->wiphy); in brcms_ops_start()
441 spin_lock_bh(&wl->lock); in brcms_ops_start()
443 wl->mute_tx = true; in brcms_ops_start()
445 if (!wl->pub->up) in brcms_ops_start()
447 err = brcms_up(wl); in brcms_ops_start()
452 spin_unlock_bh(&wl->lock); in brcms_ops_start()
455 brcms_err(wl->wlc->hw->d11core, "%s: brcms_up() returned %d\n", in brcms_ops_start()
458 bcma_core_pci_power_save(wl->wlc->hw->d11core->bus, true); in brcms_ops_start()
464 struct brcms_info *wl = hw->priv; in brcms_ops_stop() local
469 if (wl->wlc == NULL) in brcms_ops_stop()
472 spin_lock_bh(&wl->lock); in brcms_ops_stop()
473 status = brcms_c_chipmatch(wl->wlc->hw->d11core); in brcms_ops_stop()
474 spin_unlock_bh(&wl->lock); in brcms_ops_stop()
476 brcms_err(wl->wlc->hw->d11core, in brcms_ops_stop()
481 bcma_core_pci_power_save(wl->wlc->hw->d11core->bus, false); in brcms_ops_stop()
484 spin_lock_bh(&wl->lock); in brcms_ops_stop()
485 brcms_down(wl); in brcms_ops_stop()
486 spin_unlock_bh(&wl->lock); in brcms_ops_stop()
492 struct brcms_info *wl = hw->priv; in brcms_ops_add_interface() local
498 brcms_err(wl->wlc->hw->d11core, in brcms_ops_add_interface()
504 spin_lock_bh(&wl->lock); in brcms_ops_add_interface()
505 wl->mute_tx = false; in brcms_ops_add_interface()
506 brcms_c_mute(wl->wlc, false); in brcms_ops_add_interface()
508 brcms_c_start_station(wl->wlc, vif->addr); in brcms_ops_add_interface()
510 brcms_c_start_ap(wl->wlc, vif->addr, vif->bss_conf.bssid, in brcms_ops_add_interface()
513 brcms_c_start_adhoc(wl->wlc, vif->addr); in brcms_ops_add_interface()
514 spin_unlock_bh(&wl->lock); in brcms_ops_add_interface()
527 struct brcms_info *wl = hw->priv; in brcms_ops_config() local
528 struct bcma_device *core = wl->wlc->hw->d11core; in brcms_ops_config()
532 spin_lock_bh(&wl->lock); in brcms_ops_config()
534 brcms_c_set_beacon_listen_interval(wl->wlc, in brcms_ops_config()
547 err = brcms_c_set_tx_power(wl->wlc, conf->power_level); in brcms_ops_config()
553 new_int = brcms_c_get_tx_power(wl->wlc); in brcms_ops_config()
563 err = brcms_c_set_channel(wl->wlc, in brcms_ops_config()
569 err = brcms_c_set_rate_limit(wl->wlc, in brcms_ops_config()
574 spin_unlock_bh(&wl->lock); in brcms_ops_config()
583 struct brcms_info *wl = hw->priv; in brcms_ops_bss_info_changed() local
584 struct bcma_device *core = wl->wlc->hw->d11core; in brcms_ops_bss_info_changed()
592 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
593 brcms_c_associate_upd(wl->wlc, info->assoc); in brcms_ops_bss_info_changed()
594 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
604 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
605 brcms_c_set_shortslot_override(wl->wlc, val); in brcms_ops_bss_info_changed()
606 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
613 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
614 brcms_c_protection_upd(wl->wlc, BRCMS_PROT_N_CFG, in brcms_ops_bss_info_changed()
616 brcms_c_protection_upd(wl->wlc, BRCMS_PROT_N_NONGF, in brcms_ops_bss_info_changed()
618 brcms_c_protection_upd(wl->wlc, BRCMS_PROT_N_OBSS, in brcms_ops_bss_info_changed()
620 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
630 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
631 brcms_c_get_current_rateset(wl->wlc, &rs); in brcms_ops_bss_info_changed()
632 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
635 bi = hw->wiphy->bands[brcms_c_get_curband(wl->wlc)]; in brcms_ops_bss_info_changed()
646 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
647 error = brcms_c_set_rateset(wl->wlc, &rs); in brcms_ops_bss_info_changed()
648 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
655 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
656 brcms_c_set_beacon_period(wl->wlc, info->beacon_int); in brcms_ops_bss_info_changed()
657 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
661 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
662 brcms_c_set_addrmatch(wl->wlc, RCM_BSSID_OFFSET, info->bssid); in brcms_ops_bss_info_changed()
663 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
667 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
668 brcms_c_set_ssid(wl->wlc, info->ssid, info->ssid_len); in brcms_ops_bss_info_changed()
669 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
676 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
678 brcms_c_set_new_beacon(wl->wlc, beacon, tim_offset, in brcms_ops_bss_info_changed()
680 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
686 spin_lock_bh(&wl->lock); in brcms_ops_bss_info_changed()
688 brcms_c_set_new_probe_resp(wl->wlc, probe_resp); in brcms_ops_bss_info_changed()
689 spin_unlock_bh(&wl->lock); in brcms_ops_bss_info_changed()
698 brcms_c_enable_probe_resp(wl->wlc, true); in brcms_ops_bss_info_changed()
700 brcms_c_enable_probe_resp(wl->wlc, false); in brcms_ops_bss_info_changed()
739 struct brcms_info *wl = hw->priv; in brcms_ops_configure_filter() local
740 struct bcma_device *core = wl->wlc->hw->d11core; in brcms_ops_configure_filter()
758 spin_lock_bh(&wl->lock); in brcms_ops_configure_filter()
759 brcms_c_mac_promisc(wl->wlc, *total_flags); in brcms_ops_configure_filter()
760 spin_unlock_bh(&wl->lock); in brcms_ops_configure_filter()
768 struct brcms_info *wl = hw->priv; in brcms_ops_sw_scan_start() local
769 spin_lock_bh(&wl->lock); in brcms_ops_sw_scan_start()
770 brcms_c_scan_start(wl->wlc); in brcms_ops_sw_scan_start()
771 spin_unlock_bh(&wl->lock); in brcms_ops_sw_scan_start()
778 struct brcms_info *wl = hw->priv; in brcms_ops_sw_scan_complete() local
779 spin_lock_bh(&wl->lock); in brcms_ops_sw_scan_complete()
780 brcms_c_scan_stop(wl->wlc); in brcms_ops_sw_scan_complete()
781 spin_unlock_bh(&wl->lock); in brcms_ops_sw_scan_complete()
789 struct brcms_info *wl = hw->priv; in brcms_ops_conf_tx() local
791 spin_lock_bh(&wl->lock); in brcms_ops_conf_tx()
792 brcms_c_wme_setparams(wl->wlc, queue, params, true); in brcms_ops_conf_tx()
793 spin_unlock_bh(&wl->lock); in brcms_ops_conf_tx()
802 struct brcms_info *wl = hw->priv; in brcms_ops_sta_add() local
803 struct scb *scb = &wl->wlc->pri_scb; in brcms_ops_sta_add()
807 wl->pub->global_ampdu = &(scb->scb_ampdu); in brcms_ops_sta_add()
808 wl->pub->global_ampdu->scb = scb; in brcms_ops_sta_add()
809 wl->pub->global_ampdu->max_pdu = 16; in brcms_ops_sta_add()
823 struct brcms_info *wl = hw->priv; in brcms_ops_ampdu_action() local
824 struct scb *scb = &wl->wlc->pri_scb; in brcms_ops_ampdu_action()
839 spin_lock_bh(&wl->lock); in brcms_ops_ampdu_action()
840 status = brcms_c_aggregatable(wl->wlc, tid); in brcms_ops_ampdu_action()
841 spin_unlock_bh(&wl->lock); in brcms_ops_ampdu_action()
843 brcms_err(wl->wlc->hw->d11core, in brcms_ops_ampdu_action()
853 spin_lock_bh(&wl->lock); in brcms_ops_ampdu_action()
854 brcms_c_ampdu_flush(wl->wlc, sta, tid); in brcms_ops_ampdu_action()
855 spin_unlock_bh(&wl->lock); in brcms_ops_ampdu_action()
865 spin_lock_bh(&wl->lock); in brcms_ops_ampdu_action()
866 brcms_c_ampdu_tx_operational(wl->wlc, tid, buf_size, in brcms_ops_ampdu_action()
869 spin_unlock_bh(&wl->lock); in brcms_ops_ampdu_action()
873 brcms_err(wl->wlc->hw->d11core, in brcms_ops_ampdu_action()
882 struct brcms_info *wl = hw->priv; in brcms_ops_rfkill_poll() local
885 spin_lock_bh(&wl->lock); in brcms_ops_rfkill_poll()
886 blocked = brcms_c_check_radio_disabled(wl->wlc); in brcms_ops_rfkill_poll()
887 spin_unlock_bh(&wl->lock); in brcms_ops_rfkill_poll()
889 wiphy_rfkill_set_hw_state(wl->pub->ieee_hw->wiphy, blocked); in brcms_ops_rfkill_poll()
892 static bool brcms_tx_flush_completed(struct brcms_info *wl) in brcms_tx_flush_completed() argument
896 spin_lock_bh(&wl->lock); in brcms_tx_flush_completed()
897 result = brcms_c_tx_flush_completed(wl->wlc); in brcms_tx_flush_completed()
898 spin_unlock_bh(&wl->lock); in brcms_tx_flush_completed()
905 struct brcms_info *wl = hw->priv; in brcms_ops_flush() local
910 ret = wait_event_timeout(wl->tx_flush_wq, in brcms_ops_flush()
911 brcms_tx_flush_completed(wl), in brcms_ops_flush()
914 brcms_dbg_mac80211(wl->wlc->hw->d11core, in brcms_ops_flush()
920 struct brcms_info *wl = hw->priv; in brcms_ops_get_tsf() local
923 spin_lock_bh(&wl->lock); in brcms_ops_get_tsf()
924 tsf = brcms_c_tsf_get(wl->wlc); in brcms_ops_get_tsf()
925 spin_unlock_bh(&wl->lock); in brcms_ops_get_tsf()
933 struct brcms_info *wl = hw->priv; in brcms_ops_set_tsf() local
935 spin_lock_bh(&wl->lock); in brcms_ops_set_tsf()
936 brcms_c_tsf_set(wl->wlc, tsf); in brcms_ops_set_tsf()
937 spin_unlock_bh(&wl->lock); in brcms_ops_set_tsf()
962 struct brcms_info *wl; in brcms_dpc() local
964 wl = (struct brcms_info *) data; in brcms_dpc()
966 spin_lock_bh(&wl->lock); in brcms_dpc()
969 if (wl->pub->up) { in brcms_dpc()
970 if (wl->resched) { in brcms_dpc()
973 spin_lock_irqsave(&wl->isr_lock, flags); in brcms_dpc()
974 brcms_c_intrsupd(wl->wlc); in brcms_dpc()
975 spin_unlock_irqrestore(&wl->isr_lock, flags); in brcms_dpc()
978 wl->resched = brcms_c_dpc(wl->wlc, true); in brcms_dpc()
982 if (!wl->pub->up) in brcms_dpc()
986 if (wl->resched) in brcms_dpc()
987 tasklet_schedule(&wl->tasklet); in brcms_dpc()
990 brcms_intrson(wl); in brcms_dpc()
993 spin_unlock_bh(&wl->lock); in brcms_dpc()
994 wake_up(&wl->tx_flush_wq); in brcms_dpc()
999 struct brcms_info *wl; in brcms_isr() local
1002 wl = (struct brcms_info *) dev_id; in brcms_isr()
1004 spin_lock(&wl->isr_lock); in brcms_isr()
1007 if (brcms_c_isr(wl->wlc)) { in brcms_isr()
1009 tasklet_schedule(&wl->tasklet); in brcms_isr()
1013 spin_unlock(&wl->isr_lock); in brcms_isr()
1023 struct brcms_info *wl = hw->priv; in ieee_hw_rate_init() local
1024 struct brcms_c_info *wlc = wl->wlc; in ieee_hw_rate_init()
1032 phy_type = brcms_c_get_phy_type(wl->wlc, 0); in ieee_hw_rate_init()
1047 if (wl->pub->_nbands > 1) { in ieee_hw_rate_init()
1101 struct brcms_info *wl = NULL; in brcms_attach() local
1115 wl = hw->priv; in brcms_attach()
1116 if (WARN_ON(hw == NULL) || WARN_ON(wl == NULL)) in brcms_attach()
1118 wl->wiphy = hw->wiphy; in brcms_attach()
1120 atomic_set(&wl->callbacks, 0); in brcms_attach()
1122 init_waitqueue_head(&wl->tx_flush_wq); in brcms_attach()
1125 tasklet_init(&wl->tasklet, brcms_dpc, (unsigned long) wl); in brcms_attach()
1127 spin_lock_init(&wl->lock); in brcms_attach()
1128 spin_lock_init(&wl->isr_lock); in brcms_attach()
1131 wl->wlc = brcms_c_attach((void *)wl, pdev, unit, false, &err); in brcms_attach()
1132 if (!wl->wlc) { in brcms_attach()
1133 wiphy_err(wl->wiphy, "%s: attach() failed with code %d\n", in brcms_attach()
1137 wl->pub = brcms_c_pub(wl->wlc); in brcms_attach()
1139 wl->pub->ieee_hw = hw; in brcms_attach()
1143 IRQF_SHARED, KBUILD_MODNAME, wl)) { in brcms_attach()
1144 wiphy_err(wl->wiphy, "wl%d: request_irq() failed\n", unit); in brcms_attach()
1147 wl->irq = pdev->irq; in brcms_attach()
1150 brcms_c_module_register(wl->pub, "linux", wl, NULL); in brcms_attach()
1153 wiphy_err(wl->wiphy, "wl%d: %s: ieee_hw_init failed!\n", unit, in brcms_attach()
1158 brcms_c_regd_init(wl->wlc); in brcms_attach()
1160 memcpy(perm, &wl->pub->cur_etheraddr, ETH_ALEN); in brcms_attach()
1167 wiphy_err(wl->wiphy, "%s: ieee80211_register_hw failed, status" in brcms_attach()
1170 if (wl->pub->srom_ccode[0] && in brcms_attach()
1171 regulatory_hint(wl->wiphy, wl->pub->srom_ccode)) in brcms_attach()
1172 wiphy_err(wl->wiphy, "%s: regulatory hint failed\n", __func__); in brcms_attach()
1174 brcms_debugfs_attach(wl->pub); in brcms_attach()
1175 brcms_debugfs_create_files(wl->pub); in brcms_attach()
1177 return wl; in brcms_attach()
1180 brcms_free(wl); in brcms_attach()
1196 struct brcms_info *wl; in brcms_bcma_probe() local
1217 memset(hw->priv, 0, sizeof(*wl)); in brcms_bcma_probe()
1219 wl = brcms_attach(pdev); in brcms_bcma_probe()
1220 if (!wl) { in brcms_bcma_probe()
1224 brcms_led_register(wl); in brcms_bcma_probe()
1231 struct brcms_info *wl; in brcms_suspend() local
1235 wl = hw->priv; in brcms_suspend()
1236 if (!wl) { in brcms_suspend()
1243 spin_lock_bh(&wl->lock); in brcms_suspend()
1244 wl->pub->hw_up = false; in brcms_suspend()
1245 spin_unlock_bh(&wl->lock); in brcms_suspend()
1247 brcms_dbg_info(wl->wlc->hw->d11core, "brcms_suspend ok\n"); in brcms_suspend()
1313 void brcms_txflowcontrol(struct brcms_info *wl, struct brcms_if *wlif, in brcms_txflowcontrol() argument
1316 brcms_err(wl->wlc->hw->d11core, "Shouldn't be here %s\n", __func__); in brcms_txflowcontrol()
1322 void brcms_init(struct brcms_info *wl) in brcms_init() argument
1324 brcms_dbg_info(wl->wlc->hw->d11core, "Initializing wl%d\n", in brcms_init()
1325 wl->pub->unit); in brcms_init()
1326 brcms_reset(wl); in brcms_init()
1327 brcms_c_init(wl->wlc, wl->mute_tx); in brcms_init()
1333 uint brcms_reset(struct brcms_info *wl) in brcms_reset() argument
1335 brcms_dbg_info(wl->wlc->hw->d11core, "Resetting wl%d\n", wl->pub->unit); in brcms_reset()
1336 brcms_c_reset(wl->wlc); in brcms_reset()
1339 wl->resched = false; in brcms_reset()
1342 wl->pub->up = false; in brcms_reset()
1347 void brcms_fatal_error(struct brcms_info *wl) in brcms_fatal_error() argument
1349 brcms_err(wl->wlc->hw->d11core, "wl%d: fatal error, reinitializing\n", in brcms_fatal_error()
1350 wl->wlc->pub->unit); in brcms_fatal_error()
1351 brcms_reset(wl); in brcms_fatal_error()
1352 ieee80211_restart_hw(wl->pub->ieee_hw); in brcms_fatal_error()
1359 void brcms_intrson(struct brcms_info *wl) in brcms_intrson() argument
1363 spin_lock_irqsave(&wl->isr_lock, flags); in brcms_intrson()
1364 brcms_c_intrson(wl->wlc); in brcms_intrson()
1365 spin_unlock_irqrestore(&wl->isr_lock, flags); in brcms_intrson()
1368 u32 brcms_intrsoff(struct brcms_info *wl) in brcms_intrsoff() argument
1373 spin_lock_irqsave(&wl->isr_lock, flags); in brcms_intrsoff()
1374 status = brcms_c_intrsoff(wl->wlc); in brcms_intrsoff()
1375 spin_unlock_irqrestore(&wl->isr_lock, flags); in brcms_intrsoff()
1379 void brcms_intrsrestore(struct brcms_info *wl, u32 macintmask) in brcms_intrsrestore() argument
1383 spin_lock_irqsave(&wl->isr_lock, flags); in brcms_intrsrestore()
1384 brcms_c_intrsrestore(wl->wlc, macintmask); in brcms_intrsrestore()
1385 spin_unlock_irqrestore(&wl->isr_lock, flags); in brcms_intrsrestore()
1391 int brcms_up(struct brcms_info *wl) in brcms_up() argument
1395 if (wl->pub->up) in brcms_up()
1398 error = brcms_c_up(wl->wlc); in brcms_up()
1406 void brcms_down(struct brcms_info *wl) in brcms_down() argument
1411 ret_val = brcms_c_down(wl->wlc); in brcms_down()
1412 callbacks = atomic_read(&wl->callbacks) - ret_val; in brcms_down()
1415 spin_unlock_bh(&wl->lock); in brcms_down()
1420 SPINWAIT((atomic_read(&wl->callbacks) > callbacks), 100 * 1000); in brcms_down()
1422 spin_lock_bh(&wl->lock); in brcms_down()
1433 spin_lock_bh(&t->wl->lock); in _brcms_timer()
1437 atomic_inc(&t->wl->callbacks); in _brcms_timer()
1438 ieee80211_queue_delayed_work(t->wl->pub->ieee_hw, in _brcms_timer()
1448 atomic_dec(&t->wl->callbacks); in _brcms_timer()
1450 spin_unlock_bh(&t->wl->lock); in _brcms_timer()
1459 struct brcms_timer *brcms_init_timer(struct brcms_info *wl, in brcms_init_timer() argument
1470 t->wl = wl; in brcms_init_timer()
1473 t->next = wl->timers; in brcms_init_timer()
1474 wl->timers = t; in brcms_init_timer()
1491 struct ieee80211_hw *hw = t->wl->pub->ieee_hw; in brcms_add_timer()
1495 brcms_dbg_info(t->wl->wlc->hw->d11core, in brcms_add_timer()
1503 atomic_inc(&t->wl->callbacks); in brcms_add_timer()
1521 atomic_dec(&t->wl->callbacks); in brcms_del_timer()
1532 struct brcms_info *wl = t->wl; in brcms_free_timer() local
1538 if (wl->timers == t) { in brcms_free_timer()
1539 wl->timers = wl->timers->next; in brcms_free_timer()
1548 tmp = wl->timers; in brcms_free_timer()
1566 int brcms_ucode_init_buf(struct brcms_info *wl, void **pbuf, u32 idx) in brcms_ucode_init_buf() argument
1571 for (i = 0; i < wl->fw.fw_cnt; i++) { in brcms_ucode_init_buf()
1572 hdr = (struct firmware_hdr *)wl->fw.fw_hdr[i]->data; in brcms_ucode_init_buf()
1573 for (entry = 0; entry < wl->fw.hdr_num_entries[i]; in brcms_ucode_init_buf()
1577 pdata = wl->fw.fw_bin[i]->data + in brcms_ucode_init_buf()
1587 brcms_err(wl->wlc->hw->d11core, in brcms_ucode_init_buf()
1598 int brcms_ucode_init_uint(struct brcms_info *wl, size_t *n_bytes, u32 idx) in brcms_ucode_init_uint() argument
1603 for (i = 0; i < wl->fw.fw_cnt; i++) { in brcms_ucode_init_uint()
1604 hdr = (struct firmware_hdr *)wl->fw.fw_hdr[i]->data; in brcms_ucode_init_uint()
1605 for (entry = 0; entry < wl->fw.hdr_num_entries[i]; in brcms_ucode_init_uint()
1608 pdata = wl->fw.fw_bin[i]->data + in brcms_ucode_init_uint()
1611 brcms_err(wl->wlc->hw->d11core, in brcms_ucode_init_uint()
1620 brcms_err(wl->wlc->hw->d11core, in brcms_ucode_init_uint()
1639 int brcms_check_firmwares(struct brcms_info *wl) in brcms_check_firmwares() argument
1648 fw = wl->fw.fw_bin[i]; in brcms_check_firmwares()
1649 fw_hdr = wl->fw.fw_hdr[i]; in brcms_check_firmwares()
1653 wiphy_err(wl->wiphy, "%s: invalid bin/hdr fw\n", in brcms_check_firmwares()
1657 wiphy_err(wl->wiphy, "%s: non integral fw hdr file " in brcms_check_firmwares()
1662 wiphy_err(wl->wiphy, "%s: out of bounds fw file size %zu\n", in brcms_check_firmwares()
1668 for (entry = 0; entry < wl->fw.hdr_num_entries[i] && in brcms_check_firmwares()
1673 wiphy_err(wl->wiphy, in brcms_check_firmwares()
1681 if (rc == 0 && wl->fw.fw_cnt != i) { in brcms_check_firmwares()
1682 wiphy_err(wl->wiphy, "%s: invalid fw_cnt=%d\n", __func__, in brcms_check_firmwares()
1683 wl->fw.fw_cnt); in brcms_check_firmwares()
1692 bool brcms_rfkill_set_hw_state(struct brcms_info *wl) in brcms_rfkill_set_hw_state() argument
1694 bool blocked = brcms_c_check_radio_disabled(wl->wlc); in brcms_rfkill_set_hw_state()
1696 spin_unlock_bh(&wl->lock); in brcms_rfkill_set_hw_state()
1697 wiphy_rfkill_set_hw_state(wl->pub->ieee_hw->wiphy, blocked); in brcms_rfkill_set_hw_state()
1699 wiphy_rfkill_start_polling(wl->pub->ieee_hw->wiphy); in brcms_rfkill_set_hw_state()
1700 spin_lock_bh(&wl->lock); in brcms_rfkill_set_hw_state()