Bug 202473 - RTS525A PCI does not work with SDXC I A2 cards
Summary: RTS525A PCI does not work with SDXC I A2 cards
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: MMC/SD (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_mmc-sd
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-01-31 10:28 UTC by Pablo Catalina
Modified: 2020-04-28 18:32 UTC (History)
21 users (show)

See Also:
Kernel Version: 4.20.5
Tree: Mainline
Regression: No


Attachments
dmesg.log (41.57 KB, text/plain)
2020-04-25 14:55 UTC, Roman Podrezov
Details
SDXC card working.png (44.56 KB, image/png)
2020-04-26 09:47 UTC, Roman Podrezov
Details
sdxc test on 5.5.6 (129.46 KB, image/jpeg)
2020-04-26 10:05 UTC, Roman Podrezov
Details
syslog_04_27.log (2.43 MB, text/plain)
2020-04-27 03:01 UTC, Roman Podrezov
Details

Description Pablo Catalina 2019-01-31 10:28:48 UTC
Hi,

I have a "RTS525A PCI Express Card Reader" on a Lenovo P52. But when I try to use a new SanDisk Extreme MicroSD SDXC-I U3 A2 V30 64GB but I got the following errors when I plug it:

[177480.196874] mmc0: error -110 whilst initialising SD card
[177481.524827] mmc0: error -110 whilst initialising SD card
[177482.852774] mmc0: error -110 whilst initialising SD card


I tried to load the module rtsx_pci with msi_en enabled and disabled (1 , 0), but I got the same errors.

I also tried with other microSDs and works fine (tested with a SanDisk MicroSD HC - (8 GB).


How can I help you to fix the bug and improve the driver to allow this type of MicroSDs?



More info:

# lspci -nnk|grep -A2 RTS525A
70:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader [10ec:525a] (rev 01)
	Subsystem: Lenovo RTS525A PCI Express Card Reader [17aa:225f]
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci


# dmesg | grep -E "rtsx|mmc|70:00"
[    0.620592] pci 0000:70:00.0: [10ec:525a] type 00 class 0xff0000
[    0.620625] pci 0000:70:00.0: reg 0x14: [mem 0xa4200000-0xa4200fff]
[    0.620799] pci 0000:70:00.0: supports D1 D2
[    0.620801] pci 0000:70:00.0: PME# supported from D1 D2 D3hot D3cold
[    2.119656] rtsx_pci 0000:70:00.0: enabling device (0000 -> 0002)
## -> I plugged the 8GB MicroSD HC
[176220.181308] mmc0: new high speed SDHC card at address aaaa
[176220.185188] mmcblk0: mmc0:aaaa SU08G 7.40 GiB 
[176220.186021]  mmcblk0: p1
## -> I removed the card
[176417.207106] mmc0: card aaaa removed
## -> I plugged the 64GB MicroSD SDXC-I A2 U3
[176436.567225] mmc0: error -110 whilst initialising SD card
[176437.895242] mmc0: error -110 whilst initialising SD card
[176439.224191] mmc0: error -110 whilst initialising SD card
## -> I removed the driver and loaded with rtsx_pci msi_en=1
## -> I plugged the 64GB MicroSD SDXC-I A2 U3
[176711.345217] mmc0: error -110 whilst initialising SD card
[176712.673249] mmc0: error -110 whilst initialising SD card
[176714.001234] mmc0: error -110 whilst initialising SD card
## -> I removed the driver and loaded with rtsx_pci msi_en=0
## -> I plugged the 64GB MicroSD SDXC-I A2 U3
[177461.469600] mmc0: error -110 whilst initialising SD card
[177462.797547] mmc0: error -110 whilst initialising SD card
[177464.125494] mmc0: error -110 whilst initialising SD card


I have the MicroSD working fine on Android 9.0 (Moto X4 - Kernel 4.4.153)
Comment 1 Dillo0 2019-03-28 06:16:11 UTC
This error also occurs on my system which uses the RealTek RTS5227 PCIe SD card reader (supported with the same kernel module-rtsx_pci) and a Sandisk Extreme MicroSDXC UHS-I 128GB A2 card

#lspci -nnk
6e:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a] (rev 01)
	Subsystem: Intel Corporation Device [8086:2074]
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci

dmesg output when A2 card is inserted:
[23863.414681] mmc0: error -110 whilst initialising SD card
[23864.722666] mmc0: error -110 whilst initialising SD card
[23866.030690] mmc0: error -110 whilst initialising SD card

I also have two of the past generations of Sandisk Extreme MicroSDXC UHS-I cards, one rated A1 and one without any A rating. When I insert an A1 rated card (Sandisk Extreme MicroSDXC UHS-I 128GB A1), it works perfectly, and dmesg output is:
[24010.109678] mmc0: cannot verify signal voltage switch
[24010.234697] mmc0: new ultra high speed SDR104 SDXC card at address aaaa
[24010.248891] mmcblk0: mmc0:aaaa AFGCF 119 GiB 
[24010.251858]  mmcblk0: p1 p2 p3

When I insert a card with no A ratings (Sandisk Extreme MicroSDXC UHS-I 64GB), the version released directly before the A1 card above, it also works perfectly and I get the following dmesg output:
[24138.409785] mmc0: cannot verify signal voltage switch
[24138.531927] mmc0: new ultra high speed SDR104 SDXC card at address aaaa
[24138.533781] mmcblk0: mmc0:aaaa AFGCE 59.5 GiB 
[24138.534978]  mmcblk0: p1 p2 p3

I also tested this device under different kernel versions. I get identical results in:
openSUSE Leap 15.0 kernel 4.12.13-lp150.12.48-default x86-64 and prior
openSUSE Tumbleweed kernel 5.0.3-1-default x86-64 and prior

I have also tested my Sandisk Extreme A2 rated card in a different reader. It works properly using a Transcend TS-RDF5K USB 3.0 card reader (supported with the USB mass storage kernel module).

Finally, I tested the A2 card in the built in card slot on a Raspberry Pi 3B running openSUSE aarch64 (ARM64) with the following kernels and it works properly:
openSUSE Leap 15.0 kernel 4.12.14-lp150.12.48-default aarch64
openSUSE Tumbleweed kernel 4.20.13-1-default aarch64

On the Raspberry Pi 3B, it's connected directly to the SDIO bus on the SOC, and is supported by the kernel module sdhost_bcm2835

Let me know if there is additional information I can provide.
Comment 2 Václav Skála 2019-04-09 08:02:41 UTC
Possibly duplicate of bug https://bugzilla.kernel.org/show_bug.cgi?id=93201.
Comment 3 Stéphane 2019-05-29 15:53:06 UTC
Hi,

I've got a similar bug with an RTS525A.

"mmc0: error -110 whilst initialising SD card"

PC: Dell XPS 9570, 2018

OS: Ubuntu 19.04, Linux 5.0.0-15-generic

SD CARD: SanDisk 128Go SDXC V30, U3, 95 mb/s

(The card works fine with Windows 10)

I also tried with a Samsung 64 Go SD, U1, which work really fine with both OS.

This is my log extract:

[ 4402.943821] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
[ 4402.955685] mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[ 4402.968446] mmc0: starting CMD52 arg 00000c00 flags 00000195
[ 4403.071711] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4403.071729] mmc0: starting CMD52 arg 80000c08 flags 00000195
[ 4403.175826] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4403.175845] mmc0: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 1 timing 0
[ 4403.177565] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 4403.178130] mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 4403.179905] mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[ 4403.181463] mmc0: starting CMD8 arg 000001aa flags 000002f5
[ 4403.182327] mmc0: req done (CMD8): 0: 000001aa 00000000 00000000 00000000
[ 4403.182344] mmc0: starting CMD5 arg 00000000 flags 000002e1
[ 4403.283543] mmc0: req failed (CMD5): -110, retrying...
[ 4403.387842] mmc0: req failed (CMD5): -110, retrying...
[ 4403.491844] mmc0: req failed (CMD5): -110, retrying...
[ 4403.595659] mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
[ 4403.595679] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4403.596518] mmc0: req done (CMD55): 0: 00400120 00000000 00000000 00000000
[ 4403.596534] mmc0: starting CMD41 arg 00000000 flags 000000e1
[ 4403.597328] mmc0: req done (CMD41): 0: 00ff8080 00000000 00000000 00000000
[ 4403.597347] mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
[ 4403.600073] mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 7 width 1 timing 0
[ 4403.615747] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
[ 4403.627719] mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4403.639721] mmc0: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 7 width 1 timing 0
[ 4403.641077] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 4403.641506] mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 4403.642842] mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4403.644158] mmc0: starting CMD8 arg 000000aa flags 000002f5
[ 4403.747838] mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
[ 4403.747856] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4403.748682] mmc0: req done (CMD55): 0: 00c00120 00000000 00000000 00000000
[ 4403.748700] mmc0: starting CMD41 arg 11000080 flags 000000e1
[ 4403.851751] mmc0: req done (CMD41): -110: 00000000 00000000 00000000 00000000
[ 4403.851770] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4403.955752] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4403.955771] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4404.059857] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4404.059875] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4404.163867] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4404.163885] mmc0: error -110 whilst initialising SD card
[ 4404.163893] mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4404.164132] mmc0: starting CMD1 arg 00000000 flags 000000e1
[ 4404.267869] mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
[ 4404.267888] mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
[ 4404.269670] mmc0: mmc_rescan_try_freq: trying to init card at 300000 Hz
[ 4404.269677] mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 1 timing 0
[ 4404.283848] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
[ 4404.295751] mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[ 4404.307750] mmc0: starting CMD52 arg 00000c00 flags 00000195
[ 4404.411875] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4404.411893] mmc0: starting CMD52 arg 80000c08 flags 00000195
[ 4404.515737] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4404.515745] mmc0: clock 300000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 1 timing 0
[ 4404.517111] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 4404.517485] mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 4404.518771] mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[ 4404.520135] mmc0: starting CMD8 arg 000001aa flags 000002f5
[ 4404.520767] mmc0: req done (CMD8): 0: 000001aa 00000000 00000000 00000000
[ 4404.520770] mmc0: starting CMD5 arg 00000000 flags 000002e1
[ 4404.623791] mmc0: req failed (CMD5): -110, retrying...
[ 4404.727897] mmc0: req failed (CMD5): -110, retrying...
[ 4404.831844] mmc0: req failed (CMD5): -110, retrying...
[ 4404.935951] mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
[ 4404.935970] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4404.936778] mmc0: req done (CMD55): 0: 00400120 00000000 00000000 00000000
[ 4404.936794] mmc0: starting CMD41 arg 00000000 flags 000000e1
[ 4404.937609] mmc0: req done (CMD41): 0: 00ff8080 00000000 00000000 00000000
[ 4404.937627] mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
[ 4404.940376] mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 7 width 1 timing 0
[ 4404.956039] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
[ 4404.967778] mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4404.979779] mmc0: clock 300000Hz busmode 2 powermode 2 cs 1 Vdd 7 width 1 timing 0
[ 4404.981158] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 4404.981719] mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 4404.983070] mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4404.984462] mmc0: starting CMD8 arg 000000aa flags 000002f5
[ 4405.087904] mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
[ 4405.087923] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4405.088748] mmc0: req done (CMD55): 0: 00c00120 00000000 00000000 00000000
[ 4405.088767] mmc0: starting CMD41 arg 11000080 flags 000000e1
[ 4405.192753] mmc0: req done (CMD41): -110: 00000000 00000000 00000000 00000000
[ 4405.192771] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4405.295589] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4405.295607] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4405.399915] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4405.399934] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4405.503928] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4405.503945] mmc0: error -110 whilst initialising SD card
[ 4405.503953] mmc0: clock 300000Hz busmode 1 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4405.504167] mmc0: starting CMD1 arg 00000000 flags 000000e1
[ 4405.607930] mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
[ 4405.607948] mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
[ 4405.609685] mmc0: mmc_rescan_try_freq: trying to init card at 250000 Hz
[ 4405.609692] mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 1 timing 0
[ 4405.623906] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
[ 4405.635806] mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[ 4405.647811] mmc0: starting CMD52 arg 00000c00 flags 00000195
[ 4405.751930] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4405.751949] mmc0: starting CMD52 arg 80000c08 flags 00000195
[ 4405.855942] mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
[ 4405.855961] mmc0: clock 250000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 1 timing 0
[ 4405.857662] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 4405.858203] mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 4405.859770] mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
[ 4405.861269] mmc0: starting CMD8 arg 000001aa flags 000002f5
[ 4405.862098] mmc0: req done (CMD8): 0: 000001aa 00000000 00000000 00000000
[ 4405.862116] mmc0: starting CMD5 arg 00000000 flags 000002e1
[ 4405.963950] mmc0: req failed (CMD5): -110, retrying...
[ 4406.067859] mmc0: req failed (CMD5): -110, retrying...
[ 4406.171905] mmc0: req failed (CMD5): -110, retrying...
[ 4406.275956] mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
[ 4406.275976] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4406.276790] mmc0: req done (CMD55): 0: 00400120 00000000 00000000 00000000
[ 4406.276806] mmc0: starting CMD41 arg 00000000 flags 000000e1
[ 4406.277620] mmc0: req done (CMD41): 0: 00ff8080 00000000 00000000 00000000
[ 4406.277638] mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
[ 4406.280433] mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 7 width 1 timing 0
[ 4406.295730] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
[ 4406.307743] mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4406.320453] mmc0: clock 250000Hz busmode 2 powermode 2 cs 1 Vdd 7 width 1 timing 0
[ 4406.321825] mmc0: starting CMD0 arg 00000000 flags 000000c0
[ 4406.322363] mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 4406.323724] mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4406.325121] mmc0: starting CMD8 arg 000000aa flags 000002f5
[ 4406.427864] mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
[ 4406.427884] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4406.428550] mmc0: req done (CMD55): 0: 00c00120 00000000 00000000 00000000
[ 4406.428564] mmc0: starting CMD41 arg 11000080 flags 000000e1
[ 4406.531970] mmc0: req done (CMD41): -110: 00000000 00000000 00000000 00000000
[ 4406.531988] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4406.635872] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4406.635890] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4406.739865] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4406.739883] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4406.843983] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
[ 4406.844001] mmc0: error -110 whilst initialising SD card
[ 4406.844010] mmc0: clock 250000Hz busmode 1 powermode 2 cs 0 Vdd 7 width 1 timing 0
[ 4406.844224] mmc0: starting CMD1 arg 00000000 flags 000000e1
[ 4406.947988] mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
[ 4406.948006] mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0


