[kernel] r22670 - in dists/sid/linux/debian: . config/arm64 patches patches/features/arm64

Ben Hutchings benh at moszumanska.debian.org
Fri May 22 23:27:43 UTC 2015


Author: benh
Date: Fri May 22 23:27:42 2015
New Revision: 22670

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

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

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Fri May 22 23:15:51 2015	(r22669)
+++ dists/sid/linux/debian/changelog	Fri May 22 23:27:42 2015	(r22670)
@@ -139,6 +139,10 @@
   * linux-image: Add versioned Breaks on udev (<< 208-8~) due to #752742 and
     #756312
   * [i386] pnp: Disable PNPBIOS_PROC_FS
+  * [arm64] USB: Add support for XHCI on APM Mustang (Closes: #785707)
+    - Change USB_XHCI_HCD to built-in and enable USB_XHCI_PLATFORM as built-in
+    - Make xhci platform driver use 64 bit or 32 bit DMA
+    - Add support for ACPI identification to xhci-platform
 
  -- Ben Hutchings <ben at decadent.org.uk>  Mon, 18 May 2015 00:00:06 +0100
 

Modified: dists/sid/linux/debian/config/arm64/config
==============================================================================
--- dists/sid/linux/debian/config/arm64/config	Fri May 22 23:15:51 2015	(r22669)
+++ dists/sid/linux/debian/config/arm64/config	Fri May 22 23:27:42 2015	(r22670)
@@ -125,6 +125,9 @@
 CONFIG_USB_EHCI_HCD_PLATFORM=m
 CONFIG_USB_OHCI_HCD=m
 CONFIG_USB_OHCI_HCD_PLATFORM=m
+#. xhci-platform apparently does not build as module, so xhci_hcd can't be either
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_HCD_PLATFORM=y
 
 ##
 ## file: drivers/virtio/Kconfig

Added: dists/sid/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/sid/linux/debian/patches/features/arm64/usb-add-support-for-acpi-identification-to-xhci-platform.patch	Fri May 22 23:27:42 2015	(r22670)
@@ -0,0 +1,80 @@
+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>
+---
+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
+@@ -32,7 +32,12 @@ config USB_XHCI_PCI
+        default y
+ 
+ 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
+@@ -18,6 +18,7 @@
+ #include <linux/platform_device.h>
+ #include <linux/slab.h>
+ #include <linux/usb/xhci_pdriver.h>
++#include <linux/acpi.h>
+ 
+ #include "xhci.h"
+ #include "xhci-mvebu.h"
+@@ -241,6 +242,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,
+@@ -248,6 +258,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/sid/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/sid/linux/debian/patches/features/arm64/usb-make-xhci-platform-driver-use-64-bit-or-32-bit-dma.patch	Fri May 22 23:27:42 2015	(r22670)
@@ -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
+@@ -83,14 +83,14 @@ static int xhci_plat_probe(struct platfo
+ 	if (irq < 0)
+ 		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/sid/linux/debian/patches/series
==============================================================================
--- dists/sid/linux/debian/patches/series	Fri May 22 23:15:51 2015	(r22669)
+++ dists/sid/linux/debian/patches/series	Fri May 22 23:27:42 2015	(r22670)
@@ -68,3 +68,6 @@
 bugfix/all/fs_pin-allow-for-the-possibility-that-m_list-or-s_li.patch
 bugfix/all/rtc-hctosys-do-not-treat-lack-of-rtc-device-as-error.patch
 bugfix/all/rtc-hctosys-use-function-name-in-the-error-log.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
+usb-add-support-for-acpi-identification-to-xhci-platform.patch



More information about the Kernel-svn-changes mailing list