13 Jul, 2009

1 commit

  • This patch (as1256) changes ehci-hcd and all the other drivers in the
    EHCI family to make use of the new clear_tt_buffer callbacks. When a
    Clear-TT-Buffer request is in progress for a QH, the QH is not allowed
    to be linked into the async schedule until the request is finished.
    At that time, if there are any URBs queued for the QH, it is linked
    into the async schedule.

    Signed-off-by: Alan Stern
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

16 Jun, 2009

1 commit

  • This patch (as1245) fixes a bug in ehci-hcd. When an URB is queued
    for an endpoint whose QH is already in the LINKED state, the QH
    doesn't get refreshed. As a result, if usb_clear_halt() was called
    during the time that the QH was linked but idle, the data toggle value
    in the QH doesn't get reset.

    The symptom is that after a clear_halt, data gets lost and transfers
    time out. This problem is starting to show up now because the
    "ehci-hcd unlink speedups" patch causes QHs with no queued URBs to
    remain linked for a suitable time.

    The patch utilizes the new endpoint_reset mechanism to fix the
    problem. When an endpoint is reset, the new method forcibly unlinks
    the QH (if necessary) and safely updates the toggle value. This
    allows qh_update() to be simplified and avoids using usb_device's
    toggle bits in a rather unintuitive way.

    Signed-off-by: Alan Stern
    CC: David Brownell
    Tested-by: David
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

22 Jul, 2008

2 commits


30 May, 2008

2 commits

  • This patch (as1096) fixes an annoying problem: When a full-speed or
    low-speed device is plugged into an EHCI controller, it fails to
    enumerate at high speed and then is handed over to the companion
    controller. But usbcore logs a misleading and unwanted error message
    when the high-speed enumeration fails.

    The patch adds a new HCD method, port_handed_over, which asks whether
    a port has been handed over to a companion controller. If it has, the
    error message is suppressed.

    Signed-off-by: Alan Stern
    CC: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch (as1095) cleans up the HCD glue and several of the EHCI
    bus-glue files. The ehci->is_tdi_rh_tt flag is redundant, since it
    means the same thing as the hcd->has_tt flag, so it is removed and the
    other flag used in its place.

    Some of the bus-glue files didn't get the relinquish_port method added
    to their hc_driver structures. Although that routine currently
    doesn't do anything for controllers with an integrated TT, in the
    future it might. So the patch adds it where it is missing.

    Lastly, some of the bus-glue files have erroneous entries for their
    hc_driver's suspend and resume methods. These method pointers are
    specific to PCI and shouldn't be used otherwise.

    (The patch also includes an invisible whitespace fix.)

    Signed-off-by: Alan Stern
    Acked-by: David Brownell

    Alan Stern
     

25 Apr, 2008

1 commit

  • Various minor fixes to some SOC bus glue for EHCI:

    - Remove a bogus copyright (by "me"!) which someone added to the FSL
    driver, and an irrelevant comment.

    - Un-break MODULE_ALIAS() directives after platform_bus hotplugging
    acquired a backwards-incompatible change. (Which didn't fix ANY
    of the in-tree drivers it prevented from hotplugging -- sigh.)

    - Remove some bogus assignments of platform_bus_type; that's done by
    the platform_bus code.

    - Add some FIXMEs for drivers with that pointless two-level idiom for
    probe() and remove() routines. ("Obfuscation" is a non-goal.)
    That should help avoid future bus glue which copies that idiom.

    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     

02 Feb, 2008

2 commits


18 Dec, 2007

1 commit

  • Host controller IRQs are supposed to be serviced with interrupts
    disabled. This patch (as1026) adds an IRQF_DISABLED flag to all the
    controller drivers that lack it. It also replaces the
    spin_lock_irqsave() and spin_unlock_irqrestore() calls in uhci_irq()
    with simple spin_lock() and spin_unlock().

    This fixes Bugzilla #9335.

    Signed-off-by: Alan Stern
    Acked-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     

13 Jul, 2007

1 commit

  • For MPC831x support, change the ehci-fsl driver to preserve
    bits set in platform code. Add a common CONFIG_USB_EHCI_FSL
    to indicate presence of Freescale EHCI SOC. Add FSL_USB2_DR_OTG
    operating mode support, thus both host and device can work for the
    mini-ab receptacle. Note: this doesn't enable OTG protocol
    support.

    Signed-off-by: Li Yang
    Cc: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Li Yang
     

24 May, 2007

1 commit


08 Feb, 2007

1 commit

  • This patch implements supports for EHCI controllers whose MMIO
    registers are big endian and enables that functionality for
    the Toshiba SCC chip. It does _not_ add support for big endian
    in-memory data structures as this is not needed for that chip
    and I hope it will never be.

    The guts of the patch are to convert readl(...) to
    ehci_readl(ehci, ...) and similarly for register writes.

    Signed-off-by: Kou Ishizaki
    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Geoff Levand
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Herrenschmidt
     

28 Sep, 2006

1 commit

  • If some problem occurs during ehci startup, for instance, request_irq fails,
    echi hcd driver tries it best to cleanup, but fails to unregister reboot
    notifier, which in turn leads to crash on reboot/poweroff.

    The following patch resolves this problem by not using reboot notifiers
    anymore, but instead making ehci/ohci driver get its own shutdown method. For
    PCI, it is done through pci glue, for everything else through platform driver
    glue.

    One downside: sa1111 does not use platform driver stuff, and does not have its
    own shutdown hook, so no 'shutdown' is called for it now. I'm not sure if it
    is really necessary on that platform, though.

    Signed-off-by: Aleks Gorelov
    Cc: Alan Stern
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Aleksey Gorelov
     

03 Jul, 2006

1 commit


22 Jun, 2006

1 commit


21 Mar, 2006

3 commits

  • In setting up the of PHY we masked off too many bits, instead just
    initialize PORTSC for the type of PHY we are using.

    Signed-off-by: Kumar Gala
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Kumar Gala
     
  • On the MPC834x processors the multiport host (MPH) EHCI controller has an
    erratum in which the port number in the queue head expects to be 0..N-1
    instead of 1..N. If we are on one of these chips we subtract one from
    the port number before putting it into the queue head.

    Signed-off-by: Kumar Gala
    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Kumar Gala
     
  • Adding a Host Mode USB driver for the Freescale 83xx.

    This driver supports both the Dual-Role (DR) controller and the
    Multi-Port-Host (MPH) controller present in the Freescale MPC8349. It has
    been tested with the MPC8349CDS reference system. This driver depends on
    platform support code for setting up the pins on the device package in a
    manner appropriate for the board in use. Note that this patch requires
    selecting the EHCI controller option under the USB Host menu.

    Signed-off-by: Randy Vinson
    Signed-off-by: Greg Kroah-Hartman

    Randy Vinson