Re: mmc sdhci mmcblk0: error -110 sending status command, retrying

From: Adrian Hunter
Date: Tue Feb 07 2012 - 03:32:25 EST


On 07/02/12 06:37, Jeff Chua wrote:
> On Tue, Feb 7, 2012 at 11:38 AM, Chris Ball <cjb@xxxxxxxxxx> wrote:
>> Hi, adding linux-mmc@ to the thread,
>>
>> On Mon, Feb 06 2012, Jeff Chua wrote:
>>> The SD slot on the Lenovo X220 is doesn't seems to work on
>>> Linux-3.3.0-rc2. I haven't use SD for a while, so don't know which
>>> linux version will work on the X220.
>>>
>>>
>>> # cat .config
>>> CONFIG_MMC=m
>>> CONFIG_MMC_DEBUG=y
>>> CONFIG_MMC_CLKGATE=y
>>> CONFIG_MMC_BLOCK=m
>>> CONFIG_MMC_BLOCK_MINORS=8
>>> CONFIG_MMC_BLOCK_BOUNCE=y
>>> CONFIG_MMC_SDHCI=m
>>> CONFIG_MMC_SDHCI_PCI=m
>>> CONFIG_MMC_RICOH_MMC=y
>>>
>>>
>>> # lspcpi -v
>>>
>>> 0d:00.0 System peripheral: Ricoh Co Ltd Device e823 (rev 04) (prog-if 01)
>>> Subsystem: Lenovo Device 21da
>>> Flags: bus master, fast devsel, latency 0, IRQ 16
>>> Memory at f1500000 (32-bit, non-prefetchable) [size=256]
>>> Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
>>> Capabilities: [78] Power Management version 3
>>> Capabilities: [80] Express Endpoint, MSI 00
>>> Kernel driver in use: sdhci-pci
>>> Kernel modules: sdhci-pci
>>>
>>>
>>> # dmesg
>>> sdhci: Secure Digital Host Controller Interface driver
>>> sdhci: Copyright(c) Pierre Ossman
>>> sdhci-pci 0000:0d:00.0: SDHCI controller found [1180:e823] (rev 4)
>>> sdhci-pci 0000:0d:00.0: found 1 slot(s)
>>> sdhci [sdhci_add_host()]: mmc0: Auto-CMD23 unavailable
>>> sdhci: =========== REGISTER DUMP (mmc0)===========
>>> sdhci: Sys addr: 0x00000000 | Version: 0x00000502
>>> sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000000
>>> sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
>>> sdhci: Present: 0x01f70000 | Host ctl: 0x00000000
>>> sdhci: Power: 0x00000000 | Blk gap: 0x00000000
>>> sdhci: Wake-up: 0x00000000 | Clock: 0x00000000
>>> sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
>>> sdhci: Int enab: 0x00ff0003 | Sig enab: 0x00ff0003
>>> sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
>>> sdhci: Caps: 0x21e832b2 | Caps_1: 0x00008073
>>> sdhci: Cmd: 0x00000000 | Max curr: 0x00000040
>>> sdhci: Host ctl2: 0x00000000
>>> sdhci: ===========================================
>>>
>>> mmc0: req done (CMD18): 0: 00000900 00000000 00000000 00000000
>>> mmc0: 0 bytes transferred: -84
>>> mmc0: (CMD12): -110: 00000000 00000000 00000000 00000000
>>> mmc0: starting CMD13 arg b3680000 flags 00000195
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00018000
>>> mmc0: req done (CMD13): -110: 00000000 00000000 00000000 00000000
>>> mmcblk0: error -110 sending status command, retrying
>>> mmc0: starting CMD13 arg b3680000 flags 00000195
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00018000
>>> mmc0: req done (CMD13): -110: 00000000 00000000 00000000 00000000
>>> mmcblk0: error -110 sending status command, retrying
>>> mmc0: starting CMD13 arg b3680000 flags 00000195
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
>>> mmc0: req done (CMD13): 0: 00800b00 00000000 00000000 00000000
>>> mmc0: starting CMD12 arg 00000000 flags 0000049d
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000003
>>> mmc0: req done (CMD12): 0: 00000b00 00000000 00000000 00000000
>>> mmcblk0: error -110 sending stop command, original cmd response 0x900,
>>> card status 0x800b00
>>> mmcblk0: error -84 transferring data, sector 0, nr 32, cmd response
>>> 0x900, card status 0xb00
>>> mmcblk0: retrying using single block read
>>> mmc0: starting CMD17 arg 00000000 flags 000000b5
>>> mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000002
>>> mmc0: req done (CMD17): 0: 00000900 00000000 00000000 00000000
>>> mmc0: 512 bytes transferred: 0
>>> mmc0: starting CMD17 arg 00000001 flags 000000b5
>>> mmc0: blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
>>> sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000002
>>>
>>>
>>> Any help will be very much appreciated.
>>
>> Could you try another SD card to confirm that it's the controller?
>> If it is, a bisect (at least between kernel versions) is probably
>> a good idea.
>
> I've tried another SD but still facing the same problem on the SD
> slot. The same SD works when plugged in a USB card reader on the X220.
>
> I'll try to bisect later, but don't know which version would work for
> X220. The X201s has a SD slot, but it's actually a USB card reader and
> that works, so I will have to find a working version before I can
> bisect.

Looks like Caps_1: 0x00008073 means re-tuning mode 3. Maybe the tuning is
not being done correctly.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/