diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt61pci.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 83b95a675f08..b644a66dcb50 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c | |||
@@ -411,8 +411,7 @@ static void rt61pci_config_txpower(struct rt2x00_dev *rt2x00dev, | |||
411 | } | 411 | } |
412 | 412 | ||
413 | static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev, | 413 | static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev, |
414 | const int antenna_tx, | 414 | struct antenna_setup *ant) |
415 | const int antenna_rx) | ||
416 | { | 415 | { |
417 | u8 r3; | 416 | u8 r3; |
418 | u8 r4; | 417 | u8 r4; |
@@ -425,7 +424,7 @@ static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev, | |||
425 | rt2x00_set_field8(&r3, BBP_R3_SMART_MODE, | 424 | rt2x00_set_field8(&r3, BBP_R3_SMART_MODE, |
426 | !rt2x00_rf(&rt2x00dev->chip, RF5225)); | 425 | !rt2x00_rf(&rt2x00dev->chip, RF5225)); |
427 | 426 | ||
428 | switch (antenna_rx) { | 427 | switch (ant->rx) { |
429 | case ANTENNA_SW_DIVERSITY: | 428 | case ANTENNA_SW_DIVERSITY: |
430 | case ANTENNA_HW_DIVERSITY: | 429 | case ANTENNA_HW_DIVERSITY: |
431 | rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA, 2); | 430 | rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA, 2); |
@@ -458,8 +457,7 @@ static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev, | |||
458 | } | 457 | } |
459 | 458 | ||
460 | static void rt61pci_config_antenna_2x(struct rt2x00_dev *rt2x00dev, | 459 | static void rt61pci_config_antenna_2x(struct rt2x00_dev *rt2x00dev, |
461 | const int antenna_tx, | 460 | struct antenna_setup *ant) |
462 | const int antenna_rx) | ||
463 | { | 461 | { |
464 | u8 r3; | 462 | u8 r3; |
465 | u8 r4; | 463 | u8 r4; |
@@ -474,7 +472,7 @@ static void rt61pci_config_antenna_2x(struct rt2x00_dev *rt2x00dev, | |||
474 | rt2x00_set_field8(&r4, BBP_R4_RX_FRAME_END, | 472 | rt2x00_set_field8(&r4, BBP_R4_RX_FRAME_END, |
475 | !test_bit(CONFIG_FRAME_TYPE, &rt2x00dev->flags)); | 473 | !test_bit(CONFIG_FRAME_TYPE, &rt2x00dev->flags)); |
476 | 474 | ||
477 | switch (antenna_rx) { | 475 | switch (ant->rx) { |
478 | case ANTENNA_SW_DIVERSITY: | 476 | case ANTENNA_SW_DIVERSITY: |
479 | case ANTENNA_HW_DIVERSITY: | 477 | case ANTENNA_HW_DIVERSITY: |
480 | rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA, 2); | 478 | rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA, 2); |
@@ -514,8 +512,7 @@ static void rt61pci_config_antenna_2529_rx(struct rt2x00_dev *rt2x00dev, | |||
514 | } | 512 | } |
515 | 513 | ||
516 | static void rt61pci_config_antenna_2529(struct rt2x00_dev *rt2x00dev, | 514 | static void rt61pci_config_antenna_2529(struct rt2x00_dev *rt2x00dev, |
517 | const int antenna_tx, | 515 | struct antenna_setup *ant) |
518 | const int antenna_rx) | ||
519 | { | 516 | { |
520 | u16 eeprom; | 517 | u16 eeprom; |
521 | u8 r3; | 518 | u8 r3; |
@@ -625,7 +622,7 @@ static const struct antenna_sel antenna_sel_bg[] = { | |||
625 | }; | 622 | }; |
626 | 623 | ||
627 | static void rt61pci_config_antenna(struct rt2x00_dev *rt2x00dev, | 624 | static void rt61pci_config_antenna(struct rt2x00_dev *rt2x00dev, |
628 | const int antenna_tx, const int antenna_rx) | 625 | struct antenna_setup *ant) |
629 | { | 626 | { |
630 | const struct antenna_sel *sel; | 627 | const struct antenna_sel *sel; |
631 | unsigned int lna; | 628 | unsigned int lna; |
@@ -655,16 +652,14 @@ static void rt61pci_config_antenna(struct rt2x00_dev *rt2x00dev, | |||
655 | 652 | ||
656 | if (rt2x00_rf(&rt2x00dev->chip, RF5225) || | 653 | if (rt2x00_rf(&rt2x00dev->chip, RF5225) || |
657 | rt2x00_rf(&rt2x00dev->chip, RF5325)) | 654 | rt2x00_rf(&rt2x00dev->chip, RF5325)) |
658 | rt61pci_config_antenna_5x(rt2x00dev, antenna_tx, antenna_rx); | 655 | rt61pci_config_antenna_5x(rt2x00dev, ant); |
659 | else if (rt2x00_rf(&rt2x00dev->chip, RF2527)) | 656 | else if (rt2x00_rf(&rt2x00dev->chip, RF2527)) |
660 | rt61pci_config_antenna_2x(rt2x00dev, antenna_tx, antenna_rx); | 657 | rt61pci_config_antenna_2x(rt2x00dev, ant); |
661 | else if (rt2x00_rf(&rt2x00dev->chip, RF2529)) { | 658 | else if (rt2x00_rf(&rt2x00dev->chip, RF2529)) { |
662 | if (test_bit(CONFIG_DOUBLE_ANTENNA, &rt2x00dev->flags)) | 659 | if (test_bit(CONFIG_DOUBLE_ANTENNA, &rt2x00dev->flags)) |
663 | rt61pci_config_antenna_2x(rt2x00dev, antenna_tx, | 660 | rt61pci_config_antenna_2x(rt2x00dev, ant); |
664 | antenna_rx); | ||
665 | else | 661 | else |
666 | rt61pci_config_antenna_2529(rt2x00dev, antenna_tx, | 662 | rt61pci_config_antenna_2529(rt2x00dev, ant); |
667 | antenna_rx); | ||
668 | } | 663 | } |
669 | } | 664 | } |
670 | 665 | ||
@@ -709,8 +704,7 @@ static void rt61pci_config(struct rt2x00_dev *rt2x00dev, | |||
709 | if ((flags & CONFIG_UPDATE_TXPOWER) && !(flags & CONFIG_UPDATE_CHANNEL)) | 704 | if ((flags & CONFIG_UPDATE_TXPOWER) && !(flags & CONFIG_UPDATE_CHANNEL)) |
710 | rt61pci_config_txpower(rt2x00dev, libconf->conf->power_level); | 705 | rt61pci_config_txpower(rt2x00dev, libconf->conf->power_level); |
711 | if (flags & CONFIG_UPDATE_ANTENNA) | 706 | if (flags & CONFIG_UPDATE_ANTENNA) |
712 | rt61pci_config_antenna(rt2x00dev, libconf->conf->antenna_sel_tx, | 707 | rt61pci_config_antenna(rt2x00dev, &libconf->ant); |
713 | libconf->conf->antenna_sel_rx); | ||
714 | if (flags & (CONFIG_UPDATE_SLOT_TIME | CONFIG_UPDATE_BEACON_INT)) | 708 | if (flags & (CONFIG_UPDATE_SLOT_TIME | CONFIG_UPDATE_BEACON_INT)) |
715 | rt61pci_config_duration(rt2x00dev, libconf); | 709 | rt61pci_config_duration(rt2x00dev, libconf); |
716 | } | 710 | } |
@@ -2029,9 +2023,9 @@ static int rt61pci_init_eeprom(struct rt2x00_dev *rt2x00dev) | |||
2029 | /* | 2023 | /* |
2030 | * Identify default antenna configuration. | 2024 | * Identify default antenna configuration. |
2031 | */ | 2025 | */ |
2032 | rt2x00dev->hw->conf.antenna_sel_tx = | 2026 | rt2x00dev->default_ant.tx = |
2033 | rt2x00_get_field16(eeprom, EEPROM_ANTENNA_TX_DEFAULT); | 2027 | rt2x00_get_field16(eeprom, EEPROM_ANTENNA_TX_DEFAULT); |
2034 | rt2x00dev->hw->conf.antenna_sel_rx = | 2028 | rt2x00dev->default_ant.rx = |
2035 | rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_DEFAULT); | 2029 | rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_DEFAULT); |
2036 | 2030 | ||
2037 | /* | 2031 | /* |