aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/552-ath9k-Add-an-eeprom_ops-callback-for-retrieving-the-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/552-ath9k-Add-an-eeprom_ops-callback-for-retrieving-the-.patch')
-rw-r--r--package/kernel/mac80211/patches/552-ath9k-Add-an-eeprom_ops-callback-for-retrieving-the-.patch117
1 files changed, 117 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/552-ath9k-Add-an-eeprom_ops-callback-for-retrieving-the-.patch b/package/kernel/mac80211/patches/552-ath9k-Add-an-eeprom_ops-callback-for-retrieving-the-.patch
new file mode 100644
index 0000000000..1b4dd3d134
--- /dev/null
+++ b/package/kernel/mac80211/patches/552-ath9k-Add-an-eeprom_ops-callback-for-retrieving-the-.patch
@@ -0,0 +1,117 @@
+From e8f60fa28e619ad238457ac84fb292541be180d3 Mon Sep 17 00:00:00 2001
+From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
+Date: Mon, 3 Oct 2016 00:29:09 +0200
+Subject: [v2 PATCH 3/7] ath9k: Add an eeprom_ops callback for retrieving the
+ eepmisc value
+
+This allows deciding if we have to swap the EEPROM data (so it matches
+the system's native endianness) even if no byte-swapping (swab16, based on
+the first two bytes in the EEPROM) is needed.
+
+Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
+---
+ drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 8 +++++++-
+ drivers/net/wireless/ath/ath9k/eeprom.h | 1 +
+ drivers/net/wireless/ath/ath9k/eeprom_4k.c | 8 +++++++-
+ drivers/net/wireless/ath/ath9k/eeprom_9287.c | 8 +++++++-
+ drivers/net/wireless/ath/ath9k/eeprom_def.c | 8 +++++++-
+ 5 files changed, 29 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+@@ -5498,6 +5498,11 @@ unsigned int ar9003_get_paprd_scale_fact
+ }
+ }
+
++static u8 ar9003_get_eepmisc(struct ath_hw *ah)
++{
++ return ah->eeprom.map4k.baseEepHeader.eepMisc;
++}
++
+ const struct eeprom_ops eep_ar9300_ops = {
+ .check_eeprom = ath9k_hw_ar9300_check_eeprom,
+ .get_eeprom = ath9k_hw_ar9300_get_eeprom,
+@@ -5508,5 +5513,6 @@ const struct eeprom_ops eep_ar9300_ops =
+ .set_board_values = ath9k_hw_ar9300_set_board_values,
+ .set_addac = ath9k_hw_ar9300_set_addac,
+ .set_txpower = ath9k_hw_ar9300_set_txpower,
+- .get_spur_channel = ath9k_hw_ar9300_get_spur_channel
++ .get_spur_channel = ath9k_hw_ar9300_get_spur_channel,
++ .get_eepmisc = ar9003_get_eepmisc
+ };
+--- a/drivers/net/wireless/ath/ath9k/eeprom.h
++++ b/drivers/net/wireless/ath/ath9k/eeprom.h
+@@ -655,6 +655,7 @@ struct eeprom_ops {
+ u16 cfgCtl, u8 twiceAntennaReduction,
+ u8 powerLimit, bool test);
+ u16 (*get_spur_channel)(struct ath_hw *ah, u16 i, bool is2GHz);
++ u8 (*get_eepmisc)(struct ath_hw *ah);
+ };
+
+ void ath9k_hw_analog_shift_regwrite(struct ath_hw *ah, u32 reg, u32 val);
+--- a/drivers/net/wireless/ath/ath9k/eeprom_4k.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom_4k.c
+@@ -1064,6 +1064,11 @@ static u16 ath9k_hw_4k_get_spur_channel(
+ return ah->eeprom.map4k.modalHeader.spurChans[i].spurChan;
+ }
+
++static u8 ath9k_hw_4k_get_eepmisc(struct ath_hw *ah)
++{
++ return ah->eeprom.map4k.baseEepHeader.eepMisc;
++}
++
+ const struct eeprom_ops eep_4k_ops = {
+ .check_eeprom = ath9k_hw_4k_check_eeprom,
+ .get_eeprom = ath9k_hw_4k_get_eeprom,
+@@ -1073,5 +1078,6 @@ const struct eeprom_ops eep_4k_ops = {
+ .get_eeprom_rev = ath9k_hw_4k_get_eeprom_rev,
+ .set_board_values = ath9k_hw_4k_set_board_values,
+ .set_txpower = ath9k_hw_4k_set_txpower,
+- .get_spur_channel = ath9k_hw_4k_get_spur_channel
++ .get_spur_channel = ath9k_hw_4k_get_spur_channel,
++ .get_eepmisc = ath9k_hw_4k_get_eepmisc
+ };
+--- a/drivers/net/wireless/ath/ath9k/eeprom_9287.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom_9287.c
+@@ -986,6 +986,11 @@ static u16 ath9k_hw_ar9287_get_spur_chan
+ return ah->eeprom.map9287.modalHeader.spurChans[i].spurChan;
+ }
+
++static u8 ath9k_hw_ar9287_get_eepmisc(struct ath_hw *ah)
++{
++ return ah->eeprom.map9287.baseEepHeader.eepMisc;
++}
++
+ const struct eeprom_ops eep_ar9287_ops = {
+ .check_eeprom = ath9k_hw_ar9287_check_eeprom,
+ .get_eeprom = ath9k_hw_ar9287_get_eeprom,
+@@ -995,5 +1000,6 @@ const struct eeprom_ops eep_ar9287_ops =
+ .get_eeprom_rev = ath9k_hw_ar9287_get_eeprom_rev,
+ .set_board_values = ath9k_hw_ar9287_set_board_values,
+ .set_txpower = ath9k_hw_ar9287_set_txpower,
+- .get_spur_channel = ath9k_hw_ar9287_get_spur_channel
++ .get_spur_channel = ath9k_hw_ar9287_get_spur_channel,
++ .get_eepmisc = ath9k_hw_ar9287_get_eepmisc
+ };
+--- a/drivers/net/wireless/ath/ath9k/eeprom_def.c
++++ b/drivers/net/wireless/ath/ath9k/eeprom_def.c
+@@ -1317,6 +1317,11 @@ static u16 ath9k_hw_def_get_spur_channel
+ return ah->eeprom.def.modalHeader[is2GHz].spurChans[i].spurChan;
+ }
+
++static u8 ath9k_hw_def_get_eepmisc(struct ath_hw *ah)
++{
++ return ah->eeprom.def.baseEepHeader.eepMisc;
++}
++
+ const struct eeprom_ops eep_def_ops = {
+ .check_eeprom = ath9k_hw_def_check_eeprom,
+ .get_eeprom = ath9k_hw_def_get_eeprom,
+@@ -1327,5 +1332,6 @@ const struct eeprom_ops eep_def_ops = {
+ .set_board_values = ath9k_hw_def_set_board_values,
+ .set_addac = ath9k_hw_def_set_addac,
+ .set_txpower = ath9k_hw_def_set_txpower,
+- .get_spur_channel = ath9k_hw_def_get_spur_channel
++ .get_spur_channel = ath9k_hw_def_get_spur_channel,
++ .get_eepmisc = ath9k_hw_def_get_eepmisc
+ };