All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: "Roger Quadros" <rogerq@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Peter Chen" <peter.chen@kernel.org>,
	"Pawel Laszczak" <pawell@cadence.com>,
	"Nishanth Menon" <nm@ti.com>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Tero Kristo" <kristo@kernel.org>
Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Grégory Clement" <gregory.clement@bootlin.com>
Subject: Re: [PATCH v2 6/7] usb: cdns3-ti: signal reset-on-resume to xHCI for J7200 platform
Date: Tue, 21 Nov 2023 18:06:01 +0100	[thread overview]
Message-ID: <CX4NJXCYMSJ1.AF8FQLHU77RU@tleb-bootlin-xps13-01> (raw)
In-Reply-To: <d2bd89f1-a86b-4fe4-a7ad-20c7e8caf9b6@kernel.org>

Hello,

On Tue Nov 21, 2023 at 5:53 PM CET, Roger Quadros wrote:
> On 20/11/2023 19:06, Théo Lebrun wrote:
> > Pass CDNS3_RESET_ON_RESUME as platform data to cdns3 host role. It will
> > in turn pass it down to xHCI platform data as XHCI_RESET_ON_RESUME.
> > 
> > Avoid this warning on resume:
> > 
> >   [   16.017462] xhci-hcd xhci-hcd.1.auto: xHC error in resume, USBSTS 0x401, Reinit
> > 
> > When used, remote wakeup is not expected to work.
> > 
> > Only focus J7200 as other SoC are untested.
> > 
> > Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
> > ---
> >  drivers/usb/cdns3/cdns3-ti.c | 19 +++++++++++++++++--
> >  1 file changed, 17 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
> > index 84f93c2fcd5c..7d56a1acbc54 100644
> > --- a/drivers/usb/cdns3/cdns3-ti.c
> > +++ b/drivers/usb/cdns3/cdns3-ti.c
> > @@ -16,6 +16,7 @@
> >  #include <linux/of_platform.h>
> >  #include <linux/pm_runtime.h>
> >  #include <linux/property.h>
> > +#include "core.h"
> >  
> >  /* USB Wrapper register offsets */
> >  #define USBSS_PID		0x0
> > @@ -128,6 +129,7 @@ static int cdns_ti_probe(struct platform_device *pdev)
> >  {
> >  	struct device *dev = &pdev->dev;
> >  	struct device_node *node = pdev->dev.of_node;
> > +	const struct of_dev_auxdata *auxdata;
> >  	struct cdns_ti *data;
> >  	unsigned long rate;
> >  	int error, i;
> > @@ -177,7 +179,8 @@ static int cdns_ti_probe(struct platform_device *pdev)
> >  
> >  	cdns_ti_init_hw(data);
> >  
> > -	error = of_platform_populate(node, NULL, NULL, dev);
> > +	auxdata = of_device_get_match_data(dev);
> > +	error = of_platform_populate(node, NULL, auxdata, dev);
> >  	if (error) {
> >  		dev_err(dev, "failed to create children: %d\n", error);
> >  		return error;
> > @@ -222,8 +225,20 @@ static const struct dev_pm_ops cdns_ti_pm_ops = {
> >  
> >  #endif /* CONFIG_PM */
> >  
> > +static struct cdns3_platform_data cdns_ti_j7200_pdata = {
> > +	.quirks = CDNS3_RESET_ON_RESUME,
> > +};
>
> We will need to introduce a new data structure "struct cdns_ti_platform_data"
> and add platform specific details like "reset_on_resume" to it.
> This is to address what Krzysztof pointed to in patch 4.

Yes I've got it locally following Krzysztof's review. Below my signature
is a sneak peak as I'll wait a bit more before a V3. First we implement
resume behavior in the wrapper driver using match data then we add
auxdata passed to the subdevices.

Regards,

--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


------------------------------------------------------------------------


From 69a59e3408668dfa06d3790cb20948961708791d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Lebrun?= <theo.lebrun@bootlin.com>
Date: Mon, 20 Nov 2023 16:47:29 +0100
Subject: [PATCH 05/13] usb: cdns3-ti: add suspend/resume procedures for J7200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hardware initialisation is only done at probe. The J7200 USB controller
is reset at resume because of power-domains toggling off & on. We
therefore reconfigure the hardware at resume.

Reuse the newly extracted cdns_ti_init_hw() function that contains the
register write sequence.

Only focus J7200 as other SoC are untested. If the controller does not
reset we do not want to redo reg writes.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
 drivers/usb/cdns3/cdns3-ti.c | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
index d4232b440e4e..7530b6b5159d 100644
--- a/drivers/usb/cdns3/cdns3-ti.c
+++ b/drivers/usb/cdns3/cdns3-ti.c
@@ -58,6 +58,11 @@ struct cdns_ti {
   struct clk *usb2_refclk;
   struct clk *lpm_clk;
   int usb2_refclk_rate_code;
+  const struct cdns_ti_match_data *match_data;
+};
+
+struct cdns_ti_match_data {
+  bool reset_on_resume;
 };

 static const int cdns_ti_rate_table[] = {   /* in KHZ */
@@ -138,6 +143,7 @@ static int cdns_ti_probe(struct platform_device *pdev)
   platform_set_drvdata(pdev, data);

   data->dev = dev;
+  data->match_data = of_device_get_match_data(dev);

   data->usbss = devm_platform_ioremap_resource(pdev, 0);
   if (IS_ERR(data->usbss)) {
@@ -202,7 +208,30 @@ static void cdns_ti_remove(struct platform_device *pdev)
   platform_set_drvdata(pdev, NULL);
 }

+#ifdef CONFIG_PM
+
+static int cdns_ti_resume(struct device *dev)
+{
+  struct cdns_ti *data = dev_get_drvdata(dev);
+
+  if (data->match_data && data->match_data->reset_on_resume)
+     cdns_ti_init_hw(data);
+
+  return 0;
+}
+
+static const struct dev_pm_ops cdns_ti_pm_ops = {
+  SET_SYSTEM_SLEEP_PM_OPS(NULL, cdns_ti_resume)
+};
+
+#endif /* CONFIG_PM */
+
+static const struct cdns_ti_match_data cdns_ti_j7200_match_data = {
+  .reset_on_resume = true,
+};
+
 static const struct of_device_id cdns_ti_of_match[] = {
+  { .compatible = "ti,j7200-usb", .data = &cdns_ti_j7200_match_data, },
   { .compatible = "ti,j721e-usb", },
   { .compatible = "ti,am64-usb", },
   {},
@@ -213,8 +242,9 @@ static struct platform_driver cdns_ti_driver = {
   .probe      = cdns_ti_probe,
   .remove_new = cdns_ti_remove,
   .driver     = {
-     .name = "cdns3-ti",
+     .name    = "cdns3-ti",
      .of_match_table   = cdns_ti_of_match,
+     .pm      = pm_ptr(&cdns_ti_pm_ops),
   },
 };

--
2.42.0


------------------------------------------------------------------------


From 4ff91a036da297e9e8585980c6133bee9c45d9a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Lebrun?= <theo.lebrun@bootlin.com>
Date: Mon, 20 Nov 2023 17:02:44 +0100
Subject: [PATCH 07/13] usb: cdns3-ti: signal reset-on-resume to xHCI for J7200
 platform
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Pass CDNS3_RESET_ON_RESUME as platform data to cdns3 host role. It will
in turn pass it down to xHCI platform data as XHCI_RESET_ON_RESUME.

Avoid this warning on resume:

  [   16.017462] xhci-hcd xhci-hcd.1.auto: xHC error in resume, USBSTS 0x401, Reinit

When used, remote wakeup is not expected to work.

Only focus J7200 as other SoC are untested.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
 drivers/usb/cdns3/cdns3-ti.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
index 7530b6b5159d..da2648ebc179 100644
--- a/drivers/usb/cdns3/cdns3-ti.c
+++ b/drivers/usb/cdns3/cdns3-ti.c
@@ -16,6 +16,7 @@
 #include <linux/of_platform.h>
 #include <linux/pm_runtime.h>
 #include <linux/property.h>
+#include "core.h"

 /* USB Wrapper register offsets */
 #define USBSS_PID      0x0
@@ -62,7 +63,8 @@ struct cdns_ti {
 };

 struct cdns_ti_match_data {
-  bool reset_on_resume;
+  bool           reset_on_resume;
+  const struct of_dev_auxdata   *auxdata;
 };

 static const int cdns_ti_rate_table[] = {   /* in KHZ */
@@ -132,6 +134,7 @@ static int cdns_ti_probe(struct platform_device *pdev)
 {
   struct device *dev = &pdev->dev;
   struct device_node *node = pdev->dev.of_node;
+  const struct of_dev_auxdata *auxdata = NULL;
   struct cdns_ti *data;
   unsigned long rate;
   int error, i;
@@ -181,7 +184,9 @@ static int cdns_ti_probe(struct platform_device *pdev)

   cdns_ti_init_hw(data);

-  error = of_platform_populate(node, NULL, NULL, dev);
+  if (data->match_data)
+     auxdata = data->match_data->auxdata;
+  error = of_platform_populate(node, NULL, auxdata, dev);
   if (error) {
      dev_err(dev, "failed to create children: %d\n", error);
      return error;
@@ -226,8 +231,21 @@ static const struct dev_pm_ops cdns_ti_pm_ops = {

 #endif /* CONFIG_PM */

+static struct cdns3_platform_data cdns_ti_j7200_pdata = {
+  .quirks = CDNS3_RESET_ON_RESUME,
+};
+
+static const struct of_dev_auxdata cdns_ti_j7200_auxdata[] = {
+  {
+     .compatible = "cdns,usb3",
+     .platform_data = &cdns_ti_j7200_pdata,
+  },
+  {},
+};
+
 static const struct cdns_ti_match_data cdns_ti_j7200_match_data = {
   .reset_on_resume = true,
+  .auxdata = cdns_ti_j7200_auxdata,
 };

 static const struct of_device_id cdns_ti_of_match[] = {
--
2.42.0


WARNING: multiple messages have this Message-ID (diff)
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: "Roger Quadros" <rogerq@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Peter Chen" <peter.chen@kernel.org>,
	"Pawel Laszczak" <pawell@cadence.com>,
	"Nishanth Menon" <nm@ti.com>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Tero Kristo" <kristo@kernel.org>
Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Grégory Clement" <gregory.clement@bootlin.com>
Subject: Re: [PATCH v2 6/7] usb: cdns3-ti: signal reset-on-resume to xHCI for J7200 platform
Date: Tue, 21 Nov 2023 18:06:01 +0100	[thread overview]
Message-ID: <CX4NJXCYMSJ1.AF8FQLHU77RU@tleb-bootlin-xps13-01> (raw)
In-Reply-To: <d2bd89f1-a86b-4fe4-a7ad-20c7e8caf9b6@kernel.org>

Hello,

On Tue Nov 21, 2023 at 5:53 PM CET, Roger Quadros wrote:
> On 20/11/2023 19:06, Théo Lebrun wrote:
> > Pass CDNS3_RESET_ON_RESUME as platform data to cdns3 host role. It will
> > in turn pass it down to xHCI platform data as XHCI_RESET_ON_RESUME.
> > 
> > Avoid this warning on resume:
> > 
> >   [   16.017462] xhci-hcd xhci-hcd.1.auto: xHC error in resume, USBSTS 0x401, Reinit
> > 
> > When used, remote wakeup is not expected to work.
> > 
> > Only focus J7200 as other SoC are untested.
> > 
> > Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
> > ---
> >  drivers/usb/cdns3/cdns3-ti.c | 19 +++++++++++++++++--
> >  1 file changed, 17 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
> > index 84f93c2fcd5c..7d56a1acbc54 100644
> > --- a/drivers/usb/cdns3/cdns3-ti.c
> > +++ b/drivers/usb/cdns3/cdns3-ti.c
> > @@ -16,6 +16,7 @@
> >  #include <linux/of_platform.h>
> >  #include <linux/pm_runtime.h>
> >  #include <linux/property.h>
> > +#include "core.h"
> >  
> >  /* USB Wrapper register offsets */
> >  #define USBSS_PID		0x0
> > @@ -128,6 +129,7 @@ static int cdns_ti_probe(struct platform_device *pdev)
> >  {
> >  	struct device *dev = &pdev->dev;
> >  	struct device_node *node = pdev->dev.of_node;
> > +	const struct of_dev_auxdata *auxdata;
> >  	struct cdns_ti *data;
> >  	unsigned long rate;
> >  	int error, i;
> > @@ -177,7 +179,8 @@ static int cdns_ti_probe(struct platform_device *pdev)
> >  
> >  	cdns_ti_init_hw(data);
> >  
> > -	error = of_platform_populate(node, NULL, NULL, dev);
> > +	auxdata = of_device_get_match_data(dev);
> > +	error = of_platform_populate(node, NULL, auxdata, dev);
> >  	if (error) {
> >  		dev_err(dev, "failed to create children: %d\n", error);
> >  		return error;
> > @@ -222,8 +225,20 @@ static const struct dev_pm_ops cdns_ti_pm_ops = {
> >  
> >  #endif /* CONFIG_PM */
> >  
> > +static struct cdns3_platform_data cdns_ti_j7200_pdata = {
> > +	.quirks = CDNS3_RESET_ON_RESUME,
> > +};
>
> We will need to introduce a new data structure "struct cdns_ti_platform_data"
> and add platform specific details like "reset_on_resume" to it.
> This is to address what Krzysztof pointed to in patch 4.

Yes I've got it locally following Krzysztof's review. Below my signature
is a sneak peak as I'll wait a bit more before a V3. First we implement
resume behavior in the wrapper driver using match data then we add
auxdata passed to the subdevices.

Regards,

--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


------------------------------------------------------------------------


From 69a59e3408668dfa06d3790cb20948961708791d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Lebrun?= <theo.lebrun@bootlin.com>
Date: Mon, 20 Nov 2023 16:47:29 +0100
Subject: [PATCH 05/13] usb: cdns3-ti: add suspend/resume procedures for J7200
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Hardware initialisation is only done at probe. The J7200 USB controller
is reset at resume because of power-domains toggling off & on. We
therefore reconfigure the hardware at resume.

Reuse the newly extracted cdns_ti_init_hw() function that contains the
register write sequence.

Only focus J7200 as other SoC are untested. If the controller does not
reset we do not want to redo reg writes.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
 drivers/usb/cdns3/cdns3-ti.c | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
index d4232b440e4e..7530b6b5159d 100644
--- a/drivers/usb/cdns3/cdns3-ti.c
+++ b/drivers/usb/cdns3/cdns3-ti.c
@@ -58,6 +58,11 @@ struct cdns_ti {
   struct clk *usb2_refclk;
   struct clk *lpm_clk;
   int usb2_refclk_rate_code;
+  const struct cdns_ti_match_data *match_data;
+};
+
+struct cdns_ti_match_data {
+  bool reset_on_resume;
 };

 static const int cdns_ti_rate_table[] = {   /* in KHZ */
@@ -138,6 +143,7 @@ static int cdns_ti_probe(struct platform_device *pdev)
   platform_set_drvdata(pdev, data);

   data->dev = dev;
+  data->match_data = of_device_get_match_data(dev);

   data->usbss = devm_platform_ioremap_resource(pdev, 0);
   if (IS_ERR(data->usbss)) {
@@ -202,7 +208,30 @@ static void cdns_ti_remove(struct platform_device *pdev)
   platform_set_drvdata(pdev, NULL);
 }

+#ifdef CONFIG_PM
+
+static int cdns_ti_resume(struct device *dev)
+{
+  struct cdns_ti *data = dev_get_drvdata(dev);
+
+  if (data->match_data && data->match_data->reset_on_resume)
+     cdns_ti_init_hw(data);
+
+  return 0;
+}
+
+static const struct dev_pm_ops cdns_ti_pm_ops = {
+  SET_SYSTEM_SLEEP_PM_OPS(NULL, cdns_ti_resume)
+};
+
+#endif /* CONFIG_PM */
+
+static const struct cdns_ti_match_data cdns_ti_j7200_match_data = {
+  .reset_on_resume = true,
+};
+
 static const struct of_device_id cdns_ti_of_match[] = {
+  { .compatible = "ti,j7200-usb", .data = &cdns_ti_j7200_match_data, },
   { .compatible = "ti,j721e-usb", },
   { .compatible = "ti,am64-usb", },
   {},
@@ -213,8 +242,9 @@ static struct platform_driver cdns_ti_driver = {
   .probe      = cdns_ti_probe,
   .remove_new = cdns_ti_remove,
   .driver     = {
-     .name = "cdns3-ti",
+     .name    = "cdns3-ti",
      .of_match_table   = cdns_ti_of_match,
+     .pm      = pm_ptr(&cdns_ti_pm_ops),
   },
 };

--
2.42.0


------------------------------------------------------------------------


From 4ff91a036da297e9e8585980c6133bee9c45d9a6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Lebrun?= <theo.lebrun@bootlin.com>
Date: Mon, 20 Nov 2023 17:02:44 +0100
Subject: [PATCH 07/13] usb: cdns3-ti: signal reset-on-resume to xHCI for J7200
 platform
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Pass CDNS3_RESET_ON_RESUME as platform data to cdns3 host role. It will
in turn pass it down to xHCI platform data as XHCI_RESET_ON_RESUME.

Avoid this warning on resume:

  [   16.017462] xhci-hcd xhci-hcd.1.auto: xHC error in resume, USBSTS 0x401, Reinit

When used, remote wakeup is not expected to work.

Only focus J7200 as other SoC are untested.

Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
---
 drivers/usb/cdns3/cdns3-ti.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/cdns3/cdns3-ti.c b/drivers/usb/cdns3/cdns3-ti.c
index 7530b6b5159d..da2648ebc179 100644
--- a/drivers/usb/cdns3/cdns3-ti.c
+++ b/drivers/usb/cdns3/cdns3-ti.c
@@ -16,6 +16,7 @@
 #include <linux/of_platform.h>
 #include <linux/pm_runtime.h>
 #include <linux/property.h>
+#include "core.h"

 /* USB Wrapper register offsets */
 #define USBSS_PID      0x0
@@ -62,7 +63,8 @@ struct cdns_ti {
 };

 struct cdns_ti_match_data {
-  bool reset_on_resume;
+  bool           reset_on_resume;
+  const struct of_dev_auxdata   *auxdata;
 };

 static const int cdns_ti_rate_table[] = {   /* in KHZ */
@@ -132,6 +134,7 @@ static int cdns_ti_probe(struct platform_device *pdev)
 {
   struct device *dev = &pdev->dev;
   struct device_node *node = pdev->dev.of_node;
+  const struct of_dev_auxdata *auxdata = NULL;
   struct cdns_ti *data;
   unsigned long rate;
   int error, i;
@@ -181,7 +184,9 @@ static int cdns_ti_probe(struct platform_device *pdev)

   cdns_ti_init_hw(data);

-  error = of_platform_populate(node, NULL, NULL, dev);
+  if (data->match_data)
+     auxdata = data->match_data->auxdata;
+  error = of_platform_populate(node, NULL, auxdata, dev);
   if (error) {
      dev_err(dev, "failed to create children: %d\n", error);
      return error;
@@ -226,8 +231,21 @@ static const struct dev_pm_ops cdns_ti_pm_ops = {

 #endif /* CONFIG_PM */

+static struct cdns3_platform_data cdns_ti_j7200_pdata = {
+  .quirks = CDNS3_RESET_ON_RESUME,
+};
+
+static const struct of_dev_auxdata cdns_ti_j7200_auxdata[] = {
+  {
+     .compatible = "cdns,usb3",
+     .platform_data = &cdns_ti_j7200_pdata,
+  },
+  {},
+};
+
 static const struct cdns_ti_match_data cdns_ti_j7200_match_data = {
   .reset_on_resume = true,
+  .auxdata = cdns_ti_j7200_auxdata,
 };

 static const struct of_device_id cdns_ti_of_match[] = {
--
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-11-21 17:06 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-20 17:06 [PATCH v2 0/7] usb: cdns: fix suspend on J7200 by assuming reset-on-resume Théo Lebrun
2023-11-20 17:06 ` Théo Lebrun
2023-11-20 17:06 ` [PATCH v2 1/7] dt-bindings: usb: ti,j721e-usb: add ti,j7200-usb compatible Théo Lebrun
2023-11-20 17:06   ` Théo Lebrun
2023-11-20 17:32   ` Krzysztof Kozlowski
2023-11-20 17:32     ` Krzysztof Kozlowski
2023-11-21 16:53     ` Théo Lebrun
2023-11-21 16:53       ` Théo Lebrun
2023-11-21 17:11       ` Krzysztof Kozlowski
2023-11-21 17:11         ` Krzysztof Kozlowski
2023-11-22 10:46         ` Théo Lebrun
2023-11-22 10:46           ` Théo Lebrun
2023-11-22 12:00           ` Krzysztof Kozlowski
2023-11-22 12:00             ` Krzysztof Kozlowski
2023-11-22 17:14             ` Théo Lebrun
2023-11-22 17:14               ` Théo Lebrun
2023-11-20 17:06 ` [PATCH v2 2/7] usb: cdns3-ti: remove runtime PM Théo Lebrun
2023-11-20 17:06   ` Théo Lebrun
2023-11-22 23:42   ` Kevin Hilman
2023-11-22 23:42     ` Kevin Hilman
2023-11-20 17:06 ` [PATCH v2 3/7] usb: cdns3-ti: move reg writes from probe into an init_hw helper Théo Lebrun
2023-11-20 17:06   ` Théo Lebrun
2023-11-20 17:06 ` [PATCH v2 4/7] usb: cdns3-ti: add suspend/resume procedures for J7200 Théo Lebrun
2023-11-20 17:06   ` Théo Lebrun
2023-11-20 17:31   ` Krzysztof Kozlowski
2023-11-20 17:31     ` Krzysztof Kozlowski
2023-11-21 16:48     ` Théo Lebrun
2023-11-21 16:48       ` Théo Lebrun
2023-11-20 17:06 ` [PATCH v2 5/7] usb: cdns3: add quirk to platform data for reset-on-resume Théo Lebrun
2023-11-20 17:06   ` Théo Lebrun
2023-11-21 10:40   ` Peter Chen
2023-11-21 10:40     ` Peter Chen
2023-11-20 17:06 ` [PATCH v2 6/7] usb: cdns3-ti: signal reset-on-resume to xHCI for J7200 platform Théo Lebrun
2023-11-20 17:06   ` Théo Lebrun
2023-11-21 16:53   ` Roger Quadros
2023-11-21 16:53     ` Roger Quadros
2023-11-21 17:06     ` Théo Lebrun [this message]
2023-11-21 17:06       ` Théo Lebrun
2023-11-20 17:06 ` [PATCH v2 7/7] arm64: dts: ti: k3-j7200: use J7200-specific USB compatible Théo Lebrun
2023-11-20 17:06   ` Théo Lebrun
2023-11-20 17:32   ` Krzysztof Kozlowski
2023-11-20 17:32     ` Krzysztof Kozlowski
2023-11-20 17:33 ` [PATCH v2 0/7] usb: cdns: fix suspend on J7200 by assuming reset-on-resume Krzysztof Kozlowski
2023-11-20 17:33   ` Krzysztof Kozlowski
2023-11-22 23:44 ` Kevin Hilman
2023-11-22 23:44   ` Kevin Hilman

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=CX4NJXCYMSJ1.AF8FQLHU77RU@tleb-bootlin-xps13-01 \
    --to=theo.lebrun@bootlin.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gregory.clement@bootlin.com \
    --cc=kristo@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=pawell@cadence.com \
    --cc=peter.chen@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=rogerq@kernel.org \
    --cc=vigneshr@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.