Contribute
Register

[Solved] USB 3.0 Type-C port sometimes operates at 2.0 (HSXX)

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hey,
I finally got a new USB 3.1 Type-C drive to test my USB 3.0 Type-C port. But the weird thing is that it sometimes connects to HS04 port in IOReg and operates at 2.0 speed, and sometimes it connects to SS03 port and operates at 3.0 speed.
My laptop's port does not have Thunderbolt support, just a regular USB 3.0 Type-C port.
I'm attaching my PR files.
 

Attachments

  • debug_19834.zip
    2 MB · Views: 31

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,247
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Hey,
I finally got a new USB 3.1 Type-C drive to test my USB 3.0 Type-C port. But the weird thing is that it sometimes connects to HS04 port in IOReg and operates at 2.0 speed, and sometimes it connects to SS03 port and operates at 3.0 speed.
My laptop's port does not have Thunderbolt support, just a regular USB 3.0 Type-C port.
I'm attaching my PR files.

Make sure you test the port in both orientations (it may use a different SSxx when in the alternate orientation).
Also, you need to cut your injected ports to be within the 15-port limit. Do not expect USB to be stable while you're injecting more than 15.
Don't forget to set the UsbConnector value correctly (will be either 9 or 10 depending on the type of USB-C you have [with a switch, or without]). See ACPI spec for _UPC.
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Make sure you test the port in both orientations (it may use a different SSxx when in the alternate orientation).
Also, you need to cut your injected ports to be within the 15-port limit. Do not expect USB to be stable while you're injecting more than 15.
Don't forget to set the UsbConnector value correctly (will be either 9 or 10 depending on the type of USB-C you have [with a switch, or without]). See ACPI spec for _UPC.
After some testing, turns out to be my mistake... My USB type-C drive will operate at 3.0 port speed when I actually connect it well, but if I partially enter the drive into the port, it will be connected under the HS04 port and operate at 2.0 speed.

Now that I've identified the ports, I deleted the port limit patch.

I thought that I could use UsbConnector=3 since my laptop's port is a USB 3.0 Type-C port?

After looking at my DSDT, I found out that all my _UPC objects are correct according to what I have defined in my UIAC configuration. So after looking at both HS04 and SS03 inside my DSDT, I found out that they both return 0x09 in the _UPC. So that should be it, right?
 
Last edited:

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,247
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
I thought that I could use UsbConnector=3 since my laptop's port is a USB 3.0 Type-C port?

No.
USB-C ports should be either 9 or 10, depending on whether there is an internal switch or not.
Read the ACPI spec.
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
No.
USB-C ports should be either 9 or 10, depending on whether there is an internal switch or not.
Read the ACPI spec.
Thanks.
I read about it in the latest ACPI spec, but since I don't know if my laptop's USB Type-C port has a switch or not, I'll go with my DSDT configuration for _UPC which is correct for all the other ports.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
188,247
Motherboard
Intel DH67BL
CPU
i7-2600K
Graphics
HD 3000
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
Thanks.
I read about it in the latest ACPI spec, but since I don't know if my laptop's USB Type-C port has a switch or not, I'll go with my DSDT configuration for _UPC which is correct for all the other ports.

If it uses the same SSxx in both orientations, then it has an internal switch (UsbConnector=9).
If it uses a different SSxx in each orientation, then it has no switch (UsbConnector=10).
 

the-braveknight

Moderator
Joined
Nov 24, 2015
Messages
1,225
Motherboard
Lenovo Legion Y520 (Clover)
CPU
i7-7700HQ
Graphics
HD 630 (1920x1080) + Nvidia GTX 1060
Mac
  1. MacBook Air
Mobile Phone
  1. iOS
If it uses the same SSxx in both orientations, then it has an internal switch (UsbConnector=9).
If it uses a different SSxx in each orientation, then it has no switch (UsbConnector=10).
Okay thanks!
It appears to be using the same port (SS03) in either orientation, so UsbConnector=9 just like what's found on my DSDT configuration for _UPC.

Perhaps you should add this info to your USB/UIAC threads.

Marking this issue solved.
 
Last edited:
Top