quoted
It still has below limitations:
- it does not work for multi-phy ehci
- the best place is after debounce, but I can't get
phy there
quoted
+ /* FIXME:
+ * - it does not work for multi-phy ehci
+ * - the best place is after debounce, but I can't get
+ * phy there
+ */
+ if (unlikely(ehci->transceiver &&
+ (pstatus & PORT_CSC))) {
A new thought... If you move the transceiver pointer from struct
ehci_hcd to struct usb_hcd, then you _will_ be able to get at it from
within the debouncing routine.
Good suggestion, after that the driver can add PHY operation(quirk or not)
during the whole usb host life periods.
Or if you prefer, leave the pointer where it is and add a method to
struct hc_driver for retrieving the pointer.
Alan Stern