You are not logged in.

#1 2013-12-29 13:44:27

rubick
Member
From: Czech Republic
Registered: 2013-02-11
Posts: 20

SD card reader problem

Hi, I can't get working internal SD card reader in my Dell E6400 laptop.
When I plug in the SD card, this is output of dmesg:

...
[ 1590.805105] mmc0: new high speed SD card at address 0002
[ 1590.805532] mmcblk0: mmc0:0002 00000 1.86 GiB (ro)
[ 1590.809626] mmc0: Got data interrupt 0x00200000 even though no data operation was in progress.
[ 1590.811729] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[ 1590.811743] mmcblk0: retrying using single block read
[ 1590.814075] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[ 1590.814079] blk_update_request: 1263 callbacks suppressed
[ 1590.814081] end_request: I/O error, dev mmcblk0, sector 0
[ 1590.817310] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
[ 1590.817313] end_request: I/O error, dev mmcblk0, sector 1
[ 1590.820587] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
[ 1590.820590] end_request: I/O error, dev mmcblk0, sector 2
[ 1590.823792] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
[ 1590.823794] end_request: I/O error, dev mmcblk0, sector 3
[ 1590.827011] mmcblk0: error -84 transferring data, sector 4, nr 4, cmd response 0x900, card status 0x0
[ 1590.827013] end_request: I/O error, dev mmcblk0, sector 4
[ 1590.830239] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
[ 1590.830242] end_request: I/O error, dev mmcblk0, sector 5
[ 1590.833471] mmcblk0: error -84 transferring data, sector 6, nr 2, cmd response 0x900, card status 0x0
[ 1590.833474] end_request: I/O error, dev mmcblk0, sector 6
[ 1590.836694] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
[ 1590.836696] end_request: I/O error, dev mmcblk0, sector 7
[ 1590.836699] quiet_error: 148 callbacks suppressed
[ 1590.836700] Buffer I/O error on device mmcblk0, logical block 0
[ 1590.840337] mmc0: Got data interrupt 0x00200000 even though no data operation was in progress.
[ 1590.842385] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[ 1590.842387] mmcblk0: retrying using single block read
[ 1590.845713] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[ 1590.845716] end_request: I/O error, dev mmcblk0, sector 0
[ 1590.848943] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
[ 1590.848947] end_request: I/O error, dev mmcblk0, sector 1
[ 1590.852222] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
[ 1590.855431] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
[ 1590.856575] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
[ 1590.858625] mmcblk0: error -84 transferring data, sector 4, nr 4, cmd response 0x900, card status 0x0
[ 1590.861826] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
[ 1590.865057] mmcblk0: error -84 transferring data, sector 6, nr 2, cmd response 0x900, card status 0x0
[ 1590.868285] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
[ 1590.868288] Buffer I/O error on device mmcblk0, logical block 0
[ 1590.871913] mmc0: Got data interrupt 0x00200000 even though no data operation was in progress.
[ 1590.871918] mmc0: Got command interrupt 0x00000001 even though no command operation was in progress.
[ 1590.873998] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[ 1590.874001] mmcblk0: retrying using single block read
[ 1590.877335] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[ 1590.880578] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
[ 1590.883791] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
[ 1590.887020] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
[ 1590.890231] mmcblk0: error -84 transferring data, sector 4, nr 4, cmd response 0x900, card status 0x0
[ 1590.893464] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
[ 1590.896652] mmcblk0: error -84 transferring data, sector 6, nr 2, cmd response 0x900, card status 0x0
[ 1590.899849] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
[ 1590.899853] Buffer I/O error on device mmcblk0, logical block 0
[ 1590.899860] ldm_validate_partition_table(): Disk read failed.
[ 1590.903479] mmc0: Got data interrupt 0x00200000 even though no data operation was in progress.
[ 1590.905531] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
[ 1590.905534] mmcblk0: retrying using single block read
[ 1590.908840] mmcblk0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
[ 1590.912037] mmcblk0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
[ 1590.915311] mmcblk0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
[ 1590.918531] mmcblk0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
[ 1590.921779] mmcblk0: error -84 transferring data, sector 4, nr 4, cmd response 0x900, card status 0x0
[ 1590.924993] mmcblk0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
[ 1590.928201] mmcblk0: error -84 transferring data, sector 6, nr 2, cmd response 0x900, card status 0x0
[ 1590.931403] mmcblk0: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
[ 1590.931405] Buffer I/O error on device mmcblk0, logical block 0
...

