All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yu Chen <chenyu56@huawei.com>
To: <linux-usb@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>
Cc: <suzhuangluan@hisilicon.com>, <kongfei@hisilicon.com>,
	Yu Chen <chenyu56@huawei.com>, Felipe Balbi <balbi@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	John Stultz <john.stultz@linaro.org>,
	"Binghui Wang" <wangbinghui@hisilicon.com>
Subject: [PATCH v1 05/12] usb: dwc3: Add two quirks for Hisilicon Kirin Soc Platform
Date: Mon, 3 Dec 2018 11:45:08 +0800	[thread overview]
Message-ID: <20181203034515.91412-6-chenyu56@huawei.com> (raw)
In-Reply-To: <20181203034515.91412-1-chenyu56@huawei.com>

There are tow quirks for DesignWare USB3 DRD Core of Hisilicon Kirin Soc.
1)SPLIT_BOUNDARY_DISABLE should be set for Host mode
2)A GCTL soft reset should be executed when switch mode

Cc: Felipe Balbi <balbi@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Binghui Wang <wangbinghui@hisilicon.com>
Signed-off-by: Yu Chen <chenyu56@huawei.com>
---
 drivers/usb/dwc3/core.c   | 43 +++++++++++++++++++++++++++++++++++++++++++
 drivers/usb/dwc3/core.h   |  7 +++++++
 drivers/usb/dwc3/gadget.c |  2 +-
 3 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index becfbb87f791..b539bcc45d3b 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -111,11 +111,25 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode)
 	dwc->current_dr_role = mode;
 }
 
+static void dwc3_gctl_core_soft_reset(struct dwc3 *dwc)
+{
+	int reg;
+
+	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
+	reg |= (DWC3_GCTL_CORESOFTRESET);
+	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
+
+	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
+	reg &= ~(DWC3_GCTL_CORESOFTRESET);
+	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
+}
+
 static void __dwc3_set_mode(struct work_struct *work)
 {
 	struct dwc3 *dwc = work_to_dwc(work);
 	unsigned long flags;
 	int ret;
+	int reg;
 
 	if (dwc->dr_mode != USB_DR_MODE_OTG)
 		return;
@@ -155,6 +169,10 @@ static void __dwc3_set_mode(struct work_struct *work)
 
 	dwc3_set_prtcap(dwc, dwc->desired_dr_role);
 
+	/* Execute a GCTL Core Soft Reset when switch mode */
+	if (dwc->gctl_reset_quirk)
+		dwc3_gctl_core_soft_reset(dwc);
+
 	spin_unlock_irqrestore(&dwc->lock, flags);
 
 	switch (dwc->desired_dr_role) {
@@ -168,6 +186,11 @@ static void __dwc3_set_mode(struct work_struct *work)
 			phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
 			phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
 			phy_calibrate(dwc->usb2_generic_phy);
+			if (dwc->dis_split_quirk) {
+				reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+				reg |= DWC3_GUCTL3_SPLITDISABLE;
+				dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+			}
 		}
 		break;
 	case DWC3_GCTL_PRTCAP_DEVICE:
@@ -1298,6 +1321,11 @@ static void dwc3_get_properties(struct dwc3 *dwc)
 	dwc->dis_metastability_quirk = device_property_read_bool(dev,
 				"snps,dis_metastability_quirk");
 
+	dwc->dis_split_quirk = device_property_read_bool(dev,
+				"snps,dis-split-quirk");
+	dwc->gctl_reset_quirk = device_property_read_bool(dev,
+				"snps,gctl-reset-quirk");
+
 	dwc->lpm_nyet_threshold = lpm_nyet_threshold;
 	dwc->tx_de_emphasis = tx_de_emphasis;
 
@@ -1815,10 +1843,25 @@ static int dwc3_resume(struct device *dev)
 
 	return 0;
 }
