# dmesg: mmcblk0: error -123 sending status command

## Consystor

Hello!

I have the following gentoo-kernel:

genkernel-x86-2.6.37-gentoo-r4 (with gentoo's default config)

and the following controller:

Texas Instruments PCI7420/7620 Combo CardBus, 1394a-2000 OHCI and SD/MS-Pro Controller

When I insert an SD-card in my reader then I get this in syslog:

tifm_core: MMC/SD card detected in socket 0:0

mmc0: new SD card at address 1234

mmcblk0: mmc0:1234 SD01G 972 MiB 

 mmcblk0: p1

I can mount the card but if I try to read some files from it I get this in syslog:

Jul 15 12:40:54 consystor6 klogd: mmcblk0: retrying using single block read

Jul 15 12:40:54 consystor6 klogd: mmcblk0: error -123 sending status command

Jul 15 12:40:54 consystor6 klogd: mmcblk0: error -123 sending read/write command, response 0x0, card status 0x0

Jul 15 12:40:54 consystor6 klogd: end_request: I/O error, dev mmcblk0, sector 1206304

Jul 15 12:40:54 consystor6 klogd: mmcblk0: error -123 sending status command

Jul 15 12:40:54 consystor6 klogd: mmcblk0: error -123 sending read/write command, response 0x0, card status 0x0

[...]

Jul 15 12:40:54 consystor6 klogd: end_request: I/O error, dev mmcblk0, sector 975808

Jul 15 12:40:54 consystor6 klogd: Buffer I/O error on device mmcblk0p1, logical block 975559

Jul 15 12:40:54 consystor6 klogd: lost page write due to I/O error on mmcblk0p1

Jul 15 12:40:54 consystor6 klogd: tifm_core: MMC/SD card detected in socket 0:0

Jul 15 12:40:54 consystor6 klogd: FAT: Directory bread(block 1205959) failed

[...]

Jul 15 12:40:54 consystor6 klogd: FAT: Directory bread(block 1205988) failed

Jul 15 12:40:54 consystor6 hald: unmounted /dev/mmcblk0p1 from '/media/disk' on behalf of uid 0

Jul 15 12:40:54 consystor6 klogd: mmc0: new SD card at address 1234

Jul 15 12:40:54 consystor6 klogd: mmcblk0: mmc0:1234 SD01G 972 MiB 

Jul 15 12:40:54 consystor6 klogd:  mmcblk0: p1

After that the card is unmounted as you can see in the log - so I can't read any data.

Same with genkernel-x86-2.6.38-gentoo-r1 (and an own config).

The SD-card works in the same system under windows without any problems.

Can anybody help me?

Best regards!

----------

## FizzyWidget

do you have the right drivers for the MMC controller in your kernel, if so are they modules or built in? if built in try as modules, that worked for me, although i had a bitch of a time as my reader is sd and xd, and xd requires a few other options in the kernel

----------

## Consystor

Hello and thanks for your answer!

lspci -vv lists this:

03:04.3 Mass storage controller: Texas Instruments PCI7420/7620 Combo CardBus, 1394a-2000 OHCI and SD/MS-Pro Controller

        Subsystem: Wistron Corp. Device 3006

        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

        Latency: 57 (1750ns min, 1000ns max), Cache Line Size: 32 bytes

        Interrupt: pin D routed to IRQ 22

        Region 0: Memory at d2014000 (32-bit, non-prefetchable) [size=4K]

        Capabilities: <access denied>

        Kernel driver in use: tifm_7xx1

So the used driver is tifm_7xx1 - I don't know which other driver I could use for my card reader.

In gentoo's default config the driver is built as module. In my config it's built in.

There's no difference between "built in" or "built as module".

Now I'm building 2.6.39-gentoo-r3 with also built in tifm and that's the config:

grep MMC 2.6.39-gentoo-r3-2011-07-15-01

CONFIG_MMC=y

# CONFIG_MMC_DEBUG is not set

# CONFIG_MMC_UNSAFE_RESUME is not set

# CONFIG_MMC_CLKGATE is not set

# MMC/SD/SDIO Card Drivers

CONFIG_MMC_BLOCK=y

CONFIG_MMC_BLOCK_MINORS=8

CONFIG_MMC_BLOCK_BOUNCE=y

# CONFIG_MMC_TEST is not set

# MMC/SD/SDIO Host Controller Drivers

CONFIG_MMC_SDHCI=y

# CONFIG_MMC_SDHCI_PCI is not set

# CONFIG_MMC_SDHCI_PLTFM is not set

CONFIG_MMC_WBSD=m

CONFIG_MMC_TIFM_SD=y

# CONFIG_MMC_SDRICOH_CS is not set

# CONFIG_MMC_CB710 is not set

# CONFIG_MMC_VIA_SDMMC is not set

# CONFIG_MMC_USHC is not set

Later I will see if there's a difference...

----------

## FizzyWidget

I have found that sometimes drivers have to be built as modules, my TV card sorted that out for me, if i compiled in the drivers the card was never seen, as soon as i put them as modules it was. Not on my linux box so i cant post what my config and options selected were, when i have time i will jump right on it

----------

## Consystor

As I wrote it also doesn't work when I build the MMC stuff as modules.

The controller is recognized and the drivers are loaded without errors automatically.

When I plug in my SD-card then I can mount it but a correct file transfer isn't possible.

Also with 2.6.39-gentoo-r3 I get the errors above. Maybe it's a driver bug?  :Sad: 

----------

## FizzyWidget

quite possibly, I have Ricoh card reader and i can transfer from SD and XD, you could try looking on the bug tracker

----------

## Consystor

OK, I've looked in the kernel bugzilla and I've found no similar problems.

First of all I will build vanilla-sources-2.6.39.3 (newest stable) and try the same.

If the problem is also present with this one then I think I'll ask in the linux-mmc mailing list before I post a bug in the bugzilla.

Many thanks again for your answers!

----------

