Re: [PATCH v1 04/12] usb: phy: tegra: Support OTG mode programming

From: Dmitry Osipenko
Date: Thu Jul 01 2021 - 09:55:10 EST


01.07.2021 05:23, Dmitry Osipenko пишет:
> static int tegra_usb_phy_init(struct usb_phy *u_phy)
> @@ -967,12 +1057,26 @@ static int tegra_usb_phy_init(struct usb_phy *u_phy)
> goto disable_vbus;
> }
>
> + err = tegra_usb_phy_configure_pmc(phy);
> + if (err)
> + goto close_phy;
> +
> err = tegra_usb_phy_power_on(phy);
> if (err)
> goto close_phy;
>
> + if (phy->irq > 0) {
> + err = request_irq(phy->irq, tegra_usb_phy_isr, IRQF_SHARED,
> + dev_name(phy->u_phy.dev), phy);
> + if (err)
> + goto pwr_off_phy;
> + }

There were reports that this patch was casing an unhandled USB interrupt
event on some devices. I thought this problem was fixed already, but
looking again at the offending kernel log again, it still should be a
problem.

The interrupt fires from the usb_add_hcd() of the CI driver before CI
driver have requested interrupt in ci_hdrc_probe(). So either CI driver
should request interrupt earlier or Tegra PHY driver should keep shared
interrupt disabled after requesting it, the latter variant should be
more robust. I'll improve it in v2.