diff options
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-.patch | 117 |
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 0000000..1b4dd3d --- /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 + }; |