diff mbox series

[v3,1/2] usb: host: xhci-plat: Add device property to set XHCI_SKIP_PHY_INIT quirk

Message ID 1649323888-12420-2-git-send-email-quic_c_sanm@quicinc.com (mailing list archive)
State Superseded
Headers show
Series Skip phy initialization for DWC3 USB Controllers | expand

Commit Message

Sandeep Maheswaram April 7, 2022, 9:31 a.m. UTC
Add device property usb-skip-phy-init to check and set XHCI_SKIP_PHY_INIT
quirk.
Runtime suspend of phy drivers was failing from DWC3 driver as
runtime usage value is 2 because the phy is initialized from
DWC3 core and HCD core.
Some controllers like DWC3 and CDNS3 manage phy in their core drivers.
This property can be set to avoid phy initialization in HCD core.

Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com>
---
 drivers/usb/host/xhci-plat.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Greg KH April 20, 2022, 3:36 p.m. UTC | #1
On Thu, Apr 07, 2022 at 03:01:27PM +0530, Sandeep Maheswaram wrote:
> Add device property usb-skip-phy-init to check and set XHCI_SKIP_PHY_INIT
> quirk.
> Runtime suspend of phy drivers was failing from DWC3 driver as
> runtime usage value is 2 because the phy is initialized from
> DWC3 core and HCD core.
> Some controllers like DWC3 and CDNS3 manage phy in their core drivers.
> This property can be set to avoid phy initialization in HCD core.
> 
> Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com>
> ---
>  drivers/usb/host/xhci-plat.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
> index 649ffd8..7624ed9 100644
> --- a/drivers/usb/host/xhci-plat.c
> +++ b/drivers/usb/host/xhci-plat.c
> @@ -305,6 +305,9 @@ static int xhci_plat_probe(struct platform_device *pdev)
>  		if (device_property_read_bool(tmpdev, "quirk-broken-port-ped"))
>  			xhci->quirks |= XHCI_BROKEN_PORT_PED;
>  
> +		if (device_property_read_bool(tmpdev, "usb-skip-phy-init"))
> +			xhci->quirks |= XHCI_SKIP_PHY_INIT;

You forgot to document this new property.  Without that, we can not
accept this :(
Pavan Kondeti April 21, 2022, 4:11 a.m. UTC | #2
+Rob Herring

On Wed, Apr 20, 2022 at 05:36:57PM +0200, Greg Kroah-Hartman wrote:
> On Thu, Apr 07, 2022 at 03:01:27PM +0530, Sandeep Maheswaram wrote:
> > Add device property usb-skip-phy-init to check and set XHCI_SKIP_PHY_INIT
> > quirk.
> > Runtime suspend of phy drivers was failing from DWC3 driver as
> > runtime usage value is 2 because the phy is initialized from
> > DWC3 core and HCD core.
> > Some controllers like DWC3 and CDNS3 manage phy in their core drivers.
> > This property can be set to avoid phy initialization in HCD core.
> > 
> > Signed-off-by: Sandeep Maheswaram <quic_c_sanm@quicinc.com>
> > ---
> >  drivers/usb/host/xhci-plat.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
> > index 649ffd8..7624ed9 100644
> > --- a/drivers/usb/host/xhci-plat.c
> > +++ b/drivers/usb/host/xhci-plat.c
> > @@ -305,6 +305,9 @@ static int xhci_plat_probe(struct platform_device *pdev)
> >  		if (device_property_read_bool(tmpdev, "quirk-broken-port-ped"))
> >  			xhci->quirks |= XHCI_BROKEN_PORT_PED;
> >  
> > +		if (device_property_read_bool(tmpdev, "usb-skip-phy-init"))
> > +			xhci->quirks |= XHCI_SKIP_PHY_INIT;
> 
> You forgot to document this new property.  Without that, we can not
> accept this :(
> 

Thanks Greg for taking a look. This series has a device tree binding doc
update but got dropped after Rob's comment here.

https://lore.kernel.org/linux-usb/YY7vAzxj9aR%2FzBSB@robh.at.kernel.org/

Sandeep,

Since, we could not come up with a way to limit this to only dwc3/cdns3
controllers, please include the device tree binding doc and re-send the
series.

https://lore.kernel.org/linux-usb/f578947c-fb10-11b7-abe8-28b6b3f6bb0c@linux.intel.com/#t

has all the different options we dicussed and why we went with a dT param
for this.

Thanks,
Pavan
diff mbox series

Patch

diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index 649ffd8..7624ed9 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -305,6 +305,9 @@  static int xhci_plat_probe(struct platform_device *pdev)
 		if (device_property_read_bool(tmpdev, "quirk-broken-port-ped"))
 			xhci->quirks |= XHCI_BROKEN_PORT_PED;
 
+		if (device_property_read_bool(tmpdev, "usb-skip-phy-init"))
+			xhci->quirks |= XHCI_SKIP_PHY_INIT;
+
 		device_property_read_u32(tmpdev, "imod-interval-ns",
 					 &xhci->imod_interval);
 	}