diff options
author | John Crispin <john@openwrt.org> | 2015-03-16 07:40:09 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2015-03-16 07:40:09 +0000 |
commit | fb78ebb813abcefbbec3c824d09357428ff3b848 (patch) | |
tree | 17d1b5d12b3039e71085e754710d8b4f4eff2d9e /target/linux/ar71xx/patches-3.14/490-usb-ehci-add-quirks-for-qca-socs.patch | |
parent | de04a1d843cc0cc797c42e6541907ba5555de898 (diff) | |
download | mtk-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.patch | 101 |
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); |