[LEDE-DEV] [PATCH v2 0/6] lantiq: use devicetree to configure ath9k

Martin Blumenstingl martin.blumenstingl at googlemail.com
Fri Nov 25 16:01:09 PST 2016


This series uses devicetree to configure the devices with ath9k wifi
chips.
The first two patches are preparing PCIe for OF support (PCI devices
are already configured via devicetree properly, so we don't have to
do anything here).

The third patch backports the ath9k devicetree bindings to our
mac80211 version. More information can be found in the upstream patch
series: [0]

The fourth patch makes all of our ath9k EEPROM endianness swapping
configuration obsolete by reading the Big/Little Endianness bit in
the EEPROM. This has worked fine on all devices we have tested so far
(see below for a list), regardless whether they are using a Big or
Little Endian EEPROM (and regardless of the two magic bytes at the
beginning).
The upstream series is waiting for inclusion after some more testing,
see [1]. Quote from Kalle Valo (upstream maintainer): "I think this
looks pretty good. ... it would be great if LEDE folks could take a
look at these and comment (or test)".

The fifth patch replaces the old "ath,disable-5ghz" property. The
whole series is still work-in-progress upstream (as it was decided
to introduce a generic binding, to be able to re-use it across
multiple drivers from multiple vendors): [2]
I will keep on working with upstream to get a proper solution for
this (but I think we can go with this version for now since we were
using custom code before anyways and the new patch is small).

The last patch in this series changes all .dts files to use the new
ath9k devicetree bindings. However, for most chipsets this is not
enough as we still have to execute the PCI fixups. This is done by
enabling kmod-owl-loader for the corresponding devices.
The ath9k EEPROM data is now read via a hotplug-script (similar to
how it's done for ath10k or the rt2x00 EEPROM).
As a positive side-effect we now support EEPROM data in exotic
locations (such as unaligned NOR addresses, UBI volumes, etc.).

Tested devices (from the top of my head, there may actually be more):
- TD-W8970 (PCIe AR9381)
- TD-W8980 (PCIe AR9287)
- BT HomeHub 5A (PCI AR9227 with BE EEPROM)
- FRITZ7320 (PCI AR9227 with LE EEPROM)
- DGN3500 (PCI AR9223 with LE EEPROM)

PS: Special thanks to Mathias Kresin for supporting me with all these
series', as well as Christian Lamparter for the owl-loader.

Special thanks to Mathias Kresin again for providing fixes (based on
the code-reviews) for 12-ath9k-eeprom hotplug script.


changes since v1:
- removed bashisms in 12-ath9k-eeprom hotplug script
- combined multiple parameters to echo into one string in
  12-ath9k-eeprom hotplug script
- move cases for switch-statement into one case per line in
  12-ath9k-eeprom hotplug script
- consistently use quoting around parameter of case statement in
  12-ath9k-eeprom hotplug script ("$FIRMWARE" already used it, let's do
  the same with $board)


[0] https://www.spinics.net/lists/linux-wireless/msg155474.html
[1] https://www.spinics.net/lists/linux-wireless/msg155011.html
[2] http://www.spinics.net/lists/linux-wireless/msg155019.html


Martin Blumenstingl (6):
  lantiq: Register the device tree node with the PCIe controller
  lantiq: specify the PCIe controller's interrupt, size and address
    cells
  kernel: mac80211: backport ath9k device tree support patches
  kernel: mac80211: add pending ath9k EEPROM swapping patches
  kernel: mac80211: disable ath9k bands via device tree
  lantiq: use ath9k device tree bindings binding/owl-loader

 ...on-dt-net-add-ath9k-wireless-device-bindi.patch |  67 ++
 ...-helper-to-get-the-string-representation-.patch |  42 +
 ...-the-device-configuration-from-an-OF-node.patch |  85 ++
 ...-define-for-the-EEPROM-eepmisc-endianness.patch |  95 +++
 ...ate-that-the-AR9003-EEPROM-template-value.patch |  78 ++
 ...n-eeprom_ops-callback-for-retrieving-the-.patch | 117 +++
 ...ce-eeprom_param-EEP_MINOR_REV-with-get_ee.patch | 117 +++
 ...-ath9k-consistently-use-get_eeprom_rev-ah.patch | 342 +++++++++
 ...the-EEPROM-swapping-check-use-the-eepmisc.patch | 128 ++++
 ...e-all-EEPROM-fields-in-Little-Endian-form.patch | 853 +++++++++++++++++++++
 .../patches/557-ath9k-disable-bands-via-dt.patch   |  32 +
 .../etc/hotplug.d/firmware/12-ath9k-eeprom         | 140 ++++
 target/linux/lantiq/dts/ARV7518PW.dts              |  31 +-
 target/linux/lantiq/dts/ARV8539PW22.dts            |  26 +-
 target/linux/lantiq/dts/BTHOMEHUBV2B.dts           |  23 +-
 target/linux/lantiq/dts/BTHOMEHUBV3A.dts           |  22 +-
 target/linux/lantiq/dts/BTHOMEHUBV5A.dts           |  27 +-
 target/linux/lantiq/dts/DGN3500.dtsi               |  24 +-
 target/linux/lantiq/dts/FRITZ3370.dts              |  25 +-
 target/linux/lantiq/dts/FRITZ7320.dts              |  26 +-
 target/linux/lantiq/dts/FRITZ7360SL.dts            |  24 +-
 target/linux/lantiq/dts/TDW8980.dts                |   4 -
 target/linux/lantiq/dts/TDW89X0.dtsi               |  41 +-
 target/linux/lantiq/dts/vr9.dtsi                   |  12 +-
 target/linux/lantiq/image/Makefile                 |  30 +-
 target/linux/lantiq/image/tp-link.mk               |   2 +-
 .../0151-lantiq-ifxmips_pcie-use-of.patch          |  10 +-
 27 files changed, 2279 insertions(+), 144 deletions(-)
 create mode 100644 package/kernel/mac80211/patches/326-Documentation-dt-net-add-ath9k-wireless-device-bindi.patch
 create mode 100644 package/kernel/mac80211/patches/327-ath9k-add-a-helper-to-get-the-string-representation-.patch
 create mode 100644 package/kernel/mac80211/patches/328-ath9k-parse-the-device-configuration-from-an-OF-node.patch
 create mode 100644 package/kernel/mac80211/patches/550-ath9k-Add-a-define-for-the-EEPROM-eepmisc-endianness.patch
 create mode 100644 package/kernel/mac80211/patches/551-ath9k-indicate-that-the-AR9003-EEPROM-template-value.patch
 create mode 100644 package/kernel/mac80211/patches/552-ath9k-Add-an-eeprom_ops-callback-for-retrieving-the-.patch
 create mode 100644 package/kernel/mac80211/patches/553-ath9k-replace-eeprom_param-EEP_MINOR_REV-with-get_ee.patch
 create mode 100644 package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch
 create mode 100644 package/kernel/mac80211/patches/555-ath9k-Make-the-EEPROM-swapping-check-use-the-eepmisc.patch
 create mode 100644 package/kernel/mac80211/patches/556-ath9k-define-all-EEPROM-fields-in-Little-Endian-form.patch
 create mode 100644 package/kernel/mac80211/patches/557-ath9k-disable-bands-via-dt.patch
 create mode 100644 target/linux/lantiq/base-files/etc/hotplug.d/firmware/12-ath9k-eeprom

-- 
2.10.2




More information about the Lede-dev mailing list