SteamOS icon indicating copy to clipboard operation
SteamOS copied to clipboard

SD Card File Corruption on Legion Go

Open PeronGH opened this issue 6 months ago • 41 comments

Your system information

  • Steam client version: 23rd June
  • SteamOS version: 3.7.12
  • Opted into Steam client beta?: Yes
  • Opted into SteamOS beta?: Yes
  • Have you checked for updates in Settings > System?: Yes

Please describe your issue in as much detail as possible:

I am reporting this bug two weeks after I stopped using SteamOS. I did this because I needed to identify whether this issue is specific to SteamOS, so I tried other operating systems. The answer is yes.

I was using a Legion Go with a Samsung Pro Plus 512GB formatted to ext4 using Steam's 'Format SD Card' option. Games installed on the SD card crash randomly, and then the game files become corrupted. However, games in internal storage have been perfectly fine.

I think this issue is related to the file system. After using steamos-btrfs and formatting my SD card to btrfs, the issue was gone. However, btrfs on the SD card seems to have compatibility issues with some games. This is because some games still crash at a specific point on CachyOS.

So, I eventually switched to CachyOS and formatted my SD card back to ext4 using Steam's 'Format SD Card' feature on CachyOS. Everything has worked fine since then, and it seems that installing games to the SD card is a lot faster with CachyOS.

Steps for reproducing this issue:

  1. Format the SD card using Steam's 'Format SD Card' option.
  2. Play any game that was installed on the SD card for a while.
  3. The game crashes; some games just crash while others show "LowLevelFatalError".
  4. Depending on the game, some games will no longer launch unless file integrity is verified; others may launch but will crash at the same point every time.

PeronGH avatar Jul 08 '25 19:07 PeronGH

I may be seeing something related: Since I replaced Windows on my Legion Go OG with SteamOS, the sd card regularly fails when trying to install games with 'write error'. Ejecting the card and re-inserting allows me to continue installing, though sometimes requiring verifying the files.

I've not been able to play much games yet, as I'm still installing.. ;)

But this issue did not happen under windows.

franko-f avatar Jul 21 '25 10:07 franko-f

I don't really have anything to add but I have definitely seen file integrity issues on my Legion Go using an SD card as well. The fact it works for you with CachyOS makes me think it's some sort of ext4 kernel issue that is resolved in a later kernel, but that's just a guess on my part.

matte-schwartz avatar Jul 22 '25 17:07 matte-schwartz

Are you able to have a look at the journal when those problems happen? We would need to see if there's anything suspicious there.

If you're not familiar with interpreting the journal maybe you can paste the output of something like sudo journalctl -b | grep -E 'mmc|ext4|block-device-event'

bertogg avatar Jul 23 '25 15:07 bertogg

Are you able to have a look at the journal when those problems happen? We would need to see if there's anything suspicious there.

If you're not familiar with interpreting the journal maybe you can paste the output of something like sudo journalctl -b | grep -E 'mmc|ext4|block-device-event'

Thank you for your follow-up. Unfortunately, I have switched to CachyOS, so I cannot provide the logs right now. If no one else is able to provide the logs, I may consider switching back to SteamOS to conduct a bit more testing and get the logs.

PeronGH avatar Jul 23 '25 21:07 PeronGH

Will get a system report and Steam logs for you next time it happens here @bertogg

matte-schwartz avatar Jul 24 '25 08:07 matte-schwartz

me too same issue...

JaehoonHwang-HancomINS avatar Aug 29 '25 00:08 JaehoonHwang-HancomINS

@JaehoonHwang-HancomINS can you grab a system report? Settings -> System -> Advanced -> System Report -> Create Report

matte-schwartz avatar Aug 29 '25 00:08 matte-schwartz

Hi all,

I have been able to replicate this on my Lenovo Legion Go S with a 512GB Sandisk micro-SD card multiple times. I have attached a system report, journal and dmesg from the last boot session when it happened.