+
+static void dwc3_complete(struct device *dev)
+{
+	struct dwc3	*dwc = dev_get_drvdata(dev);
+	u32		reg;
+
+	if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST &&
+			dwc->dis_split_quirk) {
+		dev_dbg(dwc->dev, "set DWC3_GUCTL3_SPLITDISABLE\n");
+		reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+		reg |= DWC3_GUCTL3_SPLITDISABLE;
+		dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+	}
+}
 #endif /* CONFIG_PM_SLEEP */
 
 static const struct dev_pm_ops dwc3_dev_pm_ops = {
 	SET_SYSTEM_SLEEP_PM_OPS(dwc3_suspend, dwc3_resume)
+	.complete = dwc3_complete,
 	SET_RUNTIME_PM_OPS(dwc3_runtime_suspend, dwc3_runtime_resume,
 			dwc3_runtime_idle)
 };
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 5bfb62533e0f..b3cea95f7720 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -135,6 +135,7 @@
 #define DWC3_GEVNTCOUNT(n)	(0xc40c + ((n) * 0x10))
 
 #define DWC3_GHWPARAMS8		0xc600
+#define DWC3_GUCTL3		0xc60c
 #define DWC3_GFLADJ		0xc630
 
 /* Device Registers */
@@ -359,6 +360,9 @@
 /* Global User Control Register 2 */
 #define DWC3_GUCTL2_RST_ACTBITLATER		BIT(14)
 
+/* Global User Control Register 3 */
+#define DWC3_GUCTL3_SPLITDISABLE		BIT(14)
+
 /* Device Configuration Register */
 #define DWC3_DCFG_DEVADDR(addr)	((addr) << 3)
 #define DWC3_DCFG_DEVADDR_MASK	DWC3_DCFG_DEVADDR(0x7f)
@@ -1168,6 +1172,9 @@ struct dwc3 {
 
 	unsigned		dis_metastability_quirk:1;
 
+	unsigned		dis_split_quirk:1;
+	unsigned		gctl_reset_quirk:1;
+
 	u16			imod_interval;
 };
 
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 679c12e14522..cd54ad3eaf01 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -269,7 +269,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
 {
 	const struct usb_endpoint_descriptor *desc = dep->endpoint.desc;
 	struct dwc3		*dwc = dep->dwc;
-	u32			timeout = 1000;
+	u32			timeout = 5000;
 	u32			saved_config = 0;
 	u32			reg;
 
-- 
2.15.0-rc2


WARNING: multiple messages have this Message-ID (diff)
From: Yu Chen <chenyu56@huawei.com>
To: linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: suzhuangluan@hisilicon.com, kongfei@hisilicon.com,
	Yu Chen <chenyu56@huawei.com>, Felipe Balbi <balbi@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	John Stultz <john.stultz@linaro.org>,
	Binghui Wang <wangbinghui@hisilicon.com>
Subject: [PATCH v1 05/12] usb: dwc3: Add two quirks for Hisilicon Kirin Soc Platform
Date: Mon, 3 Dec 2018 11:45:08 +0800	[thread overview]
Message-ID: <20181203034515.91412-6-chenyu56@huawei.com> (raw)
In-Reply-To: <20181203034515.91412-1-chenyu56@huawei.com>

There are tow quirks for DesignWare USB3 DRD Core of Hisilicon Kirin Soc.
1)SPLIT_BOUNDARY_DISABLE should be set for Host mode
2)A GCTL soft reset should be executed when switch mode

Cc: Felipe Balbi <balbi@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Binghui Wang <wangbinghui@hisilicon.com>
Signed-off-by: Yu Chen <chenyu56@huawei.com>
---
 drivers/usb/dwc3/core.c   | 43 +++++++++++++++++++++++++++++++++++++++++++
 drivers/usb/dwc3/core.h   |  7 +++++++
 drivers/usb/dwc3/gadget.c |  2 +-
 3 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index becfbb87f791..b539bcc45d3b 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -111,11 +111,25 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode)
 	dwc->current_dr_role = mode;
 }
 
