Re: SDIO wifi card is not detected with 4.5-rc kernels

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

 



Hi Russell, all,

On Wed, Feb 17, 2016 at 1:18 PM, Russell King - ARM Linux
<linux@xxxxxxxxxxxxxxxx> wrote:
> On Wed, Feb 17, 2016 at 04:41:04PM -0200, Fabio Estevam wrote:
>> On Wed, Feb 17, 2016 at 4:06 PM, Laszlo Fiat <laszlo.fiat@xxxxxxxxx> wrote:
>> > Hello,
>> >
>> > The SDIO wifi card is not detected in my Baytrail tablet with 4.5-RC kernels,
>> > which worked fine with pre-4.5 kernels.
>> >
>> > Kernel v4.0-4.4 versions worked nicely:
>> >
>> > $ grep mmc dmesg-4.4.0-rc2-next-20151127.txt
>> > [    2.421329] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA
>> > [    2.425847] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA
>> > [    2.431164] mmc2: SDHCI controller on ACPI [80860F14:02] using ADMA
>> > [    2.561342] mmc0: MAN_BKOPS_EN bit is not set
>> > [    2.569496] mmc0: new HS200 MMC card at address 0001
>> > [    2.571164] mmcblk0: mmc0:0001 032GE4 29.1 GiB
>> > [    2.571453] mmcblk0boot0: mmc0:0001 032GE4 partition 1 4.00 MiB
>> > [    2.571655] mmcblk0boot1: mmc0:0001 032GE4 partition 2 4.00 MiB
>> > [    2.571863] mmcblk0rpmb: mmc0:0001 032GE4 partition 3 4.00 MiB
>> > [    2.573835]  mmcblk0: p1 p2 p3 p4 p5 p6
>> > [    2.647372] mmc1: new high speed SDIO card at address 0001
>> > [    2.812340] mmc2: new high speed SDXC card at address 0001
>> > [    2.812719] mmcblk1: mmc2:0001 00000 59.6 GiB
>> >
>> > With v4.5:
>> >
>> > $ grep mmc dmesg-4.5.0-rc4.txt
>> > [    2.678828] mmc0: SDHCI controller on ACPI [80860F14:00] using ADMA
>> > [    2.683332] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA
>> > [    2.705315] mmc2: SDHCI controller on ACPI [80860F14:02] using ADMA
>> > [    2.850013] mmc2: new high speed SDXC card at address 0001
>> > [    2.858675] mmcblk0: mmc2:0001 00000 59.6 GiB
>> > [    2.871384] mmc0: MAN_BKOPS_EN bit is not set
>> > [    2.883166] mmc0: new HS200 MMC card at address 0001
>> > [    2.883725] mmcblk1: mmc0:0001 032GE4 29.1 GiB
>> > [    2.884029] mmcblk1boot0: mmc0:0001 032GE4 partition 1 4.00 MiB
>> > [    2.884322] mmcblk1boot1: mmc0:0001 032GE4 partition 2 4.00 MiB
>> > [    2.884518] mmcblk1rpmb: mmc0:0001 032GE4 partition 3 4.00 MiB
>> > [    2.886442]  mmcblk1: p1 p2 p3 p4 p5 p6
>> >
>> > Notice that the following line is missing with v4.5:
>> >
>> > mmc1: new high speed SDIO card at address 0001
>> >
>> > And of course the out-of-tree wifi driver (rtl8723bs) cannot find the
>> > hardware with kernel v4.5.
>> >
>> > The hardware is a Teclast X80h Baytrail tablet.
>> > Cpu:  Intel(R) Atom(TM) CPU  Z3735F
>> >
>> > I've opened a bug report for it:
>> > https://bugzilla.kernel.org/show_bug.cgi?id=112571
>> >
>> > The full dmesg of 4.5-rc4 is available in the bug report.
>>
>> I noticed the same on a imx6q-cubox-i board: the Broadcom Wifi chip
>> could not be detected with 4.5-rc.
>>
>> Haven't had a chance to debug this yet.
>
> Looks strange - my patch series was tested on Hummingboards and
> Armada38x, though that was before 4.4.  The Hummingboards have
> the same Broadcom wifi chip(s) as the Cubox-i, and they worked
> fine with my original set patches - here's 4.4-rc6 on a
> Hummingboard:
>
> [    0.000000] Linux version 4.4.0-rc6+ (rmk@xxxxxxxxxxxxxxxxxxxxxxx) (gcc version 4.7.4 (GCC) ) #1972 SMP Sat Jan 2 18:55:35 GMT 2016
> [    5.158107] brcmfmac: F1 signature read @0x18000000=0x16044330
> [    5.528484] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Jan 23 2013 17:47:32 version 5.90.195.114 FWID 01-f9e7e464
> [    5.567722] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code
> [    5.629961] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code
>
> Since then, I rebased my patch series on 4.5-rc1 before re-posting
> it - though I didn't test it on the Wifi capable HBs, but now that I
> try, I find that there's more serious issues here: the SDHCI driver
> doesn't even probe the device, returning -ENODEV.  So, something _else_
> has broken in SDHCI/MMC for the Broadcom WIFI here - tracing through
> the code seems to point at the pwrseq stuff being the culpret:
>
> [   52.175162] match->alloc failed: -517
> [   52.178874] sdhci-esdhc-imx 2190000.usdhc: mmc_of_parse failed: -517
> [   52.185271] sdhci-esdhc-imx 2190000.usdhc: imx probe failed
>
> -517 is -EPROBE_DEFER, and looking at what's in the clk_summary
> debugfs file, my guess is that the clk_sdio gpio-gate-clock is not
> being registered for some unknown reason.  Adding Michael - any
> ideas why gpio-gate-clock has stopped working between 4.4 and
> present?

So you are missing a gpio-gate clk in v4.5-rc1 that is present in v4.4?

There isn't much to go on here, but mmc_of_parse can fail with
mmc_gpiod_request_cd and mmc_gpiod_request_ro, in addition to
mmc_pwrseq_alloc. I didn't follow the call chain to see if either of
those are capable of spitting out -EPROBE_DEFER.

clk patches affecting the gpio-gate from 4.4 to 4.5-rc1 are:

7ed88aa clk: fix clk-gpio.c with optional clock= DT property
0b2e788 clk: gpio: handle error codes for of_clk_get_parent_count()
c76eb11 clk: gpio: fix memory leak
f66541b clk: gpio: Get parent clk names in of_gpio_clk_setup()

Anyone that can reproduce, care to bisect?

For the interested, Stephen recently rewrote that driver to be a
platform_driver without relying on CLK_OF_DECLARE. Patch is here:
http://lkml.kernel.org/r/<1454533849-22206-1-git-send-email-sboyd@xxxxxxxxxxxxxx>

Regards,
Mike

>
> --
> RMK's Patch system: http://www.arm.linux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
> according to speedtest.net.



-- 
Michael Turquette
CEO
BayLibre - At the Heart of Embedded Linux
http://baylibre.com/
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux