Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTS5129 increase one sd card item after wakeup #22

Open
nabaonan opened this issue Nov 4, 2021 · 22 comments
Open

RTS5129 increase one sd card item after wakeup #22

nabaonan opened this issue Nov 4, 2021 · 22 comments
Labels
RTS5129 RTS5129

Comments

@nabaonan
Copy link

nabaonan commented Nov 4, 2021

macos bigsur11.6.1

following steps:

  1. Sleep
  2. Wake up
  3. See system setting usb there will be added a sd item which called CRW
@nabaonan
Copy link
Author

nabaonan commented Nov 5, 2021

image

@nabaonan
Copy link
Author

nabaonan commented Nov 6, 2021

image

@nabaonan
Copy link
Author

nabaonan commented Nov 6, 2021

rtsx.log

@parnz
Copy link

parnz commented Dec 9, 2021

I also have this problem and it doesn't detect sd card when insert at all.

Screen Shot 2021-12-09 at 19 25 39

@dblhlx
Copy link

dblhlx commented Dec 10, 2021

I have this problem too. Because of that, my Bluetooth (USB-based Intel ATX201) is generally disabled for ~15 minutes after the computer wakes up. The card is RTS5129.

@nabaonan nabaonan changed the title After macos wakeup, the system usb setting increase one sd card item RTS5129 increase one sd card item after wakeup Dec 10, 2021
@0xFireWolf 0xFireWolf added the RTS5129 RTS5129 label Dec 11, 2021
@0xFireWolf
Copy link
Owner

This is a known issue of RTS5129 (probably RTS5139 and RTS5179 as well).

My suspicion is that the USB card reader got disconnected when some laptops went to sleep, but the driver still assumes that the device remains connected thus holding a reference to it. When your laptop wakes up, the device gets reconnected, so the USB driver stack publishes a new instance of your device, but the old instance is still there because the driver holds a reference to it. Unfortunately, I do not have RTS5129 on my side, so I cannot test my hypothesis. There might be a quick yet dirty fix that disables the power management routines for RTS5129 if a special boot argument is provided, so the driver tears down when your laptop goes to sleep, and a new driver instance starts when your laptop wakes up.

@dblhlx
Copy link

dblhlx commented Dec 11, 2021

Thanks so much for you excellent work! I did not expect the card reader will be useful when setting the laptop as a Hackintosh. To my surprise, I can quickly transfer files using the driver you wrote. Your hypothesis is very likely true. My laptop is a Gateway GWTN156-3BK, not a common brand now. I disabled the dGPU (nvidia RTS 2060) using SSDT-dGPU-off.aml, but it always draws significant power after waking up. I need to use SSDT-PTSWAK.aml to turn the dGPU on when the laptop goes to sleep and turn it off when the computer wakes up.

If it is easy to implement your idea, I am more than happy to test your new code. Again thank you very much for your excellent work!

@0xFireWolf
Copy link
Owner

@dblhlx Thanks for being interested in testing this driver.

Please try the attached driver and add the boot argument -rtsxnopm to disable the power management routine. Please check if the issue persists.

Specifically, ...

  • Do you observe a kernel panic after the laptop wakes up?
  • If you open the IORegistryExplorer before the laptop goes to sleep, can you observe a new USB card reader object that shows up in IORegistry after the laptop wakes up?
  • Is your USB card reader still working after the laptop wakes up?

Please upload the kernel log dumped after the laptop wakes up as well.

RealtekCardReader_0.9.7_0a0d816_DEBUG.zip

@dblhlx
Copy link

dblhlx commented Dec 29, 2021

I tested the attached kext. Here are the results:

  1. No kernel panic was observed after wake-up.
  2. A new card reader object showed up in IORegistry after each wake-up (attached).
  3. USB card reader still works after wake-up.

Thanks for your excellent work. Please let me know if more testing needed.

Screen Shot 2021-12-28 at 8 39 57 PM
rtsx.log

@0xFireWolf
Copy link
Owner

@dblhlx Thanks for the feedback.

What are the other three USB2.0-CRW objects in your screenshot? Did you wake up your laptop only once or for 4 times?

Do you still have the issue that a new USB2.0-CRW entry shows up under the USB Device Tree in System Information?
If so, could you please do the following steps and upload the IOReg dump?

  • Reboot your computer. Do not insert any SD cards.
  • Open the IORegistryExplorer and keep the window open.
  • Put your laptop into sleep and wait for one or two minutes.
  • Wake up your laptop.
  • Save the IOReg dump and upload it.

Thank you.

@dblhlx
Copy link

dblhlx commented Dec 29, 2021

In my last post, I waked up my laptop for four times. I opened IORegistryExplorer after the third wake-up.

I followed your instruction this time. I rebooted my laptop and opened IORegistryExplorer, then I put the laptop into sleep. The laptop waked up by itself after a couple of minutes, and I save the IOReg (attached) after that. I don't understand what IOReg dump is. I just did File -> Save as. Please let me know if it is not what you need.

IORegistry.ioreg.zip

@0xFireWolf
Copy link
Owner

@dblhlx Yes, that's the IOReg dump I need.

With the boot argument -rtsxnopm, the card reader was disconnected and the driver was also terminated when your laptop went to sleep, because all entries under HS02 were red in the IORegistry. So, it seems that your problem is resolved. Can you confirm that there aren't multiple USB2.0-CRW entries under USB Device Tree in System Information? Thank you.

@dblhlx
Copy link

dblhlx commented Dec 29, 2021

I still see multiple entries of USB2.0-CRW with the boot argument -rtsxnopm. I can also see multiple USB2.0-CRW@14200000/RealtekUSBCardReaderController entries but a single RealtekUSBSDXCSlot entry in the IORegistryExplorer screenshot of my previous post. Nonetheless, I consider this is a cosmetic issue because the card reader is functional.

Thank you very much!
Screen Shot 2021-12-29 at 7 07 46 AM

@mac-os-x
Copy link

Hello, I was able to identify the sd card with the same kext, but when I say restart after sleep, the system shuts down too late. I have tested it many times and such a problem occurs in both Big Sur and Monterey. @0xFireWolf

@mac-os-x
Copy link

Ekran Resmi 2022-01-24 21 37 27

@prud281
Copy link

prud281 commented Mar 28, 2022

-rtsxnopm argument doesn't hel
Снимок экрана 2022-03-28 в 06 29 22
p

@maverx72
Copy link

-rtsxnopm argument doesn't hel
Снимок экрана 2022-03-28 в 06 29 22
p

Same for me

@maverx72
Copy link

With the boot argument -rtsxnopm there is no change

@maverx72
Copy link

bluetooth still can't work around 15 minutes, Card reader work, Card reader USB2.0-CRW device still increase and shutdown still slowed after sleep awake operation.

@toxa70x4
Copy link

toxa70x4 commented May 3, 2022

Very relevant, waiting for a fix and a new version.
Many thanks to the author.

@franksfc
Copy link

Is there any chance to fix it? I can offer any information concerned.

@lslqtz
Copy link

lslqtz commented Jul 12, 2022

Same issue, I thought it was caused by the system version, so I tried these versions but still had problems. (macOS 11.6.7/macOS 12.0 beta 5/macOS 12.0 beta 6/macOS 12.1/macOS 12.4, SD card not inserted)

If I don't load kext, then there's no problem.

On my device, sleep turns off the USB power, which I think is one of the reasons.

Can we remove driver references to SD card during sleep?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
RTS5129 RTS5129
Development

No branches or pull requests

10 participants