09 Jan, 2006

1 commit

  • Include fixes for 2.6.14-git11. Should allow to remove sched.h from
    module.h on i386, x86_64, arm, ia64, ppc, ppc64, and s390. Probably more
    to come since I haven't yet checked the other archs.

    Signed-off-by: Tim Schmielau
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

08 Jan, 2006

1 commit


07 Jan, 2006

1 commit


06 Jan, 2006

4 commits


05 Jan, 2006

21 commits

  • Trivial manual merge fixup for usb_find_interface clashes.

    Linus Torvalds
     
  • Leave the overloaded "hotplug" word to susbsystems which are handling
    real devices. The driver core does not "plug" anything, it just exports
    the state to userspace and generates events.

    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     
  • Removed unused variable

    Signed-off-by: Daniel Marjamäki
    Signed-off-by: Olav Kongas
    Signed-off-by: Greg Kroah-Hartman

    Daniel Marjamäki
     
  • This patch (as615b) edits a large number of comments in the uhci-hcd code,
    mainly removing excess apostrophes.

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

    Alan Stern
     
  • This patch (as616) changed the uhci_explen macro in uhci-hcd.h so that
    it now accepts the desired length, rather than length - 1 with special
    handling for 0. This also fixes a minor bug that would show up only
    when a driver submits a 0-length bulk URB.

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

    Alan Stern
     
  • The device data in ohci-pxa27x is a struct hcd, not a struct ohci_hcd.
    This correct the suspend/resume calls to account for this and adds some
    code to invalidate the platform data when the module is removed.

    Signed-off-by: Richard Purdie
    Signed-off-by: Greg Kroah-Hartman

    Richard Purdie
     
  • patch below marks various USB tables and variables as const so that they
    end up in .rodata section and don't cacheline share with things that get
    written to. For the non-array variables it also allows gcc to optimize
    more.

    Signed-off-by: Arjan van de Ven
    Signed-off-by: Greg Kroah-Hartman

    Arjan van de Ven
     
  • When going to suspend, there's no point in setting HC state in
    host controller driver as USB core takes care of this.

    Signed-off-by: Olav Kongas
    Signed-off-by: Greg Kroah-Hartman

    Olav Kongas
     
  • This patch (as605) removes the private udev->serialize semaphore,
    relying instead on the locking provided by the embedded struct device's
    semaphore. The changes are confined to the core, except that the
    usb_trylock_device routine now uses the return convention of
    down_trylock rather than down_read_trylock (they return opposite values
    for no good reason).

    A couple of other associated changes are included as well:

    Now that we aren't concerned about HCDs that avoid using the
    hcd glue layer, usb_disconnect no longer needs to acquire the
    usb_bus_lock -- that can be done by usb_remove_hcd where it
    belongs.

    Devices aren't locked over the same scope of code in
    usb_new_device and hub_port_connect_change as they used to be.
    This shouldn't cause any trouble.

    Along with the preceding driver core patch, this needs a lot of testing.

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

    Alan Stern
     
  • This patch (as515b) adds a routine to usbcore to simplify handling of
    host controllers that lost power or were reset during suspend/resume.
    The new core routine marks all the child devices of the root hub as
    NOTATTACHED and tells khubd to disconnect the device structures as soon
    as possible.

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

    Alan Stern
     
  • This modifies the HCD builds to automatically "-DDEBUG" if
    CONFIG_USB_DEBUG is selected. It's just a minor source code cleanup,
    guaranteeing consistency.

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

    David Brownell
     
  • This makes the ISP116x HCD use the driver model wakeup flags for its
    controller, not the flags in the HCD glue (which will be removed).

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

    David Brownell
     
  • This makes UHCI stop using the HCD glue wakeup flags to report whether
    the controller can wake the system. The existing code was wrong anyway;
    having a PCI PM capability doesn't imply it reports PME# is supported.

    I skimmed Intel's ICH7 datasheet and that basically says the wakeup
    signaling gets routed only through ACPI registers. (On the other hand,
    many VIA chips provide the PCI PM capabilities...) I think that doing
    this correctly with UHCI is going to require the ACPI folk to associate
    the /proc/acpi/wakeup identifiers (and wakeup enable/disable flags)
    with the relevant /sys/devices/pci*/... devices.

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

    David Brownell
     
  • This makes the SL811 HCD use the driver model wakeup flags for its
    controller, not the flags in the HCD glue (which will be removed).

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

    drivers/usb/host/sl811-hcd.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    David Brownell
     
  • On some systems, EHCI seems to be getting IRQs too early during driver
    setup ... before the root hub is allocated, in particular, making trouble
    for any code chasing down root hub pointers! In this case, it seems to
    be safe to just ignore the root hub setting. Thanks to Rafael J. Wysocki
    for getting this properly tested.

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

    David Brownell
     
  • This teaches the EHCI driver to use the new driver model wakeup flags,
    replacing the similar ones in the HCD glue. It also adds a workaround
    for the current glitch whereby PCI init doesn't init the wakeup flags
    from the PCI PM capabilities. (EHCI controllers don't worry about
    legacy mode; the PCI PM capability would always do the job.)

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

    David Brownell
     
  • When the ehci-hcd driver prepares a control URB, it tests for a
    zero-length data stage by looking at the transfer_dma value instead of
    the transfer_buffer_length. (In fact it does this even for non-control
    URBs, which is an additional aspect of the same bug.)

    However, under certain circumstances it's possible for transfer_dma to
    be 0 while transfer_buffer_length is non-zero. This can happen when a
    freshly allocated page (mapped to address 0 and marked Copy-On-Write,
    but never written to) is used as the source buffer for an OUT transfer.
    This patch (as598) fixes the problem.

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

    Alan Stern
     
  • The attached patch makes a cleanup of isp116x-hcd. Most of the volume of
    the patch comes from 2 sources: moving the code around to get rid of a
    few function prototypes and reworking register dumping functions/macros.
    Among other things, switched over from using procfs to debugfs.

    Cleanup. The following changes were made:

    - Rework register dumping code so it can be used for dumping
    to both syslog and debugfs.
    - Switch from procfs to debugfs..
    - Die gracefully on Unrecoverable Error interrupt.
    - Fix memory leak in isp116x_urb_enqueue(), if HC happens to
    die in a narrow time window.
    - Fix a 'sparce' warning (unnecessary cast).
    - Report Devices Removable for root hub ports by default
    (was Devices Permanently Attached).
    - Move bus suspend/resume functions down in code to get rid of
    a few function prototypes.
    - A number of one-line cleanups.
    - Add an entry to MAINTAINERS.

    Signed-off-by: Olav Kongas
    Signed-off-by: Greg Kroah-Hartman

    MAINTAINERS | 6
    drivers/usb/host/isp116x-hcd.c | 429 ++++++++++++++++-------------------------
    drivers/usb/host/isp116x.h | 83 +++++--
    3 files changed, 230 insertions(+), 288 deletions(-)

    Olav Kongas
     
  • Until now the isp116x-hcd had no support to reinitialize the HC on
    resume, if the controller lost its state during suspend. This patch,
    generated against your Oct 26 git tree, adds that support. The patch is
    basically the same as the one tested by Ivan Kalatchev, who reported the
    problem, on 2.6.13.

    Please apply,

    Support reinitializing the isp116x host controller from scratch on
    resume, if the controller has lost its state.

    Signed-off-by: Olav Kongas
    Signed-off-by: Greg Kroah-Hartman

    Olav Kongas
     
  • Add power management functions for the pxa27x USB OHCI host controller.
    This is a totally rewritten version of the patch by Nicolas Pitre and
    Todd Poynor which accounts for recent USB changes.

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

    Richard Purdie
     
  • To allow multiple platforms to use the PXA27x OHCI driver, the platform
    code needs to be moved into the board specific files in
    arch/arm/mach-pxa. This patch does this for mainstone and adds
    preliminary hooks to allow other boards to use the driver.

    This has been compile tested for mainstone and successfully run on Spitz
    (Sharp Zaurus SL-C3000) with the addition of an appropriate board
    support file.

    Signed-off-by: Richard Purdie
    Signed-off-by: Nicolas Pitre
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Richard Purdie
     

04 Jan, 2006

1 commit

  • It seems that clk_use() and clk_unuse() are additional complexity
    which isn't required anymore. Remove them from the clock framework
    to avoid the additional confusion which they cause, and update all
    ARM machine types except for OMAP.

    Signed-off-by: Russell King

    Russell King
     

17 Dec, 2005

1 commit


30 Nov, 2005

2 commits

  • Rename the EHCI "reset" routine so it better matches what it does (setup);
    and move the one-time data structure setup earlier, before doing anything
    that implicitly relies on it having been completed already.

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

    David Brownell
     
  • This patch closes the IRQ race and makes various other OHCI & EHCI code
    path safer vs. suspend/resume.
    I've been able to (finally !) successfully suspend and resume various
    Mac models, with or without USB mouse plugged, or plugging while asleep,
    or unplugging while asleep etc... all without a crash.

    Alan, please verify the UHCI bit I did, I only verified that it builds.
    It's very simple so I wouldn't expect any issue there. If you aren't
    confident, then just drop the hunks that change uhci-hcd.c

    I also made the patch a little bit more "safer" by making sure the store
    to the interrupt register that disables interrupts is not posted before
    I set the flag and drop the spinlock.

    Without this patch, you cannot reliably sleep/wakeup any recent Mac, and
    I suspect PCs have some more sneaky issues too (they don't frankly crash
    with machine checks because x86 tend to silently swallow PCI errors but
    that won't last afaik, at least PCI Express will blow up in those
    situations, but the USB code may still misbehave).

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Greg Kroah-Hartman

    Benjamin Herrenschmidt
     

