Lines Matching refs:rt2x00dev

47 static u16 rt2500usb_register_read(struct rt2x00_dev *rt2x00dev,  in rt2500usb_register_read()  argument
51 rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_READ, in rt2500usb_register_read()
57 static u16 rt2500usb_register_read_lock(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_read_lock() argument
61 rt2x00usb_vendor_req_buff_lock(rt2x00dev, USB_MULTI_READ, in rt2500usb_register_read_lock()
67 static void rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_write() argument
72 rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_WRITE, in rt2500usb_register_write()
77 static void rt2500usb_register_write_lock(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_write_lock() argument
82 rt2x00usb_vendor_req_buff_lock(rt2x00dev, USB_MULTI_WRITE, in rt2500usb_register_write_lock()
87 static void rt2500usb_register_multiwrite(struct rt2x00_dev *rt2x00dev, in rt2500usb_register_multiwrite() argument
91 rt2x00usb_vendor_request_buff(rt2x00dev, USB_MULTI_WRITE, in rt2500usb_register_multiwrite()
96 static int rt2500usb_regbusy_read(struct rt2x00_dev *rt2x00dev, in rt2500usb_regbusy_read() argument
104 *reg = rt2500usb_register_read_lock(rt2x00dev, offset); in rt2500usb_regbusy_read()
110 rt2x00_err(rt2x00dev, "Indirect register access failed: offset=0x%.08x, value=0x%.08x\n", in rt2500usb_regbusy_read()
122 static void rt2500usb_bbp_write(struct rt2x00_dev *rt2x00dev, in rt2500usb_bbp_write() argument
127 mutex_lock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_write()
133 if (WAIT_FOR_BBP(rt2x00dev, &reg)) { in rt2500usb_bbp_write()
139 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR7, reg); in rt2500usb_bbp_write()
142 mutex_unlock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_write()
145 static u8 rt2500usb_bbp_read(struct rt2x00_dev *rt2x00dev, in rt2500usb_bbp_read() argument
151 mutex_lock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_read()
161 if (WAIT_FOR_BBP(rt2x00dev, &reg)) { in rt2500usb_bbp_read()
166 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR7, reg); in rt2500usb_bbp_read()
168 if (WAIT_FOR_BBP(rt2x00dev, &reg)) in rt2500usb_bbp_read()
169 reg = rt2500usb_register_read_lock(rt2x00dev, PHY_CSR7); in rt2500usb_bbp_read()
174 mutex_unlock(&rt2x00dev->csr_mutex); in rt2500usb_bbp_read()
179 static void rt2500usb_rf_write(struct rt2x00_dev *rt2x00dev, in rt2500usb_rf_write() argument
184 mutex_lock(&rt2x00dev->csr_mutex); in rt2500usb_rf_write()
190 if (WAIT_FOR_RF(rt2x00dev, &reg)) { in rt2500usb_rf_write()
193 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR9, reg); in rt2500usb_rf_write()
201 rt2500usb_register_write_lock(rt2x00dev, PHY_CSR10, reg); in rt2500usb_rf_write()
202 rt2x00_rf_write(rt2x00dev, word, value); in rt2500usb_rf_write()
205 mutex_unlock(&rt2x00dev->csr_mutex); in rt2500usb_rf_write()
209 static u32 _rt2500usb_register_read(struct rt2x00_dev *rt2x00dev, in _rt2500usb_register_read() argument
212 return rt2500usb_register_read(rt2x00dev, offset); in _rt2500usb_register_read()
215 static void _rt2500usb_register_write(struct rt2x00_dev *rt2x00dev, in _rt2500usb_register_write() argument
219 rt2500usb_register_write(rt2x00dev, offset, value); in _rt2500usb_register_write()
256 static int rt2500usb_rfkill_poll(struct rt2x00_dev *rt2x00dev) in rt2500usb_rfkill_poll() argument
260 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR19); in rt2500usb_rfkill_poll()
273 reg = rt2500usb_register_read(led->rt2x00dev, MAC_CSR20); in rt2500usb_brightness_set()
280 rt2500usb_register_write(led->rt2x00dev, MAC_CSR20, reg); in rt2500usb_brightness_set()
291 reg = rt2500usb_register_read(led->rt2x00dev, MAC_CSR21); in rt2500usb_blink_set()
294 rt2500usb_register_write(led->rt2x00dev, MAC_CSR21, reg); in rt2500usb_blink_set()
299 static void rt2500usb_init_led(struct rt2x00_dev *rt2x00dev, in rt2500usb_init_led() argument
303 led->rt2x00dev = rt2x00dev; in rt2500usb_init_led()
319 static int rt2500usb_config_key(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_key() argument
345 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR0); in rt2500usb_config_key()
364 rt2500usb_register_multiwrite(rt2x00dev, KEY_ENTRY(key->hw_key_idx), in rt2500usb_config_key()
384 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR0); in rt2500usb_config_key()
394 rt2500usb_register_write(rt2x00dev, TXRX_CSR0, reg); in rt2500usb_config_key()
399 static void rt2500usb_config_filter(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_filter() argument
410 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR2); in rt2500usb_config_filter()
418 !test_bit(CONFIG_MONITORING, &rt2x00dev->flags)); in rt2500usb_config_filter()
420 !test_bit(CONFIG_MONITORING, &rt2x00dev->flags) && in rt2500usb_config_filter()
421 !rt2x00dev->intf_ap_count); in rt2500usb_config_filter()
426 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_config_filter()
429 static void rt2500usb_config_intf(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_intf() argument
442 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR20); in rt2500usb_config_intf()
446 rt2500usb_register_write(rt2x00dev, TXRX_CSR20, reg); in rt2500usb_config_intf()
451 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR18); in rt2500usb_config_intf()
453 rt2500usb_register_write(rt2x00dev, TXRX_CSR18, reg); in rt2500usb_config_intf()
455 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR19); in rt2500usb_config_intf()
457 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_config_intf()
461 rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR2, conf->mac, in rt2500usb_config_intf()
465 rt2500usb_register_multiwrite(rt2x00dev, MAC_CSR5, conf->bssid, in rt2500usb_config_intf()
469 static void rt2500usb_config_erp(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_erp() argument
476 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR10); in rt2500usb_config_erp()
479 rt2500usb_register_write(rt2x00dev, TXRX_CSR10, reg); in rt2500usb_config_erp()
483 rt2500usb_register_write(rt2x00dev, TXRX_CSR11, in rt2500usb_config_erp()
487 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR18); in rt2500usb_config_erp()
490 rt2500usb_register_write(rt2x00dev, TXRX_CSR18, reg); in rt2500usb_config_erp()
494 rt2500usb_register_write(rt2x00dev, MAC_CSR10, erp->slot_time); in rt2500usb_config_erp()
495 rt2500usb_register_write(rt2x00dev, MAC_CSR11, erp->sifs); in rt2500usb_config_erp()
496 rt2500usb_register_write(rt2x00dev, MAC_CSR12, erp->eifs); in rt2500usb_config_erp()
500 static void rt2500usb_config_ant(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_ant() argument
515 r2 = rt2500usb_bbp_read(rt2x00dev, 2); in rt2500usb_config_ant()
516 r14 = rt2500usb_bbp_read(rt2x00dev, 14); in rt2500usb_config_ant()
517 csr5 = rt2500usb_register_read(rt2x00dev, PHY_CSR5); in rt2500usb_config_ant()
518 csr6 = rt2500usb_register_read(rt2x00dev, PHY_CSR6); in rt2500usb_config_ant()
561 if (rt2x00_rf(rt2x00dev, RF2525E) || rt2x00_rf(rt2x00dev, RF5222)) { in rt2500usb_config_ant()
569 if (rt2x00_rf(rt2x00dev, RF2525E)) in rt2500usb_config_ant()
576 rt2500usb_bbp_write(rt2x00dev, 2, r2); in rt2500usb_config_ant()
577 rt2500usb_bbp_write(rt2x00dev, 14, r14); in rt2500usb_config_ant()
578 rt2500usb_register_write(rt2x00dev, PHY_CSR5, csr5); in rt2500usb_config_ant()
579 rt2500usb_register_write(rt2x00dev, PHY_CSR6, csr6); in rt2500usb_config_ant()
582 static void rt2500usb_config_channel(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_channel() argument
593 if (rt2x00_rf(rt2x00dev, RF2525E)) { in rt2500usb_config_channel()
601 rt2500usb_rf_write(rt2x00dev, 2, vals[rf->channel - 1]); in rt2500usb_config_channel()
603 rt2500usb_rf_write(rt2x00dev, 4, rf->rf4); in rt2500usb_config_channel()
606 rt2500usb_rf_write(rt2x00dev, 1, rf->rf1); in rt2500usb_config_channel()
607 rt2500usb_rf_write(rt2x00dev, 2, rf->rf2); in rt2500usb_config_channel()
608 rt2500usb_rf_write(rt2x00dev, 3, rf->rf3); in rt2500usb_config_channel()
610 rt2500usb_rf_write(rt2x00dev, 4, rf->rf4); in rt2500usb_config_channel()
613 static void rt2500usb_config_txpower(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_txpower() argument
618 rf3 = rt2x00_rf_read(rt2x00dev, 3); in rt2500usb_config_txpower()
620 rt2500usb_rf_write(rt2x00dev, 3, rf3); in rt2500usb_config_txpower()
623 static void rt2500usb_config_ps(struct rt2x00_dev *rt2x00dev, in rt2500usb_config_ps() argument
632 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR18); in rt2500usb_config_ps()
634 rt2x00dev->beacon_int - 20); in rt2500usb_config_ps()
640 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_config_ps()
643 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_config_ps()
645 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR18); in rt2500usb_config_ps()
647 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_config_ps()
650 rt2x00dev->ops->lib->set_device_state(rt2x00dev, state); in rt2500usb_config_ps()
653 static void rt2500usb_config(struct rt2x00_dev *rt2x00dev, in rt2500usb_config() argument
658 rt2500usb_config_channel(rt2x00dev, &libconf->rf, in rt2500usb_config()
662 rt2500usb_config_txpower(rt2x00dev, in rt2500usb_config()
665 rt2500usb_config_ps(rt2x00dev, libconf); in rt2500usb_config()
671 static void rt2500usb_link_stats(struct rt2x00_dev *rt2x00dev, in rt2500usb_link_stats() argument
679 reg = rt2500usb_register_read(rt2x00dev, STA_CSR0); in rt2500usb_link_stats()
685 reg = rt2500usb_register_read(rt2x00dev, STA_CSR3); in rt2500usb_link_stats()
689 static void rt2500usb_reset_tuner(struct rt2x00_dev *rt2x00dev, in rt2500usb_reset_tuner() argument
695 eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R24); in rt2500usb_reset_tuner()
697 rt2500usb_bbp_write(rt2x00dev, 24, value); in rt2500usb_reset_tuner()
699 eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R25); in rt2500usb_reset_tuner()
701 rt2500usb_bbp_write(rt2x00dev, 25, value); in rt2500usb_reset_tuner()
703 eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R61); in rt2500usb_reset_tuner()
705 rt2500usb_bbp_write(rt2x00dev, 61, value); in rt2500usb_reset_tuner()
707 eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_VGC); in rt2500usb_reset_tuner()
709 rt2500usb_bbp_write(rt2x00dev, 17, value); in rt2500usb_reset_tuner()
719 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2500usb_start_queue() local
724 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR2); in rt2500usb_start_queue()
726 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_start_queue()
729 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR19); in rt2500usb_start_queue()
733 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_start_queue()
742 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2500usb_stop_queue() local
747 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR2); in rt2500usb_stop_queue()
749 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_stop_queue()
752 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR19); in rt2500usb_stop_queue()
756 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_stop_queue()
766 static int rt2500usb_init_registers(struct rt2x00_dev *rt2x00dev) in rt2500usb_init_registers() argument
770 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0x0001, in rt2500usb_init_registers()
772 rt2x00usb_vendor_request_sw(rt2x00dev, USB_SINGLE_WRITE, 0x0308, in rt2500usb_init_registers()
775 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR2); in rt2500usb_init_registers()
777 rt2500usb_register_write(rt2x00dev, TXRX_CSR2, reg); in rt2500usb_init_registers()
779 rt2500usb_register_write(rt2x00dev, MAC_CSR13, 0x1111); in rt2500usb_init_registers()
780 rt2500usb_register_write(rt2x00dev, MAC_CSR14, 0x1e11); in rt2500usb_init_registers()
782 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR1); in rt2500usb_init_registers()
786 rt2500usb_register_write(rt2x00dev, MAC_CSR1, reg); in rt2500usb_init_registers()
788 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR1); in rt2500usb_init_registers()
792 rt2500usb_register_write(rt2x00dev, MAC_CSR1, reg); in rt2500usb_init_registers()
794 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR5); in rt2500usb_init_registers()
799 rt2500usb_register_write(rt2x00dev, TXRX_CSR5, reg); in rt2500usb_init_registers()
801 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR6); in rt2500usb_init_registers()
806 rt2500usb_register_write(rt2x00dev, TXRX_CSR6, reg); in rt2500usb_init_registers()
808 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR7); in rt2500usb_init_registers()
813 rt2500usb_register_write(rt2x00dev, TXRX_CSR7, reg); in rt2500usb_init_registers()
815 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR8); in rt2500usb_init_registers()
820 rt2500usb_register_write(rt2x00dev, TXRX_CSR8, reg); in rt2500usb_init_registers()
822 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR19); in rt2500usb_init_registers()
827 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_init_registers()
829 rt2500usb_register_write(rt2x00dev, TXRX_CSR21, 0xe78f); in rt2500usb_init_registers()
830 rt2500usb_register_write(rt2x00dev, MAC_CSR9, 0xff1d); in rt2500usb_init_registers()
832 if (rt2x00dev->ops->lib->set_device_state(rt2x00dev, STATE_AWAKE)) in rt2500usb_init_registers()
835 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR1); in rt2500usb_init_registers()
839 rt2500usb_register_write(rt2x00dev, MAC_CSR1, reg); in rt2500usb_init_registers()
841 if (rt2x00_rev(rt2x00dev) >= RT2570_VERSION_C) { in rt2500usb_init_registers()
842 reg = rt2500usb_register_read(rt2x00dev, PHY_CSR2); in rt2500usb_init_registers()
849 rt2500usb_register_write(rt2x00dev, PHY_CSR2, reg); in rt2500usb_init_registers()
851 rt2500usb_register_write(rt2x00dev, MAC_CSR11, 0x0002); in rt2500usb_init_registers()
852 rt2500usb_register_write(rt2x00dev, MAC_CSR22, 0x0053); in rt2500usb_init_registers()
853 rt2500usb_register_write(rt2x00dev, MAC_CSR15, 0x01ee); in rt2500usb_init_registers()
854 rt2500usb_register_write(rt2x00dev, MAC_CSR16, 0x0000); in rt2500usb_init_registers()
856 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR8); in rt2500usb_init_registers()
858 rt2x00dev->rx->data_size); in rt2500usb_init_registers()
859 rt2500usb_register_write(rt2x00dev, MAC_CSR8, reg); in rt2500usb_init_registers()
861 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR0); in rt2500usb_init_registers()
865 rt2500usb_register_write(rt2x00dev, TXRX_CSR0, reg); in rt2500usb_init_registers()
867 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR18); in rt2500usb_init_registers()
869 rt2500usb_register_write(rt2x00dev, MAC_CSR18, reg); in rt2500usb_init_registers()
871 reg = rt2500usb_register_read(rt2x00dev, PHY_CSR4); in rt2500usb_init_registers()
873 rt2500usb_register_write(rt2x00dev, PHY_CSR4, reg); in rt2500usb_init_registers()
875 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR1); in rt2500usb_init_registers()
877 rt2500usb_register_write(rt2x00dev, TXRX_CSR1, reg); in rt2500usb_init_registers()
882 static int rt2500usb_wait_bbp_ready(struct rt2x00_dev *rt2x00dev) in rt2500usb_wait_bbp_ready() argument
888 value = rt2500usb_bbp_read(rt2x00dev, 0); in rt2500usb_wait_bbp_ready()
894 rt2x00_err(rt2x00dev, "BBP register access failed, aborting\n"); in rt2500usb_wait_bbp_ready()
898 static int rt2500usb_init_bbp(struct rt2x00_dev *rt2x00dev) in rt2500usb_init_bbp() argument
905 if (unlikely(rt2500usb_wait_bbp_ready(rt2x00dev))) in rt2500usb_init_bbp()
908 rt2500usb_bbp_write(rt2x00dev, 3, 0x02); in rt2500usb_init_bbp()
909 rt2500usb_bbp_write(rt2x00dev, 4, 0x19); in rt2500usb_init_bbp()
910 rt2500usb_bbp_write(rt2x00dev, 14, 0x1c); in rt2500usb_init_bbp()
911 rt2500usb_bbp_write(rt2x00dev, 15, 0x30); in rt2500usb_init_bbp()
912 rt2500usb_bbp_write(rt2x00dev, 16, 0xac); in rt2500usb_init_bbp()
913 rt2500usb_bbp_write(rt2x00dev, 18, 0x18); in rt2500usb_init_bbp()
914 rt2500usb_bbp_write(rt2x00dev, 19, 0xff); in rt2500usb_init_bbp()
915 rt2500usb_bbp_write(rt2x00dev, 20, 0x1e); in rt2500usb_init_bbp()
916 rt2500usb_bbp_write(rt2x00dev, 21, 0x08); in rt2500usb_init_bbp()
917 rt2500usb_bbp_write(rt2x00dev, 22, 0x08); in rt2500usb_init_bbp()
918 rt2500usb_bbp_write(rt2x00dev, 23, 0x08); in rt2500usb_init_bbp()
919 rt2500usb_bbp_write(rt2x00dev, 24, 0x80); in rt2500usb_init_bbp()
920 rt2500usb_bbp_write(rt2x00dev, 25, 0x50); in rt2500usb_init_bbp()
921 rt2500usb_bbp_write(rt2x00dev, 26, 0x08); in rt2500usb_init_bbp()
922 rt2500usb_bbp_write(rt2x00dev, 27, 0x23); in rt2500usb_init_bbp()
923 rt2500usb_bbp_write(rt2x00dev, 30, 0x10); in rt2500usb_init_bbp()
924 rt2500usb_bbp_write(rt2x00dev, 31, 0x2b); in rt2500usb_init_bbp()
925 rt2500usb_bbp_write(rt2x00dev, 32, 0xb9); in rt2500usb_init_bbp()
926 rt2500usb_bbp_write(rt2x00dev, 34, 0x12); in rt2500usb_init_bbp()
927 rt2500usb_bbp_write(rt2x00dev, 35, 0x50); in rt2500usb_init_bbp()
928 rt2500usb_bbp_write(rt2x00dev, 39, 0xc4); in rt2500usb_init_bbp()
929 rt2500usb_bbp_write(rt2x00dev, 40, 0x02); in rt2500usb_init_bbp()
930 rt2500usb_bbp_write(rt2x00dev, 41, 0x60); in rt2500usb_init_bbp()
931 rt2500usb_bbp_write(rt2x00dev, 53, 0x10); in rt2500usb_init_bbp()
932 rt2500usb_bbp_write(rt2x00dev, 54, 0x18); in rt2500usb_init_bbp()
933 rt2500usb_bbp_write(rt2x00dev, 56, 0x08); in rt2500usb_init_bbp()
934 rt2500usb_bbp_write(rt2x00dev, 57, 0x10); in rt2500usb_init_bbp()
935 rt2500usb_bbp_write(rt2x00dev, 58, 0x08); in rt2500usb_init_bbp()
936 rt2500usb_bbp_write(rt2x00dev, 61, 0x60); in rt2500usb_init_bbp()
937 rt2500usb_bbp_write(rt2x00dev, 62, 0x10); in rt2500usb_init_bbp()
938 rt2500usb_bbp_write(rt2x00dev, 75, 0xff); in rt2500usb_init_bbp()
941 eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBP_START + i); in rt2500usb_init_bbp()
946 rt2500usb_bbp_write(rt2x00dev, reg_id, value); in rt2500usb_init_bbp()
956 static int rt2500usb_enable_radio(struct rt2x00_dev *rt2x00dev) in rt2500usb_enable_radio() argument
961 if (unlikely(rt2500usb_init_registers(rt2x00dev) || in rt2500usb_enable_radio()
962 rt2500usb_init_bbp(rt2x00dev))) in rt2500usb_enable_radio()
968 static void rt2500usb_disable_radio(struct rt2x00_dev *rt2x00dev) in rt2500usb_disable_radio() argument
970 rt2500usb_register_write(rt2x00dev, MAC_CSR13, 0x2121); in rt2500usb_disable_radio()
971 rt2500usb_register_write(rt2x00dev, MAC_CSR14, 0x2121); in rt2500usb_disable_radio()
976 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, 0); in rt2500usb_disable_radio()
978 rt2x00usb_disable_radio(rt2x00dev); in rt2500usb_disable_radio()
981 static int rt2500usb_set_state(struct rt2x00_dev *rt2x00dev, in rt2500usb_set_state() argument
997 rt2500usb_register_write(rt2x00dev, MAC_CSR17, reg); in rt2500usb_set_state()
999 rt2500usb_register_write(rt2x00dev, MAC_CSR17, reg); in rt2500usb_set_state()
1007 reg2 = rt2500usb_register_read(rt2x00dev, MAC_CSR17); in rt2500usb_set_state()
1012 rt2500usb_register_write(rt2x00dev, MAC_CSR17, reg); in rt2500usb_set_state()
1019 static int rt2500usb_set_device_state(struct rt2x00_dev *rt2x00dev, in rt2500usb_set_device_state() argument
1026 retval = rt2500usb_enable_radio(rt2x00dev); in rt2500usb_set_device_state()
1029 rt2500usb_disable_radio(rt2x00dev); in rt2500usb_set_device_state()
1039 retval = rt2500usb_set_state(rt2x00dev, state); in rt2500usb_set_device_state()
1047 rt2x00_err(rt2x00dev, "Device failed to enter state %d (%d)\n", in rt2500usb_set_device_state()
1121 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2500usb_write_beacon() local
1122 struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); in rt2500usb_write_beacon()
1132 reg = rt2500usb_register_read(rt2x00dev, TXRX_CSR19); in rt2500usb_write_beacon()
1134 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1150 rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_BEACON, entry); in rt2500usb_write_beacon()
1157 length = rt2x00dev->ops->lib->get_tx_data_len(entry); in rt2500usb_write_beacon()
1192 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1193 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg0); in rt2500usb_write_beacon()
1194 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1195 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg0); in rt2500usb_write_beacon()
1196 rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); in rt2500usb_write_beacon()
1219 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2500usb_fill_rxdone() local
1273 rt2x00_get_field32(word1, RXD_W1_RSSI) - rt2x00dev->rssi_offset; in rt2500usb_fill_rxdone()
1297 if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &entry->queue->rt2x00dev->flags)) in rt2500usb_beacondone()
1317 static int rt2500usb_validate_eeprom(struct rt2x00_dev *rt2x00dev) in rt2500usb_validate_eeprom() argument
1323 rt2x00usb_eeprom_read(rt2x00dev, rt2x00dev->eeprom, EEPROM_SIZE); in rt2500usb_validate_eeprom()
1328 mac = rt2x00_eeprom_addr(rt2x00dev, EEPROM_MAC_ADDR_0); in rt2500usb_validate_eeprom()
1329 rt2x00lib_set_mac_address(rt2x00dev, mac); in rt2500usb_validate_eeprom()
1331 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA); in rt2500usb_validate_eeprom()
1343 rt2x00_eeprom_write(rt2x00dev, EEPROM_ANTENNA, word); in rt2500usb_validate_eeprom()
1344 rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1347 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC); in rt2500usb_validate_eeprom()
1352 rt2x00_eeprom_write(rt2x00dev, EEPROM_NIC, word); in rt2500usb_validate_eeprom()
1353 rt2x00_eeprom_dbg(rt2x00dev, "NIC: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1356 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET); in rt2500usb_validate_eeprom()
1360 rt2x00_eeprom_write(rt2x00dev, EEPROM_CALIBRATE_OFFSET, word); in rt2500usb_validate_eeprom()
1361 rt2x00_eeprom_dbg(rt2x00dev, "Calibrate offset: 0x%04x\n", in rt2500usb_validate_eeprom()
1365 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE); in rt2500usb_validate_eeprom()
1368 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE, word); in rt2500usb_validate_eeprom()
1369 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1376 bbp = rt2500usb_bbp_read(rt2x00dev, 17); in rt2500usb_validate_eeprom()
1379 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_VGC); in rt2500usb_validate_eeprom()
1383 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_VGC, word); in rt2500usb_validate_eeprom()
1384 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune vgc: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1387 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_VGC, word); in rt2500usb_validate_eeprom()
1390 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R17); in rt2500usb_validate_eeprom()
1394 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R17, word); in rt2500usb_validate_eeprom()
1395 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r17: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1398 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R24); in rt2500usb_validate_eeprom()
1402 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R24, word); in rt2500usb_validate_eeprom()
1403 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r24: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1406 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R25); in rt2500usb_validate_eeprom()
1410 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R25, word); in rt2500usb_validate_eeprom()
1411 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r25: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1414 word = rt2x00_eeprom_read(rt2x00dev, EEPROM_BBPTUNE_R61); in rt2500usb_validate_eeprom()
1418 rt2x00_eeprom_write(rt2x00dev, EEPROM_BBPTUNE_R61, word); in rt2500usb_validate_eeprom()
1419 rt2x00_eeprom_dbg(rt2x00dev, "BBPtune r61: 0x%04x\n", word); in rt2500usb_validate_eeprom()
1425 static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev) in rt2500usb_init_eeprom() argument
1434 eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_ANTENNA); in rt2500usb_init_eeprom()
1440 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR0); in rt2500usb_init_eeprom()
1441 rt2x00_set_chip(rt2x00dev, RT2570, value, reg); in rt2500usb_init_eeprom()
1444 rt2x00_err(rt2x00dev, "Invalid RT chipset detected\n"); in rt2500usb_init_eeprom()
1448 if (!rt2x00_rf(rt2x00dev, RF2522) && in rt2500usb_init_eeprom()
1449 !rt2x00_rf(rt2x00dev, RF2523) && in rt2500usb_init_eeprom()
1450 !rt2x00_rf(rt2x00dev, RF2524) && in rt2500usb_init_eeprom()
1451 !rt2x00_rf(rt2x00dev, RF2525) && in rt2500usb_init_eeprom()
1452 !rt2x00_rf(rt2x00dev, RF2525E) && in rt2500usb_init_eeprom()
1453 !rt2x00_rf(rt2x00dev, RF5222)) { in rt2500usb_init_eeprom()
1454 rt2x00_err(rt2x00dev, "Invalid RF chipset detected\n"); in rt2500usb_init_eeprom()
1461 rt2x00dev->default_ant.tx = in rt2500usb_init_eeprom()
1463 rt2x00dev->default_ant.rx = in rt2500usb_init_eeprom()
1472 if (rt2x00dev->default_ant.tx == ANTENNA_SW_DIVERSITY) in rt2500usb_init_eeprom()
1473 rt2x00dev->default_ant.tx = ANTENNA_HW_DIVERSITY; in rt2500usb_init_eeprom()
1474 if (rt2x00dev->default_ant.rx == ANTENNA_SW_DIVERSITY) in rt2500usb_init_eeprom()
1475 rt2x00dev->default_ant.rx = ANTENNA_HW_DIVERSITY; in rt2500usb_init_eeprom()
1483 rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO); in rt2500usb_init_eeprom()
1487 rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_qual, in rt2500usb_init_eeprom()
1495 __set_bit(CAPABILITY_HW_BUTTON, &rt2x00dev->cap_flags); in rt2500usb_init_eeprom()
1500 eeprom = rt2x00_eeprom_read(rt2x00dev, EEPROM_CALIBRATE_OFFSET); in rt2500usb_init_eeprom()
1501 rt2x00dev->rssi_offset = in rt2500usb_init_eeprom()
1662 static int rt2500usb_probe_hw_mode(struct rt2x00_dev *rt2x00dev) in rt2500usb_probe_hw_mode() argument
1664 struct hw_mode_spec *spec = &rt2x00dev->spec; in rt2500usb_probe_hw_mode()
1678 ieee80211_hw_set(rt2x00dev->hw, PS_NULLFUNC_STACK); in rt2500usb_probe_hw_mode()
1679 ieee80211_hw_set(rt2x00dev->hw, SUPPORTS_PS); in rt2500usb_probe_hw_mode()
1680 ieee80211_hw_set(rt2x00dev->hw, RX_INCLUDES_FCS); in rt2500usb_probe_hw_mode()
1681 ieee80211_hw_set(rt2x00dev->hw, SIGNAL_DBM); in rt2500usb_probe_hw_mode()
1686 rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; in rt2500usb_probe_hw_mode()
1688 SET_IEEE80211_DEV(rt2x00dev->hw, rt2x00dev->dev); in rt2500usb_probe_hw_mode()
1689 SET_IEEE80211_PERM_ADDR(rt2x00dev->hw, in rt2500usb_probe_hw_mode()
1690 rt2x00_eeprom_addr(rt2x00dev, in rt2500usb_probe_hw_mode()
1699 if (rt2x00_rf(rt2x00dev, RF2522)) { in rt2500usb_probe_hw_mode()
1702 } else if (rt2x00_rf(rt2x00dev, RF2523)) { in rt2500usb_probe_hw_mode()
1705 } else if (rt2x00_rf(rt2x00dev, RF2524)) { in rt2500usb_probe_hw_mode()
1708 } else if (rt2x00_rf(rt2x00dev, RF2525)) { in rt2500usb_probe_hw_mode()
1711 } else if (rt2x00_rf(rt2x00dev, RF2525E)) { in rt2500usb_probe_hw_mode()
1714 } else if (rt2x00_rf(rt2x00dev, RF5222)) { in rt2500usb_probe_hw_mode()
1729 tx_power = rt2x00_eeprom_addr(rt2x00dev, EEPROM_TXPOWER_START); in rt2500usb_probe_hw_mode()
1745 static int rt2500usb_probe_hw(struct rt2x00_dev *rt2x00dev) in rt2500usb_probe_hw() argument
1753 retval = rt2500usb_validate_eeprom(rt2x00dev); in rt2500usb_probe_hw()
1757 retval = rt2500usb_init_eeprom(rt2x00dev); in rt2500usb_probe_hw()
1765 reg = rt2500usb_register_read(rt2x00dev, MAC_CSR19); in rt2500usb_probe_hw()
1767 rt2500usb_register_write(rt2x00dev, MAC_CSR19, reg); in rt2500usb_probe_hw()
1772 retval = rt2500usb_probe_hw_mode(rt2x00dev); in rt2500usb_probe_hw()
1779 __set_bit(REQUIRE_ATIM_QUEUE, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1780 __set_bit(REQUIRE_BEACON_GUARD, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1782 __set_bit(CAPABILITY_HW_CRYPTO, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1783 __set_bit(REQUIRE_COPY_IV, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1785 __set_bit(REQUIRE_SW_SEQNO, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1786 __set_bit(REQUIRE_PS_AUTOWAKE, &rt2x00dev->cap_flags); in rt2500usb_probe_hw()
1791 rt2x00dev->rssi_offset = DEFAULT_RSSI_OFFSET; in rt2500usb_probe_hw()