+static void dwc3_gctl_core_soft_reset(struct dwc3 *dwc)
+{
+	int reg;
+
+	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
+	reg |= (DWC3_GCTL_CORESOFTRESET);
+	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
+
+	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
+	reg &= ~(DWC3_GCTL_CORESOFTRESET);
+	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
+}
+
 static void __dwc3_set_mode(struct work_struct *work)
 {
 	struct dwc3 *dwc = work_to_dwc(work);
 	unsigned long flags;
 	int ret;
+	int reg;
 
 	if (dwc->dr_mode != USB_DR_MODE_OTG)
 		return;
@@ -155,6 +169,10 @@ static void __dwc3_set_mode(struct work_struct *work)
 
 	dwc3_set_prtcap(dwc, dwc->desired_dr_role);
 
+	/* Execute a GCTL Core Soft Reset when switch mode */
+	if (dwc->gctl_reset_quirk)
+		dwc3_gctl_core_soft_reset(dwc);
+
 	spin_unlock_irqrestore(&dwc->lock, flags);
 
 	switch (dwc->desired_dr_role) {
@@ -168,6 +186,11 @@ static void __dwc3_set_mode(struct work_struct *work)
 			phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
 			phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
 			phy_calibrate(dwc->usb2_generic_phy);
+			if (dwc->dis_split_quirk) {
+				reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+				reg |= DWC3_GUCTL3_SPLITDISABLE;
+				dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+			}
 		}
 		break;
 	case DWC3_GCTL_PRTCAP_DEVICE:
@@ -1298,6 +1321,11 @@ static void dwc3_get_properties(struct dwc3 *dwc)
 	dwc->dis_metastability_quirk = device_property_read_bool(dev,
 				"snps,dis_metastability_quirk");
 
+	dwc->dis_split_quirk = device_property_read_bool(dev,
+				"snps,dis-split-quirk");
+	dwc->gctl_reset_quirk = device_property_read_bool(dev,
+				"snps,gctl-reset-quirk");
+
 	dwc->lpm_nyet_threshold = lpm_nyet_threshold;
 	dwc->tx_de_emphasis = tx_de_emphasis;
 
@@ -1815,10 +1843,25 @@ static int dwc3_resume(struct device *dev)
 
 	return 0;
 }
+
+static void dwc3_complete(struct device *dev)
+{
+	struct dwc3	*dwc = dev_get_drvdata(dev);
+	u32		reg;
+
+	if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST &&
+			dwc->dis_split_quirk) {
+		dev_dbg(dwc->dev, "set DWC3_GUCTL3_SPLITDISABLE\n");
+		reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+		reg |= DWC3_GUCTL3_SPLITDISABLE;
+		dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+	}
+}
 #endif /* CONFIG_PM_SLEEP */
 
 static const struct dev_pm_ops dwc3_dev_pm_ops = {
 	SET_SYSTEM_SLEEP_PM_OPS(dwc3_suspend, dwc3_resume)
+	.complete = dwc3_complete,
 	SET_RUNTIME_PM_OPS(dwc3_runtime_suspend, dwc3_runtime_resume,
 			dwc3_runtime_idle)
 };
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 5bfb62533e0f..b3cea95f7720 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -135,6 +135,7 @@
 #define DWC3_GEVNTCOUNT(n)	(0xc40c + ((n) * 0x10))
 
 #define DWC3_GHWPARAMS8		0xc600
+#define DWC3_GUCTL3		0xc60c
 #define DWC3_GFLADJ		0xc630
 
 /* Device Registers */
@@ -359,6 +360,9 @@
 /* Global User Control Register 2 */
 #define DWC3_GUCTL2_RST_ACTBITLATER		BIT(14)
 
+/* Global User Control Register 3 */
+#define DWC3_GUCTL3_SPLITDISABLE		BIT(14)
+
 /* Device Configuration Register */
 #define DWC3_DCFG_DEVADDR(addr)	((addr) << 3)
 #define DWC3_DCFG_DEVADDR_MASK	DWC3_DCFG_DEVADDR(0x7f)
@@ -1168,6 +1172,9 @@ struct dwc3 {
 
 	unsigned		dis_metastability_quirk:1;
 
+	unsigned		dis_split_quirk:1;
+	unsigned		gctl_reset_quirk:1;
+
 	u16			imod_interval;
 };
 
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 679c12e14522..cd54ad3eaf01 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -269,7 +269,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
 {
 	const struct usb_endpoint_descriptor *desc = dep->endpoint.desc;
 	struct dwc3		*dwc = dep->dwc;
-	u32			timeout = 1000;
+	u32			timeout = 5000;
 	u32			saved_config = 0;
 	u32			reg;
 
-- 
2.15.0-rc2

WARNING: multiple messages have this Message-ID (diff)
From: Yu Chen <chenyu56@huawei.com>
To: linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: suzhuangluan@hisilicon.com, kongfei@hisilicon.com,
	Yu Chen <chenyu56@huawei.com>, Felipe Balbi <balbi@kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	John Stultz <john.stultz@linaro.org>,
	Binghui Wang <wangbinghui@hisilicon.com>
Subject: [v1,05/12] usb: dwc3: Add two quirks for Hisilicon Kirin Soc Platform
Date: Mon, 3 Dec 2018 11:45:08 +0800	[thread overview]
Message-ID: <20181203034515.91412-6-chenyu56@huawei.com> (raw)

There are tow quirks for DesignWare USB3 DRD Core of Hisilicon Kirin Soc.
1)SPLIT_BOUNDARY_DISABLE should be set for Host mode
2)A GCTL soft reset should be executed when switch mode

