From c2a32ddd1244a5cb3652a3d674be9fbb8bdc79e2 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Mon, 24 Dec 2018 01:34:10 +0000 Subject: [PATCH] Another fix for issue affecting Raspberry Pi 3-series WiFi (rhbz 1652093) --- ...dle-mmc_of_parse-errors-during-probe.patch | 38 +++++++++++++++++++ kernel.spec | 8 +++- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 bcm2835-mmc-sdhci-iproc-handle-mmc_of_parse-errors-during-probe.patch diff --git a/bcm2835-mmc-sdhci-iproc-handle-mmc_of_parse-errors-during-probe.patch b/bcm2835-mmc-sdhci-iproc-handle-mmc_of_parse-errors-during-probe.patch new file mode 100644 index 000000000..1119f006c --- /dev/null +++ b/bcm2835-mmc-sdhci-iproc-handle-mmc_of_parse-errors-during-probe.patch @@ -0,0 +1,38 @@ +From 2ffa450426683e05ff79aead017862311852818a Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Mon, 24 Dec 2018 01:15:55 +0000 +Subject: [PATCH] mmc: sdhci-iproc: handle mmc_of_parse() errors during probe + +We need to handle mmc_of_parse() errors during probe. + +This finally fixes the wifi regression on Raspberry Pi 3 series. +In error case the wifi chip was permanently in reset because of +the power sequence depending on the deferred probe of the GPIO expander. + +Fixes: b580c52d58d9 ("mmc: sdhci-iproc: add IPROC SDHCI driver") +Cc: stable@vger.kernel.org +Signed-off-by: Stefan Wahren +Signed-off-by: Peter Robinson +--- + drivers/mmc/host/sdhci-iproc.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c +index d0e83db42ae5..94eeed2a1b53 100644 +--- a/drivers/mmc/host/sdhci-iproc.c ++++ b/drivers/mmc/host/sdhci-iproc.c +@@ -279,7 +279,10 @@ static int sdhci_iproc_probe(struct platform_device *pdev) + + iproc_host->data = iproc_data; + +- mmc_of_parse(host->mmc); ++ ret = mmc_of_parse(host->mmc); ++ if (ret) ++ goto err; ++ + sdhci_get_of_property(pdev); + + host->mmc->caps |= iproc_host->data->mmc_caps; +-- +2.20.1 + diff --git a/kernel.spec b/kernel.spec index c10c0396a..0c721ce8d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ Summary: The Linux kernel # For non-released -rc kernels, this will be appended after the rcX and # gitX tags, so a 3 here would become part of release "0.rcX.gitX.3" # -%global baserelease 300 +%global baserelease 301 %global fedora_build %{baserelease} # base_sublevel is the kernel version we're starting with and patching @@ -598,6 +598,9 @@ Patch332: raspberrypi-Fix-firmware-calls-with-large-buffers.patch # From 4.20, fix eth link/act lights on 3B+ Patch334: bcm2837-fix-eth-leds.patch +# https://patchwork.kernel.org/patch/10741809/ +Patch335: bcm2835-mmc-sdhci-iproc-handle-mmc_of_parse-errors-during-probe.patch + # Patches enabling device specific brcm firmware nvram # https://www.spinics.net/lists/linux-wireless/msg178827.html Patch340: brcmfmac-Remove-firmware-loading-code-duplication.patch @@ -1893,6 +1896,9 @@ fi # # %changelog +* Mon Dec 24 2018 Peter Robinson 4.19.12-301 +- Another fix for issue affecting Raspberry Pi 3-series WiFi (rhbz 1652093) + * Sat Dec 22 2018 Peter Robinson 4.19.12-300 - Linux v4.19.12