aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-06-09 21:10:34 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-09 21:10:34 -0400
commit82abb273d838318424644d8f02825db0fbbd400a (patch)
treee1ea8a92db4ba68f347249986ffe3a25ffbf8219 /drivers/usb/host
parent9b651cc2277b5e4883012ebab0fea2bcda4cbafa (diff)
parentf8647b506d7116a1a3accd8d618184096e85f50b (diff)
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS updates from Ralf Baechle: - three fixes for 3.15 that didn't make it in time - limited Octeon 3 support. - paravirtualization support - improvment to platform support for Netlogix SOCs. - add support for powering down the Malta eval board in software - add many instructions to the in-kernel microassembler. - add support for the BPF JIT. - minor cleanups of the BCM47xx code. - large cleanup of math emu code resulting in significant code size reduction, better readability of the code and more accurate emulation. - improvments to the MIPS CPS code. - support C3 power status for the R4k count/compare clock device. - improvments to the GIO support for older SGI workstations. - increase number of supported CPUs to 256; this can be reached on certain embedded multithreaded ccNUMA configurations. - various small cleanups, updates and fixes * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (173 commits) MIPS: IP22/IP28: Improve GIO support MIPS: Octeon: Add twsi interrupt initialization for OCTEON 3XXX, 5XXX, 63XX DEC: Document the R4k MB ASIC mini interrupt controller DEC: Add self as the maintainer MIPS: Add microMIPS MSA support. MIPS: Replace calls to obsolete strict_strto call with kstrto* equivalents. MIPS: Replace obsolete strict_strto call with kstrto MIPS: BFP: Simplify code slightly. MIPS: Call find_vma with the mmap_sem held MIPS: Fix 'write_msa_##' inline macro. MIPS: Fix MSA toolchain support detection. mips: Update the email address of Geert Uytterhoeven MIPS: Add minimal defconfig for mips_paravirt MIPS: Enable build for new system 'paravirt' MIPS: paravirt: Add pci controller for virtio MIPS: Add code for new system 'paravirt' MIPS: Add functions for hypervisor call MIPS: OCTEON: Add OCTEON3 to __get_cpu_type MIPS: Add function get_ebase_cpunum MIPS: Add minimal support for OCTEON3 to c-r4k.c ...
Diffstat (limited to 'drivers/usb/host')
-rw-r--r--drivers/usb/host/ehci-pmcmsp.c40
1 files changed, 0 insertions, 40 deletions
diff --git a/drivers/usb/host/ehci-pmcmsp.c b/drivers/usb/host/ehci-pmcmsp.c
index af3974a5e7c2..7d75465d97c7 100644
--- a/drivers/usb/host/ehci-pmcmsp.c
+++ b/drivers/usb/host/ehci-pmcmsp.c
@@ -68,9 +68,6 @@ static void usb_hcd_tdi_set_mode(struct ehci_hcd *ehci)
68 68
69 /* set TWI GPIO USB_HOST_DEV pin high */ 69 /* set TWI GPIO USB_HOST_DEV pin high */
70 gpio_direction_output(MSP_PIN_USB0_HOST_DEV, 1); 70 gpio_direction_output(MSP_PIN_USB0_HOST_DEV, 1);
71#ifdef CONFIG_MSP_HAS_DUAL_USB
72 gpio_direction_output(MSP_PIN_USB1_HOST_DEV, 1);
73#endif
74} 71}
75 72
76/* called during probe() after chip reset completes */ 73/* called during probe() after chip reset completes */
@@ -248,33 +245,6 @@ void usb_hcd_msp_remove(struct usb_hcd *hcd, struct platform_device *dev)
248 usb_put_hcd(hcd); 245 usb_put_hcd(hcd);
249} 246}
250 247
251#ifdef CONFIG_MSP_HAS_DUAL_USB
252/*
253 * Wrapper around the main ehci_irq. Since both USB host controllers are
254 * sharing the same IRQ, need to first determine whether we're the intended
255 * recipient of this interrupt.
256 */
257static irqreturn_t ehci_msp_irq(struct usb_hcd *hcd)
258{
259 u32 int_src;
260 struct device *dev = hcd->self.controller;
261 struct platform_device *pdev;
262 struct mspusb_device *mdev;
263 struct ehci_hcd *ehci = hcd_to_ehci(hcd);
264 /* need to reverse-map a couple of containers to get our device */
265 pdev = to_platform_device(dev);
266 mdev = to_mspusb_device(pdev);
267
268 /* Check to see if this interrupt is for this host controller */
269 int_src = ehci_readl(ehci, &mdev->mab_regs->int_stat);
270 if (int_src & (1 << pdev->id))
271 return ehci_irq(hcd);
272
273 /* Not for this device */
274 return IRQ_NONE;
275}
276#endif /* DUAL_USB */
277
278static const struct hc_driver ehci_msp_hc_driver = { 248static const struct hc_driver ehci_msp_hc_driver = {
279 .description = hcd_name, 249 .description = hcd_name,
280 .product_desc = "PMC MSP EHCI", 250 .product_desc = "PMC MSP EHCI",
@@ -283,11 +253,7 @@ static const struct hc_driver ehci_msp_hc_driver = {
283 /* 253 /*
284 * generic hardware linkage 254 * generic hardware linkage
285 */ 255 */
286#ifdef CONFIG_MSP_HAS_DUAL_USB
287 .irq = ehci_msp_irq,
288#else
289 .irq = ehci_irq, 256 .irq = ehci_irq,
290#endif
291 .flags = HCD_MEMORY | HCD_USB2 | HCD_BH, 257 .flags = HCD_MEMORY | HCD_USB2 | HCD_BH,
292 258
293 /* 259 /*
@@ -334,9 +300,6 @@ static int ehci_hcd_msp_drv_probe(struct platform_device *pdev)
334 return -ENODEV; 300 return -ENODEV;
335 301
336 gpio_request(MSP_PIN_USB0_HOST_DEV, "USB0_HOST_DEV_GPIO"); 302 gpio_request(MSP_PIN_USB0_HOST_DEV, "USB0_HOST_DEV_GPIO");
337#ifdef CONFIG_MSP_HAS_DUAL_USB
338 gpio_request(MSP_PIN_USB1_HOST_DEV, "USB1_HOST_DEV_GPIO");
339#endif
340 303
341 ret = usb_hcd_msp_probe(&ehci_msp_hc_driver, pdev); 304 ret = usb_hcd_msp_probe(&ehci_msp_hc_driver, pdev);
342 305
@@ -351,9 +314,6 @@ static int ehci_hcd_msp_drv_remove(struct platform_device *pdev)
351 314
352 /* free TWI GPIO USB_HOST_DEV pin */ 315 /* free TWI GPIO USB_HOST_DEV pin */
353 gpio_free(MSP_PIN_USB0_HOST_DEV); 316 gpio_free(MSP_PIN_USB0_HOST_DEV);
354#ifdef CONFIG_MSP_HAS_DUAL_USB
355 gpio_free(MSP_PIN_USB1_HOST_DEV);
356#endif
357 317
358 return 0; 318 return 0;
359} 319}