aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt61pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt61pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index 23b3e163b9ba..f912a8515b5c 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -481,14 +481,8 @@ static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev,
481 else 481 else
482 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 3); 482 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 3);
483 break; 483 break;
484 case ANTENNA_SW_DIVERSITY:
485 /*
486 * NOTE: We should never come here because rt2x00lib is
487 * supposed to catch this and send us the correct antenna
488 * explicitely. However we are nog going to bug about this.
489 * Instead, just default to antenna B.
490 */
491 case ANTENNA_B: 484 case ANTENNA_B:
485 default:
492 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1); 486 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1);
493 rt2x00_set_field8(&r4, BBP_R4_RX_FRAME_END, 0); 487 rt2x00_set_field8(&r4, BBP_R4_RX_FRAME_END, 0);
494 if (rt2x00dev->curr_band == IEEE80211_BAND_5GHZ) 488 if (rt2x00dev->curr_band == IEEE80211_BAND_5GHZ)
@@ -530,14 +524,8 @@ static void rt61pci_config_antenna_2x(struct rt2x00_dev *rt2x00dev,
530 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1); 524 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1);
531 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 3); 525 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 3);
532 break; 526 break;
533 case ANTENNA_SW_DIVERSITY:
534 /*
535 * NOTE: We should never come here because rt2x00lib is
536 * supposed to catch this and send us the correct antenna
537 * explicitely. However we are nog going to bug about this.
538 * Instead, just default to antenna B.
539 */
540 case ANTENNA_B: 527 case ANTENNA_B:
528 default:
541 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1); 529 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1);
542 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 0); 530 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 0);
543 break; 531 break;
@@ -575,10 +563,6 @@ static void rt61pci_config_antenna_2529(struct rt2x00_dev *rt2x00dev,
575 rt61pci_bbp_read(rt2x00dev, 4, &r4); 563 rt61pci_bbp_read(rt2x00dev, 4, &r4);
576 rt61pci_bbp_read(rt2x00dev, 77, &r77); 564 rt61pci_bbp_read(rt2x00dev, 77, &r77);
577 565
578 /* FIXME: Antenna selection for the rf 2529 is very confusing in the
579 * legacy driver. The code below should be ok for non-diversity setups.
580 */
581
582 /* 566 /*
583 * Configure the RX antenna. 567 * Configure the RX antenna.
584 */ 568 */
@@ -588,15 +572,14 @@ static void rt61pci_config_antenna_2529(struct rt2x00_dev *rt2x00dev,
588 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 0); 572 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 0);
589 rt61pci_config_antenna_2529_rx(rt2x00dev, 0, 0); 573 rt61pci_config_antenna_2529_rx(rt2x00dev, 0, 0);
590 break; 574 break;
591 case ANTENNA_SW_DIVERSITY:
592 case ANTENNA_HW_DIVERSITY: 575 case ANTENNA_HW_DIVERSITY:
593 /* 576 /*
594 * NOTE: We should never come here because rt2x00lib is 577 * FIXME: Antenna selection for the rf 2529 is very confusing
595 * supposed to catch this and send us the correct antenna 578 * in the legacy driver. Just default to antenna B until the
596 * explicitely. However we are nog going to bug about this. 579 * legacy code can be properly translated into rt2x00 code.
597 * Instead, just default to antenna B.
598 */ 580 */
599 case ANTENNA_B: 581 case ANTENNA_B:
582 default:
600 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1); 583 rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA_CONTROL, 1);
601 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 3); 584 rt2x00_set_field8(&r77, BBP_R77_RX_ANTENNA, 3);
602 rt61pci_config_antenna_2529_rx(rt2x00dev, 1, 1); 585 rt61pci_config_antenna_2529_rx(rt2x00dev, 1, 1);
@@ -647,6 +630,13 @@ static void rt61pci_config_antenna(struct rt2x00_dev *rt2x00dev,
647 unsigned int i; 630 unsigned int i;
648 u32 reg; 631 u32 reg;
649 632
633 /*
634 * We should never come here because rt2x00lib is supposed
635 * to catch this and send us the correct antenna explicitely.
636 */
637 BUG_ON(ant->rx == ANTENNA_SW_DIVERSITY ||
638 ant->tx == ANTENNA_SW_DIVERSITY);
639
650 if (rt2x00dev->curr_band == IEEE80211_BAND_5GHZ) { 640 if (rt2x00dev->curr_band == IEEE80211_BAND_5GHZ) {
651 sel = antenna_sel_a; 641 sel = antenna_sel_a;
652 lna = test_bit(CONFIG_EXTERNAL_LNA_A, &rt2x00dev->flags); 642 lna = test_bit(CONFIG_EXTERNAL_LNA_A, &rt2x00dev->flags);