summaryrefslogtreecommitdiff
path: root/target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch
diff options
context:
space:
mode:
authorJohn Crispin <john@openwrt.org>2015-03-16 07:40:09 +0000
committerJohn Crispin <john@openwrt.org>2015-03-16 07:40:09 +0000
commitfb78ebb813abcefbbec3c824d09357428ff3b848 (patch)
tree17d1b5d12b3039e71085e754710d8b4f4eff2d9e /target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch
parentde04a1d843cc0cc797c42e6541907ba5555de898 (diff)
downloadmtk-20170518-fb78ebb813abcefbbec3c824d09357428ff3b848.zip
mtk-20170518-fb78ebb813abcefbbec3c824d09357428ff3b848.tar.gz
mtk-20170518-fb78ebb813abcefbbec3c824d09357428ff3b848.tar.bz2
ar71xx: drop 3.14 support
Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 44815
Diffstat (limited to 'target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch')
-rw-r--r--target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch101
1 files changed, 0 insertions, 101 deletions
diff --git a/target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch b/target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch
deleted file mode 100644
index 0e89b5f..0000000
--- a/target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch
+++ /dev/null
@@ -1,101 +0,0 @@
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -252,6 +252,37 @@ static int ehci_reset (struct ehci_hcd *
- command |= CMD_RESET;
- dbg_cmd (ehci, "reset", command);
- ehci_writel(ehci, command, &ehci->regs->command);
-+
-+ if (ehci->qca_force_host_mode) {
-+ u32 usbmode;
-+
-+ udelay(1000);
-+
-+ usbmode = ehci_readl(ehci, &ehci->regs->usbmode);
-+ usbmode |= USBMODE_CM_HC | (1 << 4);
-+ ehci_writel(ehci, usbmode, &ehci->regs->usbmode);
-+
-+ ehci_dbg(ehci, "forced host mode, usbmode: %08x\n",
-+ ehci_readl(ehci, &ehci->regs->usbmode));
-+ }
-+
-+ if (ehci->qca_force_16bit_ptw) {
-+ u32 port_status;
-+
-+ udelay(1000);
-+
-+ /* enable 16-bit UTMI interface */
-+ port_status = ehci_readl(ehci, &ehci->regs->port_status[0]);
-+ port_status |= BIT(28);
-+ ehci_writel(ehci, port_status, &ehci->regs->port_status[0]);
-+
-+ ehci_dbg(ehci, "16-bit UTMI interface enabled, status: %08x\n",
-+ ehci_readl(ehci, &ehci->regs->port_status[0]));
-+ }
-+
-+ if (ehci->reset_notifier)
-+ ehci->reset_notifier(ehci_to_hcd(ehci));
-+
- ehci->rh_state = EHCI_RH_HALTED;
- ehci->next_statechange = jiffies;
- retval = ehci_handshake(ehci, &ehci->regs->command,
---- a/drivers/usb/host/ehci.h
-+++ b/drivers/usb/host/ehci.h
-@@ -227,6 +227,10 @@ struct ehci_hcd { /* one per controlle
- unsigned need_oc_pp_cycle:1; /* MPC834X port power */
- unsigned imx28_write_fix:1; /* For Freescale i.MX28 */
- unsigned ignore_oc:1;
-+ unsigned qca_force_host_mode:1;
-+ unsigned qca_force_16bit_ptw:1; /* force 16 bit UTMI */
-+
-+ void (*reset_notifier)(struct usb_hcd *hcd);
-
- /* required for usb32 quirk */
- #define OHCI_CTRL_HCFS (3 << 6)
---- a/include/linux/usb/ehci_pdriver.h
-+++ b/include/linux/usb/ehci_pdriver.h
-@@ -46,6 +46,8 @@ struct usb_ehci_pdata {
- unsigned big_endian_mmio:1;
- unsigned no_io_watchdog:1;
- unsigned ignore_oc:1;
-+ unsigned qca_force_host_mode:1;
-+ unsigned qca_force_16bit_ptw:1;
-
- /* Turn on all power and clocks */
- int (*power_on)(struct platform_device *pdev);
-@@ -55,6 +57,7 @@ struct usb_ehci_pdata {
- * turn off everything else */
- void (*power_suspend)(struct platform_device *pdev);
- int (*pre_setup)(struct usb_hcd *hcd);
-+ void (*reset_notifier)(struct platform_device *pdev);
- };
-
- #endif /* __USB_CORE_EHCI_PDRIVER_H */
---- a/drivers/usb/host/ehci-platform.c
-+++ b/drivers/usb/host/ehci-platform.c
-@@ -36,6 +36,14 @@
-
- static const char hcd_name[] = "ehci-platform";
-
-+static void ehci_platform_reset_notifier(struct usb_hcd *hcd)
-+{
-+ struct platform_device *pdev = to_platform_device(hcd->self.controller);
-+ struct usb_ehci_pdata *pdata = pdev->dev.platform_data;
-+
-+ pdata->reset_notifier(pdev);
-+}
-+
- static int ehci_platform_reset(struct usb_hcd *hcd)
- {
- struct platform_device *pdev = to_platform_device(hcd->self.controller);
-@@ -48,6 +56,11 @@ static int ehci_platform_reset(struct us
- ehci->big_endian_desc = pdata->big_endian_desc;
- ehci->big_endian_mmio = pdata->big_endian_mmio;
- ehci->ignore_oc = pdata->ignore_oc;
-+ ehci->qca_force_host_mode = pdata->qca_force_host_mode;
-+ ehci->qca_force_16bit_ptw = pdata->qca_force_16bit_ptw;
-+
-+ if (pdata->reset_notifier)
-+ ehci->reset_notifier = ehci_platform_reset_notifier;
-
- if (pdata->pre_setup) {
- retval = pdata->pre_setup(hcd);