I hope it can help.


I have few different 'req done' messages:

[ 4406.739883] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4406.843983] mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000

[ 4403.181463] mmc0: starting CMD8 arg 000001aa flags 000002f5
[ 4403.182327] mmc0: req done (CMD8): 0: 000001aa 00000000 00000000 00000000

[ 4406.275976] mmc0: starting CMD55 arg 00000000 flags 000000f5
[ 4406.276790] mmc0: req done (CMD55): 0: 00400120 00000000 00000000 00000000

[ 4406.276806] mmc0: starting CMD41 arg 00000000 flags 000000e1
[ 4406.277620] mmc0: req done (CMD41): 0: 00ff8080 00000000 00000000 00000000
Comment 4 Anton Gubarkov 2019-05-29 18:18:50 UTC
Here is the log from my Lenovo P52 with Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)


мая 29 21:16:02 PF16W6Y2 kernel: mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz
мая 29 21:16:02 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:02 PF16W6Y2 kernel: rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD52 arg 00000c00 flags 00000195
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD52 arg 80000c08 flags 00000195
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD0 arg 00000000 flags 000000c0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD8 arg 000001aa flags 000002f5
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD8): 0: 000001aa 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD5 arg 00000000 flags 000002e1
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD55): 0: 00400120 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD41 arg 00000000 flags 000000e1
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD41): 0: 00ff8080 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 7 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD0 arg 00000000 flags 000000c0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD8 arg 000000aa flags 000002f5
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD55): 0: 00c00120 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD41 arg 11000080 flags 000000e1
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: req done (CMD41): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:03 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: error -110 whilst initialising SD card
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD1 arg 00000000 flags 000000e1
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: mmc_rescan_try_freq: trying to init card at 300000 Hz
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD52 arg 00000c00 flags 00000195
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD52 arg 80000c08 flags 00000195
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 300000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD0 arg 00000000 flags 000000c0
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD8 arg 000001aa flags 000002f5
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD8): 0: 000001aa 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD5 arg 00000000 flags 000002e1
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD55): 0: 00400120 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: starting CMD41 arg 00000000 flags 000000e1
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: req done (CMD41): 0: 00ff8080 00000000 00000000 00000000
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:04 PF16W6Y2 kernel: rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 300000Hz busmode 2 powermode 2 cs 1 Vdd 7 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD0 arg 00000000 flags 000000c0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 300000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD8 arg 000000aa flags 000002f5
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD55): 0: 00c00120 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD41 arg 11000080 flags 000000e1
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD41): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: error -110 whilst initialising SD card
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 300000Hz busmode 1 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD1 arg 00000000 flags 000000e1
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: mmc_rescan_try_freq: trying to init card at 250000 Hz
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD52 arg 00000c00 flags 00000195
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD52 arg 80000c08 flags 00000195
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD52): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 250000Hz busmode 2 powermode 2 cs 1 Vdd 21 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD0 arg 00000000 flags 000000c0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 1 timing 0
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD8 arg 000001aa flags 000002f5
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req done (CMD8): 0: 000001aa 00000000 00000000 00000000
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: starting CMD5 arg 00000000 flags 000002e1
мая 29 21:16:05 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req failed (CMD5): -110, retrying...
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD5): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD55): 0: 00400120 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD41 arg 00000000 flags 000000e1
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD41): 0: 00ff8080 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:06 PF16W6Y2 kernel: rtsx_pci_sdmmc rtsx_pci_sdmmc.0: Initial signal voltage of 3.3v
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: clock 250000Hz busmode 2 powermode 2 cs 1 Vdd 7 width 1 timing 0
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD0 arg 00000000 flags 000000c0
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD0): 0: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: clock 250000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD8 arg 000000aa flags 000002f5
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD8): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD55): 0: 00c00120 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD41 arg 11000080 flags 000000e1
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD41): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD55 arg 00000000 flags 000000f5
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD55): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: error -110 whilst initialising SD card
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: clock 250000Hz busmode 1 powermode 2 cs 0 Vdd 7 width 1 timing 0
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: starting CMD1 arg 00000000 flags 000000e1
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: req done (CMD1): -110: 00000000 00000000 00000000 00000000
мая 29 21:16:06 PF16W6Y2 kernel: mmc0: clock 0Hz busmode 2 powermode 0 cs 0 Vdd 0 width 1 timing 0
Comment 5 Sean Clayton 2019-07-29 16:59:59 UTC
I’d like to confirm this is also happening to me on my Surface Go. The external card reader works fine, slower and smaller cards work in the internal slot but a 256 gb ScanDisk SDXC card does not work, giving the errors listed above. Would love to know a workaround or a actionable item I can take.
Comment 6 kernelorg 2019-08-06 19:14:37 UTC
I can also confirm the same error with a Dell Latitude 11 5175 using the same card reader - Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01).

