ath9k: Remove ath_ant_comb_update()
PATCH 1/3 ath9k: Remove ath_ant_comb_update()
From: Sujith Manoharan <[email protected]>
During a HW reset, the diversity config is programmed in the set_board_values() eeprom callback, there is no need to do it again by calling ath_ant_comb_update().
Fixed antenna support is not fully handled for 1-stream cards, it can be done later.
Signed-off-by Sujith Manoharan <[email protected]>
--- drivers/net/wireless/ath/ath9k/antenna.c | 23 ----------------------- drivers/net/wireless/ath/ath9k/ath9k.h | 1 - drivers/net/wireless/ath/ath9k/debug.c | 2 +- drivers/net/wireless/ath/ath9k/main.c | 3 --- 4 files changed, 1 insertion(+), 28 deletions(-)
drivers/net/wireless/ath/ath9k/antenna.c +0 -23
@@ -867,26 +867,3 @@ div_comb_done: antcomb->main_recv_cnt =0 ; antcomb->alt_recv_cnt =0 ; } - -void ath_ant_comb_update (struct ath_softc *sc) -{ -struct ath_hw *ah = sc->sc_ah; -struct ath_common *common =ath9k_hw_common (ah); -struct ath_hw_antcomb_conf div_ant_conf; -u8 lna_conf; - -ath9k_hw_antdiv_comb_conf_get (ah, &div_ant_conf); - -if (sc->ant_rx ==1 ) - lna_conf =ATH_ANT_DIV_COMB_LNA1 ; -else - lna_conf =ATH_ANT_DIV_COMB_LNA2 ; - - div_ant_conf.main_lna_conf = lna_conf; - div_ant_conf.alt_lna_conf = lna_conf; - -ath9k_hw_antdiv_comb_conf_set (ah, &div_ant_conf); - -if (common->bt_ant_diversity) -ath9k_hw_set_bt_ant_diversity (ah, true); -}
drivers/net/wireless/ath/ath9k/ath9k.h +0 -1
@@ -628,7 +628,6 @@ struct ath_ant_comb { };void ath_ant_comb_scan (struct ath_softc *sc,struct ath_rx_status *rs); -void ath_ant_comb_update (struct ath_softc *sc);/********************/ /* Main driver core */
drivers/net/wireless/ath/ath9k/debug.c +1 -1
@@ -307,7 +307,7 @@ static ssize_t write_file_bt_ant_diversity(struct file *file, common->bt_ant_diversity = !!bt_ant_diversity;ath9k_ps_wakeup (sc); -ath_ant_comb_update (sc); +ath9k_hw_set_bt_ant_diversity (sc->sc_ah, common->bt_ant_diversity);ath_dbg (common,CONFIG ,"Enable WLAN/BT RX Antenna diversity: %d\n" , common->bt_ant_diversity);ath9k_ps_restore (sc);
drivers/net/wireless/ath/ath9k/main.c +0 -3
@@ -238,9 +238,6 @@ static bool ath_complete_reset(struct ath_softc *sc, bool start)ath_restart_work (sc); } -if ((ah->caps.hw_caps &ATH9K_HW_CAP_ANT_DIV_COMB ) && sc->ant_rx !=3 ) -ath_ant_comb_update (sc); -ieee80211_wake_queues (sc->hw);return true;
Signature · 1 line
1.8.3.4
PATCH 2/3 ath9k: Fix antenna control init for AR9485
From: Sujith Manoharan <[email protected]>
Signed-off-by Sujith Manoharan <[email protected]>
--- drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +13 -1
@@ -3614,6 +3614,11 @@ static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz) } value =ar9003_hw_ant_ctrl_common_2_get (ah, is2ghz); +if (AR_SREV_9485 (ah) && common->bt_ant_diversity) { + regval &= ~AR_SWITCH_TABLE_COM2_ALL ; + regval |= ah->config.ant_ctrl_comm2g_switch_enable; + + }REG_RMW_FIELD (ah,AR_PHY_SWITCH_COM_2 ,AR_SWITCH_TABLE_COM2_ALL , value);if ((AR_SREV_9462 (ah)) && (ah->rxchainmask ==0x2 )) {
@@ -3645,6 +3650,9 @@ static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz) regval &= (~AR_PHY_ANT_DIV_LNADIV ); regval |= ((value >>6 ) &0x1 ) <<AR_PHY_ANT_DIV_LNADIV_S ; +if (AR_SREV_9485 (ah) && common->bt_ant_diversity) + regval |=AR_ANT_DIV_ENABLE ; +if (AR_SREV_9565 (ah)) {if (common->bt_ant_diversity) { regval |= (1 <<AR_PHY_ANT_SW_RX_PROT_S );
@@ -3656,10 +3664,14 @@ static void ar9003_hw_ant_ctrl_apply(struct ath_hw *ah, bool is2ghz)REG_WRITE (ah,AR_PHY_MC_GAIN_CTRL , regval); -/*enable fast_div */ +/* enable fast_div */ regval =REG_READ (ah,AR_PHY_CCK_DETECT ); regval &= (~AR_FAST_DIV_ENABLE ); regval |= ((value >>7 ) &0x1 ) <<AR_FAST_DIV_ENABLE_S ; + +if (AR_SREV_9485 (ah) && common->bt_ant_diversity) + regval |=AR_FAST_DIV_ENABLE ; +REG_WRITE (ah,AR_PHY_CCK_DETECT , regval);if (pCap->hw_caps &ATH9K_HW_CAP_ANT_DIV_COMB ) {
Signature · 1 line
1.8.3.4
PATCH 3/3 ath9k: Add more PCI IDs for WB225 cards
In reply to Sujith ManoharanFrom: Sujith Manoharan <[email protected]>
Signed-off-by Sujith Manoharan <[email protected]>
--- drivers/net/wireless/ath/ath9k/pci.c | 72 ++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+)
drivers/net/wireless/ath/ath9k/pci.c +72 -0
@@ -72,6 +72,78 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = { 0xE075), .driver_data = ATH9K_PCI_CUS230 | ATH9K_PCI_BT_ANT_DIV }, +/* WB225 */ + {PCI_DEVICE_SUB (PCI_VENDOR_ID_ATHEROS , +0x0032 , +PCI_VENDOR_ID_ATHEROS , + 0x3119), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_ATHEROS, + 0x3122), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + 0x185F, /* WNC */ + 0x3119), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + 0x185F, /* WNC */ + 0x3027), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0x4105), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0x4106), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0x410D), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0x410E), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0x410F), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0xC706), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0xC680), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_SAMSUNG, + 0xC708), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_LENOVO, + 0x3218), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_DEVICE_SUB(PCI_VENDOR_ID_ATHEROS, + 0x0032, + PCI_VENDOR_ID_LENOVO, + 0x3219), + .driver_data = ATH9K_PCI_BT_ANT_DIV }, + { PCI_VDEVICE(ATHEROS, 0x0032) }, /* PCI-E AR9485 */ { PCI_VDEVICE(ATHEROS, 0x0033) }, /* PCI-E AR9580 */
Signature · 1 line
1.8.3.4