Cc: Felipe Balbi <balbi@kernel.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Binghui Wang <wangbinghui@hisilicon.com>
Signed-off-by: Yu Chen <chenyu56@huawei.com>
---
 drivers/usb/dwc3/core.c   | 43 +++++++++++++++++++++++++++++++++++++++++++
 drivers/usb/dwc3/core.h   |  7 +++++++
 drivers/usb/dwc3/gadget.c |  2 +-
 3 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index becfbb87f791..b539bcc45d3b 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -111,11 +111,25 @@ void dwc3_set_prtcap(struct dwc3 *dwc, u32 mode)
 	dwc->current_dr_role = mode;
 }
 
+static void dwc3_gctl_core_soft_reset(struct dwc3 *dwc)
+{
+	int reg;
+
+	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
+	reg |= (DWC3_GCTL_CORESOFTRESET);
+	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
+
+	reg = dwc3_readl(dwc->regs, DWC3_GCTL);
+	reg &= ~(DWC3_GCTL_CORESOFTRESET);
+	dwc3_writel(dwc->regs, DWC3_GCTL, reg);
+}
+
 static void __dwc3_set_mode(struct work_struct *work)
 {
 	struct dwc3 *dwc = work_to_dwc(work);
 	unsigned long flags;
 	int ret;
+	int reg;
 
 	if (dwc->dr_mode != USB_DR_MODE_OTG)
 		return;
@@ -155,6 +169,10 @@ static void __dwc3_set_mode(struct work_struct *work)
 
 	dwc3_set_prtcap(dwc, dwc->desired_dr_role);
 
+	/* Execute a GCTL Core Soft Reset when switch mode */
+	if (dwc->gctl_reset_quirk)
+		dwc3_gctl_core_soft_reset(dwc);
+
 	spin_unlock_irqrestore(&dwc->lock, flags);
 
 	switch (dwc->desired_dr_role) {
@@ -168,6 +186,11 @@ static void __dwc3_set_mode(struct work_struct *work)
 			phy_set_mode(dwc->usb2_generic_phy, PHY_MODE_USB_HOST);
 			phy_set_mode(dwc->usb3_generic_phy, PHY_MODE_USB_HOST);
 			phy_calibrate(dwc->usb2_generic_phy);
+			if (dwc->dis_split_quirk) {
+				reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+				reg |= DWC3_GUCTL3_SPLITDISABLE;
+				dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+			}
 		}
 		break;
 	case DWC3_GCTL_PRTCAP_DEVICE:
@@ -1298,6 +1321,11 @@ static void dwc3_get_properties(struct dwc3 *dwc)
 	dwc->dis_metastability_quirk = device_property_read_bool(dev,
 				"snps,dis_metastability_quirk");
 
+	dwc->dis_split_quirk = device_property_read_bool(dev,
+				"snps,dis-split-quirk");
+	dwc->gctl_reset_quirk = device_property_read_bool(dev,
+				"snps,gctl-reset-quirk");
+
 	dwc->lpm_nyet_threshold = lpm_nyet_threshold;
 	dwc->tx_de_emphasis = tx_de_emphasis;
 
@@ -1815,10 +1843,25 @@ static int dwc3_resume(struct device *dev)
 
 	return 0;
 }
