[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