summaryrefslogtreecommitdiff
path: root/package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch
Commit message (Collapse)AuthorAgeFilesLines
* Add back the commit "ath9k: Add airtime fairness scheduler"Felix Fietkau2017-01-251-1/+1
| | | | | | | | | This reverts commit c296ba834db4ce8c71e0ad7030aab188fe60b27b. According to several reports, the issues with the airtime fairness changes are gone in current versions. It's time to re-apply the patch now. Signed-off-by: Felix Fietkau <nbd@nbd.name>
* Revert "ath9k: Add airtime fairness scheduler"Felix Fietkau2017-01-041-1/+1
| | | | | | | | This reverts commit 528f46d0826afa01877ccc7670f2120a7a3b3ea8. After this commit, several users reported stability issues. Revert it now so it doesn't cause issues for the upcoming release Signed-off-by: Felix Fietkau <nbd@nbd.name>
* ath9k: Add airtime fairness schedulerToke Høiland-Jørgensen2016-12-221-1/+1
| | | | | | | | | This adds a patch that introduces airtime fairness scheduling to ath9k, which can significantly improve network efficiency in mixed-rate environments. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> Signed-off-by: Felix Fietkau <nbd@nbd.name>
* Revert "ath9k: Add airtime fairness scheduler"Felix Fietkau2016-12-191-1/+1
| | | | | | Accidentally pushed to the wrong branch This reverts commit 47bc081e76f6b04c0e9db687c8abb78eb437021f.
* ath9k: Add airtime fairness schedulerToke Høiland-Jørgensen2016-12-191-1/+1
| | | | | | | | | This adds a patch that introduces airtime fairness scheduling to ath9k, which can significantly improve network efficiency in mixed-rate environments. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> Signed-off-by: Felix Fietkau <nbd@nbd.name>
* kernel: mac80211: add pending ath9k EEPROM swapping patchesMartin Blumenstingl2016-11-291-0/+342
There are two types of swapping the EEPROM data in the ath9k driver. Before this series one type of swapping could not be used without the other. The first type of swapping looks at the "magic bytes" at the start of the EEPROM data and performs swab16 on the EEPROM contents if needed. The second type of swapping is EEPROM format specific and swaps specific fields within the EEPROM itself (swab16, swab32 - depends on the EEPROM format). With this series the second part now looks at the EEPMISC register inside the EEPROM, which uses a bit to indicate if the EEPROM data is Big Endian (this is also done by the FreeBSD kernel). This has a nice advantage: currently there are some out-of-tree hacks (in OpenWrt and LEDE) where the EEPROM has a Big Endian header on a Big Endian system (= no swab16 is performed) but the EEPROM itself indicates that it's data is Little Endian. Until now the out-of-tree code simply did a swab16 before passing the data to ath9k, so ath9k first did the swab16 - this also enabled the format specific swapping. These out-of-tree hacks are still working with the new logic, but it is recommended to remove them. This implementation is based on a discussion with Arnd Bergmann who raised concerns about the robustness and portability of the swapping logic in the original OF support patch review, see [0]. After a second round of patches (= v1 of this series) neither Arnd Bergmann nor I were really happy with the complexity of the EEPROM swapping logic. Based on a discussion (see [1] and [2]) we decided that ath9k should use a defined format (specifying the endianness of the data - I went with __le16 and __le32) when accessing the EEPROM fields. A benefit of this is that we enable the EEPMISC based swapping logic by default, just like the FreeBSD driver, see [3]. On the devices which I have tested (see below) ath9k now works without having to specify the "endian_check" field in ath9k_platform_data (or a similar logic which could provide this via devicetree) as ath9k now detects the endianness automatically. Only EEPROMs which are mangled by some out-of-tree code still need the endian_check flag (or one can simply remove that mangling from the out-of-tree code). [0] http://www.spinics.net/lists/linux-wireless/msg152634.html [1] https://marc.info/?l=linux-wireless&m=147250597503174&w=2 [2] https://marc.info/?l=linux-wireless&m=147254388611344&w=2 [3] https://github.com/freebsd/freebsd/blob/50719b56d9ce8d7d4beb53b16e9edb2e9a4a7a18/sys/dev/ath/ath_hal/ah_eeprom_9287.c#L351 Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>