SD card is SanDisk Extreme Pro MicroSD SDXC-I U3 A2 V30 64GB. All other SDs work fine and this card works with an external reader.

Error:

[   83.263337] mmc0: error -110 whilst initialising SD card
[   84.590299] mmc0: error -110 whilst initialising SD card
[   85.918313] mmc0: error -110 whilst initialising SD card
[  587.417055] mmc0: error -110 whilst initialising SD card
Comment 7 yoshi.mxlinux 2019-08-07 20:29:47 UTC
Same with RTS5229 and SanDisk 64GB Extreme microSDXC UHS-I - C10, U3, V30, 4K, A2, (SDSQXA2-064G-GN6MA) 

Kernel version 4.19.0.1, 4.19.0.5 and 4.20.12


$ lspci
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
	Subsystem: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader
	Flags: bus master, fast devsel, latency 0, IRQ 128
	Memory at 91200000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [40] Power Management version 3
	Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
	Capabilities: [70] Express Endpoint, MSI 00
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [140] Device Serial Number 00-00-00-01-00-4c-e0-00
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci

$ dmesg
[  622.574219] rtsx_pci 0000:01:00.0: enabling device (0000 -> 0002)
[  704.256310] mmc1: error -110 whilst initialising SD card
[  705.568275] mmc1: error -110 whilst initialising SD card
[  706.880152] mmc1: error -110 whilst initialising SD card


Other Card like Sandisc Ultra 64 Gb work without problems with  rtsx_pci

compiled the module rts5229 from the Realtek webpage (source needs some modifications to compile) but card is not detected when plugged while system running.
To trigger detection I did: "sudo mount /dev/sda <mountpoint>"
That triggers detection of the card and automount.
But additional troubles with LUKS unmount and occasional crashes of the rts5229 driver make it unusable.

Pls fix rtsx_pci
Comment 8 Philip Langdale 2019-08-08 01:37:21 UTC
I did some quick investigation and the problem is related to the fact that the driver sets MMC_CAP2_FULL_PWR_CYCLE. If I remove this cap, my A2 card works fine. This cap is set unconditionally in the driver and was added back in 2014 (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=517bf80fe74494e2d7f185c107085cde11f0e9a4).

Obviously, the handling of the cap is in the core mmc code, and I took a look through, and I believe the only thing it changes is how initial voltage selection works (there are two places in the true-mmc-card path too, but these should not be relevant for SD cards).

That means the implementation of mmc_select_voltage() differs, but for a fancy card like we're discussing here, the ultimate voltage selection is done using a UHS specific mechanism that isn't affected by this flag, so you do end up at the right voltage. I haven't had the time to debug all the way through the core code so I don't know exactly which part is failing.