I was thankfully able to unmount the SD card, fsck the filesystem and fix it but that doesn't always work, sometimes the SD card requires a complete reformat.

dmesg-log.txt journal-log.txt systemreport-20250929041619.txt

patrickrifici avatar Sep 29 '25 04:09 patrickrifici

Just an update on some further testing: it doesn't appear to have any sort of pattern or specific replicable conditions. I have had it happen when the SD card is both near full and not, I have had it happen with different games being installed, I have had it happen with games being installed and moved (both to and from the SD card). I have had some games show limited corruption when being on the SD card (eg: Grim Dawn had corrupted menu graphics until moved to the internal SSD) and some games refuse to launch at all (which then work on the internal SSD).

I have just had it happen again while moving a game from the SD card to the internal SSD, please see attached for a fresh dmesg and journal.

dmesg-log-updated.txt journal-log-updated.txt

patrickrifici avatar Oct 01 '25 05:10 patrickrifici

And one more update: I created a custom polkit rule to allow "deck" to mount disks without authorization, manually formatted and mounted the SD card as BTRFS as attempted to reinstall some games onto it.

In a matter of minutes the BTRFS filesystem had corruption too. I have attached the dmesg and journal from that test.

At this point it seems SD cards don't function as expected in the Legion Go S via SteamOS.

dmesg-log-btrfs.log journal-log-btrfs.log

patrickrifici avatar Oct 01 '25 06:10 patrickrifici

Hi all, apologies for spamming this topic with updates. I have now switched to the "main" branch of SteamOS, which has kernel 6.16.7. I have been installing and tinkering with ~500GB of games on the SD card for the last couple of hours and so far have had no corruption. In addition, games that didn't launch before on the SD card now launch and play as expected.

There is a minor issue where some games need to be verified on install and re-download some files, but it tends to only happen once per affected game and I think may be unrelated.

I suspect this may be a kernel version issue. I did do a bit of searching to see if there were any reported filesystem issues on 6.11.1 but couldn't find anything. I do hope the above helps.

EDIT: Spoke to soon all, my SD card corrupted itself after a reboot.

patrickrifici avatar Oct 02 '25 08:10 patrickrifici

dmesg-xfs-log.txt journal-xfs-log.txt

Hi all, I think I have a solid theory as to what is causing the issue on the Legion Go. Bear in mind that I only have my hardware to test on so we might need a wider sample size to confirm.

I have left the SD card formatted but un-used in my Legion Go S for the last couple of days. Due to a mis-click I accidentally tried to install a game on the SD card to find that it was already corrupted despite not being used. Based on this I decided that the next most likely culprit is the SteamOS storage maintenance tasks, since my assumption is it would take either a good amount of read/writes OR some low-level disk operations to cause serious corruption and we can now rule out Steam's install/move process.

I located the script that's called by the storage maintenance UI button and found that the script checks if the "safe_trim_quirk" flag in the mmc device's /sys/class definition (which only exists in SteamOS as far as I can see, this flag does not appear in another device I have with a micro-SD card reader) is set to 1, only running TRIM if that's the case. The script also only runs TRIM on ext4 and BTRFS filesystems that are mounted as read-write. What I suspect is happening is the SD card is being falsely reported as safe by the card reader in the Legion Go. SteamOS is then running a TRIM operation on the SD card and damaging the filesystem.

Because I am loathe to modify the immutable filesystem and I want a workaround that'll survive OS upgrades anyway, I have replicated my previous polkit/automount idea to now mount an SD card formatted as XFS. That way even if my SD card is falsely reporting as safe to TRIM it WON'T be TRIMmed because the script excludes XFS in the explicit filesystem check it does. It is early days as I have been testing this in the last couple of hours, I'll monitor the situation and notify you of any updates.

