All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jun Li <jun.li@nxp.com>
To: Peter Chen <peter.chen@nxp.com>
Cc: "balbi@kernel.org" <balbi@kernel.org>,
	"mathias.nyman@intel.com" <mathias.nyman@intel.com>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	dl-linux-imx <linux-imx@nxp.com>,
	"pawell@cadence.com" <pawell@cadence.com>,
	"rogerq@ti.com" <rogerq@ti.com>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>
Subject: RE: [PATCH v2 7/9] usb: host: xhci-plat: add priv flag for skip_phy_initialization
Date: Mon, 25 May 2020 12:30:49 +0000	[thread overview]
Message-ID: <VE1PR04MB65288C26F1F79234332E757D89B30@VE1PR04MB6528.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <20200525030418.GC16948@b29397-desktop>



> -----Original Message-----
> From: Peter Chen <peter.chen@nxp.com>
> Sent: 2020年5月25日 11:04
> To: Jun Li <jun.li@nxp.com>
> Cc: balbi@kernel.org; mathias.nyman@intel.com; linux-usb@vger.kernel.org;
> dl-linux-imx <linux-imx@nxp.com>; pawell@cadence.com; rogerq@ti.com;
> gregkh@linuxfoundation.org
> Subject: Re: [PATCH v2 7/9] usb: host: xhci-plat: add priv flag for
> skip_phy_initialization
> 
> On 20-05-24 07:40:34, Jun Li wrote:
> > Hi
> >
> > > -----Original Message-----
> > > From: Peter Chen <peter.chen@nxp.com>
> > > Sent: 2020年5月24日 7:23
> > > To: balbi@kernel.org; mathias.nyman@intel.com
> > > Cc: linux-usb@vger.kernel.org; dl-linux-imx <linux-imx@nxp.com>;
> > > pawell@cadence.com; rogerq@ti.com; gregkh@linuxfoundation.org; Jun
> > > Li <jun.li@nxp.com>; Peter Chen <peter.chen@nxp.com>
> > > Subject: [PATCH v2 7/9] usb: host: xhci-plat: add priv flag for
> > > skip_phy_initialization
> > >
> > > Some DRD controllers (eg, dwc3 & cdns3) have PHY management at their
> > > own driver to cover both device and host mode, so add one priv flag
> > > for such users to skip PHY management from HCD core.
> >
> > Can this flag be set directly in __cdns3_host_init()?
> 
> No, since both HCD creation and usb_add_hcd invoking are at xhci_plat_probe, glue
> layer has no chance to change hcd flags.

I see after patch[2/9],

@@ -43,6 +45,11 @@ static int __cdns3_host_init(struct cdns3 *cdns)
                goto err1;
        }

+       /* Glue needs to access xHCI region register for Power management */
+       hcd = platform_get_drvdata(xhci);
+       if (hcd)
+               cdns->xhci_regs = hcd->regs;
+

You already can access hcd directly.

