Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1355165 > unrolled thread

[PATCH v3 0/2] usb:dwc3: Enable USB DWC3 support for 64-bit system

Started by"Thang Q. Nguyen" <tqnguyen@apm.com>
First post2016-03-10 15:40 +0100
Last post2016-03-10 15:40 +0100
Articles 2 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH v3 0/2] usb:dwc3: Enable USB DWC3 support for 64-bit system "Thang Q. Nguyen" <tqnguyen@apm.com> - 2016-03-10 15:40 +0100
    [PATCH v3 1/2] usb:dwc3: Enable support for 64-bit system "Thang Q. Nguyen" <tqnguyen@apm.com> - 2016-03-10 15:40 +0100

#1355165 — [PATCH v3 0/2] usb:dwc3: Enable USB DWC3 support for 64-bit system

From"Thang Q. Nguyen" <tqnguyen@apm.com>
Date2016-03-10 15:40 +0100
Subject[PATCH v3 0/2] usb:dwc3: Enable USB DWC3 support for 64-bit system
Message-ID<rb9US-8dN-15@gated-at.bofh.it>
From: "Thang Q. Nguyen" <tqnguyen@apm.com>

When CONFIG_DMA_CMA is not set, the coherent mask is not set.
These patches enable the USB DWC3 driver to set the coherent mask
correctly by first set coherent DMA mask to 64-bit. If this
failed, attempt again with 32-bit.
In addition, pass the archdata to the xhci-hcd child so that
xhci-hcd can configure DMA operations correctly.

Thang Q. Nguyen (2):
  usb:dwc3: Enable support for 64-bit system
  usb:dwc3: pass arch data to xhci-hcd child

 drivers/usb/dwc3/core.c | 15 +++++++++++++++
 drivers/usb/dwc3/host.c |  1 +
 2 files changed, 16 insertions(+)

-- 
2.2.0

[toc] | [next] | [standalone]


#1355167 — [PATCH v3 1/2] usb:dwc3: Enable support for 64-bit system

From"Thang Q. Nguyen" <tqnguyen@apm.com>
Date2016-03-10 15:40 +0100
Subject[PATCH v3 1/2] usb:dwc3: Enable support for 64-bit system
Message-ID<rb9UT-8dN-31@gated-at.bofh.it>
In reply to#1355165
From: "Thang Q. Nguyen" <tqnguyen@apm.com>

Add 64-bit DMA operation support to the USB DWC3 driver.
First attempt to set the coherent DMA mask for 64-bit DMA.
If that failed, attempt again with 32-bit DMA.

Changes from v2:
	- None.

Changes from v1:
	- Remove WARN_ON if dma_mask is NULL

Signed-off-by: Thang Q. Nguyen <tqnguyen@apm.com>
---
 drivers/usb/dwc3/core.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index de5e01f..2479c24 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -831,6 +831,21 @@ static int dwc3_probe(struct platform_device *pdev)
 	dwc->mem = mem;
 	dwc->dev = dev;
 
+	/* Try to set 64-bit DMA first */
+	if (!pdev->dev.dma_mask)
+		/* Platform did not initialize dma_mask */
+		ret = dma_coerce_mask_and_coherent(&pdev->dev,
+						   DMA_BIT_MASK(64));
+	else
+		ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
+
+	/* If seting 64-bit DMA mask fails, fall back to 32-bit DMA mask */
+	if (ret) {
+		ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
+		if (ret)
+			return ret;
+	}
+
 	res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
 	if (!res) {
 		dev_err(dev, "missing IRQ\n");
-- 
2.2.0

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web