diff options
Diffstat (limited to 'target/linux/mvebu')
-rw-r--r-- | target/linux/mvebu/patches-3.18/210-xhci_move_marvell_quirks.patch | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/target/linux/mvebu/patches-3.18/210-xhci_move_marvell_quirks.patch b/target/linux/mvebu/patches-3.18/210-xhci_move_marvell_quirks.patch deleted file mode 100644 index 2296900..0000000 --- a/target/linux/mvebu/patches-3.18/210-xhci_move_marvell_quirks.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 1e7e4fb66489cc84366656ca5318f1cb61afd4ba Mon Sep 17 00:00:00 2001 -From: Maxime Ripard <maxime.ripard@free-electrons.com> -Date: Tue, 24 Feb 2015 18:27:00 +0200 -Subject: usb: XHCI: platform: Move the Marvell quirks after the enabling the - clocks - -The commit 973747928514 ("usb: host: xhci-plat: add support for the Armada -375/38x XHCI controllers") extended the xhci-plat driver to support the Armada -375/38x SoCs, mostly by adding a quirk configuring the MBUS window. - -However, that quirk was run before the clock the controllers needs has been -enabled. This usually worked because the clock was first enabled by the -bootloader, and left as such until the driver is probe, where it tries to -access the MBUS configuration registers before enabling the clock. - -Things get messy when EPROBE_DEFER is involved during the probe, since as part -of its error path, the driver will rightfully disable the clock. When the -driver will be reprobed, it will retry to access the MBUS registers, but this -time with the clock disabled, which hangs forever. - -Fix this by running the quirks after the clock has been enabled by the driver. - -Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> -Cc: <stable@vger.kernel.org> # v3.16+ -Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - ---- a/drivers/usb/host/xhci-plat.c -+++ b/drivers/usb/host/xhci-plat.c -@@ -87,15 +87,6 @@ static int xhci_plat_probe(struct platfo - if (!res) - return -ENODEV; - -- if (of_device_is_compatible(pdev->dev.of_node, -- "marvell,armada-375-xhci") || -- of_device_is_compatible(pdev->dev.of_node, -- "marvell,armada-380-xhci")) { -- ret = xhci_mvebu_mbus_init_quirk(pdev); -- if (ret) -- return ret; -- } -- - /* Initialize dma_mask and coherent_dma_mask to 32-bits */ - ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); - if (ret) -@@ -129,6 +120,15 @@ static int xhci_plat_probe(struct platfo - goto put_hcd; - } - -+ if (of_device_is_compatible(pdev->dev.of_node, -+ "marvell,armada-375-xhci") || -+ of_device_is_compatible(pdev->dev.of_node, -+ "marvell,armada-380-xhci")) { -+ ret = xhci_mvebu_mbus_init_quirk(pdev); -+ if (ret) -+ return ret; -+ } -+ - ret = usb_add_hcd(hcd, irq, IRQF_SHARED); - if (ret) - goto disable_clk; |