>>> Now, most of controllers set hcd->has_tt = 1, but they may not have >>> hostpc. Why you think these two things have relationship? >> Setting has_tt and has_lpm can't work without has_hostpc, they have >> incompatible >> register layout for port register : >> : >> has_lpm >> #define PORT_LPM (1<<9) /* LPM transaction */ >> #define PORT_DEV_ADDR (0x7f<<25) /* device address */ >> #define PORT_SSTS (0x3<<23) /* suspend status */ >> >> has_tt (without has_hostpc) >> 9 HSP (high speed status) >> 23 PHCD (phy clock disable) >> 24 PFSC (force speed) >> 26-27 (port speed) >> > I mean why set ehci->has_hostpc = 1 when hcd->has_tt =1 > Is it possible read register to know if has_hostpc and has_lpm? > > I think you miss some context. The code is [1]. So ehci->has_hostpc is set when hcd->has_tt =1 and ehci->has_lpm = 1. Matthieu [1] if (HCC_LPM(hcc_params)) { /* support link power management EHCI 1.1 addendum */ ehci_dbg(ehci, "support lpm\n"); ehci->has_lpm = 1; if (hird > 0xf) { ehci_dbg(ehci, "hird %d invalid, use default 0", hird); hird = 0; } temp |= hird << 24; if (ehci_is_TDI(ehci)) { ehci->has_hostpc = 1; ehci->has_tdi_phy_lpm = 1; } } -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html