Bug 328087 - SD card reader not working
SD card reader not working
Status: RESOLVED INVALID
Classification: openSUSE
Product: openSUSE 10.3
Classification: openSUSE
Component: Kernel
RC 1
x86 openSUSE 10.3
: P2 - High : Major (vote)
: ---
Assigned To: Jiri Kosina
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2007-09-25 08:57 UTC by Dirk Engel
Modified: 2007-10-05 08:50 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dirk Engel 2007-09-25 08:57:26 UTC
Problem occurs when copying bigger data from card to disk:

Sep 24 13:25:02 Staufen kernel: mmc0: Timeout waiting for hardware interrupt.
Sep 24 13:25:02 Staufen kernel: mmcblk0: error 1 transferring data
Sep 24 13:25:02 Staufen kernel: end_request: I/O error, dev mmcblk0, sector 85720
Sep 24 13:25:12 Staufen kernel: mmc0: Timeout waiting for hardware interrupt.
Sep 24 13:25:12 Staufen kernel: mmcblk0: error 1 transferring data
Sep 24 13:25:12 Staufen kernel: end_request: I/O error, dev mmcblk0, sector 85728
Sep 24 13:25:22 Staufen kernel: mmc0: Timeout waiting for hardware interrupt.
...

lspci:

...
08:09.3 System peripheral: Ricoh Co Ltd R5C843 MMC Host Controller
        Subsystem: Samsung Electronics Co Ltd Unknown device c024
        Flags: medium devsel, IRQ 255
        Memory at de002c00 (32-bit, non-prefetchable) [disabled] [size=256]
        Capabilities: [80] Power Management version 2

08:09.4 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 09)
        Subsystem: Samsung Electronics Co Ltd Unknown device c024
        Flags: medium devsel, IRQ 255

BTW there were also problems at startup with hwclock (boot.clock). I was able to fix this issue by adding --directisa.
        Memory at de003000 (32-bit, non-prefetchable) [disabled] [size=256]
        Capabilities: [80] Power Management version 2

08:09.5 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 04)
        Subsystem: Samsung Electronics Co Ltd Unknown device c024
        Flags: medium devsel, IRQ 255
        Memory at de003400 (32-bit, non-prefetchable) [disabled] [size=256]
        Capabilities: [80] Power Management version 2
Comment 1 Dirk Engel 2007-09-29 14:32:16 UTC
Tested again: Problem occurs not only with bigger data but almost always when copying or deleting some files on card. 
Comment 2 Jiri Kosina 2007-10-02 14:04:53 UTC
Dirk, do you know whether this worked on older kernels or this has been like this all the time? Thanks.
Comment 3 Jiri Kosina 2007-10-02 14:13:53 UTC
OK, this is a known issue with this particular Ricoh MMC reader, see http://lkml.org/lkml/2007/10/1/375

I will backport the "disabler" patch to our kernel so that it goes out in the next update.

Comment 4 Dirk Engel 2007-10-02 17:45:51 UTC
Jiri, yes it worked well with 2.6.18. Sounds good that this will be fixed soon. Thanks!
Comment 5 Dirk Engel 2007-10-03 10:43:09 UTC
Jiri, I tried the patch myself without success, the error remains the same. The new ricoh-mmc module outputs:

ricoh-mmc: Main firewire function not found. Cannot disable controller.

BTW: Isn't it a little bit confusing that is worked with openSUSE 10.2 (default 2.6.18 kernel)?
Comment 6 Jiri Kosina 2007-10-03 11:21:13 UTC
Dirk, could you please provide output preceeding this error message? I.e. vendor-id, product-id, and any other related messages. Thanks.
Comment 7 Dirk Engel 2007-10-03 12:22:25 UTC
Here you are:

...
ACPI: PCI interrupt for device 0000:08:09.2 disabled
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci: SDHCI controller found at 0000:08:09.2 [1180:0822] (rev 18)
ACPI: PCI Interrupt 0000:08:09.2[C] -> GSI 22 (level, low) -> IRQ 22
mmc0: SDHCI at 0xde002800 irq 22 DMA
mmcblk0: mmc0:815d SD02G 2011136KiB
 mmcblk0: p1
