SDXC card issues with a "Genesys Logic" reader on a new Lenovo laptop

The computer in question is a Lenovo P53, running 5.3.8-3-MANJARO x86_64, KDE.

What happens with a MicroSD card is it gets a number of errors, reads a little bit, but with any writing or excitement, it becomes unresponsive with a bunch of "Card stuck in wrong state!" errors.

I've tried out a lot of different configurations... trying with the latest Manjaro XFCE ISO on a thumb drive (didn't work), trying with Ubuntu on a thumb drive (didn't work), trying with a different kernel (didn't work with 5.3 or 4.19), trying out different microSDs with different file systems. Here's what it DID work perfectly fine on: a) a dual-booted Windows on this P53, b) on a completely different older laptop running a Manjaro Live CD (linux kernel 5.3), and c) an ancient regular-SD card worked fine on the new P53.

I'm just an amateur detective but my conclusion is: It's a Linux driver issue, incompatible with the card reader. The name of the SD reader according to Windows 10 Device Manager is "Genesys Logic PCIE card reader device". Are there any conceivable fixes? Will I just have to hope someone writes a driver that works with Genesys Logic (if my conclusion is even sound)?

Thanks for reading. And now what else can I share... I tried out a card reader driver, which you wouldn't expect to work, and indeed it didn't work, but for completeness' sake it's a driver for Realtek RTS5227/5229 Card Reader. https://aur.archlinux.org/packages/rts5227-dkms.

More useful is a big old error dump from dmesg.
The events that caused this sequence of events are:
A. inserted 128GB SDXC card, B. Mounted, C. Small read and write (copying 10MB of pictures and mp3s back and forth), D. Unmount (unsuccessful)

A. inserted 128GB SDXC card
[ 3146.002296] mmc0: 1.8V regulator output did not became stable
[ 3146.197306] mmc0: 1.8V regulator output did not became stable
[ 3146.391381] mmc0: 1.8V regulator output did not became stable
[ 3146.594843] mmc0: 1.8V regulator output did not became stable
[ 3146.786706] mmc0: 1.8V regulator output did not became stable
[ 3146.987700] mmc0: 1.8V regulator output did not became stable
[ 3147.179583] mmc0: 1.8V regulator output did not became stable
[ 3147.375378] mmc0: 1.8V regulator output did not became stable
[ 3147.571131] mmc0: 1.8V regulator output did not became stable
[ 3147.770028] mmc0: 1.8V regulator output did not became stable
[ 3147.804128] mmc0: Skipping voltage switch
[ 3147.981399] mmc0: new high speed SDXC card at address aaaa
[ 3147.999966] mmcblk0: mmc0:aaaa SC128 119 GiB 
[ 3148.003910]  mmcblk0: p1
[ 3148.026164] mmc0: Got data interrupt 0x00600000 even though no data operation was in progress.
[ 3148.026165] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 3148.026168] mmc0: sdhci: Sys addr:  0x00000008 | Version:  0x00000005
[ 3148.026171] mmc0: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[ 3148.026174] mmc0: sdhci: Argument:  0x00000038 | Trn mode: 0x0000003f
[ 3148.026177] mmc0: sdhci: Present:   0x210f0000 | Host ctl: 0x0000001f
[ 3148.026180] mmc0: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
[ 3148.026183] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000327
[ 3148.026186] mmc0: sdhci: Timeout:   0x00000004 | Int stat: 0x00000000
[ 3148.026189] mmc0: sdhci: Int enab:  0x03ff008b | Sig enab: 0x03ff008b
[ 3148.026192] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 3148.026194] mmc0: sdhci: Caps:      0x396a3281 | Caps_1:   0x1803057f
[ 3148.026197] mmc0: sdhci: Cmd:       0x0000123a | Max curr: 0x000000c8
[ 3148.026200] mmc0: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x03b8ab7f
[ 3148.026203] mmc0: sdhci: Resp[2]:   0x325b5900 | Resp[3]:  0x00400e00
[ 3148.026205] mmc0: sdhci: Host ctl2: 0x00000801
[ 3148.026209] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x000000081946c20c
[ 3148.026209] mmc0: sdhci: ============================================
[ 3148.095940] mmc0: Got data interrupt 0x00600000 even though no data operation was in progress.
[ 3148.095941] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 3148.095944] mmc0: sdhci: Sys addr:  0x00000008 | Version:  0x00000005
[ 3148.095947] mmc0: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[ 3148.095950] mmc0: sdhci: Argument:  0x00000810 | Trn mode: 0x0000003f
[ 3148.095953] mmc0: sdhci: Present:   0x21df0000 | Host ctl: 0x0000001f
[ 3148.095955] mmc0: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
[ 3148.095958] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000327
[ 3148.095961] mmc0: sdhci: Timeout:   0x00000004 | Int stat: 0x00000000
[ 3148.095964] mmc0: sdhci: Int enab:  0x03ff008b | Sig enab: 0x03ff008b
[ 3148.095966] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 3148.095969] mmc0: sdhci: Caps:      0x396a3281 | Caps_1:   0x1803057f
[ 3148.095972] mmc0: sdhci: Cmd:       0x0000123a | Max curr: 0x000000c8
[ 3148.095975] mmc0: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x03b8ab7f
[ 3148.095977] mmc0: sdhci: Resp[2]:   0x325b5900 | Resp[3]:  0x00400e00
[ 3148.095979] mmc0: sdhci: Host ctl2: 0x00000801
[ 3148.095983] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x000000081946c20c
[ 3148.095983] mmc0: sdhci: ============================================

B. Mounted
[ 3260.883664] mmc0: Got data interrupt 0x00600000 even though no data operation was in progress.
[ 3260.883666] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 3260.883669] mmc0: sdhci: Sys addr:  0x00000100 | Version:  0x00000005
[ 3260.883672] mmc0: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[ 3260.883676] mmc0: sdhci: Argument:  0x026f5000 | Trn mode: 0x0000003f
[ 3260.883678] mmc0: sdhci: Present:   0x21df0000 | Host ctl: 0x0000001f
[ 3260.883681] mmc0: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
[ 3260.883684] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000327
[ 3260.883687] mmc0: sdhci: Timeout:   0x00000004 | Int stat: 0x00000000
[ 3260.883689] mmc0: sdhci: Int enab:  0x03ff008b | Sig enab: 0x03ff008b
[ 3260.883692] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 3260.883695] mmc0: sdhci: Caps:      0x396a3281 | Caps_1:   0x1803057f
[ 3260.883698] mmc0: sdhci: Cmd:       0x0000123a | Max curr: 0x000000c8
[ 3260.883701] mmc0: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x03b8ab7f
[ 3260.883703] mmc0: sdhci: Resp[2]:   0x325b5900 | Resp[3]:  0x00400e00
[ 3260.883705] mmc0: sdhci: Host ctl2: 0x00000801
[ 3260.883709] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x000000081946c20c
[ 3260.883709] mmc0: sdhci: ============================================
[ 3260.908221] mmc0: Got data interrupt 0x00600000 even though no data operation was in progress.
[ 3260.908222] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 3260.908239] mmc0: sdhci: Sys addr:  0x00000100 | Version:  0x00000005
[ 3260.908287] mmc0: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[ 3260.908290] mmc0: sdhci: Argument:  0x026f5400 | Trn mode: 0x0000003f
[ 3260.908293] mmc0: sdhci: Present:   0x217f0000 | Host ctl: 0x0000001f
[ 3260.908296] mmc0: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
[ 3260.908314] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000327
[ 3260.908330] mmc0: sdhci: Timeout:   0x00000004 | Int stat: 0x00000000
[ 3260.908333] mmc0: sdhci: Int enab:  0x03ff008b | Sig enab: 0x03ff008b
[ 3260.908336] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 3260.908339] mmc0: sdhci: Caps:      0x396a3281 | Caps_1:   0x1803057f
[ 3260.908395] mmc0: sdhci: Cmd:       0x0000123a | Max curr: 0x000000c8
[ 3260.908409] mmc0: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x03b8ab7f
[ 3260.908412] mmc0: sdhci: Resp[2]:   0x325b5900 | Resp[3]:  0x00400e00
[ 3260.908413] mmc0: sdhci: Host ctl2: 0x00000801
[ 3260.908443] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x000000081946c20c
[ 3260.908443] mmc0: sdhci: ============================================
[ 3261.245567] mmc0: 1.8V regulator output did not became stable
[ 3261.443434] mmc0: 1.8V regulator output did not became stable
[ 3261.630724] mmc0: 1.8V regulator output did not became stable
[ 3261.820701] mmc0: 1.8V regulator output did not became stable
[ 3262.020303] mmc0: 1.8V regulator output did not became stable
[ 3262.215230] mmc0: 1.8V regulator output did not became stable
[ 3262.409390] mmc0: 1.8V regulator output did not became stable
[ 3262.604807] mmc0: 1.8V regulator output did not became stable
[ 3262.801720] mmc0: 1.8V regulator output did not became stable
[ 3262.997358] mmc0: 1.8V regulator output did not became stable
[ 3263.030446] mmc0: Skipping voltage switch
[ 3263.528570] mmc0: 1.8V regulator output did not became stable
[ 3263.727261] mmc0: 1.8V regulator output did not became stable
[ 3263.924645] mmc0: 1.8V regulator output did not became stable
[ 3264.123108] mmc0: 1.8V regulator output did not became stable
[ 3264.322306] mmc0: 1.8V regulator output did not became stable
[ 3264.521575] mmc0: 1.8V regulator output did not became stable
[ 3264.719420] mmc0: 1.8V regulator output did not became stable
[ 3264.918539] mmc0: 1.8V regulator output did not became stable
[ 3265.112391] mmc0: 1.8V regulator output did not became stable
[ 3265.307370] mmc0: 1.8V regulator output did not became stable
[ 3265.341074] mmc0: Skipping voltage switch

C. Small read and write (unsuccessful and made Dolphin freeze)
[ 3279.203004] mmc0: Got data interrupt 0x00200000 even though no data operation was in progress.
[ 3279.203005] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 3279.203007] mmc0: sdhci: Sys addr:  0x00000040 | Version:  0x00000005
[ 3279.203010] mmc0: sdhci: Blk size:  0x00007200 | Blk cnt:  0x00000000
[ 3279.203013] mmc0: sdhci: Argument:  0x005feed8 | Trn mode: 0x0000003f
[ 3279.203016] mmc0: sdhci: Present:   0x21ff0000 | Host ctl: 0x0000001f
[ 3279.203019] mmc0: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
[ 3279.203022] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000327
[ 3279.203024] mmc0: sdhci: Timeout:   0x00000004 | Int stat: 0x00000000
[ 3279.203027] mmc0: sdhci: Int enab:  0x03ff008b | Sig enab: 0x03ff008b
[ 3279.203030] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 3279.203033] mmc0: sdhci: Caps:      0x396a3281 | Caps_1:   0x1803057f
[ 3279.203036] mmc0: sdhci: Cmd:       0x0000123a | Max curr: 0x000000c8
[ 3279.203038] mmc0: sdhci: Resp[0]:   0x00000900 | Resp[1]:  0x3880984f
[ 3279.203041] mmc0: sdhci: Resp[2]:   0x53433132 | Resp[3]:  0x00035344
[ 3279.203043] mmc0: sdhci: Host ctl2: 0x00000801
[ 3279.203047] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x000000081946c20c
[ 3279.203047] mmc0: sdhci: ============================================

D. Unmount (unsuccessful)
[ 3305.533935] mmc0: Card stuck in wrong state! mmcblk0 card_busy_detect status: 0xd00
[ 3315.557230] mmc0: Card stuck in wrong state! mmcblk0 card_busy_detect status: 0xd00
[ 3325.580546] mmc0: Card stuck in wrong state! mmcblk0 card_busy_detect status: 0xd00

Please remove that. To me it seems more related to this:
https://bbs.archlinux.org/viewtopic.php?id=246658
See the links to a kernel patch


Edit:
plus this is reported here
https://bugzilla.kernel.org/show_bug.cgi?id=204161
maybe you can try the old way, and run each command as root:

rmmod mmc_block
rmmod sdhci-pci
rmmod sdhci
modprobe mmc_block
modprobe sdhci debug_quirks=0x40 debug_quirks2=0x4
modprobe sdhci-pci

see if that changes things, so then you can make use of this, as was done back then in 2015:
https://bugzilla.kernel.org/show_bug.cgi?id=73241#c43

1 Like

Thanks for responding. In a strange fortunate coincidence, I had another computer issue since I first received this laptop recently (a sound issue.) As such I got a replacement motherboard put in yesterday. And wouldn't you know it -- a result I never considered -- this board came with a different, Realtek card reader. And it works perfectly fine, no extra driver or kernel edit needed.

I wish I could confirm how to deal with this issue for the next person with a similar card reader problem, hopefully that person understands the Linux kernel more!

Forum kindly sponsored by