+
+static void dwc3_complete(struct device *dev)
+{
+	struct dwc3	*dwc = dev_get_drvdata(dev);
+	u32		reg;
+
+	if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST &&
+			dwc->dis_split_quirk) {
+		dev_dbg(dwc->dev, "set DWC3_GUCTL3_SPLITDISABLE\n");
+		reg = dwc3_readl(dwc->regs, DWC3_GUCTL3);
+		reg |= DWC3_GUCTL3_SPLITDISABLE;
+		dwc3_writel(dwc->regs, DWC3_GUCTL3, reg);
+	}
+}
 #endif /* CONFIG_PM_SLEEP */
 
 static const struct dev_pm_ops dwc3_dev_pm_ops = {
 	SET_SYSTEM_SLEEP_PM_OPS(dwc3_suspend, dwc3_resume)
+	.complete = dwc3_complete,
 	SET_RUNTIME_PM_OPS(dwc3_runtime_suspend, dwc3_runtime_resume,
 			dwc3_runtime_idle)
 };
diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h
index 5bfb62533e0f..b3cea95f7720 100644
--- a/drivers/usb/dwc3/core.h
+++ b/drivers/usb/dwc3/core.h
@@ -135,6 +135,7 @@
 #define DWC3_GEVNTCOUNT(n)	(0xc40c + ((n) * 0x10))
 
 #define DWC3_GHWPARAMS8		0xc600
+#define DWC3_GUCTL3		0xc60c
 #define DWC3_GFLADJ		0xc630
 
 /* Device Registers */
@@ -359,6 +360,9 @@
 /* Global User Control Register 2 */
 #define DWC3_GUCTL2_RST_ACTBITLATER		BIT(14)
 
+/* Global User Control Register 3 */
+#define DWC3_GUCTL3_SPLITDISABLE		BIT(14)
+
 /* Device Configuration Register */
 #define DWC3_DCFG_DEVADDR(addr)	((addr) << 3)
 #define DWC3_DCFG_DEVADDR_MASK	DWC3_DCFG_DEVADDR(0x7f)
