diff options
Diffstat (limited to 'package/kernel/mac80211/patches/324-ath9k-add-new-function-ath9k_hw_read_array.patch')
-rw-r--r-- | package/kernel/mac80211/patches/324-ath9k-add-new-function-ath9k_hw_read_array.patch | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/package/kernel/mac80211/patches/324-ath9k-add-new-function-ath9k_hw_read_array.patch b/package/kernel/mac80211/patches/324-ath9k-add-new-function-ath9k_hw_read_array.patch deleted file mode 100644 index 2eda1c9d25..0000000000 --- a/package/kernel/mac80211/patches/324-ath9k-add-new-function-ath9k_hw_read_array.patch +++ /dev/null @@ -1,69 +0,0 @@ -From: Oleksij Rempel <linux@rempel-privat.de> -Date: Sun, 22 Mar 2015 19:29:51 +0100 -Subject: [PATCH] ath9k: add new function ath9k_hw_read_array - -REG_READ generate most overhead on usb bus. It send and read micro packages -and reduce usb bandwidth. To reduce this overhead we should read in batches. - -Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> -Signed-off-by: Kalle Valo <kvalo@codeaurora.org> ---- - ---- a/drivers/net/wireless/ath/ath9k/hw.c -+++ b/drivers/net/wireless/ath/ath9k/hw.c -@@ -121,6 +121,36 @@ void ath9k_hw_write_array(struct ath_hw - REGWRITE_BUFFER_FLUSH(ah); - } - -+void ath9k_hw_read_array(struct ath_hw *ah, u32 array[][2], int size) -+{ -+ u32 *tmp_reg_list, *tmp_data; -+ int i; -+ -+ tmp_reg_list = kmalloc(size * sizeof(u32), GFP_KERNEL); -+ if (!tmp_reg_list) { -+ dev_err(ah->dev, "%s: tmp_reg_list: alloc filed\n", __func__); -+ return; -+ } -+ -+ tmp_data = kmalloc(size * sizeof(u32), GFP_KERNEL); -+ if (!tmp_data) { -+ dev_err(ah->dev, "%s tmp_data: alloc filed\n", __func__); -+ goto error_tmp_data; -+ } -+ -+ for (i = 0; i < size; i++) -+ tmp_reg_list[i] = array[i][0]; -+ -+ REG_READ_MULTI(ah, tmp_reg_list, tmp_data, size); -+ -+ for (i = 0; i < size; i++) -+ array[i][1] = tmp_data[i]; -+ -+ kfree(tmp_data); -+error_tmp_data: -+ kfree(tmp_reg_list); -+} -+ - u32 ath9k_hw_reverse_bits(u32 val, u32 n) - { - u32 retval; ---- a/drivers/net/wireless/ath/ath9k/hw.h -+++ b/drivers/net/wireless/ath/ath9k/hw.h -@@ -138,6 +138,8 @@ - - #define REG_WRITE_ARRAY(iniarray, column, regWr) \ - ath9k_hw_write_array(ah, iniarray, column, &(regWr)) -+#define REG_READ_ARRAY(ah, array, size) \ -+ ath9k_hw_read_array(ah, array, size) - - #define AR_GPIO_OUTPUT_MUX_AS_OUTPUT 0 - #define AR_GPIO_OUTPUT_MUX_AS_PCIE_ATTENTION_LED 1 -@@ -1020,6 +1022,7 @@ void ath9k_hw_synth_delay(struct ath_hw - bool ath9k_hw_wait(struct ath_hw *ah, u32 reg, u32 mask, u32 val, u32 timeout); - void ath9k_hw_write_array(struct ath_hw *ah, const struct ar5416IniArray *array, - int column, unsigned int *writecnt); -+void ath9k_hw_read_array(struct ath_hw *ah, u32 array[][2], int size); - u32 ath9k_hw_reverse_bits(u32 val, u32 n); - u16 ath9k_hw_computetxtime(struct ath_hw *ah, - u8 phy, int kbps, |