Contribute
Register

[SOLVED] NVME SSD slower & non available Bluetooth after sleep [ThinkPad T470]

Status
Not open for further replies.
Joined
Aug 12, 2018
Messages
17
Motherboard
ThinkPad T470
CPU
Intel i5-7200U
Graphics
Intel HD620
Thanks to all the information and guides on this forum I have a nearly fully functioning hack by now except two last problems.

A few days ago I noticed that my Samsung PM961 (OEM version of the 960 Evo) is way slower after a sleep/wake cycle.
So far I did not find anybody else that had a similar problem.. To fix that I already tried a clean install of 10.13.6 with HFS+ instead of APFS, but the exact same thing also happened with HFS+.

The other problem concerns Bluetooth (Dell DW1560), which is not available after sleep. This only happens when I am on battery power.
I have noticed that I get two entries for a Bluetooth device in the system report after sleep. After a restart I only have one and Bluetooth is working nicely.
To fix Bluetooth I tried setting a delay as described here: https://github.com/RehabMan/OS-X-BrcmPatchRAM. This actually helped a bit and now I have working Bluetooth after sleep sometimes, but sometimes it still brakes.

While working on my problem reporting files I noticed a timeout (IOKitWaitQuiet() timed out.) when trying to do "sudo kextcache -I /" after sleep. Maybe that has something to do with it?


I attached a full set (hopefully) of problem reporting files and two pictures of my SSDs speed before and after sleep.
Would be great if someone could have a look at my files!
 

Attachments

  • problem reporting.zip
    6.9 MB · Views: 105
  • black magic_after_sleep.png
    black magic_after_sleep.png
    688.4 KB · Views: 142
  • black magic_before_sleep.png
    black magic_before_sleep.png
    685.4 KB · Views: 135
Thanks to all the information and guides on this forum I have a nearly fully functioning hack by now except two last problems.

A few days ago I noticed that my Samsung PM961 (OEM version of the 960 Evo) is way slower after a sleep/wake cycle.
So far I did not find anybody else that had a similar problem.. To fix that I already tried a clean install of 10.13.6 with HFS+ instead of APFS, but the exact same thing also happened with HFS+.

The other problem concerns Bluetooth (Dell DW1560), which is not available after sleep. This only happens when I am on battery power.
I have noticed that I get two entries for a Bluetooth device in the system report after sleep. After a restart I only have one and Bluetooth is working nicely.
To fix Bluetooth I tried setting a delay as described here: https://github.com/RehabMan/OS-X-BrcmPatchRAM. This actually helped a bit and now I have working Bluetooth after sleep sometimes, but sometimes it still brakes.

While working on my problem reporting files I noticed a timeout (IOKitWaitQuiet() timed out.) when trying to do "sudo kextcache -I /" after sleep. Maybe that has something to do with it?


I attached a full set (hopefully) of problem reporting files and two pictures of my SSDs speed before and after sleep.
Would be great if someone could have a look at my files!

Refer to the BrcmPatchRAM README on github for kernel flags that control delays during firmware upload.

Your ACPI files in ACPI/origin are too old to compare against ACPI/patched. So I didn't check... You forgot to press F2 as per FAQ.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
I did, I also mentioned it in my original post. So far I tried: bpr_probedelay=100 bpr_initialdelay=300 bpr_postresetdelay=300, which made it somewhat better, but I still have less than 50% success after sleep.

As requested here are the debug files generated with the script.

Thank you for your help! I really appreciate it!
 

Attachments

  • debug_after-sleep.zip
    5 MB · Views: 103
  • debug_before-sleep.zip
    5 MB · Views: 96
I did, I also mentioned it in my original post. So far I tried: bpr_probedelay=100 bpr_initialdelay=300 bpr_postresetdelay=300, which made it somewhat better, but I still have less than 50% success after sleep.

As requested here are the debug files generated with the script.

Thank you for your help! I really appreciate it!

Your ACPI configuration is wrong. You should remove SSDT-EC_fakeECdeviceforUSBPM.aml. You already have a native EC (named EC), therefore no need for a fake one.

