Lines Matching refs:rt2x00dev

58 static inline void rt2500usb_register_read(struct rt2x00_dev *rt2x00dev,  in rt2500usb_register_read()  argument
63 rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_READ, in rt2500usb_register_read()
69 static inline void rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_read_lock() argument
74 rt2x00usb_vendor_req_buff_lock(rt2x00dev, USB_MULTI_READ, in rt2500usb_register_read_lock()
80 static inline void rt2500usb_register_multiread(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_multiread() argument
84 rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_READ, in rt2500usb_register_multiread()
89 static inline void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_write() argument
94 rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_WRITE, in rt2500usb_register_write()
99 static inline void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_write_lock() argument
104 rt2x00usb_vendor_req_buff_lock(rt2x00dev, USB_MULTI_WRITE, in rt2500usb_register_write_lock()
109 static inline void rt2500usb_register_multiwrite(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_multiwrite() argument
113 rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_WRITE, in rt2500usb_register_multiwrite()
118 static int rt2500usb_regbusy_read(struct rt2x00_dev *rt2x00dev, in rt2500usb_regbusy_read() argument
126 rt2500usb_register_read_lock(rt2x00dev, offset, reg); in rt2500usb_regbusy_read()
132 rt2x00_err(rt2x00dev, "Indirect register access failed: offset=0x%.08x, value=0x%.08x\n", in rt2500usb_regbusy_read()
144 static void rt2500usb_bbp_write(struct rt2x00_dev *rt2x00dev, in rt2500usb_bbp_write() argument
149 mutex_lock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_write()
155 if (WAIT_FOR_BBP(rt2x00dev, &reg)) { in rt2500usb_bbp_write()
161 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR7, reg); in rt2500usb_bbp_write()
164 mutex_unlock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_write()
167 static void rt2500usb_bbp_read(struct rt2x00_dev *rt2x00dev, in rt2500usb_bbp_read() argument
172 mutex_lock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_read()
182 if (WAIT_FOR_BBP(rt2x00dev, &reg)) { in rt2500usb_bbp_read()
187 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR7, reg); in rt2500usb_bbp_read()
189 if (WAIT_FOR_BBP(rt2x00dev, &reg)) in rt2500usb_bbp_read()
190 rt2500usb_register_read_lock(rt2x00dev, PHY_CSR7, &reg); in rt2500usb_bbp_read()
195 mutex_unlock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_read()
198 static void rt2500usb_rf_write(struct rt2x00_dev *rt2x00dev, in rt2500usb_rf_write() argument
203 mutex_lock(&rt2x00dev->csr_mutex); in rt2500usb_rf_write()
209 if (WAIT_FOR_RF(rt2x00dev, &reg)) { in rt2500usb_rf_write()
212 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR9, reg); in rt2500usb_rf_write()
220 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR10, reg); in rt2500usb_rf_write()
221 rt2x00_rf_write(rt2x00dev, word, value); in rt2500usb_rf_write()
224 mutex_unlock(&rt2x00dev->csr_mutex); in rt2500usb_rf_write()
228 static void _rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, in _rt2500usb_register_read() argument
232 rt2500usb_register_read(rt2x00dev, offset, (u16 *)value); in _rt2500usb_register_read()
235 static void _rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, in _rt2500usb_register_write() argument
239 rt2500usb_register_write(rt2x00dev, offset, value); in _rt2500usb_register_write()
276 static int rt2500usb_rfkill_poll(struct rt2x00_dev *rt2x00dev) in rt2500usb_rfkill_poll() argument
280 rt2500usb_register_read(rt2x00dev, MAC_CSR19, &reg); in rt2500usb_rfkill_poll()
293 rt2500usb_register_read(led->rt2x00dev, MAC_CSR20, &reg); in rt2500usb_brightness_set()
300 rt2500usb_register_write(led->rt2x00dev, MAC_CSR20, reg); in rt2500usb_brightness_set()
311 rt2500usb_register_read(led->rt2x00dev, MAC_CSR21, &reg); in rt2500usb_blink_set()
314 rt2500usb_register_write(led->rt2x00dev, MAC_CSR21, reg); in rt2500usb_blink_set()
319 static void rt2500usb_init_led(struct rt2x00_dev *rt2x00dev, in rt2500usb_init_led() argument
323 led->rt2x00dev = rt2x00dev; in rt2500usb_init_led()
339 static int rt2500usb_config_key(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_key() argument
365 rt2500usb_register_read(rt2x00dev, TXRX_CSR0, &reg); in rt2500usb_config_key()
384 rt2500usb_register_multiwrite(rt2x00dev, KEY_ENTRY(key->hw_key_idx), in rt2500usb_config_key()
404 rt2500usb_register_read(rt2x00dev, TXRX_CSR0, &reg); in rt2500usb_config_key()
414 rt2500usb_register_write(rt2x00dev, TXRX_CSR0, reg); in rt2500usb_config_key()
419 static void rt2500usb_config_filter(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_filter() argument
430 rt2500usb_register_read(rt2x00dev, TXRX_CSR2, &reg); in rt2500usb_config_filter()
439 !rt2x00dev->intf_ap_count); in rt2500usb_config_filter()
444 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_config_filter()
447 static void rt2500usb_config_intf(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_intf() argument
460 rt2500usb_register_read(rt2x00dev, TXRX_CSR20, &reg); in rt2500usb_config_intf()
464 rt2500usb_register_write(rt2x00dev, TXRX_CSR20, reg); in rt2500usb_config_intf()
469 rt2500usb_register_read(rt2x00dev, TXRX_CSR18, &reg); in rt2500usb_config_intf()
471 rt2500usb_register_write(rt2x00dev, TXRX_CSR18, reg); in rt2500usb_config_intf()
473 rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg); in rt2500usb_config_intf()
475 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_config_intf()
479 rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR2, conf->mac, in rt2500usb_config_intf()
483 rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR5, conf->bssid, in rt2500usb_config_intf()
487 static void rt2500usb_config_erp(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_erp() argument
494 rt2500usb_register_read(rt2x00dev, TXRX_CSR10, &reg); in rt2500usb_config_erp()
497 rt2500usb_register_write(rt2x00dev, TXRX_CSR10, reg); in rt2500usb_config_erp()
501 rt2500usb_register_write(rt2x00dev, TXRX_CSR11, in rt2500usb_config_erp()
505 rt2500usb_register_read(rt2x00dev, TXRX_CSR18, &reg); in rt2500usb_config_erp()
508 rt2500usb_register_write(rt2x00dev, TXRX_CSR18, reg); in rt2500usb_config_erp()
512 rt2500usb_register_write(rt2x00dev, MAC_CSR10, erp->slot_time); in rt2500usb_config_erp()
513 rt2500usb_register_write(rt2x00dev, MAC_CSR11, erp->sifs); in rt2500usb_config_erp()
514 rt2500usb_register_write(rt2x00dev, MAC_CSR12, erp->eifs); in rt2500usb_config_erp()
518 static void rt2500usb_config_ant(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_ant() argument
533 rt2500usb_bbp_read(rt2x00dev, 2, &r2); in rt2500usb_config_ant()
534 rt2500usb_bbp_read(rt2x00dev, 14, &r14); in rt2500usb_config_ant()
535 rt2500usb_register_read(rt2x00dev, PHY_CSR5, &csr5); in rt2500usb_config_ant()
536 rt2500usb_register_read(rt2x00dev, PHY_CSR6, &csr6); in rt2500usb_config_ant()
579 if (rt2x00_rf(rt2x00dev, RF2525E) || rt2x00_rf(rt2x00dev, RF5222)) { in rt2500usb_config_ant()
587 if (rt2x00_rf(rt2x00dev, RF2525E)) in rt2500usb_config_ant()
594 rt2500usb_bbp_write(rt2x00dev, 2, r2); in rt2500usb_config_ant()
595 rt2500usb_bbp_write(rt2x00dev, 14, r14); in rt2500usb_config_ant()
596 rt2500usb_register_write(rt2x00dev, PHY_CSR5, csr5); in rt2500usb_config_ant()
597 rt2500usb_register_write(rt2x00dev, PHY_CSR6, csr6); in rt2500usb_config_ant()
600 static void rt2500usb_config_channel(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_channel() argument
611 if (rt2x00_rf(rt2x00dev, RF2525E)) { in rt2500usb_config_channel()
619 rt2500usb_rf_write(rt2x00dev, 2, vals[rf->channel - 1]); in rt2500usb_config_channel()
621 rt2500usb_rf_write(rt2x00dev, 4, rf->rf4); in rt2500usb_config_channel()
624 rt2500usb_rf_write(rt2x00dev, 1, rf->rf1); in rt2500usb_config_channel()
625 rt2500usb_rf_write(rt2x00dev, 2, rf->rf2); in rt2500usb_config_channel()
626 rt2500usb_rf_write(rt2x00dev, 3, rf->rf3); in rt2500usb_config_channel()
628 rt2500usb_rf_write(rt2x00dev, 4, rf->rf4); in rt2500usb_config_channel()
631 static void rt2500usb_config_txpower(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_txpower() argument
636 rt2x00_rf_read(rt2x00dev, 3, &rf3); in rt2500usb_config_txpower()
638 rt2500usb_rf_write(rt2x00dev, 3, rf3); in rt2500usb_config_txpower()
641 static void rt2500usb_config_ps(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_ps() argument
650 rt2500usb_register_read(rt2x00dev, MAC_CSR18, &reg); in rt2500usb_config_ps()
652 rt2x00dev->beacon_int - 20); in rt2500usb_config_ps()
658 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_config_ps()
661 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_config_ps()
663 rt2500usb_register_read(rt2x00dev, MAC_CSR18, &reg); in rt2500usb_config_ps()
665 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_config_ps()
668 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state); in rt2500usb_config_ps()
671 static void rt2500usb_config(struct rt2x00_dev *rt2x00dev, in rt2500usb_config() argument
676 rt2500usb_config_channel(rt2x00dev, &libconf->rf, in rt2500usb_config()
680 rt2500usb_config_txpower(rt2x00dev, in rt2500usb_config()
683 rt2500usb_config_ps(rt2x00dev, libconf); in rt2500usb_config()
689 static void rt2500usb_link_stats(struct rt2x00_dev *rt2x00dev, in rt2500usb_link_stats() argument
697 rt2500usb_register_read(rt2x00dev, STA_CSR0, &reg); in rt2500usb_link_stats()
703 rt2500usb_register_read(rt2x00dev, STA_CSR3, &reg); in rt2500usb_link_stats()
707 static void rt2500usb_reset_tuner(struct rt2x00_dev *rt2x00dev, in rt2500usb_reset_tuner() argument
713 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R24, &eeprom); in rt2500usb_reset_tuner()
715 rt2500usb_bbp_write(rt2x00dev, 24, value); in rt2500usb_reset_tuner()
717 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R25, &eeprom); in rt2500usb_reset_tuner()
719 rt2500usb_bbp_write(rt2x00dev, 25, value); in rt2500usb_reset_tuner()
721 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R61, &eeprom); in rt2500usb_reset_tuner()
723 rt2500usb_bbp_write(rt2x00dev, 61, value); in rt2500usb_reset_tuner()
725 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_VGC, &eeprom); in rt2500usb_reset_tuner()
727 rt2500usb_bbp_write(rt2x00dev, 17, value); in rt2500usb_reset_tuner()
737 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2500usb_start_queue() local
742 rt2500usb_register_read(rt2x00dev, TXRX_CSR2, &reg); in rt2500usb_start_queue()
744 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_start_queue()
747 rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg); in rt2500usb_start_queue()
751 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_start_queue()
760 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2500usb_stop_queue() local
765 rt2500usb_register_read(rt2x00dev, TXRX_CSR2, &reg); in rt2500usb_stop_queue()
767 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_stop_queue()
770 rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg); in rt2500usb_stop_queue()
774 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_stop_queue()
784 static int rt2500usb_init_registers(struct rt2x00_dev *rt2x00dev) in rt2500usb_init_registers() argument
788 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0x0001, in rt2500usb_init_registers()
790 rt2x00usb_vendor_request_sw(rt2x00dev, USB_SINGLE_WRITE, 0x0308, in rt2500usb_init_registers()
793 rt2500usb_register_read(rt2x00dev, TXRX_CSR2, &reg); in rt2500usb_init_registers()
795 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_init_registers()
797 rt2500usb_register_write(rt2x00dev, MAC_CSR13, 0x1111); in rt2500usb_init_registers()
798 rt2500usb_register_write(rt2x00dev, MAC_CSR14, 0x1e11); in rt2500usb_init_registers()
800 rt2500usb_register_read(rt2x00dev, MAC_CSR1, &reg); in rt2500usb_init_registers()
804 rt2500usb_register_write(rt2x00dev, MAC_CSR1, reg); in rt2500usb_init_registers()
806 rt2500usb_register_read(rt2x00dev, MAC_CSR1, &reg); in rt2500usb_init_registers()
810 rt2500usb_register_write(rt2x00dev, MAC_CSR1, reg); in rt2500usb_init_registers()
812 rt2500usb_register_read(rt2x00dev, TXRX_CSR5, &reg); in rt2500usb_init_registers()
817 rt2500usb_register_write(rt2x00dev, TXRX_CSR5, reg); in rt2500usb_init_registers()
819 rt2500usb_register_read(rt2x00dev, TXRX_CSR6, &reg); in rt2500usb_init_registers()
824 rt2500usb_register_write(rt2x00dev, TXRX_CSR6, reg); in rt2500usb_init_registers()
826 rt2500usb_register_read(rt2x00dev, TXRX_CSR7, &reg); in rt2500usb_init_registers()
831 rt2500usb_register_write(rt2x00dev, TXRX_CSR7, reg); in rt2500usb_init_registers()
833 rt2500usb_register_read(rt2x00dev, TXRX_CSR8, &reg); in rt2500usb_init_registers()
838 rt2500usb_register_write(rt2x00dev, TXRX_CSR8, reg); in rt2500usb_init_registers()
840 rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg); in rt2500usb_init_registers()
845 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_init_registers()
847 rt2500usb_register_write(rt2x00dev, TXRX_CSR21, 0xe78f); in rt2500usb_init_registers()
848 rt2500usb_register_write(rt2x00dev, MAC_CSR9, 0xff1d); in rt2500usb_init_registers()
850 if (rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_AWAKE)) in rt2500usb_init_registers()
853 rt2500usb_register_read(rt2x00dev, MAC_CSR1, &reg); in rt2500usb_init_registers()
857 rt2500usb_register_write(rt2x00dev, MAC_CSR1, reg); in rt2500usb_init_registers()
859 if (rt2x00_rev(rt2x00dev) >= RT2570_VERSION_C) { in rt2500usb_init_registers()
860 rt2500usb_register_read(rt2x00dev, PHY_CSR2, &reg); in rt2500usb_init_registers()
867 rt2500usb_register_write(rt2x00dev, PHY_CSR2, reg); in rt2500usb_init_registers()
869 rt2500usb_register_write(rt2x00dev, MAC_CSR11, 0x0002); in rt2500usb_init_registers()
870 rt2500usb_register_write(rt2x00dev, MAC_CSR22, 0x0053); in rt2500usb_init_registers()
871 rt2500usb_register_write(rt2x00dev, MAC_CSR15, 0x01ee); in rt2500usb_init_registers()
872 rt2500usb_register_write(rt2x00dev, MAC_CSR16, 0x0000); in rt2500usb_init_registers()
874 rt2500usb_register_read(rt2x00dev, MAC_CSR8, &reg); in rt2500usb_init_registers()
876 rt2x00dev->rx->data_size); in rt2500usb_init_registers()
877 rt2500usb_register_write(rt2x00dev, MAC_CSR8, reg); in rt2500usb_init_registers()
879 rt2500usb_register_read(rt2x00dev, TXRX_CSR0, &reg); in rt2500usb_init_registers()
883 rt2500usb_register_write(rt2x00dev, TXRX_CSR0, reg); in rt2500usb_init_registers()
885 rt2500usb_register_read(rt2x00dev, MAC_CSR18, &reg); in rt2500usb_init_registers()
887 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_init_registers()
889 rt2500usb_register_read(rt2x00dev, PHY_CSR4, &reg); in rt2500usb_init_registers()
891 rt2500usb_register_write(rt2x00dev, PHY_CSR4, reg); in rt2500usb_init_registers()
893 rt2500usb_register_read(rt2x00dev, TXRX_CSR1, &reg); in rt2500usb_init_registers()
895 rt2500usb_register_write(rt2x00dev, TXRX_CSR1, reg); in rt2500usb_init_registers()
900 static int rt2500usb_wait_bbp_ready(struct rt2x00_dev *rt2x00dev) in rt2500usb_wait_bbp_ready() argument
906 rt2500usb_bbp_read(rt2x00dev, 0, &value); in rt2500usb_wait_bbp_ready()
912 rt2x00_err(rt2x00dev, "BBP register access failed, aborting\n"); in rt2500usb_wait_bbp_ready()
916 static int rt2500usb_init_bbp(struct rt2x00_dev *rt2x00dev) in rt2500usb_init_bbp() argument
923 if (unlikely(rt2500usb_wait_bbp_ready(rt2x00dev))) in rt2500usb_init_bbp()
926 rt2500usb_bbp_write(rt2x00dev, 3, 0x02); in rt2500usb_init_bbp()
927 rt2500usb_bbp_write(rt2x00dev, 4, 0x19); in rt2500usb_init_bbp()
928 rt2500usb_bbp_write(rt2x00dev, 14, 0x1c); in rt2500usb_init_bbp()
929 rt2500usb_bbp_write(rt2x00dev, 15, 0x30); in rt2500usb_init_bbp()
930 rt2500usb_bbp_write(rt2x00dev, 16, 0xac); in rt2500usb_init_bbp()
931 rt2500usb_bbp_write(rt2x00dev, 18, 0x18); in rt2500usb_init_bbp()
932 rt2500usb_bbp_write(rt2x00dev, 19, 0xff); in rt2500usb_init_bbp()
933 rt2500usb_bbp_write(rt2x00dev, 20, 0x1e); in rt2500usb_init_bbp()
934 rt2500usb_bbp_write(rt2x00dev, 21, 0x08); in rt2500usb_init_bbp()
935 rt2500usb_bbp_write(rt2x00dev, 22, 0x08); in rt2500usb_init_bbp()
936 rt2500usb_bbp_write(rt2x00dev, 23, 0x08); in rt2500usb_init_bbp()
937 rt2500usb_bbp_write(rt2x00dev, 24, 0x80); in rt2500usb_init_bbp()
938 rt2500usb_bbp_write(rt2x00dev, 25, 0x50); in rt2500usb_init_bbp()
939 rt2500usb_bbp_write(rt2x00dev, 26, 0x08); in rt2500usb_init_bbp()
940 rt2500usb_bbp_write(rt2x00dev, 27, 0x23); in rt2500usb_init_bbp()
941 rt2500usb_bbp_write(rt2x00dev, 30, 0x10); in rt2500usb_init_bbp()
942 rt2500usb_bbp_write(rt2x00dev, 31, 0x2b); in rt2500usb_init_bbp()
943 rt2500usb_bbp_write(rt2x00dev, 32, 0xb9); in rt2500usb_init_bbp()
944 rt2500usb_bbp_write(rt2x00dev, 34, 0x12); in rt2500usb_init_bbp()
945 rt2500usb_bbp_write(rt2x00dev, 35, 0x50); in rt2500usb_init_bbp()
946 rt2500usb_bbp_write(rt2x00dev, 39, 0xc4); in rt2500usb_init_bbp()
947 rt2500usb_bbp_write(rt2x00dev, 40, 0x02); in rt2500usb_init_bbp()
948 rt2500usb_bbp_write(rt2x00dev, 41, 0x60); in rt2500usb_init_bbp()
949 rt2500usb_bbp_write(rt2x00dev, 53, 0x10); in rt2500usb_init_bbp()
950 rt2500usb_bbp_write(rt2x00dev, 54, 0x18); in rt2500usb_init_bbp()
951 rt2500usb_bbp_write(rt2x00dev, 56, 0x08); in rt2500usb_init_bbp()
952 rt2500usb_bbp_write(rt2x00dev, 57, 0x10); in rt2500usb_init_bbp()
953 rt2500usb_bbp_write(rt2x00dev, 58, 0x08); in rt2500usb_init_bbp()
954 rt2500usb_bbp_write(rt2x00dev, 61, 0x60); in rt2500usb_init_bbp()
955 rt2500usb_bbp_write(rt2x00dev, 62, 0x10); in rt2500usb_init_bbp()
956 rt2500usb_bbp_write(rt2x00dev, 75, 0xff); in rt2500usb_init_bbp()
959 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBP_START + i, &eeprom); in rt2500usb_init_bbp()
964 rt2500usb_bbp_write(rt2x00dev, reg_id, value); in rt2500usb_init_bbp()
974 static int rt2500usb_enable_radio(struct rt2x00_dev *rt2x00dev) in rt2500usb_enable_radio() argument
979 if (unlikely(rt2500usb_init_registers(rt2x00dev) || in rt2500usb_enable_radio()
980 rt2500usb_init_bbp(rt2x00dev))) in rt2500usb_enable_radio()
986 static void rt2500usb_disable_radio(struct rt2x00_dev *rt2x00dev) in rt2500usb_disable_radio() argument
988 rt2500usb_register_write(rt2x00dev, MAC_CSR13, 0x2121); in rt2500usb_disable_radio()
989 rt2500usb_register_write(rt2x00dev, MAC_CSR14, 0x2121); in rt2500usb_disable_radio()
994 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, 0); in rt2500usb_disable_radio()
996 rt2x00usb_disable_radio(rt2x00dev); in rt2500usb_disable_radio()
999 static int rt2500usb_set_state(struct rt2x00_dev *rt2x00dev, in rt2500usb_set_state() argument
1015 rt2500usb_register_write(rt2x00dev, MAC_CSR17, reg); in rt2500usb_set_state()
1017 rt2500usb_register_write(rt2x00dev, MAC_CSR17, reg); in rt2500usb_set_state()
1025 rt2500usb_register_read(rt2x00dev, MAC_CSR17, &reg2); in rt2500usb_set_state()
1030 rt2500usb_register_write(rt2x00dev, MAC_CSR17, reg); in rt2500usb_set_state()
1037 static int rt2500usb_set_device_state(struct rt2x00_dev *rt2x00dev, in rt2500usb_set_device_state() argument
1044 retval = rt2500usb_enable_radio(rt2x00dev); in rt2500usb_set_device_state()
1047 rt2500usb_disable_radio(rt2x00dev); in rt2500usb_set_device_state()
1057 retval = rt2500usb_set_state(rt2x00dev, state); in rt2500usb_set_device_state()
1065 rt2x00_err(rt2x00dev, "Device failed to enter state %d (%d)\n", in rt2500usb_set_device_state()
1139 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2500usb_write_beacon() local
1140 struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); in rt2500usb_write_beacon()
1150 rt2500usb_register_read(rt2x00dev, TXRX_CSR19, &reg); in rt2500usb_write_beacon()
1152 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1168 rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_BEACON, entry->skb); in rt2500usb_write_beacon()
1175 length = rt2x00dev->ops->lib->get_tx_data_len(entry); in rt2500usb_write_beacon()
1210 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1211 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg0); in rt2500usb_write_beacon()
1212 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1213 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg0); in rt2500usb_write_beacon()
1214 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1237 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2500usb_fill_rxdone() local
1291 rt2x00_get_field32(word1, RXD_W1_RSSI) - rt2x00dev->rssi_offset; in rt2500usb_fill_rxdone()
1315 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &entry->queue->rt2x00dev->flags)) in rt2500usb_beacondone()
1335 static int rt2500usb_validate_eeprom(struct rt2x00_dev *rt2x00dev) in rt2500usb_validate_eeprom() argument
1341 rt2x00usb_eeprom_read(rt2x00dev, rt2x00dev->eeprom, EEPROM_SIZE); in rt2500usb_validate_eeprom()
1346 mac = rt2x00_eeprom_addr(rt2x00dev, EEPROM_MAC_ADDR_0); in rt2500usb_validate_eeprom()
1349 rt2x00_eeprom_dbg(rt2x00dev, "MAC: %pM\n", mac); in rt2500usb_validate_eeprom()
1352 rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA, &word); in rt2500usb_validate_eeprom()
1364 rt2x00_eeprom_write(rt2x00dev, EEPROM_ANTENNA, word); in rt2500usb_validate_eeprom()
1365 rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1368 rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC, &word); in rt2500usb_validate_eeprom()
1373 rt2x00_eeprom_write(rt2x00dev, EEPROM_NIC, word); in rt2500usb_validate_eeprom()
1374 rt2x00_eeprom_dbg(rt2x00dev, "NIC: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1377 rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET, &word); in rt2500usb_validate_eeprom()
1381 rt2x00_eeprom_write(rt2x00dev, EEPROM_CALIBRATE_OFFSET, word); in rt2500usb_validate_eeprom()
1382 rt2x00_eeprom_dbg(rt2x00dev, "Calibrate offset: 0x%04x\n", in rt2500usb_validate_eeprom()
1386 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE, &word); in rt2500usb_validate_eeprom()
1389 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE, word); in rt2500usb_validate_eeprom()
1390 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1397 rt2500usb_bbp_read(rt2x00dev, 17, &bbp); in rt2500usb_validate_eeprom()
1400 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_VGC, &word); in rt2500usb_validate_eeprom()
1404 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_VGC, word); in rt2500usb_validate_eeprom()
1405 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune vgc: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1408 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_VGC, word); in rt2500usb_validate_eeprom()
1411 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R17, &word); in rt2500usb_validate_eeprom()
1415 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R17, word); in rt2500usb_validate_eeprom()
1416 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r17: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1419 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R24, &word); in rt2500usb_validate_eeprom()
1423 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R24, word); in rt2500usb_validate_eeprom()
1424 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r24: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1427 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R25, &word); in rt2500usb_validate_eeprom()
1431 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R25, word); in rt2500usb_validate_eeprom()
1432 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r25: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1435 rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R61, &word); in rt2500usb_validate_eeprom()
1439 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R61, word); in rt2500usb_validate_eeprom()
1440 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r61: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1446 static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev) in rt2500usb_init_eeprom() argument
1455 rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA, &eeprom); in rt2500usb_init_eeprom()
1461 rt2500usb_register_read(rt2x00dev, MAC_CSR0, &reg); in rt2500usb_init_eeprom()
1462 rt2x00_set_chip(rt2x00dev, RT2570, value, reg); in rt2500usb_init_eeprom()
1465 rt2x00_err(rt2x00dev, "Invalid RT chipset detected\n"); in rt2500usb_init_eeprom()
1469 if (!rt2x00_rf(rt2x00dev, RF2522) && in rt2500usb_init_eeprom()
1470 !rt2x00_rf(rt2x00dev, RF2523) && in rt2500usb_init_eeprom()
1471 !rt2x00_rf(rt2x00dev, RF2524) && in rt2500usb_init_eeprom()
1472 !rt2x00_rf(rt2x00dev, RF2525) && in rt2500usb_init_eeprom()
1473 !rt2x00_rf(rt2x00dev, RF2525E) && in rt2500usb_init_eeprom()
1474 !rt2x00_rf(rt2x00dev, RF5222)) { in rt2500usb_init_eeprom()
1475 rt2x00_err(rt2x00dev, "Invalid RF chipset detected\n"); in rt2500usb_init_eeprom()
1482 rt2x00dev->default_ant.tx = in rt2500usb_init_eeprom()
1484 rt2x00dev->default_ant.rx = in rt2500usb_init_eeprom()
1493 if (rt2x00dev->default_ant.tx == ANTENNA_SW_DIVERSITY) in rt2500usb_init_eeprom()
1494 rt2x00dev->default_ant.tx = ANTENNA_HW_DIVERSITY; in rt2500usb_init_eeprom()
1495 if (rt2x00dev->default_ant.rx == ANTENNA_SW_DIVERSITY) in rt2500usb_init_eeprom()
1496 rt2x00dev->default_ant.rx = ANTENNA_HW_DIVERSITY; in rt2500usb_init_eeprom()
1504 rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO); in rt2500usb_init_eeprom()
1508 rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_qual, in rt2500usb_init_eeprom()
1516 __set_bit(CAPABILITY_HW_BUTTON, &rt2x00dev->cap_flags); in rt2500usb_init_eeprom()
1521 rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET, &eeprom); in rt2500usb_init_eeprom()
1522 rt2x00dev->rssi_offset = in rt2500usb_init_eeprom()
1683 static int rt2500usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev) in rt2500usb_probe_hw_mode() argument
1685 struct hw_mode_spec *spec = &rt2x00dev->spec; in rt2500usb_probe_hw_mode()
1699 ieee80211_hw_set(rt2x00dev->hw, PS_NULLFUNC_STACK); in rt2500usb_probe_hw_mode()
1700 ieee80211_hw_set(rt2x00dev->hw, SUPPORTS_PS); in rt2500usb_probe_hw_mode()
1701 ieee80211_hw_set(rt2x00dev->hw, RX_INCLUDES_FCS); in rt2500usb_probe_hw_mode()
1702 ieee80211_hw_set(rt2x00dev->hw, SIGNAL_DBM); in rt2500usb_probe_hw_mode()
1707 rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; in rt2500usb_probe_hw_mode()
1709 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev); in rt2500usb_probe_hw_mode()
1710 SET_IEEE80211_PERM_ADDR(rt2x00dev->hw, in rt2500usb_probe_hw_mode()
1711 rt2x00_eeprom_addr(rt2x00dev, in rt2500usb_probe_hw_mode()
1720 if (rt2x00_rf(rt2x00dev, RF2522)) { in rt2500usb_probe_hw_mode()
1723 } else if (rt2x00_rf(rt2x00dev, RF2523)) { in rt2500usb_probe_hw_mode()
1726 } else if (rt2x00_rf(rt2x00dev, RF2524)) { in rt2500usb_probe_hw_mode()
1729 } else if (rt2x00_rf(rt2x00dev, RF2525)) { in rt2500usb_probe_hw_mode()
1732 } else if (rt2x00_rf(rt2x00dev, RF2525E)) { in rt2500usb_probe_hw_mode()
1735 } else if (rt2x00_rf(rt2x00dev, RF5222)) { in rt2500usb_probe_hw_mode()
1750 tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_START); in rt2500usb_probe_hw_mode()
1766 static int rt2500usb_probe_hw(struct rt2x00_dev *rt2x00dev) in rt2500usb_probe_hw() argument
1774 retval = rt2500usb_validate_eeprom(rt2x00dev); in rt2500usb_probe_hw()
1778 retval = rt2500usb_init_eeprom(rt2x00dev); in rt2500usb_probe_hw()
1786 rt2500usb_register_read(rt2x00dev, MAC_CSR19, &reg); in rt2500usb_probe_hw()
1788 rt2500usb_register_write(rt2x00dev, MAC_CSR19, reg); in rt2500usb_probe_hw()
1793 retval = rt2500usb_probe_hw_mode(rt2x00dev); in rt2500usb_probe_hw()
1800 __set_bit(REQUIRE_ATIM_QUEUE, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1801 __set_bit(REQUIRE_BEACON_GUARD, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1803 __set_bit(CAPABILITY_HW_CRYPTO, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1804 __set_bit(REQUIRE_COPY_IV, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1806 __set_bit(REQUIRE_SW_SEQNO, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1807 __set_bit(REQUIRE_PS_AUTOWAKE, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1812 rt2x00dev->rssi_offset = DEFAULT_RSSI_OFFSET; in rt2500usb_probe_hw()