I have attached a copy of the TRIM script found in SteamOS for your convenience. Note that the script also checks if the card is a Sandisk brand (which mine is) and only runs TRIM if the safe quirk flag is set to 1. So it might be worth checking with the previous posters if they also had a Sandisk SD card.

EDIT: Unfortunately the above is no good either. Eventually the XFS filesystem on the SD card corrupted itself. I am out of ideas. I have attached the dmesg and journal once more.

trim-devices.sh

patrickrifici avatar Oct 05 '25 03:10 patrickrifici

@patrickrifici Have you tried using an SD card from a different brand? I’m curious if that would fix the issue

maximshurygin avatar Oct 05 '25 09:10 maximshurygin

@patrickrifici Have you tried using an SD card from a different brand? I’m curious if that would fix the issue

I do not, I unfortunately brought all Sandisk because they were the fastest I could get locally! But I have used a different SD card and replicated the issue.

I'm now testing another idea I've had, I'll keep everyone posted.

EDIT: And my last idea was also a bust. I'm now deferring to the experts.

patrickrifici avatar Oct 05 '25 09:10 patrickrifici

sometimes the SD card requires a complete reformat.

In my usage, the filesystem was fine; it's just the game files that get corrupted.

it doesn't appear to have any sort of pattern or specific replicable conditions

This aligned with my experiences too.

In a matter of minutes the BTRFS filesystem had corruption too

I had a similar problem, but I'm unsure whether it's related to SteamOS, as I find some games (specifically, Persona 5 Royale) crashing at the same point when installed to a Btrfs SD card, on both SteamOS and CachyOS.

I have now switched to the "main" branch of SteamOS, which has kernel 6.16.7. I have been installing and tinkering with ~500GB of games on the SD card for the last couple of hours and so far have had no corruption.

I switched back to SteamOS last month and had similar experiences initially on the main branch, but I encountered the same file corruption issue a few days later.

Anyway, @patrickrifici thank you for looking into this issue!

PeronGH avatar Oct 05 '25 14:10 PeronGH

Hi all, I curse myself every time I say this BUT I think I may have found a proper solution for the issue. Short version:

  1. Create a modprobe configuration file for the sdhci driver: sudo nano /etc/modprobe.d/10-sdcard-reader-fix.conf
  2. Add the following line to the file: options sdhci debug_quirks2=0x2
  3. Reboot your Legion Go
  4. Format your SD card through Steam Gaming Mode as normal

Long version: The above idea comes from some research into similar issues with the Legion Go S card reader model (Genesys Logic, Inc GL9750 SD Host Controller) in other laptops. What that driver option does is enable the kernel quirk "SDHCI_QUIRK2_HOST_NO_CMD23" (seen in the source here), which disables CMD23 support. Based on my reading of this document here, CMD23 allows for packed read/write commands to an MMC or SD card (that is reading/writing multiple blocks at a time per operation?) and is known to cause issues for SD cards (readers?) that advertise but don't properly support the ability.

Since applying the above quirk I have:

  1. Left the Go overnight downloading games to the SD card with zero corruption.
  2. Moved games to and from the SD card with zero corruption.
  3. Rebooted the Go multiple times with zero corruption.
  4. Played formerly non-functional games off the SD card with them now working.

Unfortunately we're getting into the weeds of my knowledge so I don't know what the ramifications of applying that quirk are in terms of performance/stability etc, nor am I fully sure that it applies to the SD card reader or the SD card itself. But I can say that with this quirk this is the longest my SD card has survived with an ext4 filesystem.

I'll keep everyone posted as to whether or not the situation changes but so far so good.

patrickrifici avatar Oct 06 '25 08:10 patrickrifici

@patrickrifici Thank you for digging into this issue. But it is strange that the SD card reader does not have such an issue on other distros (Bazzite, CachyOS). I am unsure if it is because other distros enable this quirk by default, or if there is another reason.

PeronGH avatar Oct 06 '25 09:10 PeronGH

