Bug 106541

Summary: MMC_TIMING_UHS_DDR50 cause mmc1 init fail on ASUS X205TA
Product: Drivers Reporter: Victor Tseng (palatis)
Component: MMC/SDAssignee: drivers_mmc-sd
Status: RESOLVED CODE_FIX    
Severity: normal CC: bloften80, hugues.clouatre, jbMacBrodie, kuci24, marci_r, palatis, rhuehn
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.3.0-rc6-next-20151022 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg for bugged kernel

Description Victor Tseng 2015-10-24 11:28:30 UTC
Created attachment 191011 [details]
dmesg for bugged kernel

commit 56f143bcfe7d7b1531f59adf2f541cb2cbc792ad enables tuning for DDR50, but it's not properly initialized on ASUS X205TA.

mmc1 is connected to the broadcom bt/wifi chip Broadcom 43340's wifi part.

reverting the commit made wifi working again.

[    3.864194] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA
[    4.351536] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    4.353102] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.354638] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.357369] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    4.465372] mmc1: tuning execution failed
[    4.465478] mmc1: error -5 whilst initialising SDIO card
[    4.475519] mmc1: Controller never released inhibit bit(s).
[    4.477739] mmc1: Unexpected interrupt 0x04000000.
[    4.641862] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    4.650309] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.658612] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.671173] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)
[    4.998521] mmc1: tuning execution failed
[    4.998604] mmc1: error -5 whilst initialising SDIO card
[    5.008622] mmc1: Controller never released inhibit bit(s).
[    5.010796] mmc1: Unexpected interrupt 0x04000000.
[    5.116731] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)
[    5.119634] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)
[    5.288896] mmc1: tuning execution failed
[    5.288967] mmc1: error -5 whilst initialising SDIO card
[    5.298975] mmc1: Controller never released inhibit bit(s).
[    5.301080] mmc1: Unexpected interrupt 0x04000000.
[    5.756706] mmc1: tuning execution failed
[    5.756769] mmc1: error -5 whilst initialising SDIO card
[    5.766773] mmc1: Controller never released inhibit bit(s).
[    5.768890] mmc1: Unexpected interrupt 0x04000000.
Comment 1 Alexey 2015-11-15 01:17:00 UTC
also affects me with asus m80ta intel bay trail tablet.
Comment 2 Rob Huehn 2015-11-30 03:02:21 UTC
The same commit also breaks BCM43241 init on a Asus T100 Chi. Reverting locally for now; this is a regression IMO.
Comment 3 Brian Loften 2015-12-16 05:13:00 UTC
also breaks wifi on ASUS t100TA models
Comment 4 Lubomir Kucera 2016-01-19 11:11:34 UTC
It's 9faac7b95ea4f9e83b7a914084cc81ef1632fd91 in upstream and it affects linux 4.4 and newer.
Comment 5 Hugues 2016-02-23 14:58:08 UTC
I can confirm that simply reverting commit 9faac7b95ea4f9e83b7a914084cc81ef1632fd91 (cf. http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/diff/drivers/mmc/host/sdhci.c?id=9faac7b95ea4f9e83b7a914084cc81ef1632fd91) makes wifi work again in Linux Kernel 4.4.2.

Reverting this small commit in the 4.4.2 source makes a working kernel with wifi for the Asus X205TA :

   wget -q http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/rawdiff/drivers/mmc/host/sdhci.c?id=9faac7b95ea4f9e83b7a914084cc81ef1632fd91 -O /tmp/sdhci_commit_9faac7b95ea4f9e83b7a914084cc81ef1632fd91.diff

   cd /usr/local/src/linux-4.4.2/
   patch -p1 -R < /tmp/sdhci_commit_9faac7b95ea4f9e83b7a914084cc81ef1632fd91.diff

With a vanilla 4.4.2 kernel wifi doesn't work however.
Comment 6 jbMacAZ 2016-02-29 02:01:47 UTC
Also affecting another Asus T100-chi whether custom Ubuntu (i386) or Manjaro(x86_64) kernels.  Without reverting commit 9faac7b95ea4f9e83b7a914084cc81ef1632fd91 wifi fails both internal and external USB wifi dongle.  Affects every kernel release since 4.4-rc1 through 4.5-rc6.
Comment 7 Hugues 2016-03-06 13:30:48 UTC
This is fixed in Linux Kernel 4.4.4. Wifi works on the Asus X205TA without reverting commit 9faac7b95ea4f9e83b7a914084cc81ef1632fd91. Thanks!
Comment 8 jbMacAZ 2016-03-06 20:45:03 UTC
Seems to be fixed for T100-CHI also (4.4.4)
Comment 9 Victor Tseng 2016-03-06 23:47:02 UTC
does anyone know which commit fixes this?

if I know the specific commit then I just close this issue.
Comment 11 jbMacAZ 2016-03-07 23:06:56 UTC
Wifi works without reverting 9faac7b95ea4f9e83b7a914084cc81ef1632fd91 for 4.4.4 and 4.5-rc7 ubuntu15.10-i386 and Manjaro15.12-x86_64.  But the mmc1 "unknown CIS tuple" messages are still appearing in dmesg.  However, I am not seeing any mmc1 "errors".

(In reply to Hugues from comment #10)
Pretty reasonable guess, but wifi still worked when I reverted all 4 sdhci commits.

But that experiment got me to the neighborhood of sdio.c which led to commits 	8ae7192d91c8ca19fd0b919b594bc317d33fbede and 	3cafb70cabf27616ac3da795a92a9b651fb28733.

The problem seems to be well described in the second commit.  And wifi fails if I revert 3cafb70cabf27616ac3da795a92a9b651fb28733.  Wifi is then restored if I further revert 9faac7b95ea4f9e83b7a914084cc81ef1632fd91.
Comment 12 Victor Tseng 2016-03-07 23:39:58 UTC
thx for everyone's help.