diff options
author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-06-01 13:12:31 +0000 |
---|---|---|
committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-06-01 13:12:31 +0000 |
commit | 520149cb7f85a6f527f270005c83afad3a0b7bda (patch) | |
tree | 0808a998afabf4c21d3dcc55c2f2cd40f413bcd8 /package/mac80211/patches/565-ath9k-add-fast_div_bias-configuration-for-diversity-.patch | |
parent | 3db28f95612c6624080170a8ad73192e579f82ea (diff) |
mac80211: add initial support for AR9330
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@27084 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/mac80211/patches/565-ath9k-add-fast_div_bias-configuration-for-diversity-.patch')
-rw-r--r-- | package/mac80211/patches/565-ath9k-add-fast_div_bias-configuration-for-diversity-.patch | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/package/mac80211/patches/565-ath9k-add-fast_div_bias-configuration-for-diversity-.patch b/package/mac80211/patches/565-ath9k-add-fast_div_bias-configuration-for-diversity-.patch new file mode 100644 index 000000000..9d17e882c --- /dev/null +++ b/package/mac80211/patches/565-ath9k-add-fast_div_bias-configuration-for-diversity-.patch @@ -0,0 +1,94 @@ +diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c +index 99f55b3..80bb04f 100644 +--- a/drivers/net/wireless/ath/ath9k/recv.c ++++ b/drivers/net/wireless/ath/ath9k/recv.c +@@ -1364,6 +1364,89 @@ static void ath_ant_div_conf_fast_divbias(struct ath_hw_antcomb_conf *ant_conf, + default: + break; + } ++ } else if (ant_conf->div_group == 1) { ++ /* Adjust the fast_div_bias based on main and alt_lna_conf */ ++ switch ((ant_conf->main_lna_conf << 4) | ++ ant_conf->alt_lna_conf) { ++ case 0x01: /* A-B LNA2 */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x02: /* A-B LNA1 */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x03: /* A-B A+B */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x10: /* LNA2 A-B */ ++ if (!(antcomb->scan) && ++ (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) ++ ant_conf->fast_div_bias = 0x3f; ++ else ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x12: /* LNA2 LNA1 */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x13: /* LNA2 A+B */ ++ if (!(antcomb->scan) && ++ (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) ++ ant_conf->fast_div_bias = 0x3f; ++ else ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x20: /* LNA1 A-B */ ++ if (!(antcomb->scan) && ++ (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) ++ ant_conf->fast_div_bias = 0x3f; ++ else ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x21: /* LNA1 LNA2 */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x23: /* LNA1 A+B */ ++ if (!(antcomb->scan) && ++ (alt_ratio > ATH_ANT_DIV_COMB_ALT_ANT_RATIO)) ++ ant_conf->fast_div_bias = 0x3f; ++ else ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x30: /* A+B A-B */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x31: /* A+B LNA2 */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ case 0x32: /* A+B LNA1 */ ++ ant_conf->fast_div_bias = 0x1; ++ ant_conf->main_gaintb = 0; ++ ant_conf->alt_gaintb = 0; ++ break; ++ default: ++ break; ++ } + } else if (ant_conf->div_group == 2) { + /* Adjust the fast_div_bias based on main and alt_lna_conf */ + switch ((ant_conf->main_lna_conf << 4) | |