So anyway, if you're in a position to rebuild your kernel (or at least the driver - it's one file with no weird dependencies, so an out-of-tree compile is trivial), the fix/workaround is simple.
Comment 9 Philip Langdale 2019-08-09 00:07:48 UTC
I was asked out of band what cards I tested with. I don't have my full collection with me right now, but I tested with a Sandisk 400GB U3 A2 (that requires the modification to work) and a couple of old ones. a 32GB Class 4 SDHC and a very old 256MB plain old SD. The old ones work with or without the modification.

Caveats: My machine only has a microSD reader, so I could not test any full size cards, and importantly, couldn't test any true-mmc cards. In terms of SD card types, I don't have any almost-modern cards (SDR50/DDR50 cards) here so did not test that. I also don't know whether this change breaks non-UHS voltage switching. These old cards can (or only) operate at 3.3V so we wouldn't notice if switching failed.
Comment 10 Stéphane 2019-08-10 21:44:40 UTC
Hi,

Thank you very much for this workaround ! I've tried it with my Dell XPS laptop and it work.

I comment the line in rtsx_pci.c file:

// mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP | MMC_CAP2_FULL_PWR_CYCLE;

Then compiled my kernel and it work successfully as predicted with my SanDisk 128 U3 sd card that failed before.

I've got theses messages from dmesg command with the modification:

