Lines Matching defs:rt2x00dev

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