Hi HPS,
I think that UPS_PORT_POWER and UPS_PORT_LINK_STATE overlap.
And, in xhci.c you set UPS_PORT_POWER as folows.
When UPS_PORT_POWER is set, UPS_PORT_LINK_STATE_GET() macro will
return incorrect value.
if (v & XHCI_PS_PP) {
/*
* The USB 3.0 RH is using the
* USB 2.0's power bit
*/
i |= UPS_PORT_POWER;
}
Regards,
Kohji Okuno