From: Jan Kiszka <[email protected]>

The Ultra96 patch is going upstream, the Hikey change is a just a local
workaround until a newer firmware is available.

Signed-off-by: Jan Kiszka <[email protected]>
---
 ...cu100-revC-Give-wifi-some-time-after-powe.patch | 38 ++++++++++++++++++++++
 ...le-Workaround-for-missing-device-tree-ent.patch | 34 +++++++++++++++++++
 recipes-kernel/linux/linux-jailhouse_4.19.inc      |  2 ++
 3 files changed, 74 insertions(+)
 create mode 100644 
recipes-kernel/linux/files/0001-arm64-dts-zcu100-revC-Give-wifi-some-time-after-powe.patch
 create mode 100644 
recipes-kernel/linux/files/0001-pwrseq_simple-Workaround-for-missing-device-tree-ent.patch

diff --git 
a/recipes-kernel/linux/files/0001-arm64-dts-zcu100-revC-Give-wifi-some-time-after-powe.patch
 
b/recipes-kernel/linux/files/0001-arm64-dts-zcu100-revC-Give-wifi-some-time-after-powe.patch
new file mode 100644
index 0000000..429c7e5
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0001-arm64-dts-zcu100-revC-Give-wifi-some-time-after-powe.patch
@@ -0,0 +1,38 @@
+From 071a0609be14752b2fbe9cab40f2e8e42995ed96 Mon Sep 17 00:00:00 2001
+From: Jan Kiszka <[email protected]>
+Date: Thu, 24 Jan 2019 05:54:41 +0100
+Subject: [PATCH] arm64: dts: zcu100-revC: Give wifi some time after power-on
+
+Somewhere along recent changes to power control of the wl1831, power-on
+became very unreliable on the Ultra96, failing like this:
+
+wl1271_sdio: probe of mmc2:0001:1 failed with error -16
+wl1271_sdio: probe of mmc2:0001:2 failed with error -16
+
+After playing with some dt parameters and comparing to other users of
+this chip, it turned out we need some power-on delay to make things
+stable again. In contrast to those other users which define 200 ms,
+Ultra96 is already happy with 10 ms.
+
+Fixes: 5869ba0653b9 ("arm64: zynqmp: Add support for Xilinx zcu100-revC")
+Signed-off-by: Jan Kiszka <[email protected]>
+Acked-by: Ulf Hansson <[email protected]>
+---
+ arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts 
b/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
+index 13a0a028df98..e5699d0d91e4 100644
+--- a/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
++++ b/arch/arm64/boot/dts/xilinx/zynqmp-zcu100-revC.dts
+@@ -101,6 +101,7 @@
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio 7 GPIO_ACTIVE_LOW>; /* WIFI_EN */
++              post-power-on-delay-ms = <10>;
+       };
+ };
+ 
+-- 
+2.16.4
+
diff --git 
a/recipes-kernel/linux/files/0001-pwrseq_simple-Workaround-for-missing-device-tree-ent.patch
 
b/recipes-kernel/linux/files/0001-pwrseq_simple-Workaround-for-missing-device-tree-ent.patch
new file mode 100644
index 0000000..4f8d483
--- /dev/null
+++ 
b/recipes-kernel/linux/files/0001-pwrseq_simple-Workaround-for-missing-device-tree-ent.patch
@@ -0,0 +1,34 @@
+From aec2f3a2b7fe3bbcd48811c805d567884f319018 Mon Sep 17 00:00:00 2001
+From: Jan Kiszka <[email protected]>
+Date: Sun, 30 Dec 2018 12:59:35 +0100
+Subject: [PATCH] pwrseq_simple: Workaround for missing device tree entry on
+ hikey
+
+We need a small power-on delay, but we use the firmware device tree with
+Isar/jailhouse-images. Inject the delta via the driver until a new
+firmware with the appropriate device tree change is available.
+
+Not for upstream.
+
+Signed-off-by: Jan Kiszka <[email protected]>
+---
+ drivers/mmc/core/pwrseq_simple.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/mmc/core/pwrseq_simple.c 
b/drivers/mmc/core/pwrseq_simple.c
+index a8b9fee4d62a..f0ed2e92ffa6 100644
+--- a/drivers/mmc/core/pwrseq_simple.c
++++ b/drivers/mmc/core/pwrseq_simple.c
+@@ -126,6 +126,9 @@ static int mmc_pwrseq_simple_probe(struct platform_device 
*pdev)
+               return PTR_ERR(pwrseq->reset_gpios);
+       }
+ 
++      if (strcmp(pdev->name, "wl1835-pwrseq") == 0)
++              pwrseq->post_power_on_delay_ms = 1;
++
+       device_property_read_u32(dev, "post-power-on-delay-ms",
+                                &pwrseq->post_power_on_delay_ms);
+       device_property_read_u32(dev, "power-off-delay-us",
+-- 
+2.16.4
+
diff --git a/recipes-kernel/linux/linux-jailhouse_4.19.inc 
b/recipes-kernel/linux/linux-jailhouse_4.19.inc
index 6a29295..be8540c 100644
--- a/recipes-kernel/linux/linux-jailhouse_4.19.inc
+++ b/recipes-kernel/linux/linux-jailhouse_4.19.inc
@@ -23,6 +23,8 @@ python() {
 SRC_URI += " \
     https://github.com/siemens/linux/archive/${SRCREV}.tar.gz \
     file://0001-ARM-dts-orange-pi-zero-Adjust-wifi-settings.patch \
+    file://0001-pwrseq_simple-Workaround-for-missing-device-tree-ent.patch \
+    file://0001-arm64-dts-zcu100-revC-Give-wifi-some-time-after-powe.patch \
     file://${KERNEL_DEFCONFIG}"
 
 S = "${WORKDIR}/linux-${SRCREV}"
-- 
2.16.4

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to