Li Jun
> 
> Peter
> >
> > Li Jun
> > >
> > > Signed-off-by: Peter Chen <peter.chen@nxp.com>
> > > ---
> > >  drivers/usb/host/xhci-plat.c | 8 ++++++--
> > > drivers/usb/host/xhci-plat.h | 1 +
> > >  2 files changed, 7 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/usb/host/xhci-plat.c
> > > b/drivers/usb/host/xhci-plat.c index
> > > 03d6bbe51919..a3d6cb464186 100644
> > > --- a/drivers/usb/host/xhci-plat.c
> > > +++ b/drivers/usb/host/xhci-plat.c
> > > @@ -183,6 +183,8 @@ static int xhci_plat_probe(struct platform_device *pdev)
> > >  	struct usb_hcd		*hcd;
> > >  	int			ret;
> > >  	int			irq;
> > > +	struct xhci_plat_priv	*priv = NULL;
> > > +
> > >
> > >  	if (usb_disabled())
> > >  		return -ENODEV;
> > > @@ -280,8 +282,7 @@ static int xhci_plat_probe(struct platform_device *pdev)
> > >  		priv_match = dev_get_platdata(&pdev->dev);
> > >
> > >  	if (priv_match) {
> > > -		struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd);
> > > -
> > > +		priv = hcd_to_xhci_priv(hcd);
> > >  		/* Just copy data for now */
> > >  		*priv = *priv_match;
> > >  	}
> > > @@ -329,6 +330,9 @@ static int xhci_plat_probe(struct
> > > platform_device *pdev)
> > >
> > >  	hcd->tpl_support = of_usb_host_tpl_support(sysdev->of_node);
> > >  	xhci->shared_hcd->tpl_support = hcd->tpl_support;
> > > +	if (priv && priv->skip_phy_initialization)
> > > +		hcd->skip_phy_initialization = 1;
> > > +
> > >  	ret = usb_add_hcd(hcd, irq, IRQF_SHARED);
> > >  	if (ret)
> > >  		goto disable_usb_phy;
> > > diff --git a/drivers/usb/host/xhci-plat.h
> > > b/drivers/usb/host/xhci-plat.h index
> > > 1fb149d1fbce..8825e8eb28d6 100644
> > > --- a/drivers/usb/host/xhci-plat.h
> > > +++ b/drivers/usb/host/xhci-plat.h
> > > @@ -13,6 +13,7 @@
> > >  struct xhci_plat_priv {
> > >  	const char *firmware_name;
> > >  	unsigned long long quirks;
> > > +	unsigned int skip_phy_initialization:1;
> > >  	void (*plat_start)(struct usb_hcd *);
> > >  	int (*init_quirk)(struct usb_hcd *);
> > >  	int (*suspend_quirk)(struct usb_hcd *);
> > > --
> > > 2.17.1
> >
> 
> --
> 
> Thanks,
> Peter Chen

  reply	other threads:[~2020-05-25 12:30 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-23 23:22 [PATCH v2 0/9] usb: some PM changes for cdns3 and xhci-plat Peter Chen
2020-05-23 23:22 ` [PATCH v2 1/9] usb: cdns3: introduce cdns3_set_phy_power API Peter Chen
2020-05-24  5:56   ` Jun Li
2020-05-23 23:22 ` [PATCH v2 2/9] usb: cdns3: add runtime PM support Peter Chen
2020-05-24  5:57   ` Jun Li
2020-05-24  6:43     ` Jun Li
2020-05-25  2:57     ` Peter Chen
2020-05-25 12:23       ` Jun Li
2020-05-26  2:03         ` Peter Chen
2020-06-03  8:51   ` Chunfeng Yun
2020-06-03  9:27     ` Peter Chen
2020-05-23 23:22 ` [PATCH v2 3/9] usb: cdns3: imx: add glue layer runtime pm implementation Peter Chen
2020-05-24  6:55   ` Jun Li
2020-05-25  2:59     ` Peter Chen
2020-05-25  4:53   ` kbuild test robot
2020-05-25  4:53     ` kbuild test robot
2020-05-25  6:31     ` Peter Chen
2020-05-25  6:31       ` Peter Chen
2020-05-25  8:25   ` kbuild test robot
2020-05-25  8:25     ` kbuild test robot
2020-05-23 23:22 ` [PATCH v2 4/9] usb: host: xhci-plat: add platform data support Peter Chen
2020-05-29 10:21   ` Mathias Nyman
2020-05-23 23:23 ` [PATCH v2 5/9] usb: host: xhci-plat: add .suspend_quirk for struct xhci_plat_priv Peter Chen
2020-05-29 10:22   ` Mathias Nyman
2020-05-23 23:23 ` [PATCH v2 6/9] usb: host: xhci-plat: delete the unnecessary code Peter Chen
2020-05-24  7:40   ` Jun Li
2020-05-29 10:23   ` Mathias Nyman
2020-05-23 23:23 ` [PATCH v2 7/9] usb: host: xhci-plat: add priv flag for skip_phy_initialization Peter Chen
2020-05-24  7:40   ` Jun Li
2020-05-25  3:03     ` Peter Chen
2020-05-25 12:30       ` Jun Li [this message]
2020-05-26  0:26         ` Peter Chen
2020-05-29 13:10   ` Mathias Nyman
2020-05-29 13:15     ` Peter Chen
2020-05-23 23:23 ` [PATCH v2 8/9] usb: cdns3: host: add .suspend_quirk for xhci-plat.c Peter Chen
2020-05-23 23:23 ` [PATCH v2 9/9] usb: cdns3: host: add xhci_plat_priv's flag skip_phy_initialization Peter Chen
2020-05-29  7:22 ` [PATCH v2 0/9] usb: some PM changes for cdns3 and xhci-plat Peter Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=VE1PR04MB65288C26F1F79234332E757D89B30@VE1PR04MB6528.eurprd04.prod.outlook.com \
    --to=jun.li@nxp.com \
    --cc=balbi@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=pawell@cadence.com \
    --cc=peter.chen@nxp.com \
    --cc=rogerq@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.