Bug 110411 - Dell Precision M4800 + O2 Micro SDHCI (1217:8520): sdhci-pci: probe of 0000:11:00.0 failed with error -22
Summary: Dell Precision M4800 + O2 Micro SDHCI (1217:8520): sdhci-pci: probe of 0000:1...
Status: RESOLVED OBSOLETE
Alias: None
Product: Drivers
Classification: Unclassified
Component: MMC/SD (show other bugs)
Hardware: x86-64 Linux
: P1 normal
Assignee: drivers_mmc-sd
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-01-06 12:35 UTC by Wolfram Schlich
Modified: 2016-06-27 08:00 UTC (History)
2 users (show)

See Also:
Kernel Version: 4.3.5-gentoo
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Wolfram Schlich 2016-01-06 12:35:38 UTC
Hi!

I am working on a Dell Precision M4800 laptop with Gentoo Linux and Kernel 4.3.3:

--8<--
Linux zephyr 4.3.3-gentoo #2 SMP Wed Jan 6 00:33:28 CET 2016 x86_64 Intel(R) Core(TM) i7-4910MQ CPU @ 2.90GHz GenuineIntel GNU/Linux
--8<--

It has an O2 Micro SD/MMC card reader (1217:8520) which is supposed to be supported by sdhci-pci-o2micro:

--8<--
11:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)
11:00.0 0805: 1217:8520 (rev 01)
--8<--

On bootup, the sdhci-pci driver fails to initialize the card reader with error -22:
--8<--
[    4.782054] sdhci: Secure Digital Host Controller Interface driver
[    4.782057] sdhci: Copyright(c) Pierre Ossman
[    4.782187] sdhci-pci 0000:11:00.0: SDHCI controller found [1217:8520] (rev 1)
[    4.782328] sdhci-pci: probe of 0000:11:00.0 failed with error -22
[    4.782376] sdhci-pltfm: SDHCI platform and OF driver helper
--8<--

What's wrong?

BIOS version is A15 from 09/29/2015.

Cheers,
Wolfram
Comment 1 Wolfram Schlich 2016-01-29 14:33:38 UTC
@drivers_mmc-sd@kernel-bugs.osdl.org: How to proceed from here? :)
Comment 2 Chris Ball 2016-01-29 15:28:29 UTC
Could you please email the report to linux-mmc@vger.kernel.org?  More people will see it there.
Comment 3 Wolfram Schlich 2016-02-01 14:30:27 UTC
Done: http://thread.gmane.org/gmane.linux.kernel.mmc/35800

Also, the issue remains unchanged with kernel 4.3.5-gentoo.
Comment 4 Wolfram Schlich 2016-02-03 08:53:20 UTC
There's a specific driver available from Dell for RHEL6:
http://downloads.dell.com/FOLDER01838349M/1/memory-card-driver-rhel64.tar.gz

It seems to be for use with ye-olde kernel 2.6.32.358.el6.x86_64:

Name        : sdhci-pci
Version     : 2.6.32.358.el6.x86_64test1
Release     : 1dkms
Architecture: noarch
Install Date: (not installed)
Group       : System/Kernel
Size        : 5932782
License     : Unknown
Signature   : (none)
Source RPM  : sdhci-pci-2.6.32.358.el6.x86_64test1-1dkms.src.rpm
Build Date  : Wed 17 Apr 2013 02:33:22 AM CEST
Build Host  : localhost
Relocations : (not relocatable)
Packager    : DKMS <dkms-devel@lists.us.dell.com>
Summary     : sdhci-pci 2.6.32.358.el6.x86_64test1 dkms package
Description :
Kernel modules for sdhci-pci 2.6.32.358.el6.x86_64test1 in a DKMS wrapper.
* Tue Apr 16 2013 DKMS <dkms-devel@lists.us.dell.com> 2.6.32.358.el6.x86_64test1-1dkms
- Automatic build by DKMS
drwxr-xr-x    2 root    root                        0 Apr 17  2013 /usr/share/sdhci-pci
-rwxr-xr-x    1 root    root                     9070 Apr 17  2013 /usr/share/sdhci-pci/postinst
-rw-r--r--    1 root    root                     7219 Apr 17  2013 /usr/share/sdhci-pci/sdhci-pci-2.6.32.358.el6.x86_64test1.dkms.tar.gz
drwxr-xr-x    2 root    root                        0 Apr 17  2013 /usr/src
drwxr-xr-x    2 root    root                        0 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1
-rw-r--r--    1 root    root                    10616 Jan 29  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/Kconfig
-rw-r--r--    1 root    root                     1180 Jan 29  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/Makefile
-rw-r--r--    1 root    root                    31868 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/at91_mci.c
-rw-r--r--    1 root    root                     6476 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/atmel-mci-regs.h
-rw-r--r--    1 root    root                    43915 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/atmel-mci.c
-rw-r--r--    1 root    root                    28453 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/au1xmmc.c
-rw-r--r--    1 root    root                        8 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/built-in.o
-rw-r--r--    1 root    root                    22420 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/cb710-mmc.c
-rw-r--r--    1 root    root                     3337 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/cb710-mmc.h
-rw-r--r--    1 root    root                   361275 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/cb710-mmc.ko
-rw-r--r--    1 root    root                     2176 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/cb710-mmc.mod.c
-rw-r--r--    1 root    root                    57264 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/cb710-mmc.mod.o
-rw-r--r--    1 root    root                   305680 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/cb710-mmc.o
-rw-r--r--    1 root    root                      173 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/dkms.conf
-rw-r--r--    1 root    root                    31091 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/imxmmc.c
-rw-r--r--    1 root    root                     2725 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/imxmmc.h
-rw-r--r--    1 root    root                    43065 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/mmc_spi.c
-rw-r--r--    1 root    root                    19860 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/mmci.c
-rw-r--r--    1 root    root                     5756 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/mmci.h
-rw-r--r--    1 root    root                      256 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/modules.order
-rw-r--r--    1 root    root                    30825 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/msm_sdcc.c
-rw-r--r--    1 root    root                     6214 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/msm_sdcc.h
-rw-r--r--    1 root    root                    25616 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/mvsdio.c
-rw-r--r--    1 root    root                     5059 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/mvsdio.h
-rw-r--r--    1 root    root                    21027 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/mxcmmc.c
-rw-r--r--    1 root    root                     3587 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/of_mmc_spi.c
-rw-r--r--    1 root    root                    39602 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/omap.c
-rw-r--r--    1 root    root                    50569 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/omap_hsmmc.c
-rw-r--r--    1 root    root                    20501 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/pxamci.c
-rw-r--r--    1 root    root                     2320 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/pxamci.h
-rw-r--r--    1 root    root                    46939 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/s3cmci.c
-rw-r--r--    1 root    root                     1594 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/s3cmci.h
-rw-r--r--    1 root    root                     8196 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-of.c
-rw-r--r--    1 root    root                    23008 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pci.c
-rw-r--r--    1 root    root                   304476 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pci.ko
-rw-r--r--    1 root    root                     3191 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pci.mod.c
-rw-r--r--    1 root    root                    60824 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pci.mod.o
-rw-r--r--    1 root    root                   245376 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pci.o
-rw-r--r--    1 root    root                     4742 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pltfm.c
-rw-r--r--    1 root    root                   228547 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pltfm.ko
-rw-r--r--    1 root    root                     1418 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pltfm.mod.c
-rw-r--r--    1 root    root                    55952 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pltfm.mod.o
-rw-r--r--    1 root    root                   174144 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-pltfm.o
-rw-r--r--    1 root    root                    10071 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci-s3c.c
-rw-r--r--    1 root    root                    67589 Jan 29  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci.c
-rw-r--r--    1 root    root                    15490 Jan 29  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci.h
-rw-r--r--    1 root    root                   594104 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci.ko
-rw-r--r--    1 root    root                     2761 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci.mod.c
-rw-r--r--    1 root    root                    58480 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci.mod.o
-rw-r--r--    1 root    root                   537475 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdhci.o
-rw-r--r--    1 root    root                    14870 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdricoh_cs.c
-rw-r--r--    1 root    root                   329966 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdricoh_cs.ko
-rw-r--r--    1 root    root                     1686 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdricoh_cs.mod.c
-rw-r--r--    1 root    root                    56640 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdricoh_cs.mod.o
-rw-r--r--    1 root    root                   275008 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/sdricoh_cs.o
-rw-r--r--    1 root    root                    29478 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/tifm_sd.c
-rw-r--r--    1 root    root                   366740 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/tifm_sd.ko
-rw-r--r--    1 root    root                     2065 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/tifm_sd.mod.c
-rw-r--r--    1 root    root                    57200 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/tifm_sd.mod.o
-rw-r--r--    1 root    root                   311368 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/tifm_sd.o
-rw-r--r--    1 root    root                    16496 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/tmio_mmc.c
-rw-r--r--    1 root    root                     7123 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/tmio_mmc.h
-rw-r--r--    1 root    root                    36206 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/via-sdmmc.c
-rw-r--r--    1 root    root                   367135 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/via-sdmmc.ko
-rw-r--r--    1 root    root                     2576 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/via-sdmmc.mod.c
-rw-r--r--    1 root    root                    58168 Apr 16  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/via-sdmmc.mod.o
-rw-r--r--    1 root    root                   310816 Apr 17  2013 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/via-sdmmc.o
-rw-r--r--    1 root    root                    40842 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/wbsd.c
-rw-r--r--    1 root    root                     4819 Dec  3  2009 /usr/src/sdhci-pci-2.6.32.358.el6.x86_64test1/wbsd.h


Maybe they have done some specific patching back then?
Comment 5 Wolfram Schlich 2016-02-12 07:25:38 UTC
Ping?
Comment 6 Wolfram Schlich 2016-06-01 14:41:57 UTC
The issue still persists with kernel 4.6.0.
Comment 7 Wolfram Schlich 2016-06-23 07:13:59 UTC
The issue was solved by setting CONFIG_PCI_MMCONFIG=y.
Thanks to Adrian Hunter <adrian.hunter@intel.com> for pointing this out.

Looks better now:
--8<--
zephyr ~ # dmesg | egrep 'sdhci|mmc'
[    3.703540] sdhci: Secure Digital Host Controller Interface driver
[    3.703543] sdhci: Copyright(c) Pierre Ossman
[    3.703561] sdhci-pci 0000:11:00.0: SDHCI controller found [1217:8520] (rev 1)
[    3.703656] sdhci-pci 0000:11:00.0: sdhci_pci_o2_probe start
[    3.703732] sdhci-pci 0000:11:00.0: sdhci_pci_o2_probe finish
[    3.703769] mmc0: Unknown controller version (3). You may experience problems.
[    3.705468] mmc0: SDHCI controller on PCI [0000:11:00.0] using ADMA
[    4.035824] mmc0: new high speed SDHC card at address 59b4
[    4.036023] mmcblk0: mmc0:59b4 SDU1  29.9 GiB 
[    4.037519]  mmcblk0: p1
zephyr ~ # 
--8<--

Note You need to log in before you can comment on or make changes to this bug.