tusb1210 probe of dwc3.0.auto.ulpi fails with EBUSY on 4.19+

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I have been updating my Intel Baytrail tablet from 4.14 to 4.19 and
noticed that the tusb1210 PHY driver now fails to probe on 4.19.x and
4.20-rc4:

  tusb1210: probe of dwc3.0.auto.ulpi failed with error -16 (EBUSY)

The commit that broke this is 211f658b7b40 ("usb: dwc3: pci: Use devm 
functions to get the phy GPIOs") because it now claims the phy GPIOs 
permanently so the PHY driver (here: tusb1210) cannot get them.

Gadget mode still works with this error and even completely without the 
tusb1210 driver, but I have been using the PHY driver additionally 
because it has the advantage that it will also power off the PHY during
suspend. (Plus I have some custom hacky code for charger detection in 
it at the moment, but I did not have it applied for testing this 
problem..)

The comment that still exists above the changed code also mentions why
the GPIO descriptors were put immediately after use:

  /*
   * These GPIOs will turn on the USB2 PHY. Note that we have to
   * put the gpio descriptors again here because the phy driver
   * might want to grab them, too.
   */

Reverting the commit makes everything work again for me. Does this 
change fix a problem on another device or was it mostly just cleanup?

I wanted to suggest that turning on the PHY may not actually be 
necessary in dwc3-pci since the tusb1210 driver has the same code in its 
probe() method. However, when I tested it it did not work at all because 
the tusb1210 driver is not even loaded if the PHY is not turned on 
before dwc3 is loaded...
(The ULPI vendor/product ID is wrong with the PHY turned off)

Additional note: The probe error above happens only if:
 - The tablet has a TUSB1210/TUSB1211 external PHY (not sure if this is 
   the case for all Baytrail tablets..)
 - CONFIG_USB_DWC3_ULPI and CONFIG_PHY_TUSB1210 are enabled
 - GPIOs are defined in the ACPI DSDT table (Unlike the ACPI GPIOs, the 
   fallback GPIO mappings are not inherited to the ULPI device..)

I am also open for any other suggestions. :)

Thanks,
Stephan



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux