mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
AR-1 - Adding support category for distributions AR-4 - Remove Allwinner legacy AR-5 - Drop Udoo family and move Udoo board into newly created imx6 family AR-9 - Rename sunxi-next to sunxi-legacy AR-10 - Rename sunxi-dev to sunxi-current AR-11 - Adding Radxa Rockpi S support AR-13 - Rename rockchip64-default to rockchip64-legacy AR-14 - Add rockchip64-current as mainline source AR-15 - Drop Rockchip 4.19.y NEXT, current become 5.3.y AR-16 - Rename RK3399 default to legacy AR-17 - Rename Odroid XU4 next and default to legacy 4.14.y, add DEV 5.4.y AR-18 - Add Odroid N2 current mainline AR-19 - Move Odroid C1 to meson family AR-20 - Rename mvebu64-default to mvebu64-legacy AR-21 - Rename mvebu-default to mvebu-legacy AR-22 - Rename mvebu-next to mvebu-current AR-23 - Drop meson64 default and next, current becomes former DEV 5.3.y AR-24 - Drop cubox family and move Cubox/Hummingboard boards under imx6 AR-26 - Adjust motd AR-27 - Enabling distribution release status AR-28 - Added new GCC compilers AR-29 - Implementing Ubuntu Eoan AR-30 - Add desktop packages per board or family AR-31 - Remove (Ubuntu/Debian) distribution name from image filename AR-32 - Move arch configs from configuration.sh to separate arm64 and armhf config files AR-33 - Revision numbers for beta builds changed to day_in_the_year AR-34 - Patches support linked patches AR-35 - Break meson64 family into gxbb and gxl AR-36 - Add Nanopineo2 Black AR-38 - Upgrade option from old branches to new one via armbian-config AR-41 - Show full timezone info AR-43 - Merge Odroid N2 to meson64 AR-44 - Enable FORCE_BOOTSCRIPT_UPDATE for all builds
91 lines
3.5 KiB
Diff
91 lines
3.5 KiB
Diff
While doing some brcmfmac driver work I needed to test this also on some
|
|
devicetree based boards. So I fired up the good old Cubietruck and when
|
|
that would not work a Banana Pro.
|
|
|
|
With an unmodified 4.17 kernel both boards intermittently would come up
|
|
with non working wifi with the following errors:
|
|
|
|
brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
|
|
brcmfmac: brcmf_bus_started: failed: -110
|
|
brcmfmac: brcmf_attach: dongle is not responding: err=-110
|
|
brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed
|
|
|
|
They would come up this way more often then with actual working wifi,
|
|
once this problem happens it seems to require a power-cycle to fix.
|
|
Once things work one can safely reboot without hitting the issue.
|
|
|
|
I've found that disabling OOB interrupts fixes this. This really is more
|
|
of a workaround then a proper fix, but it makes the wifi reliable again
|
|
and it does not have much of a downside.
|
|
|
|
Using an OOB IRQ instead of the sdio-IRQ mechanism is mostly important to
|
|
allow the MMC controller to go into runtime-suspend which is not really an
|
|
issue on these boards since they are (usually) not battery powered.
|
|
|
|
I've looked at recent brcmfmac and mmc-core changes which may explain this
|
|
and I've not found anything. So the most likely culprit is the A20 external
|
|
interrupt handling e.g. perhaps it is set to edge instead of level? Either
|
|
way I do not have time to further investigate this.
|
|
|
|
BugLink: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908438
|
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
---
|
|
arch/arm/boot/dts/sun7i-a20-bananapro.dts | 16 +++++++++++++---
|
|
arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 16 +++++++++++++---
|
|
2 files changed, 26 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
|
|
index 0898eb6162f5..0e1ddd998b20 100644
|
|
--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts
|
|
+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
|
|
@@ -174,9 +174,19 @@
|
|
brcmf: wifi@1 {
|
|
reg = <1>;
|
|
compatible = "brcm,bcm4329-fmac";
|
|
- interrupt-parent = <&pio>;
|
|
- interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>;
|
|
- interrupt-names = "host-wake";
|
|
+ /*
|
|
+ * OOB interrupt support is broken ATM, often the first irq
|
|
+ * does not get seen resulting in the drv probe failing with:
|
|
+ *
|
|
+ * brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
|
|
+ * brcmfmac: brcmf_bus_started: failed: -110
|
|
+ * brcmfmac: brcmf_attach: dongle is not responding: err=-110
|
|
+ * brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed
|
|
+ *
|
|
+ * interrupt-parent = <&pio>;
|
|
+ * interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>;
|
|
+ * interrupt-names = "host-wake";
|
|
+ */
|
|
};
|
|
};
|
|
|
|
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
|
index 5649161de1d7..a837516db6f9 100644
|
|
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
|
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
|
@@ -222,9 +222,19 @@
|
|
brcmf: wifi@1 {
|
|
reg = <1>;
|
|
compatible = "brcm,bcm4329-fmac";
|
|
- interrupt-parent = <&pio>;
|
|
- interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
|
|
- interrupt-names = "host-wake";
|
|
+ /*
|
|
+ * OOB interrupt support is broken ATM, often the first irq
|
|
+ * does not get seen resulting in the drv probe failing with:
|
|
+ *
|
|
+ * brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
|
|
+ * brcmfmac: brcmf_bus_started: failed: -110
|
|
+ * brcmfmac: brcmf_attach: dongle is not responding: err=-110
|
|
+ * brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed
|
|
+ *
|
|
+ * interrupt-parent = <&pio>;
|
|
+ * interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>;
|
|
+ * interrupt-names = "host-wake";
|
|
+ */
|
|
};
|
|
};
|
|
|