[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <d46dcebe-ca58-44c4-87ee-cade2e478572@linux.dev>
Date: Sun, 4 Jan 2026 23:50:54 -0800
From: Matthew Schwartz <matthew.schwartz@...ux.dev>
To: Ricky WU <ricky_wu@...ltek.com>, Ulf Hansson <ulf.hansson@...aro.org>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>
Subject: Re: [BUG] - Short freezes in gameplay due to MMC_CAP_AGGRESSIVE_PM on
RTS525A card reader
On 1/4/26 11:02 PM, Ricky WU wrote:
>> On 1/4/26 7:58 PM, Ricky WU wrote:
>>>> On 1/3/26 11:52 AM, Matthew Schwartz wrote:
>>>>> On 1/3/26 3:37 AM, Ulf Hansson wrote:
>>>>>> On Wed, 24 Dec 2025 at 22:01, Matthew Schwartz
>>>>>> <matthew.schwartz@...ux.dev> wrote:
>>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>> I have several handheld devices that have a Realtek Semiconductor Co.,
>> Ltd.
>>>> RTS525A PCI Express Card Reader and I am running into an issue on all of
>> them
>>>> when I try to play games off of my SanDisk Extreme PRO Micro SD cards.
>>>>>>>
>>>>>>> I have two SD cards, a 1TB and a 2TB model, and while playing games
>> off
>>>> of either one there are frequent freezes in gameplay. When this happens,
>> the
>>>> kernel has some mmc and rtsx errors:
>>>>>>>
>>>>>>> [ 41.348311] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 13, arg = 0xd5550000
>>>>>>> [ 41.354004] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000900
>>>>>>> [ 41.354020] rtsx_pci 0000:c0:00.0: Switch card clock to 208MHz
>>>>>>> [ 41.354021] rtsx_pci 0000:c0:00.0: Internal SSC clock: 208MHz
>>>> (cur_clock = 208)
>>>>>>> [ 41.354026] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 48, arg = 0x08000200
>>>>>>> [ 41.354235] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 41.354236] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 208)
>>>>>>> [ 41.354237] rtsx_pci 0000:c0:00.0: n = 118, div = 3
>>>>>>> [ 41.354237] rtsx_pci 0000:c0:00.0: ssc_depth = 1
>>>>>>> [ 41.601291] rtsx_pci 0000:c0:00.0: --> rtsx_pci_runtime_idle
>>>>>>> [ 51.521666] rtsx_pci 0000:c0:00.0: --> rtsx_pci_runtime_suspend
>>>>>>> [ 101.898966] rtsx_pci 0000:c0:00.0: --> rtsx_pci_runtime_resume
>>>>>>> [ 101.899052] rtsx_pci 0000:c0:00.0: RTSX_BIER: 0x36400000
>>>>>>> [ 101.910028] rtsx_pci 0000:c0:00.0: Power OFF efuse!
>>>>>>> [ 102.025901] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.025907] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.025911] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>>>> sdmmc_switch_voltage: signal_voltage = 0
>>>>>>> [ 102.031892] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.031900] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.037892] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.037899] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.039168] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.039172] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.039177] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 0, arg = 0x00000000
>>>>>>> [ 102.040763] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.040764] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.041874] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.041875] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.041879] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 8, arg = 0x000001aa
>>>>>>> [ 102.042452] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x000001aa
>>>>>>> [ 102.042468] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.042469] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.042474] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.043036] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.043053] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.043057] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.043061] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.043599] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00ff8000
>>>>>>> [ 102.062878] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.062885] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.062890] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.063450] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.063462] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.063463] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.063467] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.064012] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00ff8000
>>>>>>> [ 102.104036] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.104043] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.104047] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.104603] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.104619] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.104620] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.104624] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.105162] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00ff8000
>>>>>>> [ 102.184867] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.184874] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.184878] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.185438] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.185446] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.185447] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.185451] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.185990] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00ff8000
>>>>>>> [ 102.265861] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.265868] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.265872] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.266434] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.266450] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.266452] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.266456] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.266996] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00ff8000
>>>>>>> [ 102.346859] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.346869] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.346875] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.347441] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.347450] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.347451] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.347455] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.348005] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00ff8000
>>>>>>> [ 102.427853] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.427860] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.427865] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.428434] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.428443] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.428444] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.428448] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.428995] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x41ff8000
>>>>>>> [ 102.508837] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.508845] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.508852] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0x00000000
>>>>>>> [ 102.509408] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000120
>>>>>>> [ 102.509440] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.509445] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.509452] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 41, arg = 0x59300000
>>>>>>> [ 102.509996] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0xc1ff8000
>>>>>>> [ 102.510008] mmc0: cannot verify signal voltage switch
>>>>>>> [ 102.510031] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.510033] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.510038] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 11, arg = 0x00000000
>>>>>>> [ 102.510587] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000320
>>>>>>> [ 102.511837] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.511838] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.511840] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>>>> sdmmc_switch_voltage: signal_voltage = 1
>>>>>>> [ 102.598474] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.598480] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.599674] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.599679] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.599684] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 2, arg = 0x00000000
>>>>>>> [ 102.600608] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x03534453
>>>>>>> [ 102.600612] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[1] =
>>>> 0x52303254
>>>>>>> [ 102.600613] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[2] =
>>>> 0x87bacf26
>>>>>>> [ 102.600614] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[3] =
>>>> 0xfe018901
>>>>>>> [ 102.600630] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.600631] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.600635] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 3, arg = 0x00000000
>>>>>>> [ 102.601176] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0xd5550500
>>>>>>> [ 102.601195] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.601199] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.601205] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 7, arg = 0xd5550000
>>>>>>> [ 102.601770] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000700
>>>>>>> [ 102.601785] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.601786] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.601793] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 6, arg = 0x00fffff0
>>>>>>> [ 102.604338] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.604340] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.604345] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 55, arg = 0xd5550000
>>>>>>> [ 102.604887] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000920
>>>>>>> [ 102.604893] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.604894] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.604899] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 6, arg = 0x00000002
>>>>>>> [ 102.605462] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000920
>>>>>>> [ 102.605480] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.605481] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.605486] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.605487] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.605493] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 6, arg = 0x80ff1fff
>>>>>>> [ 102.608016] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.608019] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.608025] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 6, arg = 0x80fffff3
>>>>>>> [ 102.612934] rtsx_pci 0000:c0:00.0: Switch card clock to 30MHz
>>>>>>> [ 102.612936] rtsx_pci 0000:c0:00.0: Internal SSC clock: 30MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.612950] rtsx_pci 0000:c0:00.0: Switch card clock to 208MHz
>>>>>>> [ 102.612951] rtsx_pci 0000:c0:00.0: Internal SSC clock: 208MHz
>>>> (cur_clock = 30)
>>>>>>> [ 102.612951] rtsx_pci 0000:c0:00.0: n = 206, div = 1
>>>>>>> [ 102.612952] rtsx_pci 0000:c0:00.0: ssc_depth = 2
>>>>>>> [ 102.613105] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(TX):
>>>> sample_point = 25
>>>>>>> [ 102.613115] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 0
>>>>>>> [ 102.613126] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614718] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 1
>>>>>>> [ 102.614732] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614759] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 2
>>>>>>> [ 102.614770] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614796] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 3
>>>>>>> [ 102.614815] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614842] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 4
>>>>>>> [ 102.614853] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614879] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 5
>>>>>>> [ 102.614890] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614916] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 6
>>>>>>> [ 102.614927] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614952] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 7
>>>>>>> [ 102.614963] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.614987] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 8
>>>>>>> [ 102.614998] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615024] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 9
>>>>>>> [ 102.615035] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615059] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 10
>>>>>>> [ 102.615071] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615095] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 11
>>>>>>> [ 102.615107] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615132] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 12
>>>>>>> [ 102.615144] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615172] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.615178] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 13
>>>>>>> [ 102.615187] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615211] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.615215] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 14
>>>>>>> [ 102.615223] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615235] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.615350] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 15
>>>>>>> [ 102.615358] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615383] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.615387] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 16
>>>>>>> [ 102.615395] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615419] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.615424] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 17
>>>>>>> [ 102.615432] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615458] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.615462] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 18
>>>>>>> [ 102.615470] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615495] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.615499] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 19
>>>>>>> [ 102.615507] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615531] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 20
>>>>>>> [ 102.615539] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615562] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 21
>>>>>>> [ 102.615570] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615594] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 22
>>>>>>> [ 102.615602] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615625] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 23
>>>>>>> [ 102.615633] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615657] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 24
>>>>>>> [ 102.615665] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615689] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 25
>>>>>>> [ 102.615697] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615722] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 26
>>>>>>> [ 102.615730] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615754] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 27
>>>>>>> [ 102.615762] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615785] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 28
>>>>>>> [ 102.615793] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615817] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 29
>>>>>>> [ 102.615825] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615849] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 30
>>>>>>> [ 102.615858] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615890] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 31
>>>>>>> [ 102.615907] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615933] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 0
>>>>>>> [ 102.615943] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.615968] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 1
>>>>>>> [ 102.615977] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616001] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 2
>>>>>>> [ 102.616010] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616034] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 3
>>>>>>> [ 102.616042] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616066] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 4
>>>>>>> [ 102.616076] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616100] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 5
>>>>>>> [ 102.616109] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616133] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 6
>>>>>>> [ 102.616142] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616168] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 7
>>>>>>> [ 102.616180] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616207] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 8
>>>>>>> [ 102.616219] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616244] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 9
>>>>>>> [ 102.616257] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616282] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 10
>>>>>>> [ 102.616294] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616319] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 11
>>>>>>> [ 102.616331] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616356] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 12
>>>>>>> [ 102.616368] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616395] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.616402] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 13
>>>>>>> [ 102.616413] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616439] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.616445] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 14
>>>>>>> [ 102.616457] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616471] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.616580] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 15
>>>>>>> [ 102.616592] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616606] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.616714] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 16
>>>>>>> [ 102.616726] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616753] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.616758] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 17
>>>>>>> [ 102.616770] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616796] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.616809] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 18
>>>>>>> [ 102.616821] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616848] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.616854] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 19
>>>>>>> [ 102.616866] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616891] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 20
>>>>>>> [ 102.616903] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616928] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 21
>>>>>>> [ 102.616940] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.616965] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 22
>>>>>>> [ 102.616978] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617003] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 23
>>>>>>> [ 102.617015] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617040] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 24
>>>>>>> [ 102.617051] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617076] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 25
>>>>>>> [ 102.617088] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617111] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 26
>>>>>>> [ 102.617120] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617143] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 27
>>>>>>> [ 102.617152] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617175] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 28
>>>>>>> [ 102.617184] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617207] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 29
>>>>>>> [ 102.617216] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617239] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 30
>>>>>>> [ 102.617247] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617271] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 31
>>>>>>> [ 102.617280] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617303] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 0
>>>>>>> [ 102.617312] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617335] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 1
>>>>>>> [ 102.617343] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617367] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 2
>>>>>>> [ 102.617375] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617398] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 3
>>>>>>> [ 102.617407] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617430] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 4
>>>>>>> [ 102.617439] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617462] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 5
>>>>>>> [ 102.617471] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617494] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 6
>>>>>>> [ 102.617502] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617525] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 7
>>>>>>> [ 102.617534] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617557] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 8
>>>>>>> [ 102.617566] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617589] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 9
>>>>>>> [ 102.617598] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617621] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 10
>>>>>>> [ 102.617630] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617653] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 11
>>>>>>> [ 102.617662] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617686] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 12
>>>>>>> [ 102.617694] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617719] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.617723] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 13
>>>>>>> [ 102.617732] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617756] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.617761] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 14
>>>>>>> [ 102.617770] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617782] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.617889] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 15
>>>>>>> [ 102.617898] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.617911] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.618017] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 16
>>>>>>> [ 102.618026] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618051] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.618056] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 17
>>>>>>> [ 102.618064] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618089] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.618093] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 18
>>>>>>> [ 102.618102] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618127] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: rtsx_pci_send_cmd
>>>> fail (err = -22)
>>>>>>> [ 102.618132] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 19
>>>>>>> [ 102.618140] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618164] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 20
>>>>>>> [ 102.618173] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618196] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 21
>>>>>>> [ 102.618205] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618228] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 22
>>>>>>> [ 102.618237] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618260] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 23
>>>>>>> [ 102.618268] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618292] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 24
>>>>>>> [ 102.618301] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618324] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 25
>>>>>>> [ 102.618333] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618356] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 26
>>>>>>> [ 102.618364] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618388] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 27
>>>>>>> [ 102.618397] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618421] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 28
>>>>>>> [ 102.618429] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618454] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 29
>>>>>>> [ 102.618463] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618488] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 30
>>>>>>> [ 102.618497] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618520] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 31
>>>>>>> [ 102.618529] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_read_data:
>>>> SD/MMC CMD 19, arg = 0x00000000
>>>>>>> [ 102.618552] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX
>> raw_phase_map[0]
>>>> = 0xfff80fff
>>>>>>> [ 102.618554] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX
>> raw_phase_map[1]
>>>> = 0xfff80fff
>>>>>>> [ 102.618555] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX
>> raw_phase_map[2]
>>>> = 0xfff80fff
>>>>>>> [ 102.618556] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: RX phase_map =
>>>> 0xfff80fff
>>>>>>> [ 102.618558] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: phase:
>> [map:fff80fff]
>>>> [maxlen:25] [final:31]
>>>>>>> [ 102.618559] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_change_phase(RX):
>>>> sample_point = 31
>>>>>>> [ 102.618579] rtsx_pci 0000:c0:00.0: Switch card clock to 208MHz
>>>>>>> [ 102.618581] rtsx_pci 0000:c0:00.0: Internal SSC clock: 208MHz
>>>> (cur_clock = 208)
>>>>>>> [ 102.618586] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sd_write_data:
>>>> SD/MMC CMD 49, arg = 0x10020800
>>>>>>> [ 102.618587] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 49, arg = 0x10020800
>>>>>>> [ 102.618598] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000900
>>>>>>> [ 102.618754] rtsx_pci 0000:c0:00.0: Switch card clock to 208MHz
>>>>>>> [ 102.618756] rtsx_pci 0000:c0:00.0: Internal SSC clock: 208MHz
>>>> (cur_clock = 208)
>>>>>>> [ 102.618759] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 13, arg = 0xd5550000
>>>>>>> [ 102.618769] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000900
>>>>>>> [ 102.618784] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: pre dma sg: 1
>>>>>>> [ 102.618794] rtsx_pci 0000:c0:00.0: Switch card clock to 208MHz
>>>>>>> [ 102.618795] rtsx_pci 0000:c0:00.0: Internal SSC clock: 208MHz
>>>> (cur_clock = 208)
>>>>>>> [ 102.618798] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_read_long_data:
>>>> SD/MMC CMD 18, arg = 0xc44607f8
>>>>>>> [ 102.618800] rtsx_pci 0000:c0:00.0: DMA addr: 0x675e5000, Len:
>>>> 0x1000
>>>>>>> [ 102.619019] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 12, arg = 0x00000000
>>>>>>> [ 102.619030] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000b00
>>>>>>> [ 102.619066] rtsx_pci 0000:c0:00.0: Switch card clock to 208MHz
>>>>>>> [ 102.619068] rtsx_pci 0000:c0:00.0: Internal SSC clock: 208MHz
>>>> (cur_clock = 208)
>>>>>>> [ 102.619074] rtsx_pci_sdmmc rtsx_pci_sdmmc.0:
>> sd_send_cmd_get_rsp:
>>>> SD/MMC CMD 13, arg = 0xd5550000
>>>>>>> [ 102.619085] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: cmd->resp[0] =
>>>> 0x00000900
>>>>>>> [ 102.619090] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: sdmmc_get_cd:
>>>> RTSX_BIPR = 0x00010000
>>>>>>> [ 102.624418] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: pre dma sg: 17
>>>>>>> [ 102.624445] rtsx_pci 0000:c0:00.0: Switch card clock to 208MHz
>>>>>>> [ 102.624448] rtsx_pci 0000:c0:00.0: Internal SSC clock: 208MHz
>>>> (cur_clock = 208)
>>>>>>>
>>>>>>> I've included a readout of sudo lspci -s c0:00.0 -xxxx below:
>>>>>>>
>>>>>>> c0:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd.
>> RTS525A
>>>> PCI Express Card Reader (rev 01)
>>>>>>> 00: ec 10 5a 52 06 04 10 00 01 00 00 ff 10 00 00 00
>>>>>>> 10: 00 00 00 00 00 00 b0 b0 00 00 00 00 00 00 00 00
>>>>>>> 20: 00 00 00 00 00 00 00 00 00 00 00 00 ec 10 5a 52
>>>>>>> 30: 00 00 00 00 80 00 00 00 00 00 00 00 ff 01 00 00
>>>>>>> 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 80: 01 90 c3 f7 03 01 00 00 00 00 00 00 00 00 00 00
>>>>>>> 90: 05 b0 81 00 00 10 e0 fe 00 00 00 00 22 00 00 00
>>>>>>> a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b0: 10 00 02 00 c2 8f 2c 01 30 20 19 00 12 7c 47 00
>>>>>>> c0: 42 01 12 10 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d0: 00 00 00 00 10 08 0c 00 00 04 00 00 06 00 00 00
>>>>>>> e0: 02 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 100: 01 00 82 14 00 00 00 00 00 00 40 00 30 20 46 00
>>>>>>> 110: 00 20 00 00 00 60 00 00 a0 00 00 00 00 00 00 00
>>>>>>> 120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 140: 00 00 00 00 00 00 00 00 03 00 81 15 00 e0 4c 00
>>>>>>> 150: 01 00 00 00 00 00 00 00 18 00 01 16 01 10 01 10
>>>>>>> 160: 1e 00 01 00 1f 3c 31 00 0f 00 99 40 49 00 00 00
>>>>>>> 170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 700: 68 00 38 01 ff ff ff ff 04 00 00 07 01 ff ff 5b
>>>>>>> 710: 20 01 01 00 00 00 00 00 00 00 01 00 80 02 00 00
>>>>>>> 720: 00 00 00 00 aa ff ff ee 11 7a f6 03 10 03 00 08
>>>>>>> 730: 80 00 01 00 ff 0f 01 00 40 00 01 00 01 00 00 00
>>>>>>> 740: 0f 00 00 00 00 00 00 00 20 40 20 40 04 40 20 00
>>>>>>> 750: 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 800: 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 00 00
>>>>>>> 810: 94 b3 c8 24 75 1f 00 00 00 00 00 00 00 00 00 00
>>>>>>> 820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 8b0: 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
>>>>>>> 8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> 9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b40: 01 00 00 00 d3 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>> ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>>>>>
>>>>>>> deck@...ion-go-2 ~> sudo cat /sys/kernel/debug/mmc0/ios
>>>>>>> clock: 208000000 Hz
>>>>>>> vdd: 21 (3.3 ~ 3.4 V)
>>>>>>> bus mode: 2 (push-pull)
>>>>>>> chip select: 0 (don't care)
>>>>>>> power mode: 2 (on)
>>>>>>> bus width: 2 (4 bits)
>>>>>>> timing spec: 6 (sd uhs SDR104)
>>>>>>> signal voltage: 1 (1.80 V)
>>>>>>> driver type: 0 (driver type B)
>>>>>>>
>>>>>>> As a workaround, not setting MMC_CAP_AGGRESSIVE_PM seems to
>>>> resolve the issue:
>>>>>>>
>>>>>>> diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c
>>>> b/drivers/mmc/host/rtsx_pci_sdmmc.c
>>>>>>> index 1e5170435cf8..a7c7daf66d5c 100644
>>>>>>> --- a/drivers/mmc/host/rtsx_pci_sdmmc.c
>>>>>>> +++ b/drivers/mmc/host/rtsx_pci_sdmmc.c
>>>>>>> @@ -1499,7 +1499,7 @@ static void realtek_init_host(struct
>>>> realtek_pci_sdmmc *host)
>>>>>>> mmc->caps = MMC_CAP_4_BIT_DATA |
>>>> MMC_CAP_SD_HIGHSPEED |
>>>>>>> MMC_CAP_MMC_HIGHSPEED |
>>>> MMC_CAP_BUS_WIDTH_TEST |
>>>>>>> MMC_CAP_UHS_SDR12 | MMC_CAP_UHS_SDR25;
>>>>>>> - if (pcr->rtd3_en)
>>>>>>> + if (pcr->rtd3_en && PCI_PID(pcr) != PID_525A)
>>>>>>> mmc->caps = mmc->caps |
>>>> MMC_CAP_AGGRESSIVE_PM;
>>>>>>> mmc->caps2 = MMC_CAP2_NO_PRESCAN_POWERUP |
>>>> MMC_CAP2_FULL_PWR_CYCLE |
>>>>>>> MMC_CAP2_NO_SDIO;
>>>>>>> --
>>>>>>> 2.52.0
>>>>>>>
>>>>>>> I think what's happening here is that RTS525A shuts off power to the
>> card
>>>> reader when games are idle for 10 seconds or more, and then when the
>> game
>>>> goes to load new assets it has to go through the whole re-tuning process
>> which
>>>> takes 1-2 seconds. The other brands of card readers I have keep the device
>>>> powered the whole time so they do not have this issue, and that's what
>>>> untagging MMC_CAP_AGGRESSIVE_PM seems to mimic.
>>>>>>
>>>>>> Right, MMC_CAP_AGGRESSIVE_PM does exactly what you think. If there
>>>> are
>>>>>> an idle period of no requests for the SD card, the mmc core may decide
>>>>>> to power-off the card for those mmc host drivers that has set
>>>>>> MMC_CAP_AGGRESSIVE_PM. The idea is that we want to avoid wasting
>>>> power
>>>>>> when the card is unused, which is typically important on some battery
>>>>>> driven devices.
>>>>>>
>>>>>> The main problem however, is that we are lacking a common policy for
>>>>>> how to handle this generically for all eMMC/SD cards. Ideally it
>>>>>> should be independent of what mmc host drivers that is managing it,
>>>>>> but that's not the case.
>>>>>>
>>>>>> That said, without changing the code you can use sysfs to either tweak
>>>>>> the idle-period or to simply prevent "runtime_suspend" (meaning
>>>>>> power-off) for the SD card.
>>>>>>
>>>
>>> Hi Ulf, Matthew
>>>
>>> In our Windows card reader driver, the idle period time is set to
>> approximately 10 seconds.
>>> Is there any recommended way to control or configure this idle period time?
>>
>> I tried adjusting pm_schedule_suspend(device, 10000); in rtsx_pcr, but this just
>> increases the time until you inevitably run into the issue. There are some
>> games that can go a very long time in runtime_suspend without loading new
>> assets, but when they inevitably go into runtime_resume after say 3 or 5
>> minutes, this hang in gameplay seems unavoidable with
>> MMC_CAP_AGGRESSIVE_PM in particular. I found an old laptop of mine with
>> an RTS5261 reader and that has the same issue unless I disable
>> MMC_CAP_AGGRESSIVE_PM.
>>
>>> Or is it possible to introduce a capability tag that is less aggressive than
>> MMC_CAP_AGGRESSIVE_PM?
>>
>> Full disclosure: This is my first time looking at mmc/rtsx code, so I'll defer to
>> Ulf on this.
>>
>>> Since most notebooks have very strict power-saving requirements during idle
>> states,
>>> we are not able to avoid using the MMC_CAP_AGGRESSIVE_PM capability.
>>
>> The only other comparison I have is from card readers in other devices of mine,
>> a Genesys Logic GL9767 in a ROG Ally X and an O2 Micro in my Steam Deck.
>> For both of these, the card reader drivers do not seem to implement any form
>> of runtime power management on Linux, so the experience when playing
>> games off of them has been flawless.
>>
>> Matt
>>
>
> Since our driver is designed to be a general-purpose driver for all readers,
> the scenarios you mentioned — ROG Ally X and Steam Deck — are gaming handheld devices.
The drivers they use were not designed to be gaming-focused either, they are general purpose.
O2 Micro has been around since before handheld gaming PCs were even a thing. Personally,
I disagree with classifying gaming as falling outside of "general purpose" parameters.
> For Realtek reader usage on handheld platforms,
> we would recommend disabling this power-saving function(pcr->rtd3_en) through BIOS settings/guidelines.
Just to clarify, is the recommendation to disable this feature for every device with a Realtek card
reader that might be used to play games from an SD card? My MSI Raider GE67HX laptop with RTS5261 has
this same freeze in gameplay if I use an SD card. Using an SD card as a portable library is very
common.
Thanks,
Matt
>
> Ricky
>>>
>>>
>>>>>> For example, find the corresponding device for the mmc/sd card in
>>>>>> sysfs and do: echo on >.../power/control to prevent runtime suspend.
>>>>>
>>>>> I tried the runtime solution during debugging, however the card reader
>> still
>>>> shuts off while idle:
>>>>>
>>>>> deck@...ion-go-2 ~> cat
>>>> /sys/bus/pci/drivers/rtsx_pci/0000:c0:00.0/power/control
>>>>> on
>>>>
>>>> Ah, I misunderstood. I should have used
>>>> /sys/bus/mmc/devices/mmc0:d555/power/control, that does work at
>> runtime.
>>>>
>>>> Matt
>>>>
>>>>>
>>>>> deck@...ion-go-2 ~> sudo cat /sys/kernel/debug/mmc0/ios
>>>>> clock: 0 Hz
>>>>> vdd: 0 (invalid)
>>>>> bus mode: 2 (push-pull)
>>>>> chip select: 0 (don't care)
>>>>> power mode: 0 (off)
>>>>> bus width: 0 (1 bits)
>>>>> timing spec: 0 (legacy)
>>>>> signal voltage: 1 (1.80 V)
>>>>> driver type: 0 (driver type B)
>>>>>
>>>>> Only removing MMC_CAP_AGGRESSIVE_PM seemed to actually work.
>>>>>
>>>>>>
>>>>>>>
>>>>>>> Should I upstream the above as a quirk or is there further debugging I
>> can
>>>> assist with to find another workaround for the gameplay stutter? I've found
>> a
>>>> couple other bugs with the card reader too but I will send out separate
>> threads
>>>> to keep things organized.
>>>>>>
>>>>>> Please post a formal patch, then let's discuss what to do about it.
>>>>>
>>>>> Will send out that patch shortly.
>>>>>
>>>>> Matt
>>>>>
>>>>>>
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>> Matt
>>>>>>
>>>>>> Kind regards
>>>>>> Uffe
>>>>>
>>>
>
Powered by blists - more mailing lists