Your UsbConnector values are also wrong. Should be same number of HSxx ports with UsbConnector=3 as SSxx ports with UsbConnector=3. You have 3, and 2, respectively.

You may need to experiment with those delays until you find a reliable set of delays. It can be hardware dependent.

What is pia_nw? You can see it has attached to some USB objects. Such software tends to interfere with BrcmPatchRAM...
Same with VDCAssistant.
 
I added the face EC device because of your hint in https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/.
"Note: If your computer has an ECDT in ACPI, you should not rename anything along the EC path, including the EC itself. Use a "Fake EC" instead as described below. You can check if you have ECDT by extracting ACPI with Clover (F4) and checking for ECDT.aml in EFI/Clover/ACPI/origin."
And I have an ECDT.aml in my ACPI/origin folder.
Should I still remove it?

I can see 3 of both: HS01,HS02,HS04 and SS01,SS02,SS04. Did you mean that?

OK, then I will do some more experimentation. Does a bigger delay generally make Bluetooth more reliable?

pia_nw is from the PIA client I guess. (Private Internet Access) and VDCAssistant is apparently connected to the iSight camera.
I have the same problem without the PIA client running though.
 
I added the face EC device because of your hint in https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/.
"Note: If your computer has an ECDT in ACPI, you should not rename anything along the EC path, including the EC itself. Use a "Fake EC" instead as described below. You can check if you have ECDT by extracting ACPI with Clover (F4) and checking for ECDT.aml in EFI/Clover/ACPI/origin."
And I have an ECDT.aml in my ACPI/origin folder.
Should I still remove it?

In the event you have an EC named, 'EC', no need to add or rename EC.
It is already as Apple expects.

I can see 3 of both: HS01,HS02,HS04 and SS01,SS02,SS04. Did you mean that?

Ok, that part is ok (maybe I read ioreg wrongly).
But SS03 is marked internal and is a hub. USB3 hubs always have a HSxx and SSxx component... where is the HSxx port (again, should be marked UsbConnector=255) that corresponds?

OK, then I will do some more experimentation. Does a bigger delay generally make Bluetooth more reliable?

Too short or too long may both cause problems.
 
Ok, I removed it.

I did not know that. How could I test which HS port corresponds to the internal SS03 port, which is only connected to the internal USB 3 SD card reader?
 
Ok, I removed it.

What is 'it'?

I did not know that. How could I test which HS port corresponds to the internal SS03 port, which is only connected to the internal USB 3 SD card reader?

What is 'that'?
You test all ports by injecting all of them. Then plugging in both USB2 and USB3 devices to all ports. Examine the changes in ioreg as you go.
If SS03 is connected to an internal device, it should be marked UsbConnector=255 (and in that case no associated HSxx port).

Maybe I was looking at a different ioreg than you have now...
 
I removed the fake EC, but Bluetooth and my SSD are still not working correctly after sleep.

Your UsbConnector values are also wrong. Should be same number of HSxx ports with UsbConnector=3 as SSxx ports with UsbConnector=3. You have 3, and 2, respectively.
I was referring to this post.
If SS03 is connected to an internal device, it should be marked UsbConnector=255 (and in that case no associated HSxx port).
I now marked SS03 as UsbConnector = 255 (as it was before).
So basically I didn't change anything in my XHC config now.

With my current delays for the Brcm firmware I achieved working Bluetooth after more sleep/wake cycles. It still broke after the third one. Sometimes it also breaks after the first cycle.
But isn't it weird that my Bluetooth device is listed correctly in my system report even though it says Bluetooth unavailable in the menu bar?
I also have two USB entries for Bluetooth in my system report if it's not working.
 

Attachments

  • Screen Shot 2018-09-16 at 22.09.30.png
    Screen Shot 2018-09-16 at 22.09.30.png
    3.6 MB · Views: 133
  • Screen Shot 2018-09-16 at 22.09.38.png
    Screen Shot 2018-09-16 at 22.09.38.png
    3.5 MB · Views: 136
  • Screen Shot 2018-09-16 at 22.09.41.png
    Screen Shot 2018-09-16 at 22.09.41.png
    3.5 MB · Views: 163
Status
Not open for further replies.
Back
Top