0xFireWolf / RealtekCardReader

An unofficial Realtek PCIe/USB-based SD card reader driver for macOS
BSD 3-Clause "New" or "Revised" License
182 stars 18 forks source link

RTS5129 increase one sd card item after wakeup #22

Open nabaonan opened 2 years ago

nabaonan commented 2 years ago

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 commented 2 years ago

image

nabaonan commented 2 years ago

image

nabaonan commented 2 years ago

rtsx.log

parnz commented 2 years ago

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 commented 2 years ago

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.

0xFireWolf commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

@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, ...

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

RealtekCardReader_0.9.7_0a0d816_DEBUG.zip

dblhlx commented 2 years ago

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 commented 2 years ago

@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?

Thank you.

dblhlx commented 2 years ago

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 commented 2 years ago

@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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

Ekran Resmi 2022-01-24 21 37 27

prud281 commented 2 years ago

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

maverx72 commented 2 years ago

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

Same for me

maverx72 commented 2 years ago

With the boot argument -rtsxnopm there is no change

maverx72 commented 2 years ago

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 commented 2 years ago

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

franksfc commented 2 years ago

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

lslqtz commented 2 years ago

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?