diff options
Diffstat (limited to 'package/kernel/mac80211/patches/652-0035-rtl8xxxu-Update-8188e-efuse-definition-for-power-val.patch')
-rw-r--r-- | package/kernel/mac80211/patches/652-0035-rtl8xxxu-Update-8188e-efuse-definition-for-power-val.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/652-0035-rtl8xxxu-Update-8188e-efuse-definition-for-power-val.patch b/package/kernel/mac80211/patches/652-0035-rtl8xxxu-Update-8188e-efuse-definition-for-power-val.patch new file mode 100644 index 0000000000..3503915387 --- /dev/null +++ b/package/kernel/mac80211/patches/652-0035-rtl8xxxu-Update-8188e-efuse-definition-for-power-val.patch @@ -0,0 +1,62 @@ +From 3c3fae09952723763d87cbd2a02be667a46a040a Mon Sep 17 00:00:00 2001 +From: Jes Sorensen <Jes.Sorensen@redhat.com> +Date: Fri, 22 Jul 2016 16:46:11 -0400 +Subject: [PATCH] rtl8xxxu: Update 8188e efuse definition for power values + +The 8188e uses a similar layout as the 8192e, however it does not have +values for path B. Update struct rtl8188eu_efuse to reflect this and +copy over path A values for path B. + +Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> +--- + drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 7 ++----- + .../net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c | 19 +++++++++++-------- + 2 files changed, 13 insertions(+), 13 deletions(-) + +--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h ++++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +@@ -880,11 +880,8 @@ struct rtl8192eu_efuse { + struct rtl8188eu_efuse { + __le16 rtl_id; + u8 res0[0x0e]; +- u8 cck_tx_power_index_A[3]; /* 0x10 */ +- u8 cck_tx_power_index_B[3]; +- u8 ht40_1s_tx_power_index_A[3]; /* 0x16 */ +- u8 ht40_1s_tx_power_index_B[3]; +- u8 res1[0x9c]; ++ struct rtl8192eu_efuse_tx_power tx_power_index_A; /* 0x10 */ ++ u8 res1[0x7e]; /* 0x3a */ + u8 channel_plan; /* 0xb8 */ + u8 xtal_k; + u8 thermal_meter; +--- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c ++++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c +@@ -298,17 +298,20 @@ static int rtl8188eu_parse_efuse(struct + + ether_addr_copy(priv->mac_addr, efuse->mac_addr); + +- memcpy(priv->cck_tx_power_index_A, efuse->cck_tx_power_index_A, +- sizeof(efuse->cck_tx_power_index_A)); +- memcpy(priv->cck_tx_power_index_B, efuse->cck_tx_power_index_B, +- sizeof(efuse->cck_tx_power_index_B)); ++ memcpy(priv->cck_tx_power_index_A, efuse->tx_power_index_A.cck_base, ++ sizeof(efuse->tx_power_index_A.cck_base)); ++ /* ++ * Efuse is empty for path B, so copy in values from path A ++ */ ++ memcpy(priv->cck_tx_power_index_B, efuse->tx_power_index_A.cck_base, ++ sizeof(efuse->tx_power_index_A.cck_base)); + + memcpy(priv->ht40_1s_tx_power_index_A, +- priv->efuse_wifi.efuse8188eu.ht40_1s_tx_power_index_A, +- sizeof(priv->ht40_1s_tx_power_index_A)); ++ efuse->tx_power_index_A.ht40_base, ++ sizeof(efuse->tx_power_index_A.ht40_base)); + memcpy(priv->ht40_1s_tx_power_index_B, +- priv->efuse_wifi.efuse8188eu.ht40_1s_tx_power_index_B, +- sizeof(priv->ht40_1s_tx_power_index_B)); ++ efuse->tx_power_index_A.ht40_base, ++ sizeof(efuse->tx_power_index_A.ht40_base)); + + priv->xtalk = priv->efuse_wifi.efuse8188eu.xtal_k & 0x3f; + |