That last section repeats many times in dmesg. Then I can see device /dev/mmcblk0, but I cannot mount it:

$ sudo mount /dev/mmcblk0 ~/tmp/test/
mount: /dev/mmcblk0 is write-protected, mounting read-only
mount: /dev/mmcblk0: can't read superblock

I have tried two SD cards, 2GB and 6GB SDHC, both do the same and both work under Windows. Any idea where is problem? Thanks.

Offline

#2 2013-12-29 18:29:25

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 19,804

Re: SD card reader problem

What kernel are you running?  I have not seen problems like that in any 3.x kernel.  Here is where I remove and install my card, plus the lspci details on my hardware.

ewaller$@$odin ~ 1004 %lspci -nn | grep SD
04:00.0 System peripheral [0880]: JMicron Technology Corp. SD/MMC Host Controller [197b:2382]
04:00.2 SD Host controller [0805]: JMicron Technology Corp. Standard SD Host Controller [197b:2381]
ewaller$@$odin ~ 1005 %dmesg | tail -5
[75874.488465] atkbd serio0: Use 'setkeycodes e014 <keycode>' to make it known.
[76034.082739] mmc0: card b4ec removed
[76036.587356] mmc0: new SDHC card at address b4ec
[76036.587595] mmcblk0: mmc0:b4ec SD08G 7.40 GiB 
[76036.591624]  mmcblk0: p1
ewaller$@$odin ~ 1006 %

Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

#3 2013-12-30 13:39:17

rubick
Member
From: Czech Republic
Registered: 2013-02-11
Posts: 20

Re: SD card reader problem

I have custom kernel, but it is based on stock Arch Linux kernel, the only difference is tha I have enabled CAN support.

[ondra@dell ~]$ uname -a
Linux dell 3.12.2-1-custom #1 SMP PREEMPT Thu Dec 5 14:01:26 CET 2013 x86_64 GNU/Linux

Also tried stock Arch Linux kernel

Linux dell 3.12.6-1-ARCH #1 SMP PREEMPT Fri Dec 20 19:39:00 CET 2013 x86_64 GNU/Linux

and this is my adapter

[ondra@dell ~]$ lspci -nn | grep SD
03:01.2 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 21)

Offline

#4 2013-12-30 14:34:33

R00KIE
Forum Fellow
From: Between a computer and a chair
Registered: 2008-09-14
Posts: 4,734

Re: SD card reader problem

I see somewhat similar errors but only during boot (quite frequently). I'm using luks and I store the keys on a sd card, during boot and after the keys have been read properly, sometimes I see lots of errors similar to yours.

After the system has finished booting, the card reader works fine and I don't see any errors. What I have noticed is that if I reboot with a card in the card reader it isn't detected after the reboot, I have also found that (in my case) I can hang the machine if I insert a card after the machine has been turned on and the kernel has not finished loading. It seems that either the card reader, the bios or the specific implementation have some bug that causes problems.

I tried just now to remove and reinsert a card and I also saw errors similar to yours and the card didn't get detected, on a 2nd and 3rd try it worked without errors.

I don't have any good suggestions to give you, what _might_ help is if you pass any quirks to sdhci, I've tried to look into it before but didn't find any document explaining what those quirks are, I suppose you would need to dive into the code and figure out what the quirks are (my knowledge of C and my motivation were not enough to do it myself).

lspci -nn | grep SD
07:01.1 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 22)

Edit:
I hope this edit doesn't bump the thread but I have some info that might help someone in the future.
The errors I was seeing, and another problem I was having, are gone after blacklisting r592 and memstick. I know it isn't the ideal solution but at least for me memory sticks never worked very well with this card reader so not a big loss.

Last edited by R00KIE (2014-07-16 08:18:28)


R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K

Offline

Board footer

Powered by FluxBB