Re: Experimental driver for Ricoh Bay1Controller SD Card readers

From: Samuel Thibault
Date: Tue Jan 09 2007 - 16:22:11 EST


Hi,

Sascha Sommer, le Sun 07 Jan 2007 00:32:26 +0100, a écrit :
> Attached is a very experimental driver for a Ricoh SD Card reader that can be
> found in some notebooks like the Samsung P35.

Yehaaaw! That reader can be found on DELL X300 too. It works almost fine
for me, see attached dmesg. These I/O errors didn't prevent me from
mounting a card, though.

> In order to write this driver I hacked qemu to have access to the cardbus
> bridge containing this card. I then logged the register accesses of the
> windows xp driver and tryed to analyse them.

Great to see people brave enough to do such tedious work :D

> - I only tested with a 128 MB SD card, no idea what would be needed to support
> other card types

Unfortunately, I don't have other cards either.

> - only tested with kernel 2.6.18

Tested with 2.6.19 without source change.

> apart from all these problems reading an image from my sd card seems to have
> worked ;)

The IO errors make dd stop on my box. I tried to set TIMEOUT to 1000
(this is a slow card) without better results. Tell me if there are
things I can test.

I'm not subscribed to linux-kernel, so please remember to Cc me when
posting updates, etc. so I can test them.

Samuel
pccard: PCMCIA card inserted into slot 0
pcmcia: registering new device pcmcia0.0
sdricoh_cs: no version for "struct_module" found: kernel tainted.
mmcblk0: mmc0:b370 SD128 123008KiB (ro)
mmcblk0: p1
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
mmcblk0: error 1 sending read/write command
end_request: I/O error, dev mmcblk0, sector 32
Buffer I/O error on device mmcblk0, logical block 4
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
mmcblk0: error 1 sending read/write command
end_request: I/O error, dev mmcblk0, sector 56
Buffer I/O error on device mmcblk0, logical block 7
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
mmcblk0: error 1 sending read/write command
end_request: I/O error, dev mmcblk0, sector 80
Buffer I/O error on device mmcblk0, logical block 10
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
sdricoh_cs: timeout waiting for data
mmcblk0: error 1 sending read/write command
end_request: I/O error, dev mmcblk0, sector 112
Buffer I/O error on device mmcblk0, logical block 14
pccard: card ejected from slot 0