summaryrefslogtreecommitdiff
path: root/target/linux/generic/hack-4.9/835-misc-owl_loader.patch
blob: 07cd4e580af04629c14ab726101cc8b704e6ea61 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
From dd36f935973d91644449bd9749f6062a2bed821b Mon Sep 17 00:00:00 2001
From: Christian Lamparter <chunkeey@googlemail.com>
Date: Fri, 7 Jul 2017 17:26:46 +0200
Subject: misc: owl-loader for delayed Atheros ath9k fixup

Some devices (like the Cisco Meraki Z1 Cloud Managed Teleworker Gateway)
need to be able to initialize the PCIe wifi device. Normally, this is done
during the early stages of booting linux, because the necessary init code
is read from the memory mapped SPI and passed to pci_enable_ath9k_fixup.
However,this isn't possible for devices which have the init code for the
Atheros chip stored on NAND in an UBI volume. Hence, this module can be
used to initialze the chip when the user-space is ready to extract the
init code.

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
---
 drivers/misc/Kconfig  | 12 ++++++++++++
 drivers/misc/Makefile |  1 +
 2 files changed, 13 insertions(+)

--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -151,6 +151,18 @@ config SGI_IOC4
 	  If you have an SGI Altix with an IOC4-based card say Y.
 	  Otherwise say N.
 
+config OWL_LOADER
+	tristate "Owl loader for initializing Atheros PCI(e) Wifi chips"
+	depends on PCI
+	---help---
+	This kernel module helps to initialize certain Qualcomm
+	Atheros' PCI(e) Wifi chips, which have the init data
+	(which contains the PCI device ID for example) stored
+	together with the calibration data in the file system.
+
+	This is necessary for devices like the Cisco Meraki Z1, say M.
+	Otherwise say N.
+
 config TIFM_CORE
 	tristate "TI Flash Media interface support"
 	depends on PCI
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_ATMEL_TCLIB)	+= atmel_tclib
 obj-$(CONFIG_DUMMY_IRQ)		+= dummy-irq.o
 obj-$(CONFIG_ICS932S401)	+= ics932s401.o
 obj-$(CONFIG_LKDTM)		+= lkdtm.o
+obj-$(CONFIG_OWL_LOADER)	+= owl-loader.o
 obj-$(CONFIG_TIFM_CORE)       	+= tifm_core.o
 obj-$(CONFIG_TIFM_7XX1)       	+= tifm_7xx1.o
 obj-$(CONFIG_PHANTOM)		+= phantom.o