Hi, On 6/13/22 17:48, Andy Shevchenko wrote: > +Cc: Ferry > > On Sat, Feb 05, 2022 at 05:45:32PM +0100, Hans de Goede wrote: >> ulpi_read() and ulpi_write() calls can fail. Add wrapper functions to log >> errors when this happens and add error checking to the read + write of >> the phy parameters from the TUSB1210_VENDOR_SPECIFIC2 register.` > > > This patch seems to break Intel Merrifield platform. > > Before: > > [ 36.333644] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller > [ 36.339828] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1 > [ 36.352566] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f06c hci version 0x100 quirks 0x0000000002010010 > [ 36.367062] xhci-hcd xhci-hcd.1.auto: irq 16, io mem 0xf9100000 > [ 36.378429] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller > [ 36.384705] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2 > > After: > [ 32.986776] tusb1210 dwc3.0.auto.ulpi: error -110 writing val 0x41 to reg 0x80 > [ 32.994053] phy phy-dwc3.0.auto.ulpi.0: phy poweron failed --> -110 > [ 33.000601] dwc3 dwc3.0.auto: error -ETIMEDOUT: failed to initialize core > [ 33.007486] dwc3: probe of dwc3.0.auto failed with error -110 > > > Any ideas? In my experience with using the phy for charger-type detection on some x86 android tablets which don't have any other way to do charger detection, these errors indicate a real communication issue for reading/writing phy registers. At the same time this usually does not seem to be a big problem since the phy seems to work fine with its power-on defaults. In case of Bay Trail these errors were related to 2 things: 1. Autosuspend of the phy-interface block in the dwc3, fixed by: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d7c93a903f33ff35aa0e6b5a8032eb9755b00826 But dwc3_pci_mrfld_properties[] already sets "snps,dis_u2_susphy_quirk", so I guess it is not this. 2. There being no delay in tusb1210_power_on() between toggling the reset IO and then trying to communicate with the phy, fixed in: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=df37c99815d9e0775e67276d70c93cbc25f31c70 Maybe the: #define TUSB1210_RESET_TIME_MS 30 Added by that commit needs to be a bit bigger for the possibly older phy revision used on the merifield boards? (note it is fine to just increase it a bit everywhere). Regards, Hans > > P.S> There is no bisect log, since it's done manually with a good guess by > Ferry. I have just reverted patches on ULPI from this series and start applying > them one-by-one. >