Message ID | f5632bde-0c34-9696-e979-497ef4fc9556@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | usb: dwc2: fix wrong order of phy_power_on and phy_init | expand |
Hi Heiner, On 8/20/2022 9:45 PM, Heiner Kallweit wrote: > Since 1599069a62c6 ("phy: core: Warn when phy_power_on is called before > phy_init") the driver complains. In my case (Amlogic SoC) the warning > is: phy phy-fe03e000.phy.2: phy_power_on was called before phy_init > So change the order of the two calls. > > Fixes: 09a75e857790 ("usb: dwc2: refactor common low-level hw code to platform.c") Added CC: Marek Szyprowski <m.szyprowski@samsung.com> > Cc: stable@vger.kernel.org > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> > --- > drivers/usb/dwc2/platform.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c > index c8ba87df7..4db7a18a5 100644 > --- a/drivers/usb/dwc2/platform.c > +++ b/drivers/usb/dwc2/platform.c > @@ -154,9 +154,9 @@ static int __dwc2_lowlevel_hw_enable(struct dwc2_hsotg *hsotg) > } else if (hsotg->plat && hsotg->plat->phy_init) { > ret = hsotg->plat->phy_init(pdev, hsotg->plat->phy_type); > } else { > - ret = phy_power_on(hsotg->phy); > + ret = phy_init(hsotg->phy); > if (ret == 0) > - ret = phy_init(hsotg->phy); > + ret = phy_power_on(hsotg->phy); > } > > return ret; Shouldn't be updated function __dwc2_lowlevel_hw_disable() similarly, according: phy_power_off must be called before phy_exit()? Thanks, Minas
On 22.08.2022 11:39, Minas Harutyunyan wrote: > Hi Heiner, > > On 8/20/2022 9:45 PM, Heiner Kallweit wrote: >> Since 1599069a62c6 ("phy: core: Warn when phy_power_on is called before >> phy_init") the driver complains. In my case (Amlogic SoC) the warning >> is: phy phy-fe03e000.phy.2: phy_power_on was called before phy_init >> So change the order of the two calls. >> >> Fixes: 09a75e857790 ("usb: dwc2: refactor common low-level hw code to platform.c") > > Added CC: Marek Szyprowski <m.szyprowski@samsung.com> >> Cc: stable@vger.kernel.org >> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> >> --- >> drivers/usb/dwc2/platform.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c >> index c8ba87df7..4db7a18a5 100644 >> --- a/drivers/usb/dwc2/platform.c >> +++ b/drivers/usb/dwc2/platform.c >> @@ -154,9 +154,9 @@ static int __dwc2_lowlevel_hw_enable(struct dwc2_hsotg *hsotg) >> } else if (hsotg->plat && hsotg->plat->phy_init) { >> ret = hsotg->plat->phy_init(pdev, hsotg->plat->phy_type); >> } else { >> - ret = phy_power_on(hsotg->phy); >> + ret = phy_init(hsotg->phy); >> if (ret == 0) >> - ret = phy_init(hsotg->phy); >> + ret = phy_power_on(hsotg->phy); >> } >> >> return ret; > > Shouldn't be updated function __dwc2_lowlevel_hw_disable() similarly, > according: phy_power_off must be called before phy_exit()? > Indeed, this should be changed accordingly. See kernel doc: * phy_exit - Phy internal un-initialization * @phy: the phy returned by phy_get() * * Must be called after phy_power_off(). > Thanks, > Minas >
On 8/22/2022 6:55 PM, Heiner Kallweit wrote: > On 22.08.2022 11:39, Minas Harutyunyan wrote: >> Hi Heiner, >> >> On 8/20/2022 9:45 PM, Heiner Kallweit wrote: >>> Since 1599069a62c6 ("phy: core: Warn when phy_power_on is called before >>> phy_init") the driver complains. In my case (Amlogic SoC) the warning >>> is: phy phy-fe03e000.phy.2: phy_power_on was called before phy_init >>> So change the order of the two calls. >>> >>> Fixes: 09a75e857790 ("usb: dwc2: refactor common low-level hw code to platform.c") >> >> Added CC: Marek Szyprowski <m.szyprowski@samsung.com> >>> Cc: stable@vger.kernel.org >>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> >>> --- >>> drivers/usb/dwc2/platform.c | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c >>> index c8ba87df7..4db7a18a5 100644 >>> --- a/drivers/usb/dwc2/platform.c >>> +++ b/drivers/usb/dwc2/platform.c >>> @@ -154,9 +154,9 @@ static int __dwc2_lowlevel_hw_enable(struct dwc2_hsotg *hsotg) >>> } else if (hsotg->plat && hsotg->plat->phy_init) { >>> ret = hsotg->plat->phy_init(pdev, hsotg->plat->phy_type); >>> } else { >>> - ret = phy_power_on(hsotg->phy); >>> + ret = phy_init(hsotg->phy); >>> if (ret == 0) >>> - ret = phy_init(hsotg->phy); >>> + ret = phy_power_on(hsotg->phy); >>> } >>> >>> return ret; >> >> Shouldn't be updated function __dwc2_lowlevel_hw_disable() similarly, >> according: phy_power_off must be called before phy_exit()? >> > Indeed, this should be changed accordingly. Could you please add to your patch fixes for __dwc2_lowlevel_hw_disable() too and re-submit. Thanks, Minas > See kernel doc: > > * phy_exit - Phy internal un-initialization > * @phy: the phy returned by phy_get() > * > * Must be called after phy_power_off(). > >> Thanks, >> Minas >> >
diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c index c8ba87df7..4db7a18a5 100644 --- a/drivers/usb/dwc2/platform.c +++ b/drivers/usb/dwc2/platform.c @@ -154,9 +154,9 @@ static int __dwc2_lowlevel_hw_enable(struct dwc2_hsotg *hsotg) } else if (hsotg->plat && hsotg->plat->phy_init) { ret = hsotg->plat->phy_init(pdev, hsotg->plat->phy_type); } else { - ret = phy_power_on(hsotg->phy); + ret = phy_init(hsotg->phy); if (ret == 0) - ret = phy_init(hsotg->phy); + ret = phy_power_on(hsotg->phy); } return ret;
Since 1599069a62c6 ("phy: core: Warn when phy_power_on is called before phy_init") the driver complains. In my case (Amlogic SoC) the warning is: phy phy-fe03e000.phy.2: phy_power_on was called before phy_init So change the order of the two calls. Fixes: 09a75e857790 ("usb: dwc2: refactor common low-level hw code to platform.c") Cc: stable@vger.kernel.org Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- drivers/usb/dwc2/platform.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)