|
@@ -411,8 +411,7 @@ static void rt61pci_config_txpower(struct rt2x00_dev *rt2x00dev,
|
|
|
}
|
|
|
|
|
|
static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev,
|
|
|
- const int antenna_tx,
|
|
|
- const int antenna_rx)
|
|
|
+ struct antenna_setup *ant)
|
|
|
{
|
|
|
u8 r3;
|
|
|
u8 r4;
|
|
@@ -425,7 +424,7 @@ static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev,
|
|
|
rt2x00_set_field8(&r3, BBP_R3_SMART_MODE,
|
|
|
!rt2x00_rf(&rt2x00dev->chip, RF5225));
|
|
|
|
|
|
- switch (antenna_rx) {
|
|
|
+ switch (ant->rx) {
|
|
|
case ANTENNA_SW_DIVERSITY:
|
|
|
case ANTENNA_HW_DIVERSITY:
|
|
|
rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA, 2);
|
|
@@ -458,8 +457,7 @@ static void rt61pci_config_antenna_5x(struct rt2x00_dev *rt2x00dev,
|
|
|
}
|
|
|
|
|
|
static void rt61pci_config_antenna_2x(struct rt2x00_dev *rt2x00dev,
|
|
|
- const int antenna_tx,
|
|
|
- const int antenna_rx)
|
|
|
+ struct antenna_setup *ant)
|
|
|
{
|
|
|
u8 r3;
|
|
|
u8 r4;
|
|
@@ -474,7 +472,7 @@ static void rt61pci_config_antenna_2x(struct rt2x00_dev *rt2x00dev,
|
|
|
rt2x00_set_field8(&r4, BBP_R4_RX_FRAME_END,
|
|
|
!test_bit(CONFIG_FRAME_TYPE, &rt2x00dev->flags));
|
|
|
|
|
|
- switch (antenna_rx) {
|
|
|
+ switch (ant->rx) {
|
|
|
case ANTENNA_SW_DIVERSITY:
|
|
|
case ANTENNA_HW_DIVERSITY:
|
|
|
rt2x00_set_field8(&r4, BBP_R4_RX_ANTENNA, 2);
|
|
@@ -514,8 +512,7 @@ static void rt61pci_config_antenna_2529_rx(struct rt2x00_dev *rt2x00dev,
|
|
|
}
|
|
|
|
|
|
static void rt61pci_config_antenna_2529(struct rt2x00_dev *rt2x00dev,
|
|
|
- const int antenna_tx,
|
|
|
- const int antenna_rx)
|
|
|
+ struct antenna_setup *ant)
|
|
|
{
|
|
|
u16 eeprom;
|
|
|
u8 r3;
|
|
@@ -625,7 +622,7 @@ static const struct antenna_sel antenna_sel_bg[] = {
|
|
|
};
|
|
|
|
|
|
static void rt61pci_config_antenna(struct rt2x00_dev *rt2x00dev,
|
|
|
- const int antenna_tx, const int antenna_rx)
|
|
|
+ struct antenna_setup *ant)
|
|
|
{
|
|
|
const struct antenna_sel *sel;
|
|
|
unsigned int lna;
|
|
@@ -655,16 +652,14 @@ static void rt61pci_config_antenna(struct rt2x00_dev *rt2x00dev,
|
|
|
|
|
|
if (rt2x00_rf(&rt2x00dev->chip, RF5225) ||
|
|
|
rt2x00_rf(&rt2x00dev->chip, RF5325))
|
|
|
- rt61pci_config_antenna_5x(rt2x00dev, antenna_tx, antenna_rx);
|
|
|
+ rt61pci_config_antenna_5x(rt2x00dev, ant);
|
|
|
else if (rt2x00_rf(&rt2x00dev->chip, RF2527))
|
|
|
- rt61pci_config_antenna_2x(rt2x00dev, antenna_tx, antenna_rx);
|
|
|
+ rt61pci_config_antenna_2x(rt2x00dev, ant);
|
|
|
else if (rt2x00_rf(&rt2x00dev->chip, RF2529)) {
|
|
|
if (test_bit(CONFIG_DOUBLE_ANTENNA, &rt2x00dev->flags))
|
|
|
- rt61pci_config_antenna_2x(rt2x00dev, antenna_tx,
|
|
|
- antenna_rx);
|
|
|
+ rt61pci_config_antenna_2x(rt2x00dev, ant);
|
|
|
else
|
|
|
- rt61pci_config_antenna_2529(rt2x00dev, antenna_tx,
|
|
|
- antenna_rx);
|
|
|
+ rt61pci_config_antenna_2529(rt2x00dev, ant);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -709,8 +704,7 @@ static void rt61pci_config(struct rt2x00_dev *rt2x00dev,
|
|
|
if ((flags & CONFIG_UPDATE_TXPOWER) && !(flags & CONFIG_UPDATE_CHANNEL))
|
|
|
rt61pci_config_txpower(rt2x00dev, libconf->conf->power_level);
|
|
|
if (flags & CONFIG_UPDATE_ANTENNA)
|
|
|
- rt61pci_config_antenna(rt2x00dev, libconf->conf->antenna_sel_tx,
|
|
|
- libconf->conf->antenna_sel_rx);
|
|
|
+ rt61pci_config_antenna(rt2x00dev, &libconf->ant);
|
|
|
if (flags & (CONFIG_UPDATE_SLOT_TIME | CONFIG_UPDATE_BEACON_INT))
|
|
|
rt61pci_config_duration(rt2x00dev, libconf);
|
|
|
}
|
|
@@ -2029,9 +2023,9 @@ static int rt61pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
|
|
|
/*
|
|
|
* Identify default antenna configuration.
|
|
|
*/
|
|
|
- rt2x00dev->hw->conf.antenna_sel_tx =
|
|
|
+ rt2x00dev->default_ant.tx =
|
|
|
rt2x00_get_field16(eeprom, EEPROM_ANTENNA_TX_DEFAULT);
|
|
|
- rt2x00dev->hw->conf.antenna_sel_rx =
|
|
|
+ rt2x00dev->default_ant.rx =
|
|
|
rt2x00_get_field16(eeprom, EEPROM_ANTENNA_RX_DEFAULT);
|
|
|
|
|
|
/*
|