@patrickrifici Thank you for digging into this issue. But it is strange that the SD card reader does not have such an issue on other distros (Bazzite, CachyOS). I am unsure if it is because other distros enable this quirk by default, or if there is another reason.

No problem! I obviously want the issue fixed since I'm one of the affected.

I'm hypothesising here but to my understanding Valve has their own fork of the Linux kernel for SteamOS whereas Bazzite/CachyOS use a vanilla-or-close-to branch (with some minor tweaks for performance). So it could be the standard kernel has internal fixes applied for the issue whereas the Valve kernel does not. But determining that is well outside my scope-of-knowledge.

patrickrifici avatar Oct 06 '25 10:10 patrickrifici

Hi all, reporting in: my SD card has just corrupted itself once more :( It lasted a good long while but the issue persists.

Unfortunately that's probably the extent of the troubleshooting I wish to try, I'm going to trial CachyOS in the meantime.

patrickrifici avatar Oct 06 '25 11:10 patrickrifici

Hi all, probably the last update for now: I purchased and tested a Samsung SD card, same capacity but lower overall speed. The issue still persists.

Hopefully there's enough data here for Valve to take a look and come up with a solution.

patrickrifici avatar Oct 07 '25 03:10 patrickrifici

Hi, sorry for taking so long to reply. I had a look at the logs that you provided but so far I have seen nothing conclusive. I wanted to confirm a few things:

  • This problem is only known to happen on the Legion GO.
  • This happens with different card brands (Samsung, Sandisk)
  • Other OSs (Bazzite, CachyOS... anything else?) on the exact same hardware don't show any problems. If someone can provide the exact version of the OS and kernel I would appreciate it.

bertogg avatar Nov 04 '25 16:11 bertogg

Hi bertogg,

No stress about the delay in reply, I have been working around the issue as best I can at the moment. To answer your questions:

  1. I don't have another handheld brand to test, but I have tested the SD cards in other hardware (laptops) and they work fine.
  2. I have had it affect Sandisk, Samsung and Silicon Power SD cards of varying capacities and speeds.
  3. I only tested CachyOS briefly but the issue didn't seem present. @PeronGH are you still on CachyOS and is it still working for you?

patrickrifici avatar Nov 04 '25 23:11 patrickrifici

I only tested CachyOS briefly but the issue didn't seem present. @PeronGH are you still on CachyOS and is it still working for you?

Based on your experience of how long it takes you to reproduce the bug in SteamOS, do you think there's a chance that it didn't happen in CachyOS because you didn't test it long enough?

In any case, if you have the information I would be interested in the exact kernel version (also the OS version, but if I'm not wrong CachyOS uses a rolling release model, is that right?).

bertogg avatar Nov 04 '25 23:11 bertogg

It is entirely possible, yes :) I'd say my test period was probably too brief to be of value, it might be worth waiting for PeronGH to reply with his experience?

CachyOS is rolling release and uses close-to-upstream as it's built off Arch. I don't have the install anymore so I can't specify what kernel/OS version it was on at the time, sorry about that :(

patrickrifici avatar Nov 04 '25 23:11 patrickrifici

So the Legion Go S has a Genesys Logic, Inc GL9750 SD Host Controller and the Legion Go 1 + Legion Go 2 both have a Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader. My SD card is a SanDisk Extreme PRO microSDXC™ UHS-I CARD - 2TB, which I have used in my Steam Deck OLED for ~11 months now without any issues.

The past couple days, I have been using a Legion Go 2 with that same SanDisk Extreme PRO microSDXC™ UHS-I CARD - 2TB and I have been having the same issues I did on the Legion Go 1: intermittent file integrity errors and noticeable stutters in games that were installed onto my SD card.

I decided to re-format my SD card this morning in the Go 2 from the latest build of SteamOS Main as a test, and here's how the day went.

  1. Formatted the microSD card via the Steam integrated storage menu in GamepadUI
  2. Started to do a mixture of downloading new games and transfering existing games from the internal drive to the newly-formatted SD card
  3. Toggled "Allow downloads during gameplay"
  4. Started to play a rotation of Hades II and a few other titles that were on my SD card while continuing to download new games

At this point, I've gone through a few hours without any noticeable issues even with everything I'm throwing at the device. Then, I decided to switch from Game Mode to Desktop, and at this point things just seemed to kind of explode:

[  365.043486] mmc0: Card stuck being busy! __mmc_poll_for_busy
[  365.043494] mmc0: error -110 doing runtime resume
[  365.744744] xdg-desktop-por[4487]: segfault at 7f79cbe44d53 ip 00007f7e53e96ad1 sp 00007ffc132b82f8 error 4 in libgobject-2.0.so.0.8400.3[39ad1,7f7e53e69000+37000] likely on CPU 15 (core 12, socket 0)
[  365.744762] Code: 00 00 00 4c 89 ce e9 3e cc ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 f3 0f 1e fa 48 85 ff 74 47 48 8b 07 48 85 c0 74 3f <48> 8b 00 48 3d fc 03 00 00 77 2c 48 8d 15 5d 46 02 00 48 c1 e8 02
[  366.012445] input: Microsoft X-Box 360 pad 0 as /devices/virtual/input/input24
[  368.824261] mmc0: card d555 removed
[  368.824274] Aborting journal on device mmcblk0p1-8.
[  368.824288] JBD2: I/O error when updating journal superblock for mmcblk0p1-8.
[  368.824571] EXT4-fs error (device mmcblk0p1) in __ext4_new_inode:1094: Journal has aborted
[  368.824584] EXT4-fs (mmcblk0p1): I/O error while writing superblock
[  368.824586] EXT4-fs (mmcblk0p1): Remounting filesystem read-only
[  368.824859] EXT4-fs (mmcblk0p1): shut down requested (2)
[  368.828208] EXT4-fs warning (device mmcblk0p1): htree_dirblock_to_tree:1051: inode #2: lblock 0: comm CJobMgr::m_Work: error -5 reading directory block
[  368.828263] EXT4-fs warning (device mmcblk0p1): htree_dirblock_to_tree:1051: inode #2: lblock 0: comm CJobMgr::m_Work: error -5 reading directory block
[  368.842192] EXT4-fs (mmcblk0p1): unmounting filesystem d0a0590f-f01d-4f31-a5d3-eff784b85432.
[  369.555760] mmc0: cannot verify signal voltage switch
[  369.669118] mmc0: new UHS-I speed SDR104 SDXC card at address d555
[  369.669330] mmcblk0: mmc0:d555 SR02T 1.86 TiB
[  369.675294]  mmcblk0: p1
[  371.623515] EXT4-fs (mmcblk0p1): Using encoding defined by superblock: utf8-12.1.0 with flags 0x0
[  371.824903] EXT4-fs (mmcblk0p1): mounted filesystem d0a0590f-f01d-4f31-a5d3-eff784b85432 r/w with ordered data mode. Quota mode: none.

Then I unmounted the SD card and ran a quick sudo fsck -fvn /dev/mmcblk0p1 which returned:

      132572 inodes used (0.11%, out of 124993536)
         640 non-contiguous files (0.5%)
          64 non-contiguous directories (0.0%)
             # of inodes with ind/dind/tind blocks: 0/0/0
             Extent depth histogram: 131914/278/14
   101982378 blocks used (20.40%, out of 499969536)
           0 bad blocks
          22 large files

      112960 regular files
        9180 directories
           0 character device files
           0 block device files
           0 fifos
           0 links
       10422 symbolic links (358 fast symbolic links)
           0 sockets
------------
      132562 files

so seemingly all fine from an fsck perspective. I continued to try to the SD card in-games for a bit but I started to have major stuttering while it was throwing errors from the card reader. I grabbed a system report from my Go 2 at this point:

systemreport-20251105023618.txt

Then, I ejected the card via the Steam interface and popped it into my Steam Deck OLED. I continued to do exactly what I was doing on my Go 2: installing games while playing games off of the SD card. After an hour, I was unable to reproduce any of the same issues I was seeing on the Go 2.

After an hour using the Steam Deck with that SD card, I ejected it once again and popped it back into my Go 2. Immediately the SD card reader starts throwing [ 4314.125020] mmc0: error -123 whilst initialising SD card, so I ran:

echo "module rtsx_pci +p" | sudo tee /sys/kernel/debug/dynamic_debug/control
echo "module rtsx_pci_sdmmc +p" | sudo tee /sys/kernel/debug/dynamic_debug/control

and let the errors continue for a bit before grabbing a dmesg capture:

kaboom.tar.gz

Right now, I've ejected the SD card from my Go 2 once again and loaded it into my Go S, where I'm continuing to run the same tests I did earlier. Will report back if any issues pop-up on this card reader as well.

matte-schwartz avatar Nov 05 '25 04:11 matte-schwartz

Interesting, so that suggests it's not restricted to the card reader model in the Legion Go since the Go S and standard Go 1/2 have entirely different brand and models.

The card reader in my Go S is connected via PCI instead of USB, could it be a PCI issue?

patrickrifici avatar Nov 05 '25 05:11 patrickrifici

There's also the possibility it's 2 entirely separate issues, I think it's a bit too early to say.

matte-schwartz avatar Nov 05 '25 05:11 matte-schwartz

3 hours of usage with the same SD card on my Go S without any obvious filesystem issues occurring so I decided to put that down for now. Ejected my SD card, put it back in my Go 2 and immediately had the errors start again.

I have another device with a Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader, my MSI Claw 8 AI+ A2VM, so I've ejected the card from my Go 2 and put it in my Claw, which is currently running CachyOS. I do not have the ext4 errors in my dmesg, but I do still have the intermittent game freezes.

Debug logs in my dmesg looks the same as my Go 2 when it occurs:
[  441.300272] mmc0: cannot verify signal voltage switch
[  441.300278] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.300279] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.300283] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_send_cmd_get_rsp: SD/MMC CMD 11, arg = 0x00000000
[  441.300862] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] = 0x00000320
[  441.302068] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.302069] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.302070] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sdmmc_switch_voltage: signal_voltage = 1
[  441.388467] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.388472] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.389758] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.389759] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.389763] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_send_cmd_get_rsp: SD/MMC CMD 2, arg = 0x00000000
[  441.390723] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] = 0x03534453
[  441.390734] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[1] = 0x52303254
[  441.390740] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[2] = 0x87bacf26
[  441.390745] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[3] = 0xfe018901
[  441.390800] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.390806] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.390811] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_send_cmd_get_rsp: SD/MMC CMD 3, arg = 0x00000000
[  441.391400] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] = 0xd5550500
[  441.391439] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.391443] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.391448] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_send_cmd_get_rsp: SD/MMC CMD 7, arg = 0xd5550000
[  441.392051] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] = 0x00000700
[  441.392087] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.392089] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.392096] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 6, arg = 0x00fffff0
[  441.394728] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.394729] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.394734] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_send_cmd_get_rsp: SD/MMC CMD 55, arg = 0xd5550000
[  441.395293] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] = 0x00000920
[  441.395302] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.395303] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.395307] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_send_cmd_get_rsp: SD/MMC CMD 6, arg = 0x00000002
[  441.395887] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] = 0x00000920
[  441.395927] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.395928] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.395935] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.395935] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.395942] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 6, arg = 0x80ff1fff
[  441.398613] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.398614] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.398621] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 6, arg = 0x80fffff3
[  441.403815] rtsx_pci 0000:55:00.0: Switch card clock to 30MHz
[  441.403815] rtsx_pci 0000:55:00.0: Internal SSC clock: 30MHz (cur_clock = 30)
[  441.403839] rtsx_pci 0000:55:00.0: Switch card clock to 208MHz
[  441.403840] rtsx_pci 0000:55:00.0: Internal SSC clock: 208MHz (cur_clock = 30)
[  441.403841] rtsx_pci 0000:55:00.0: n = 206, div = 1
[  441.403841] rtsx_pci 0000:55:00.0: ssc_depth = 2
[  441.403992] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(TX): sample_point = 25
[  441.404004] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 0
[  441.404017] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.405734] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 1
[  441.405748] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.405783] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 2
[  441.405797] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.405834] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 3
[  441.405847] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.405885] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 4
[  441.405897] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.405933] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 5
[  441.405945] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.405980] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 6
[  441.405993] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406031] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 7
[  441.406044] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406090] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 8
[  441.406115] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406158] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 9
[  441.406172] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406210] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 10
[  441.406223] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406262] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 11
[  441.406276] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406311] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 12
[  441.406324] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406360] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 13
[  441.406373] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406408] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 14
[  441.406421] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406446] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.406452] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 15
[  441.406466] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406490] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.406495] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 16
[  441.406508] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406545] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.406551] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 17
[  441.406563] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406600] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.406606] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 18
[  441.406619] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406655] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.406661] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 19
[  441.406674] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406710] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.406716] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 20
[  441.406729] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406766] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.406772] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 21
[  441.406785] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406820] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 22
[  441.406833] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406868] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 23
[  441.406881] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406915] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 24
[  441.406928] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.406963] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 25
[  441.406976] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407010] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 26
[  441.407027] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407071] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 27
[  441.407085] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407121] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 28
[  441.407134] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407184] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 29
[  441.407197] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407241] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 30
[  441.407267] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407305] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 31
[  441.407319] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407354] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 0
[  441.407367] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407403] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 1
[  441.407416] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407451] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 2
[  441.407464] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407499] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 3
[  441.407512] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407547] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 4
[  441.407561] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407596] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 5
[  441.407609] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407644] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 6
[  441.407657] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407691] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 7
[  441.407705] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407739] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 8
[  441.407752] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407787] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 9
[  441.407800] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407835] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 10
[  441.407848] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407883] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 11
[  441.407897] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407931] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 12
[  441.407945] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.407980] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 13
[  441.407993] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408040] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 14
[  441.408053] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408077] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.408083] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 15
[  441.408096] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408125] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.408136] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 16
[  441.408152] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408190] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.408196] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 17
[  441.408210] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408247] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.408254] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 18
[  441.408267] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408304] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.408311] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 19
[  441.408324] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408360] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.408366] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 20
[  441.408379] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408414] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 21
[  441.408427] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408461] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 22
[  441.408475] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408509] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 23
[  441.408523] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408557] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 24
[  441.408570] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408605] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 25
[  441.408618] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408653] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 26
[  441.408666] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408701] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 27
[  441.408714] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408748] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 28
[  441.408762] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408800] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 29
[  441.408814] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408852] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 30
[  441.408865] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408907] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 31
[  441.408920] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.408957] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 0
[  441.408983] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409021] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 1
[  441.409040] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409082] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 2
[  441.409095] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409134] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 3
[  441.409152] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409192] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 4
[  441.409207] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409250] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 5
[  441.409264] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409299] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 6
[  441.409312] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409347] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 7
[  441.409361] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409396] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 8
[  441.409409] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409443] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 9
[  441.409457] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409492] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 10
[  441.409505] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409540] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 11
[  441.409553] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409587] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 12
[  441.409601] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409636] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 13
[  441.409649] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409684] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 14
[  441.409697] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409722] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.409727] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 15
[  441.409741] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409765] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.409771] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 16
[  441.409784] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409819] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.409825] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 17
[  441.409839] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409873] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.409880] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 18
[  441.409893] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409928] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.409935] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 19
[  441.409948] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.409984] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd fail (err = -22)
[  441.409990] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 20
[  441.410003] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410037] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 21
[  441.410050] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410096] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 22
[  441.410113] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410148] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 23
[  441.410161] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410197] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 24
[  441.410214] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410248] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 25
[  441.410263] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410297] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 26
[  441.410310] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410344] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 27
[  441.410358] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410391] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 28
[  441.410404] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410438] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 29
[  441.410451] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410485] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 30
[  441.410498] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410531] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 31
[  441.410545] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data: SD/MMC CMD 19, arg = 0x00000000
[  441.410578] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX raw_phase_map[0] = 0xffe03fff
[  441.410579] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX raw_phase_map[1] = 0xfff03fff
[  441.410580] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX raw_phase_map[2] = 0xfff03fff
[  441.410580] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX phase_map = 0xffe03fff
[  441.410581] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: phase: [map:ffe03fff] [maxlen:25] [final:1]
[  441.410582] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_change_phase(RX): sample_point = 1
[  441.410607] rtsx_pci 0000:55:00.0: Switch card clock to 208MHz
[  441.410608] rtsx_pci 0000:55:00.0: Internal SSC clock: 208MHz (cur_clock = 208)

