openwrtv3/target/linux
Martin Blumenstingl afa3709266 lantiq: fix ath9k EEPROM data swapping for some devices
The EEPROM data in the flash of the ARV7518PW, ARV8539PW22,
BTHOMEHUBV2B and BTHOMEHUBV3A is stored byte-swapped (swab16), meaning
that for example the ath9k base_eep_header fields "version" (high and
low byte), "opCapFlags" and "eepMisc" are swapped (the latter ones are
just 1 byte wide, thus their position is swapped).

The old "ath,eep-endian" property enabled the corresponding swapping
logic in the ath9k driver (swab16 in ath9k_hw_nvram_swap_data, which is
based on the magic bytes in the EEPROM data which have nothing to do
with the calibration data - thus this logic should not be used
anymore).
Since we have switched to the upstream ath9k devicetree bindings there
is no binding anymore which enables swab16 in ath9k (as this logic is
not recommended anymore as explained above), leading to ath9k
initialization errors:
ath: phy0: Bad EEPROM VER 0x0001 or REV 0x00e0
(this shows that the version field is swapped, expected values are VER
0x000E and REV 0x0001)

Swapping the ath9k calibration data when extracting it from the flash
fixes the devices listed above (all other devices do not require
additional swapping, since the position of the fields is already as
expected by ath9k). This allows ath9k to read the version correctly
again, as well as the more important "eepmisc" field (which is used for
determining whether the data inside the EEPROM is Big or Little Endian
which is required to parse the EEPROM contents correctly).

Fixes: a20616863d ("lantiq: use ath9k device tree bindings
binding/owl-loader")

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
2016-12-08 19:36:22 +01:00
..
adm5120 kernel: drop usbdev LED trigger 2016-10-19 12:09:45 +02:00
adm8668 build: fix subtarget descriptions 2016-09-04 13:35:11 +02:00
apm821xx kernel: bump to 4.4.35 2016-11-29 21:12:08 +01:00
ar7 kernel: update kernel 3.18 to version 3.18.43 2016-10-24 20:25:14 +03:00
ar71xx ar71xx: fix LEDs and sysupgrade support for TL-WA801ND v3 2016-12-06 19:08:35 +01:00
arc770 tools: remove old mkdosfs symlink from dosfstools 2016-10-12 11:59:09 +02:00
archs38 tools: remove old mkdosfs symlink from dosfstools 2016-10-12 11:59:09 +02:00
arm64 arm64: boot-wrapper: Add mirror 2016-11-16 10:54:33 +01:00
at91 at91: Remove u-boot from platform images folder 2016-10-06 12:15:13 +02:00
ath25 kernel: update kernel 4.4 to version 4.4.20 2016-09-15 08:10:55 +02:00
au1000 kernel: update kernel 3.18 to version 3.18.43 2016-10-24 20:25:14 +03:00
bcm53xx bcm53xx: update patch adding fake USB doorbell 2016-12-07 09:22:39 +01:00
brcm47xx kernel: bump to 4.4.36 2016-12-04 12:31:30 +01:00
brcm63xx brcm63xx: Livebox 1: add userspace board support 2016-11-21 18:40:15 +01:00
brcm2708 brcm2708: update linux 4.4 patches to latest version 2016-12-04 12:32:04 +01:00
cns3xxx cns3xxx: fix UART resource overlap 2016-11-05 10:18:27 +01:00
gemini gemini: rename config-default to config-4.4 2016-08-24 01:44:05 +03:00
generic kernel: backport LED patch which will allow better DT integration 2016-12-06 19:50:20 +01:00
imx6 imx6: Add ds1672 RTC to kernel for working hctosys (Gateworks) 2016-10-27 00:34:01 +02:00
ipq806x ipq806x: add thermal sensor driver 2016-12-01 15:47:43 +01:00
ixp4xx kernel: update kernel 3.18 to version 3.18.43 2016-10-24 20:25:14 +03:00
kirkwood kirkwood: fix pogo_e02 LED name 2016-10-26 12:37:46 +02:00
lantiq lantiq: fix ath9k EEPROM data swapping for some devices 2016-12-08 19:36:22 +01:00
layerscape kernel: bump to 4.4.35 2016-11-29 21:12:08 +01:00
malta malta: enable be64 and le64 subtargets 2016-08-15 15:32:36 +02:00
mcs814x treewide: dts: use C style includes 2016-11-12 21:04:15 +01:00
mediatek kernel: update kernel 4.4 to version 4.4.30 2016-11-02 10:25:44 +01:00
mpc85xx cleanup ucidef_set_interface* usage 2016-09-10 15:32:25 +02:00
mvebu mvebu: fix sysupgrade for Linksys WRT3200ACM 2016-12-04 07:03:17 +01:00
mxs tools: remove old mkdosfs symlink from dosfstools 2016-10-12 11:59:09 +02:00
octeon octeon: fix feature flag for initramfs support 2016-11-16 23:37:27 +01:00
omap build: fix subtarget descriptions 2016-09-04 13:35:11 +02:00
omap24xx kernel: clean up usb gadget support 2016-09-15 13:11:21 +02:00
orion orion: make image size errors non-fatal 2016-12-04 11:41:53 +01:00
oxnas treewide: dts: use keycode defines from input dt-binding 2016-11-13 07:07:58 +01:00
ppc40x build: fix subtarget descriptions 2016-09-04 13:35:11 +02:00
ppc44x build: fix subtarget descriptions 2016-09-04 13:35:11 +02:00
ramips ramips: Fix led init script for Lenovo Y1/Y1s 2016-12-04 15:51:18 +01:00
rb532 kernel: update kernel 4.1 to version 4.1.34 2016-10-24 20:25:14 +03:00
realview build: fix subtarget descriptions 2016-09-04 13:35:11 +02:00
sunxi sunxi: enable CONFIG_VHOST_NET like on x86 2016-11-24 13:25:16 +01:00
uml uml: clean up the kernel config and add squashfs+ext4/f2fs support 2016-11-24 12:53:18 +01:00
x86 x86: fix GRUB_ROOT for Xen subtarget 2016-11-19 11:45:29 +01:00
xburst use immediate set in target Makefiles 2016-09-10 15:30:38 +02:00
zynq zynq: fix maintainer email address 2016-10-05 01:18:24 +02:00
Makefile