Re: [PATCH v4 2/2] usb: dwc3: core: defer probe on ulpi_read_id timeout

From: Andy Shevchenko
Date: Mon Nov 21 2022 - 03:37:48 EST


On Sun, Nov 20, 2022 at 04:37:04PM +0100, Ferry Toth wrote:
> Since commit 0f0101719138 ("usb: dwc3: Don't switch OTG -> peripheral if extcon is present"),
> Dual Role support on Intel Merrifield platform broke due to rearranging
> the call to dwc3_get_extcon().
>
> It appears to be caused by ulpi_read_id() masking the timeout on the first
> test write. In the past dwc3 probe continued by calling dwc3_core_soft_reset()
> followed by dwc3_get_extcon() which happend to return -EPROBE_DEFER.
> On deferred probe ulpi_read_id() finally succeeded. Due to above mentioned
> rearranging -EPROBE_DEFER is not returned and probe completes without phy.
>
> As we now changed ulpi_read_id() to return -ETIMEDOUT in this case, we
> need to handle the error by calling dwc3_core_soft_reset() and request
> -EPROBE_DEFER. On deferred probe ulpi_read_id() is retried and succeeds.
>
> Fixes: ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT")
> Cc: stable@xxxxxxxxxxxxxxx
>
> Signed-off-by: Ferry Toth <ftoth@xxxxxxxxxxxxxx>

Same comments as per patch 1.

But before sending v5, let give a chance to others to review the code and other
aspects of the changes.

--
With Best Regards,
Andy Shevchenko