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
@drivers_mmc-sd@kernel-bugs.osdl.org: How to proceed from here? :)
Could you please email the report to linux-mmc@vger.kernel.org? More people will see it there.
Done: http://thread.gmane.org/gmane.linux.kernel.mmc/35800 Also, the issue remains unchanged with kernel 4.3.5-gentoo.
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?
Ping?
The issue still persists with kernel 4.6.0.
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<--