ACPI: PCI interrupt for device 0000:08:09.2 disabled
SFW2-INext-DROP-DEFLT IN=eth1 OUT= MAC=... SRC=... DST=... LEN=36 TOS=0x00 PREC=0x80 TTL=1 ID=31639 DF OPT (94040000) PROTO=2
ricoh-mmc: Ricoh MMC Controller disabling driver
ricoh-mmc: Copyright(c) Philip Langdale
ricoh-mmc: Ricoh MMC controller found at 0000:08:09.3 [1180:0843] (rev 0)
ricoh-mmc: Main firewire function not found. Cannot disable controller.
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci: SDHCI controller found at 0000:08:09.2 [1180:0822] (rev 18)
ACPI: PCI Interrupt 0000:08:09.2[C] -> GSI 22 (level, low) -> IRQ 22
mmc0: SDHCI at 0xde002800 irq 22 DMA
mmcblk0: mmc0:815d SD02G 2011136KiB
 mmcblk0: p1
mmc0: Timeout waiting for hardware interrupt.
sdhci: ============== REGISTER DUMP ==============
sdhci: Sys addr: 0x393f461a | Version:  0x00000200
sdhci: Blk size: 0x00007200 | Blk cnt:  0x00000003
sdhci: Argument: 0x106ba000 | Trn mode: 0x00000033
sdhci: Present:  0x01ff0a06 | Host ctl: 0x00000007
sdhci: Power:    0x0000000f | Blk gap:  0x00000000
sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
sdhci: Timeout:  0x00000007 | Int stat: 0x00000000
sdhci: Int enab: 0x00ff00fb | Sig enab: 0x00ff00fb
sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
sdhci: Caps:     0x01a021a1 | Max curr: 0x00000040
sdhci: ===========================================
mmcblk0: error 1 transferring data
end_request: I/O error, dev mmcblk0, sector 538064
mmc0: Timeout waiting for hardware interrupt.
sdhci: ============== REGISTER DUMP ==============
sdhci: Sys addr: 0x393fc006 | Version:  0x00000200
sdhci: Blk size: 0x00007200 | Blk cnt:  0x00000006
sdhci: Argument: 0x106bb000 | Trn mode: 0x00000033
sdhci: Present:  0x01ff0a06 | Host ctl: 0x00000007
sdhci: Power:    0x0000000f | Blk gap:  0x00000000
sdhci: Wake-up:  0x00000000 | Clock:    0x00000007
sdhci: Timeout:  0x00000007 | Int stat: 0x00000000
sdhci: Int enab: 0x00ff00fb | Sig enab: 0x00ff00fb
sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
sdhci: Caps:     0x01a021a1 | Max curr: 0x00000040
sdhci: ===========================================
mmcblk0: error 1 transferring data
end_request: I/O error, dev mmcblk0, sector 538072
...
Comment 8 Jiri Kosina 2007-10-03 16:22:15 UTC
Dirk, as you are able to apply the patches yourself, do you think you could test whether the issue is still present in current vanilla kernel, and if so, that you could find the offending patch using git-bisect (bisecting the patches touching drivers/mmc directory should be enough, so it should require only a few recompile-reboot iterations)?

Thanks.
Comment 9 Dirk Engel 2007-10-04 13:45:53 UTC
Jiri, I tried kernel-vanilla.rpm from http://ftp.suse.com/pub/projects/kernel/kotd/HEAD/i386/ without any patches: Same problem :-( It doesn't seem to be an openSUSE specific problem but a general kernel problem.
Comment 10 Dirk Engel 2007-10-04 17:58:03 UTC
Jiri, I have checked the notebook vendor's page today and found a new firmware version. After updating the firmware the SD card reader works again with the openSUSE standard kernel. Looks as if there was a BIOS (ACPI?) bug which somehow wasn't revealed by openSUSE 10.2 and kernel 2.6.18. Thanks for your support!
Comment 11 Jiri Kosina 2007-10-05 08:50:54 UTC
Dirk, thanks a lot for letting me know! Closing the bug.