[kernel] r22669 - in dists/jessie/linux/debian: . config/arm64 patches patches/features/arm64

Ben Hutchings benh at moszumanska.debian.org
Fri May 22 23:15:51 UTC 2015


Author: benh
Date: Fri May 22 23:15:51 2015
New Revision: 22669

Log:
[arm64] USB: Add support for XHCI on APM Mustang (Closes: #785707)

Added:
   dists/jessie/linux/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch
   dists/jessie/linux/debian/patches/features/arm64/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-dma.patch
Modified:
   dists/jessie/linux/debian/changelog
   dists/jessie/linux/debian/config/arm64/config
   dists/jessie/linux/debian/patches/series

Modified: dists/jessie/linux/debian/changelog
==============================================================================
--- dists/jessie/linux/debian/changelog	Fri May 22 22:39:53 2015	(r22668)
+++ dists/jessie/linux/debian/changelog	Fri May 22 23:15:51 2015	(r22669)
@@ -165,6 +165,10 @@
   * libata: Blacklist queued TRIM on Samsung SSD 850 Pro
   * [x86] config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
     (Closes: #786551)
+  * [arm64] USB: Add support for XHCI on APM Mustang (Closes: #785707)
+    - Enable USB_XHCI_HCD as module, and USB_XHCI_PLATFORM
+    - Make xhci platform driver use 64 bit or 32 bit DMA
+    - Add support for ACPI identification to xhci-platform
 
   [ Ian Campbell ]
   * [armhf] Enable support for Freescale SNVS RTC. (Closes: #782364)

Modified: dists/jessie/linux/debian/config/arm64/config
==============================================================================
--- dists/jessie/linux/debian/config/arm64/config	Fri May 22 22:39:53 2015	(r22668)
+++ dists/jessie/linux/debian/config/arm64/config	Fri May 22 23:15:51 2015	(r22669)
@@ -120,6 +120,8 @@
 CONFIG_USB_EHCI_HCD_PLATFORM=m
 CONFIG_USB_OHCI_HCD=m
 CONFIG_USB_OHCI_HCD_PLATFORM=m
+CONFIG_USB_XHCI_HCD=m
+CONFIG_USB_XHCI_PLATFORM=y
 
 ##
 ## file: drivers/virtio/Kconfig

Added: dists/jessie/linux/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/jessie/linux/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch	Fri May 22 23:15:51 2015	(r22669)
@@ -0,0 +1,81 @@
+From: Mark Langsdorf <mlangsdo-H+wXaHxf7aLQT0dZR+AlfA at public.gmane.org>
+Subject: [PATCH v3 2/2] [usb] dd support for ACPI identification to xhci-platform
+Date: Tue, 25 Nov 2014 15:19:26 -0600
+Origin: http://permalink.gmane.org/gmane.linux.usb.general/118784
+Bug-Debian: https://bugs.debian.org/785707
+
+Provide the methods to let ACPI identify the need to use
+xhci-platform. Change the Kconfig files so the
+xhci-plat.o file is selectable during kernel config.
+
+This has been tested on an ARM64 machine with platform XHCI, an 
+x86_64 machine with XHCI, and an x86_64 machine without XHCI.
+There were no regressions or error messages on the machines
+without platform XHCI.
+
+Signed-off-by: Mark Langsdorf <mlangsdo-H+wXaHxf7aLQT0dZR+AlfA at public.gmane.org>
+[bwh: Backported to 3.16: adjust context]
+---
+Changes from v2
+	Replaced tristate with a boolean as the driver doesn't
+		compile as a module
+	Correct --help-- to ---help---
+Changes from v1
+	Renamed from "add support for APM X-Gene to xhci-platform"
+	Removed changes to arm64/Kconfig
+	Made CONFIG_USB_XHCI_PLATFORM a user selectable config option
+
+ drivers/usb/host/Kconfig     |  7 ++++++-
+ drivers/usb/host/xhci-plat.c | 11 +++++++++++
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+
+--- a/drivers/usb/host/Kconfig
++++ b/drivers/usb/host/Kconfig
+@@ -27,7 +27,12 @@ config USB_XHCI_HCD
+ if USB_XHCI_HCD
+ 
+ config USB_XHCI_PLATFORM
+-	tristate
++	boolean "xHCI platform driver support"
++	---help---
++	  Say 'Y' to enable the support for the xHCI host controller
++	  as a platform device. Many ARM SoCs provide USB this way.
++
++	  If unsure, say 'Y'.
+ 
+ config USB_XHCI_MVEBU
+ 	tristate "xHCI support for Marvell Armada 375/38x"
+--- a/drivers/usb/host/xhci-plat.c
++++ b/drivers/usb/host/xhci-plat.c
+@@ -17,6 +17,7 @@
+ #include <linux/of.h>
+ #include <linux/platform_device.h>
+ #include <linux/slab.h>
++#include <linux/acpi.h>
+ 
+ #include "xhci.h"
+ #include "xhci-mvebu.h"
+@@ -283,6 +284,15 @@ static const struct of_device_id usb_xhc
+ MODULE_DEVICE_TABLE(of, usb_xhci_of_match);
+ #endif
+ 
++#ifdef CONFIG_ACPI
++static const struct acpi_device_id usb_xhci_acpi_match[] = {
++	{ "PNP0D10", },
++	{ "PNP0D15", },
++	{ }
++};
++MODULE_DEVICE_TABLE(acpi, usb_xhci_acpi_match);
++#endif
++
+ static struct platform_driver usb_xhci_driver = {
+ 	.probe	= xhci_plat_probe,
+ 	.remove	= xhci_plat_remove,
+@@ -290,6 +300,7 @@ static struct platform_driver usb_xhci_d
+ 		.name = "xhci-hcd",
+ 		.pm = DEV_PM_OPS,
+ 		.of_match_table = of_match_ptr(usb_xhci_of_match),
++		.acpi_match_table = ACPI_PTR(usb_xhci_acpi_match),
+ 	},
+ };
+ MODULE_ALIAS("platform:xhci-hcd");

Added: dists/jessie/linux/debian/patches/features/arm64/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-dma.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/jessie/linux/debian/patches/features/arm64/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-dma.patch	Fri May 22 23:15:51 2015	(r22669)
@@ -0,0 +1,48 @@
+From: Mark Langsdorf <mlangsdo-H+wXaHxf7aLQT0dZR+AlfA at public.gmane.org>
+Subject: [PATCH v3 1/2] make xhci platform driver use 64 bit or 32 bit DMA
+Date: Tue, 25 Nov 2014 15:19:25 -0600
+Origin: http://permalink.gmane.org/gmane.linux.usb.general/118786
+Bug-Debian: https://bugs.debian.org/785707
+
+The xhci platform driver needs to work on systems that either only
+support 64-bit DMA or only support 32-bit DMA. Attempt to set a
+coherent dma mask for 64-bit DMA, and attempt again with 32-bit
+DMA if that fails.
+
+Signed-off-by: Mark Langsdorf <mlangsdo-H+wXaHxf7aLQT0dZR+AlfA at public.gmane.org>
+Tested-by: Mark Salter <msalter-H+wXaHxf7aLQT0dZR+AlfA at public.gmane.org>
+---
+Changes from v2:
+	None
+Changes from v1:
+	Consolidated to use dma_set_mask_and_coherent
+	Got rid of the check against sizeof(dma_addr_t)
+
+ drivers/usb/host/xhci-plat.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+--- a/drivers/usb/host/xhci-plat.c
++++ b/drivers/usb/host/xhci-plat.c
+@@ -115,14 +115,14 @@ static int xhci_plat_probe(struct platfo
+ 	if (!res)
+ 		return -ENODEV;
+ 
+-	/* Initialize dma_mask and coherent_dma_mask to 32-bits */
+-	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
+-	if (ret)
+-		return ret;
+-	if (!pdev->dev.dma_mask)
+-		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask;
+-	else
+-		dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
++	/* Try setting the coherent_dma_mask to 64 bits, then try 32 bits */
++	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
++	if (ret) {
++		ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
++		if (ret)
++			return ret;
++	}
++
+ 
+ 	hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev));
+ 	if (!hcd)

Modified: dists/jessie/linux/debian/patches/series
==============================================================================
--- dists/jessie/linux/debian/patches/series	Fri May 22 22:39:53 2015	(r22668)
+++ dists/jessie/linux/debian/patches/series	Fri May 22 23:15:51 2015	(r22669)
@@ -598,3 +598,5 @@
 bugfix/all/libata-update-crucial-micron-blacklist.patch
 bugfix/all/libata-blacklist-queued-trim-on-samsung-ssd-850-pro.patch
 bugfix/all/config-enable-need_dma_map_state-by-default-when-swi.patch
+features/arm64/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-dma.patch
+features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch



More information about the Kernel-svn-changes mailing list