matte-schwartz avatar Nov 05 '25 08:11 matte-schwartz

Thanks for the logs, @matte-schwartz .

Answering one earlier comment by @patrickrifici , the changes in Valve's kernel compared to the upstream one are mostly in graphics, wireless, joysticks / controllers, ..., if there's a bug in the mmc / sd code with that specific hardware chances are that the problem is also in the official kernel, but of course we cannot discard any possibilities at the moment. That's why it's useful to know if a different kernel / OS does not have that bug in the exact same hardware.

bertogg avatar Nov 05 '25 12:11 bertogg

It is entirely possible, yes :) I'd say my test period was probably too brief to be of value, it might be worth waiting for PeronGH to reply with his experience?

Sorry for the late reply. I haven't played many games in the recent couple of months, so my experience with recent SteamOS is minimal.

What I can say is that I have been hopping between different gaming distros, and I do not think the same issue has occurred on any OS other than SteamOS.

Before SteamOS 3.7.8, which was released in May, I was mainly using Bazzite, with short periods of using CachyOS.

I switched to SteamOS 3.7.8 when it was released, and I immediately ran into a problem. One of the most reliably triggered instances was when I played It Takes Two; after a few hours of playing, it would show a LowLevelFatalError, and the game would not start any more unless I verified its file integrity. After switching to CachyOS, I can play as long as I wish without such an issue.

