Re: [linux-sunxi] [PATCH 6/7] ARM: dts: sun7i: Add OOB irq support to boards with broadcom sdio wifi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hi,

On 08-03-15 04:12, Chen-Yu Tsai wrote:
On Sun, Mar 8, 2015 at 3:01 AM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
  arch/arm/boot/dts/sun7i-a20-cubietruck.dts | 11 +++++++++++
  arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts  | 11 +++++++++++
  2 files changed, 22 insertions(+)

diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index 0c219a4..8111b0c 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -167,12 +167,23 @@
  };

  &mmc3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
         pinctrl-names = "default";
         pinctrl-0 = <&mmc3_pins_a>;
         vmmc-supply = <&reg_vmmc3>;
         bus-width = <4>;
         non-removable;
         status = "okay";
+
+       brcmf: bcrmf@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+               interrupt-parent = <&pio>;
+               interrupts = <10 8>; /* PH10 / EINT10 */
+               interrupt-names = "host-wake";
+       };

I gave this a spin on my Cubietruck. (I was running cap-sdio-irq before.)

Ran a few ping tests with a simple
"sudo ping -i 0.1 -I wlan0 -s 65500 192.168.1.1"
After a few runs I got

sunxi-mmc 1c12000.mmc: smc 1 err, cmd 53, RD SBE !!
sunxi-mmc 1c12000.mmc: data error, sending stop command
brcmfmac: brcmf_sdio_readframes: RXHEADER FAILED: -110
brcmfmac: brcmf_sdio_rxfail: abort command, terminate frame, send NAK
brcmfmac: brcmf_sdiod_regrw_helper: failed to write data F1@0x0a040, err: -5
brcmfmac: brcmf_sdio_hdparse: seq 226: sequence number error, expect 227
sunxi-mmc 1c12000.mmc: smc 1 err, cmd 53, RD DTO !!
sunxi-mmc 1c12000.mmc: data error, sending stop command
sunxi-mmc 1c12000.mmc: smc 1 err, cmd 53, RD DTO !!
sunxi-mmc 1c12000.mmc: data error, sending stop command
sunxi-mmc 1c12000.mmc: smc 1 err, cmd 53, RD DTO !!
sunxi-mmc 1c12000.mmc: data error, sending stop command
brcmfmac: brcmf_sdiod_regrw_helper: failed to read data F1@0x0a020, err: -110
brcmfmac: brcmf_sdio_dpc: failed backplane access over SDIO, halting operation
sunxi-mmc 1c12000.mmc: smc 1 err, cmd 53, RD DTO !!
sunxi-mmc 1c12000.mmc: data error, sending stop command
sunxi-mmc 1c12000.mmc: smc 1 err, cmd 53, RD DTO !!
sunxi-mmc 1c12000.mmc: data error, sending stop command
sunxi-mmc 1c12000.mmc: smc 1 err, cmd 53, RD DTO !!
sunxi-mmc 1c12000.mmc: data error, sending stop command

The chip is pretty much dead afterwards.

With cap-sdio-irq it doesn't happen so soon, but it does.
Without either, the response time is bad with packet losses,
but at least it doesn't die.

That is not true, without either cap-sdio-irq or oob irq it
still dies, try doing a scp of a large file, that is a more
reliable way to trigger it.

I've been down this road (blaming the irq) mechanism myself,
but it is a dead end, the problem you're describing, the CMD 53
SBE error happens with all 3 irq mechanisms.

Is this the problem Arend (CC-ed) was looking into?

Is looking into, yes. He has a Cubietruck now, and he can reproduce
it, so hopefully we will see some progress on this soon.

Note that as a workaround (for me at least) you can boot into
the linux on the cubietruck nand, then insert an sdcard with
upstream kernel, then reboot so that it boots from the sdcard
without loosing power, and then the problem seems to be gone.

Regards,

Hans
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux