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: 2019-04-09 08:02 UTC (History)
3 users (show)

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


Attachments

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.

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