[   15.573684] pci 0000:01:00.0: Refused to change power state, currently in D3
[   60.656538] mmc0: cannot verify signal voltage switch
[   60.784308] mmc0: new ultra high speed SDR104 SDXC card at address aaaa
[   60.808589] mmcblk0: mmc0:aaaa SR128 119 GiB 
[   60.810889]  mmcblk0: p1

I hope that a real fix will be possible in mmc_core in the future, thank again for identifying this issue.
Comment 11 Sean Clayton 2019-08-16 07:49:40 UTC
Philip! You have saved me so much frustration. With this workaround I was able to use my surface go to dual boot ubuntu by building a custom kernel with the great details put forward by Stéphane. There have been no problems (yet) and I would love to get back in the standard Kernel Stream. Kindest Regards.
Comment 12 Kete Tefid 2019-08-16 09:52:37 UTC
The mentioned workaround did not work for me. I tested it on a Thinkpad P52. I clearly remember that this used to work without any tweaking and a new kernel has provoked the problem but I do not remember which one.
Comment 13 Philip Langdale 2019-08-16 18:00:29 UTC
I sent a patch to the mailing list for consideration, but no response yet.

https://patchwork.kernel.org/patch/11088719/
Comment 14 Jerónimo Borque 2019-08-19 02:16:56 UTC
Added your patch to Fedora's 30 kernel 5.2.9 and tested with many different SD cards.
The patch fixed the issue using a SanDisk Extreme 32Gb U1 micro sd card with the Realtek RTS522A PCI Express Card Reader in my PC.
No issues seen with other SD card types and sizes from various vendors.
Thank you!
Comment 15 Philip Langdale 2019-08-29 15:17:27 UTC
Here's the final patch: https://patchwork.kernel.org/patch/11116271/