the changes in Valve's kernel compared to the upstream one are mostly in graphics, wireless, joysticks / controllers, ..., if there's a bug in the mmc / sd code with that specific hardware chances are that the problem is also in the official kernel, but of course we cannot discard any possibilities at the moment.

That's interesting. Based on my experience SteamOS is particularly slow when installing games to or updating on an SD card, much slower than CachyOS. I don't know if this points to some different handling of the SD card on SteamOS.

That's why it's useful to know if a different kernel / OS does not have that bug in the exact same hardware.

I do recall an SD card-related issue on Bazzite (https://github.com/ublue-os/bazzite/issues/2033), but it was probably caused by falling asleep during game installation. It has never happened again after I verified file integrity and avoided sleep during game installation.

The SteamOS-specific issue is that the game crashes while playing and corrupts its files. I have never seen this on other OSes.

Both Bazzite and CachyOS update their kernel promptly. I used Bazzite before SteamOS 3.7.8 and CachyOS during July before switching back to SteamOS, as I saw its main branch had updated to Linux 6.15. The same issue persisted with the 6.15 kernel of SteamOS in August. As of my last time using Bazzite, it was on Linux 6.14, and when I switched to CachyOS, it was running Linux 6.15.

PeronGH avatar Nov 05 '25 14:11 PeronGH