Issue with SD-Card Reader on Dell XPS 15 7590

Hello,

I’m currently facing difficulties with my SD-Card reader on my Dell XPS 15 7590 running Fedora 39. The card reader was working well about a year ago (also on Linux).

The problem is that nautilus does not recognize it and neither does lsblk so I cannot mount (or even see sd-cards anywhere) it.

I’ve confirmed that the SD card is readable on a Windows laptop. In my attempt to troubleshoot, I came across the following information:

  • According to this Arch Linux article, the SD card reader should be functioning on Arch Linux.
  • When using the lspci command, I received the following output:
~ ❯ lspci | grep -i card
3c:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)

Do you have any suggestions or solutions to resolve this issue?

Thank you in advance for your assistance,
Samuel




# System Details Report

## Hardware Information:
- **Hardware Model:**                              Dell Inc. XPS 15 7590
- **Memory:**                                      16.0 GiB
- **Processor:**                                   Intel® Core™ i7-9750H × 12
- **Graphics:**                                    Intel® UHD Graphics 630 (CFL GT2)
- **Graphics 1:**                                  NVIDIA GeForce GTX 1650
- **Disk Capacity:**                               512.1 GB

## Software Information:
- **Firmware Version:**                            1.25.0
- **OS Name:**                                     Fedora Linux 39 (Workstation Edition)
- **OS Build:**                                    (null)
- **OS Type:**                                     64-bit
- **GNOME Version:**                               45.3
- **Windowing System:**                            Wayland
- **Kernel Version:**                              Linux 6.6.13-200.fc39.x86_64
# Detailed `lspci -nnvv` output:

3c:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader [10ec:525a] (rev 01)
	Subsystem: Dell Device [1028:0905]
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 133
	Region 1: Memory at ed300000 (32-bit, non-prefetchable) [size=4K]
	Capabilities: [80] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0-,D1+,D2+,D3hot+,D3cold+)
		Status: D3 NoSoftRst- PME-Enable+ DSel=0 DScale=0 PME-
	Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee003f8  Data: 0000
	Capabilities: [b0] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 512 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 10W
		DevCtl:	CorrErr- NonFatalErr- FatalErr- UnsupReq-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 <64us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1
			TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Not Supported, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp- 10BitTagReq- OBFF Via message/WAKE#, ExtFmt- EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
			 AtomicOpsCtl: ReqEn-
		LnkCap2: Supported Link Speeds: 2.5-5GT/s, Crosslink- Retimer- 2Retimers- DRS-
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [100 v2] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
		AERCap:	First Error Pointer: 00, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
			MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
		HeaderLog: 00000000 00000000 00000000 00000000
	Capabilities: [148 v1] Device Serial Number 00-00-00-01-00-4c-e0-00
	Capabilities: [158 v1] Latency Tolerance Reporting
		Max snoop latency: 3145728ns
		Max no snoop latency: 3145728ns
	Capabilities: [160 v1] L1 PM Substates
		L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
			  PortCommonModeRestoreTime=60us PortTPowerOnTime=60us
		L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
			   T_CommonMode=0us LTR1.2_Threshold=126976ns
		L1SubCtl2: T_PwrOn=60us
	Kernel driver in use: rtsx_pci
	Kernel modules: rtsx_pci

Do you get any messages in dmesg when you plug in or remove the SD card?

Yes I do:

[  600.197143] mmc0: new high speed SD card at address 0002
[  600.220390] mmcblk0: mmc0:0002 00000 1.91 GiB
[  600.652672] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.652689] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[  600.663658] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.663675] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[  600.675719] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.675738] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[  600.675814] ldm_validate_partition_table(): Disk read failed.
[  600.684007] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.684024] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[  600.692508] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.692525] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[  600.700084] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.700102] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[  600.708051] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.708068] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[  600.708161]  mmcblk0: unable to read partition table
[  600.732620] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
[  600.740759] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[  600.740777] Buffer I/O error on dev mmcblk0, logical block 0, async page read

So, the good news is your SD card reader is detected. The bad news is your SD card or reader is failing. Do you have another SD card and/or reader handy you could test with to narrow it down?

It seems more likely to be a bad SD card given the the card is detected but it can’t read the partition table.

1 Like

I tried two SD Cards that worked on a separate Windows Computer.

The common link is therefor my card reader.

Does this mean the card reader is broken then?

It seems like we’re heading in that direction. Do you have another SD card reader you might be able to use instead with these SD cards on your Fedora machine?

Check that the contacts in the card reader are clean and free of corrosion. There was a 2019 Dell update for this card. Memory card readers are often enabled at boot, so it is possible the linux driver requires that update to be present.

Based on the logs, the driver is loaded just fine. It detects the card, but fails to actually read the filesystem/partition data from it, which most likely indicates a hardware level problem.

Agree. If the reader has been heavily used, or was used in a dusty or damp environment, contacts may no longer be reliable.

Cleaning with lint-free shop towel folded over a bit of cardboard may help, and the “contact enhancer” sold at auto parts stores often salvages dodgy connectors.

Unfortunately I do not have an external SD card reader I can use.

I tried cleaning it with compressed air and a tiny towel. This did not help.


I might have killed the reader completely :confused: but its not the end of the world. My workflow does not normally require a SD card reader.