Ultimate conclusion is that the card is sort-of-out-of-spec because it sets a flag that isn't really defined in the SD spec, but the mmc subsystem should be explicitly ignoring that flag, but wasn't. Now it does.
Comment 16 Stéphane 2019-08-29 19:33:25 UTC
I reversed the workaround and tested the new patch : it work perfectly ! Thank you very much for your time on this issue.
 
I hope it will be include soon to the kernel.

Cheers
Comment 17 ufospoke 2019-09-01 18:56:35 UTC
(In reply to Jerónimo Borque from comment #14)
> Added your patch to Fedora's 30 kernel 5.2.9 and tested with many different
> SD cards.

I confirm that on Fedora 30 with kernel 5.2.9 it works! but apparently also with kernel 5.2.5 (for my ScanDisk Extreme SDXC I  U1 64 Gb card). My card reader is Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader on DELL XPS15 9550.
Comment 18 Matt Price 2019-09-16 13:39:59 UTC
I am not currently in a position to patch my kernel, and am not that familiar with patchwork -- has the patch been submitted upstream & is there any prospect of it getting accepted?
Comment 19 Philip Langdale 2019-09-16 15:38:21 UTC
The patch was merged into 5.3 and all the active stable branches, so you can get it right now. Unfortunately, I can't lose this bug report.
Comment 20 Matt Price 2019-09-17 21:49:37 UTC
@Phillip thanks for the info, looks like 5.3 will make its way to Arch shortly, hopefully it will fix my issue too!
Comment 21 Roman Podrezov 2020-04-11 13:28:17 UTC
I have the same problem on RTS522A with hp probook430g5 laptop:

[ 1889.177540] mmc0: cannot verify signal voltage switch
[ 1889.488219] mmc0: error -110 whilst initialising SD card


03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)

SD card is QUMO MicroSDXC Card 64GB UHS-I SD 3.0 Compatible and this card was tested on other PC with other OS and works fine.

Problem appears with installed kernel 5.3.0-46-generic on Ubuntu 19.10. Also, I tested other card (Kingston 16GB microSDHC), it works fine with this kernel/driver/cardreader.

I have no skill to compile driver or to apply patch to kernel. And as far I understand, my kernel already contains that bugfix, but problem, probably, still exists.
Comment 22 lacksfish 2020-04-19 13:18:32 UTC
I can confirm this issue is newly occurring  on Ubuntu 19.10 on kernel 5.3.0-46
I am using a 400GB SanDisk Ultra SDXC class10 A1

It stopped working after an update to 19.10, which included a kernel update. Something must've changed, which broke it.
This card was working fine non-stop beforehand.

Details:

$ uname -r
5.3.0-46-generic

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 19.10
Release:	19.10
Codename:	eoan

$ lspci -nnk
...
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader [10ec:525a] (rev 01)
	Subsystem: Lenovo ThinkPad X1 Carbon 5th Gen [17aa:224f]
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci
...

What can I do to fix this? Downgrade kernel? Wait for an update? I kinda need this card to work to continue working ...
Comment 23 lacksfish 2020-04-20 06:23:26 UTC
FWIW, downgrading the kernel to 5.0.0-38-generic did *not* help
Comment 24 Dillo0 2020-04-20 13:26:21 UTC
I was able to test this on Ubuntu 19.10 Eoan Ermine, and the Sandisk Extreme UHS-I A1 microSDXC 128 GB card and the Sandisk Extreme UHS-I A2 microSDXC 128 GB card, and it still works on my system with the RTS5227. Initially this problem was specific to the A2 cards. The A1 cards used to work fine.