24 Nov, 2005

4 commits

  • This should fix a suspend/resume issues that appear with OHCI on some
    PPC hardware. The PCI layer should doesn't have the hooks needed for
    such ASIC-specific hooks (in this case, software clock gating), so
    this moves the code to do that into hcd-pci.c ... where it can be
    done after the relevant PCI PM state transition (to/from D3).

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

    David Brownell
     
  • Moving the PCI-specific parts of the EHCI driver into their own file
    created a few issues ... notably on resume paths which (like swsusp)
    require re-initializing the controller. This patch:

    - Splits the EHCI startup code into run-once HCD setup code and
    separate "init the hardware" reinit code. (That reinit code is
    a superset of the "early usb handoff" code.)

    - Then it makes the PCI init code run both, and the resume code only
    run the reinit code.

    - It also removes needless pci wrappers around EHCI start/stop methods.

    - Removes a byteswap issue that would be seen on big-endian hardware.

    The HCD glue still doesn't actually provide a good way to do all this
    run-one init stuff in one place though.

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

    David Brownell
     
  • This cleans up the recent updates to EHCI PCI support:

    - Gets rid of checks for "is this a PCI device", they're no
    longer needed since this is now all PCI-only code.

    - Reduce log spamming: MWI is only interesting in the atypical
    case that it can actually be used.

    - Whitespace cleanup, as appropriate for a new file with no
    other pending patches.

    So other than that minor logging change, no functional updates.

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

    David Brownell
     
  • This fixes some bugs in EHCI suspend/resume that joined us over the past
    few releases (as usbcore, PCI, pmcore, and other components evolved):

    - Removes suspend and resume recursion from the EHCI driver, getting
    rid of the USB_SUSPEND special casing.

    - Updates the wakeup mechanism to work again; there's a newish usbcore
    call it needs to use.

    - Provide simpler tests for "do we need to restart from scratch", to
    address another case where PCI Vaux was lost. (In this case it was
    restoring a swsusp snapshot, but there could be others.)

    Un-exports a symbol that was temporarily exported.

    A notable change from previous version is that this doesn't move
    the spinlock init, so there's still a resume/reinit path bug.

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

    David Brownell
     

18 Nov, 2005

2 commits


12 Nov, 2005

1 commit


11 Nov, 2005

1 commit