Comment 17 for bug 790754

Derrik Pates (demon-devrandom) wrote :

My Thinkpad X220 seems to have a different revision of the Ricoh MMC SD card reader.

10:25:17 [demon@swordfish: ~]$ lspci -s 0d:00.0 -vv
0d:00.0 System peripheral: Ricoh Co Ltd Device e823 (rev 04) (prog-if 01)
 Subsystem: Lenovo Device 21da
 Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
 Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
 Interrupt: pin A routed to IRQ 16
 Region 0: Memory at f1400000 (32-bit, non-prefetchable) [size=256]
 Capabilities: <access denied>
 Kernel driver in use: sdhci-pci
 Kernel modules: sdhci-pci

With the current latest kernel included in Natty, the SD/MMC card reader does not work at all; the modules load, but the card insertion is not seen at all with the cards I've tried (a 2 GB SanDisk Class 2 SD, and a 16 GB Transcend Class 6 SDHC). However, I've managed to use the following debug_quirks parameter (placed in /etc/modprobe.d/sdhci.conf), which seems to make the reader function, seeing the inserted card, allowing it to be mounted, and for files to be accessed without crashing the system:

options sdhci debug_quirks=0x4670

However, I do still get occasional spew like this in dmesg:

[ 694.789723] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
[ 694.789727] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 694.789732] sdhci: Sys addr: 0x00000000 | Version: 0x00000502
[ 694.789738] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
[ 694.789743] sdhci: Argument: 0x00000000 | Trn mode: 0x00000032
[ 694.789748] sdhci: Present: 0x01ff0000 | Host ctl: 0x00000003
[ 694.789753] sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 694.789759] sdhci: Wake-up: 0x00000000 | Clock: 0x00000407
[ 694.789764] sdhci: Timeout: 0x0000000a | Int stat: 0x00000000
[ 694.789770] sdhci: Int enab: 0x00ff00f3 | Sig enab: 0x00ff00f3
[ 694.789775] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 694.789780] sdhci: Caps: 0x21e8c8b2 | Caps_1: 0x00008073
[ 694.789785] sdhci: Cmd: 0x00000c1b | Max curr: 0x00000040
[ 694.789786] sdhci: ===========================================

It would seem different revs of the X220 have different SD/MMC card reader flavors. dmidecode identifies this machine as:

        Manufacturer: LENOVO
        Product Name: 4286CTO