Is it possible for either of you to test this when running a different distro and kernel? You could install Linux on a USB stick and test it there. OpenSUSE Tumbleweed is on the 5.6 kernel, and everything works on my machine when I run that. That would help rule out problems with newer kernels and see if it's a distro-related issue.
Comment 25 ufospoke 2020-04-20 16:16:42 UTC
I just tested with ScanDisk Extreme U1 64 Gb (one that did not work some years ago) and it works fine with Fedora 30 and kernels 5.3.14 and 5.5.10.
Comment 26 Dillo0 2020-04-20 16:43:38 UTC
I did tests with the following: Sandisk Extreme UHS-I A1 microSDXC 128 GB card and the Sandisk Extreme UHS-I A2 microSDXC 128 GB card (one of which did not work before this was fixed, and I can confirm that it works fine with the following:

openSUSE Leap 15.1 kernel-default-4.12.14-lp151.28.44.1.x86_64 (patch was backported into this older kernel)
openSUSE Leap 15.2 (beta) kernel-default-5.3.18-lp152.10.4.x86_64
openSUSE Tumbleweed kernel-default-5.6.4-1.2.x86_64

# lspci -nnk
6e:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader [10ec:522a] (rev 01)
	Subsystem: Intel Corporation Device [8086:2074]
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci
Comment 27 lacksfish 2020-04-21 08:41:52 UTC
I am so sorry for the confusion. It turns out my SDXC card is most likely defective, surprisingly exactly since the update to Ubuntu 19.10 ...


Thanks for the reply and the help, I highly appreciate it! I have returned the card, as it is only 8 months old... It's just so strange to be working exactly until the update to 19.10. What gives.

Hope all is well and stay safe, stay home :)
Comment 28 Roman Podrezov 2020-04-25 14:55:56 UTC
Created attachment 288725 [details]
dmesg.log
Comment 29 Dillo0 2020-04-25 16:10:55 UTC
(In reply to Roman Podrezov from comment #28)
> Created attachment 288725 [details]
> dmesg.log

Hello Roman,
Could you test the card in your system with a different card reader first to see if the card itself is working? Once you do that and the card is still working, see if you can run another Linux distribution on your computer temporarily with a newer kernel (Possibly on a thumbdrive) to see if the card reader can read your card. Keep us posted!
Comment 30 Roman Podrezov 2020-04-26 09:47:04 UTC
Created attachment 288731 [details]
SDXC card working.png

I used qemu_kvm to pass cardreader device to guest windows. And it works well. I can create and write files. So, I made conclusion that hardware is ok both cardreader and card.
Comment 31 Roman Podrezov 2020-04-26 10:05:21 UTC
Created attachment 288733 [details]
sdxc test on 5.5.6

Hello Dillo0,

Also, I tried archlinux bootable usb flashdrive with 5.5.6 kernel version. The issue has been reproduced.

dmesg.log, that I have sent previously, was achieved using 5.3.18 kernel local debug build on ubuntu 19.10. But I'm not sure exactly about this version, because uname output is as follows:

roman@probook430:~/mmc_debug/linux-source-5.3.0$ uname -a
Linux probook430 5.3.18 #3 SMP Sat Apr 25 21:01:13 +07 2020 x86_64 x86_64 x86_64 GNU/Linux

but source folder name differs from that version. So, I'm litlle bit confused about the version. Anyway it's not lesser than 5.3.0-46.

I can carry out additional experiments, if needed.

Best regars,
Roman.
Comment 32 Roman Podrezov 2020-04-27 03:01:38 UTC
Created attachment 288753 [details]
syslog_04_27.log

Hello,

Somehow card was detected today, when it was being inserted long time and I woke up laptop from standby mode. I don't know exact reason, maybe syslog can help to analyze this. But after ejecting and inserting, the card wasn't detected again.

Best regards,
Roman.

Note You need to log in before you can comment on or make changes to this bug.