@@ -1168,6 +1172,9 @@ struct dwc3 {
 
 	unsigned		dis_metastability_quirk:1;
 
+	unsigned		dis_split_quirk:1;
+	unsigned		gctl_reset_quirk:1;
+
 	u16			imod_interval;
 };
 
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 679c12e14522..cd54ad3eaf01 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -269,7 +269,7 @@ int dwc3_send_gadget_ep_cmd(struct dwc3_ep *dep, unsigned cmd,
 {
 	const struct usb_endpoint_descriptor *desc = dep->endpoint.desc;
 	struct dwc3		*dwc = dep->dwc;
-	u32			timeout = 1000;
+	u32			timeout = 5000;
 	u32			saved_config = 0;
 	u32			reg;
 

  parent reply	other threads:[~2018-12-03  3:46 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-03  3:45 [PATCH v1 00/12] Add support for usb on Hikey960 Yu Chen
2018-12-03  3:45 ` Yu Chen
2018-12-03  3:45 ` [PATCH v1 01/12] dt-bindings: usb: add support for dwc3 controller on HiSilicon SoCs Yu Chen
2018-12-03  3:45   ` [v1,01/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 01/12] " Yu Chen
2018-12-03  8:35   ` Sergei Shtylyov
2018-12-03  8:35     ` [v1,01/12] " Sergei Shtylyov
2018-12-03  8:51     ` [PATCH v1 01/12] " Chen Yu
2018-12-03  8:51       ` [v1,01/12] " Yu Chen
2018-12-03  8:51       ` [PATCH v1 01/12] " Chen Yu
2018-12-03  8:59       ` Sergei Shtylyov
2018-12-03  8:59         ` [v1,01/12] " Sergei Shtylyov
2018-12-03  9:28         ` [PATCH v1 01/12] " Chen Yu
2018-12-03  9:28           ` [v1,01/12] " Yu Chen
2018-12-03  9:28           ` [PATCH v1 01/12] " Chen Yu
2018-12-19 14:09           ` Rob Herring
2018-12-19 14:09             ` [v1,01/12] " Rob Herring
2018-12-20  1:33             ` [PATCH v1 01/12] " Chen Yu
2018-12-20  1:33               ` [v1,01/12] " Yu Chen
2018-12-20  1:33               ` [PATCH v1 01/12] " Chen Yu
2018-12-20  6:46             ` Felipe Balbi
2018-12-20  6:46               ` [v1,01/12] " Felipe Balbi
2018-12-20 13:48               ` [PATCH v1 01/12] " Rob Herring
2018-12-20 13:48                 ` [v1,01/12] " Rob Herring
2018-12-03  3:45 ` [PATCH v1 02/12] dt-bindings: phy: Add support for HiSilicon's hi3660 USB PHY Yu Chen
2018-12-03  3:45   ` [v1,02/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 02/12] " Yu Chen
2018-12-19 14:14   ` Rob Herring
2018-12-19 14:14     ` [v1,02/12] " Rob Herring
2018-12-20  1:52     ` [PATCH v1 02/12] " Chen Yu
2018-12-20  1:52       ` [v1,02/12] " Yu Chen
2018-12-20  1:52       ` [PATCH v1 02/12] " Chen Yu
2018-12-03  3:45 ` [PATCH v1 03/12] dt-bindings: misc: Add bindings for HiSilicon usb hub and data role switch functionality on HiKey960 Yu Chen
2018-12-03  3:45   ` [v1,03/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 03/12] " Yu Chen
2018-12-19 14:21   ` Rob Herring
2018-12-19 14:21     ` [v1,03/12] " Rob Herring
2018-12-20  2:02     ` [PATCH v1 03/12] " Chen Yu
2018-12-20  2:02       ` [v1,03/12] " Yu Chen
2018-12-20  2:02       ` [PATCH v1 03/12] " Chen Yu
2018-12-03  3:45 ` [PATCH v1 04/12] usb: dwc3: dwc3-hisi: Add code for dwc3 of Hisilicon Soc Platform Yu Chen
2018-12-03  3:45   ` [v1,04/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 04/12] " Yu Chen
2018-12-03  8:12   ` Andy Shevchenko
2018-12-03  8:12     ` [v1,04/12] " Andy Shevchenko
2018-12-03  8:30     ` [PATCH v1 04/12] " Chen Yu
2018-12-03  8:30       ` [v1,04/12] " Yu Chen
2018-12-03  8:30       ` [PATCH v1 04/12] " Chen Yu
2018-12-03  3:45 ` Yu Chen [this message]
2018-12-03  3:45   ` [v1,05/12] usb: dwc3: Add two quirks for Hisilicon Kirin " Yu Chen
2018-12-03  3:45   ` [PATCH v1 05/12] " Yu Chen
2018-12-03  8:02   ` Andy Shevchenko
2018-12-03  8:02     ` [v1,05/12] " Andy Shevchenko
2018-12-03  8:23     ` [PATCH v1 05/12] " Chen Yu
2018-12-03  8:23       ` [v1,05/12] " Yu Chen
2018-12-03  8:23       ` [PATCH v1 05/12] " Chen Yu
2018-12-03  3:45 ` [PATCH v1 06/12] phy: Add usb phy support for hi3660 Soc of Hisilicon Yu Chen
2018-12-03  3:45   ` [v1,06/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 06/12] " Yu Chen
2018-12-03  8:14   ` Andy Shevchenko
2018-12-03  8:14     ` [v1,06/12] " Andy Shevchenko
2018-12-03  3:45 ` [PATCH v1 07/12] usb: roles: Find the usb role switch by also matching against the device node Yu Chen
2018-12-03  3:45   ` [v1,07/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 07/12] " Yu Chen
2018-12-03  8:17   ` Andy Shevchenko
2018-12-03  8:17     ` [v1,07/12] " Andy Shevchenko
2018-12-03 12:25     ` [PATCH v1 07/12] " Heikki Krogerus
2018-12-03 12:25       ` [v1,07/12] " Heikki Krogerus
2019-01-21  8:36       ` [PATCH v1 07/12] " Chen Yu
2019-01-21  8:36         ` [v1,07/12] " Yu Chen
2019-01-21  8:36         ` [PATCH v1 07/12] " Chen Yu
2019-01-21 13:51         ` Heikki Krogerus
2019-01-21 13:51           ` [v1,07/12] " Heikki Krogerus
2019-01-25 12:35           ` [PATCH v1 07/12] " Heikki Krogerus
2019-01-25 12:35             ` [v1,07/12] " Heikki Krogerus
2018-12-03  3:45 ` [PATCH v1 08/12] usb: roles: Add usb role switch notifier Yu Chen
2018-12-03  3:45   ` [v1,08/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 08/12] " Yu Chen
2018-12-03 12:38   ` Heikki Krogerus
2018-12-03 12:38     ` [v1,08/12] " Heikki Krogerus
2018-12-04  1:07     ` [PATCH v1 08/12] " Chen Yu
2018-12-04  1:07       ` [v1,08/12] " Yu Chen
2018-12-04  1:07       ` [PATCH v1 08/12] " Chen Yu
2018-12-03  3:45 ` [PATCH v1 09/12] usb: dwc3: Registering a role switch in the DRD code Yu Chen
2018-12-03  3:45   ` [v1,09/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 09/12] " Yu Chen
2018-12-03  9:15   ` Andy Shevchenko
2018-12-03  9:15     ` [v1,09/12] " Andy Shevchenko
2018-12-03  9:30     ` [PATCH v1 09/12] " Chen Yu
2018-12-03  9:30       ` [v1,09/12] " Yu Chen
2018-12-03  9:30       ` [PATCH v1 09/12] " Chen Yu
2018-12-03 12:43   ` Heikki Krogerus
2018-12-03 12:43     ` [v1,09/12] " Heikki Krogerus
2018-12-04 10:54   ` [PATCH v1 09/12] " Heikki Krogerus
2018-12-04 10:54     ` [v1,09/12] " Heikki Krogerus
2018-12-05  0:56     ` [PATCH v1 09/12] " Chen Yu
2018-12-05  0:56       ` [v1,09/12] " Yu Chen
2018-12-05  0:56       ` [PATCH v1 09/12] " Chen Yu
2018-12-03  3:45 ` [PATCH v1 10/12] hikey960: Support usb functionality of Hikey960 Yu Chen
2018-12-03  3:45   ` [v1,10/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 10/12] " Yu Chen
2018-12-03  9:23   ` Andy Shevchenko
2018-12-03  9:23     ` [v1,10/12] " Andy Shevchenko
2018-12-04  1:40     ` [PATCH v1 10/12] " Chen Yu
2018-12-04  1:40       ` [v1,10/12] " Yu Chen
2018-12-04  1:40       ` [PATCH v1 10/12] " Chen Yu
2018-12-04 17:47       ` Andy Shevchenko
2018-12-04 17:47         ` [v1,10/12] " Andy Shevchenko
2018-12-05  1:57         ` [PATCH v1 10/12] " Chen Yu
2018-12-05  1:57           ` [v1,10/12] " Yu Chen
2018-12-05  1:57           ` [PATCH v1 10/12] " Chen Yu
2018-12-05  8:44           ` Andy Shevchenko
2018-12-05  8:44             ` [v1,10/12] " Andy Shevchenko
2018-12-03  3:45 ` [PATCH v1 11/12] usb: gadget: Add configfs attribuite for controling match_existing_only Yu Chen
2018-12-03  3:45   ` [v1,11/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 11/12] " Yu Chen
2018-12-03  9:25   ` Andy Shevchenko
2018-12-03  9:25     ` [v1,11/12] " Andy Shevchenko
2018-12-04  1:22     ` [PATCH v1 11/12] " Chen Yu
2018-12-04  1:22       ` [v1,11/12] " Yu Chen
2018-12-04  1:22       ` [PATCH v1 11/12] " Chen Yu
2018-12-03  9:53   ` Krzysztof Opasiak
2018-12-03  9:53     ` [v1,11/12] " Krzysztof Opasiak
2018-12-03  3:45 ` [PATCH v1 12/12] dts: hi3660: Add support for usb on Hikey960 Yu Chen
2018-12-03  3:45   ` Yu Chen
2018-12-03  3:45   ` [v1,12/12] " Yu Chen
2018-12-03  3:45   ` [PATCH v1 12/12] " Yu Chen
2018-12-04 12:45   ` Heikki Krogerus
2018-12-04 12:45     ` Heikki Krogerus
2018-12-04 12:45     ` [v1,12/12] " Heikki Krogerus

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=20181203034515.91412-6-chenyu56@huawei.com \
    --to=chenyu56@huawei.com \
    --cc=balbi@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=john.stultz@linaro.org \
    --cc=kongfei@hisilicon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=suzhuangluan@hisilicon.com \
    --cc=wangbinghui@hisilicon.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.