29 Oct, 2005

40 commits

  • Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • This should let us get rid of all of the different hooks in the USB core for
    when something has changed.

    Also, some other parts of the kernel have wanted to know this kind of
    information at times.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • It's only used locally.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • This patch (as582) adds a missing transfer_flags setting to the usbtest
    driver.

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

    Alan Stern
     
  • Add .owner initialisation to the device drivers
    in drivers/usb/host so that when built as module
    the device_driver refers to the owning module

    Signed-off-by: Ben Dooks
    Signed-off-by: Greg Kroah-Hartman

    Ben Dooks
     
  • Ensure the the device_driver and usb_gadget_driver
    have their .owner fields initialised to associate
    the module owner to the driver.

    Signed-off-by: Ben Dooks
    Signed-off-by: Greg Kroah-Hartman

    Ben Dooks
     
  • Initialise the .owner field of the driver with
    the module that owns it, to aid in linking
    drivers to modules.

    Signed-off-by: Ben Dooks
    Signed-off-by: Greg Kroah-Hartman

    Ben Dooks
     
  • When a USB device is put into suspend mode, the current drawn from VBUS
    has to be less than 500 uA. Some transceivers need to be put into a
    special power-saving mode to accomplish this, and won't have a separate
    OTG driver handling that.

    This adds a suspend method to the "otg_transceiver" struct -- misnamed,
    it's not only for OTG -- and calls it from the OMAP UDC driver.

    Signed-off-by: Juha Yrj?l?
    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Juha Yrj?l?
     
  • This patch (as581) changes the assignments to hcd->state in the uhci-hcd
    driver. It fixes part of bugzilla entry #5227. The problem was revealed
    by David's large suite of USB suspend/resume patches; this patch should go
    to Linus at the same time those do.

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

    Alan Stern
     
  • The change to make DMA work two bytes at a time omitted an important
    tweak that affects the file_storage gadget: it needs to recognize when
    the host writes an odd number of bytes. (The network layer ignores
    such extra bytes.)

    This patch resolves that issue by checking the relevant bit and adjusting
    the rx byte count, so that for example a legal 13 byte request doesn't
    morph into an illegal 14 byte one any more.

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

    David Brownell
     
  • usb/core/buffer.c doesn't export any symbols, so it should use
    !I instead of !E to eliminate this warning message:

    Warning(/var/linsrc/linux-2614-rc4//drivers/usb/core/buffer.c): no structured comments found

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

    Randy Dunlap
     
  • Just a small patch that fixes a small parameter validation bug.

    drivers/usb/input/map_to_7segment.h:
    This patch fixes the broken parameter validation in the char to seg7
    conversion. This could cause out-of-bounds memory references.

    MAINTAINERS:
    Yealink maintainer info now in sorted order.

    Documentation/input/yealink.txt:
    Added a Q&A section that answers some common questions.

    Signed-off-by: Henk
    Signed-off-by: Greg Kroah-Hartman

    006491df1a13f85ad245d1039dfdf20e49c394fd

    Henk
     
  • The uhci-hcd driver is fairly lax about the way it handles isochronous
    transfers. This patch (as579) improves it in three respects:

    TDs for a new URB aren't added to the schedule until all of
    them have been allocated. This way there's no risk of the
    controller executing some of them when an allocation fails.

    TDs for an unlinked URB are removed from the schedule as soon
    as the URB is unlinked, rather than waiting until the URB is
    given back. This way there's no risk of the controller still
    executing a TD after the URB completes.

    The urb->error_count values are now reported correctly.
    Although since they aren't used in any drivers except for
    debug messages in the system log, probably nobody cares.

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

    Alan Stern
     
  • This patch (as580) is perhaps the only result from the long discussion I
    had with David about his changes to the root-hub suspend/resume code. It
    renames the hub_suspend and hub_resume methods in struct usb_hcd to
    bus_suspend and bus_resume. These are more descriptive names, since the
    methods really do suspend or resume an entire USB bus, and less likely to
    be confused with the hub_suspend and hub_resume routines in hub.c.

    It also takes David's advice about removing the layer of bus glue, where
    those methods are called. And it implements a related change that David
    made to the other HCDs but forgot to put into dummy_hcd.

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

    Alan Stern
     
  • This patch (as574) updates the PCI BIOS usb-handoff code for UHCI
    controllers, making it work like the reset routines in uhci-hcd. This
    allows uhci-hcd to drop its own routines in favor of the new ones
    (code-sharing).

    Once the patch is merged we can turn the usb-handoff option on
    permanently, as far as UHCI is concerned. OHCI and EHCI may still have
    some issues.

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

    Alan Stern
     
  • This patch (as575) fixes an unlikely race in the g_file_storage driver.
    The problem can occur only when the driver is unbound before its
    initialization routine has finished.

    I also took the opportunity to replace kmalloc/memset with kzalloc.

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

    Alan Stern
     
  • add two more device IDs from eGalax' programming guide.
    thanks to Jonathan Hopper for pointing out.

    Signed-off-by: Daniel Ritz
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/input/touchkitusb.c | 2 ++
    1 file changed, 2 insertions(+)

    Daniel Ritz
     
  • This adds US_FL_FIX_CAPACITY for yet _another_ entire block of Apple
    productIds. They really can't seem to get this right. This one is for
    the iPod Nano. Reported by Tyson Vinson .

    Signed-off-by: Phil Dibowitz
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/storage/unusual_devs.h | 10 ++++++++++
    1 file changed, 10 insertions(+)

    Phil Dibowitz
     
  • This patch adds the US_FL_IGNORE_RESIDUE flag for the TrekStor i.Beat
    Joy 2.0. Original version of this patch was sent by Stefan Werner
    with test/rediff/etc. by me.

    Signed-off-by: Phil Dibowitz
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/storage/unusual_devs.h | 7 +++++++
    1 file changed, 7 insertions(+)

    Phil Dibowitz
     
  • Just noticed that the SDDR-05b entry is missing for the shuttle_usbat driver.
    Looking through BK history it was removed in this patch:

    http://linux.bkbits.net:8080/linux-2.6/gnupatch@42435730FZQ2XCA6Qv5GPGD4pC4laQ

    However, at merge time, it looks like the duplicate was already removed,
    compare these two revisions:

    http://linux.bkbits.net:8080/linux-2.6/anno/drivers/usb/storage/unusual_devs.h@1.152
    http://linux.bkbits.net:8080/linux-2.6/anno/drivers/usb/storage/unusual_devs.h@1.153

    Signed-off-by: Daniel Drake
    Signed-off-by: Phil Dibowitz
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/storage/unusual_devs.h | 8 ++++++++
    1 file changed, 8 insertions(+)

    Daniel Drake
     
  • A while ago, Matthew Dharm wrote:
    > Looks good. Tho, I would like to see a future patch to do two things:
    > 1) Change comments from C++ style to C-style
    > 2) Make sure we're naming consistently everywhere SCM, USBAT,
    > USBAT-02 (most noticably needing fixing is the string used at
    > transport-selection time, but a sweep of all uses to be consistent
    > would be in order).

    Sorry for the long delay, here is a patch to address this. I also clarified
    some ATA/ATAPI wording + function names.

    Signed-off-by: Daniel Drake
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/storage/shuttle_usbat.c | 306 ++++++++++++++++++++----------------
    drivers/usb/storage/shuttle_usbat.h | 66 +++----
    drivers/usb/storage/transport.h | 2
    drivers/usb/storage/unusual_devs.h | 10 -
    drivers/usb/storage/usb.c | 4
    5 files changed, 213 insertions(+), 175 deletions(-)

    Daniel Drake
     
  • There appears to be one more case where the HP8200 CD writer devices are
    detected as flash readers - when the USB cable is replugged after use, with
    the power cable still connected.

    Oddly enough, the identify device command appears to 'fall through' when the
    devices are in this state, the status register reading exactly the same opcode
    as the command (0xA1) that was just executed.

    I think it's safe to label this behaviour as specific to HP8200 devices, I
    can't get the flash devices to respond like this.

    This patch should solve the last of the HP8200 issues which have cropped up
    recently.

    Signed-off-by: Daniel Drake
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/storage/shuttle_usbat.c | 12 ++++++------
    1 file changed, 6 insertions(+), 6 deletions(-)

    Daniel Drake
     
  • the following patch splits the NOTE: in the Device Drivers->USB submenu of
    Kconfig thus making the whole of it readable on 600x800 terminals.
    (Otherwise, the line was too big and disappeared into nowhere.)

    Signed-off-by: Borislav Petkov
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/storage/Kconfig | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    Borislav Petkov
     
  • Use valid #preprocessor instruction to generate an error.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman
    drivers/usb/serial/safe_serial.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    Randy Dunlap
     
  • This one is a tiny patch adding one more device to the list. Please
    apply. :)

    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/net/pegasus.h | 2 ++
    1 file changed, 2 insertions(+)

    Petko Manolov
     
  • We would like to add a PID for the Pyramid Appliance Display, which works
    on USB via FTDI_SIO.

    Signed-off-by: Thomas Riewe
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/serial/ftdi_sio.c | 1 +
    drivers/usb/serial/ftdi_sio.h | 3 +++
    2 files changed, 4 insertions(+)

    Thomas Riewe
     
  • Also has the nice benefit of making sparc alignment issues go away.

    Thanks to David Miller for pointing out the problems here.

    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/core/hub.c | 22 ++++++++++++----------
    drivers/usb/core/hub.h | 2 +-
    2 files changed, 13 insertions(+), 11 deletions(-)

    Greg Kroah-Hartman
     
  • This patch (as566) converts the File-Storage gadget over to the kthread
    API. The new code doesn't use kthread_stop because the control thread
    needs to terminate asynchronously when it receives a signal.

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

    drivers/usb/gadget/file_storage.c | 32 +++++++++++++-------------------
    1 file changed, 13 insertions(+), 19 deletions(-)

    Alan Stern
     
  • drivers/usb/misc/sisusbvga/sisusb.c: In function `sisusb_reset_text_mode':
    drivers/usb/misc/sisusbvga/sisusb.c:2461: warning: assignment discards qualifiers from pointer target type

    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/misc/sisusbvga/sisusb.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    Andrew Morton
     
  • This patch (as570) changes some comments in the uhci-hcd header file and
    removes an unused declaration (something I forgot to erase in an earlier
    patch).

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

    drivers/usb/host/uhci-hcd.h | 91 +++++++++++++++++++++++---------------------
    1 file changed, 49 insertions(+), 42 deletions(-)

    Alan Stern
     
  • Because there is no bulk_interrupt_message() routine and no
    USBDEVFS_INTERRUPT ioctl, people have been forced to abuse the
    usb_bulk_message() routine and USBDEVFS_BULK by using them for interrupt
    transfers as well as bulk transfers.

    This patch (as567) formalizes this practice and adds code to
    usb_bulk_message() for detecting when the target is really an interrupt
    endpoint. If it is, the routine submits an interrupt URB (using the
    default interval) instead of a bulk URB. In theory this should help HCDs
    that don't like it when people try to mix transfer types, queuing both
    periodic and non-periodic types for the same endpoint.

    Not fully tested -- I don't have any programs that use USBDEVFS_BULK for
    interrupt transfers -- but it compiles okay and normal bulk messages work
    as well as before.

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

    drivers/usb/core/message.c | 24 ++++++++++++++++++++----
    1 file changed, 20 insertions(+), 4 deletions(-)

    Alan Stern
     
  • Reject URBs to _all_ devices when their host controllers are suspended;
    even root hub registers will be unavailable. Also, don't reject urbs
    to root hubs in other cases; the only upstream link is through that
    controller (on PCI or whatever SOC bus is in use).

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

    drivers/usb/core/hcd.c | 28 ++++++++++++----------------
    drivers/usb/core/urb.c | 3 ++-
    2 files changed, 14 insertions(+), 17 deletions(-)

    David Brownell
     
  • The way we're looking at USB suspend lately doesn't expect drivers to
    call usb_suspend_device() or usb_resume_device() directly; that'll
    be implicit when no interfaces are in use.

    This patch removes those APIs from visibility outside usbcore.

    Signed-off-by: David Brownell

    drivers/usb/core/hub.c | 12 ++++--------
    drivers/usb/core/usb.h | 4 ++++
    include/linux/usb.h | 5 -----
    3 files changed, 8 insertions(+), 13 deletions(-)

    David Brownell
     
  • This makes the isp116x driver stop using usb_suspend_device() and
    usb_resume_device() ... usbcore now calls to the root hub methods,
    removing the need for this. It also switches from keventd to khubd
    for remote wakeup. (Compile tested.)

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

    drivers/usb/host/isp116x-hcd.c | 29 ++++-------------------------
    drivers/usb/host/isp116x.h | 1 -
    2 files changed, 4 insertions(+), 26 deletions(-)

    David Brownell
     
  • This removes suspend and resume path recursion in UHCI.

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

    drivers/usb/host/uhci-hcd.c | 9 ---------
    1 file changed, 9 deletions(-)

    David Brownell
     
  • The PCI "early usb handoff" quirk logic didn't work like "ohci-hcd" ...
    This patch makes it do so by:

    - Resetting the controller after kicking BIOS off, matching the
    normal "chip in hardware reset" startup mode;

    - Reporting any BIOS that borks this simple handoff; it's likely
    got a few other surprises for us too.

    - Ignoring that handoff on HPPA;

    The diagnostic string is mostly shared with EHCI, saving a few bytes.

    Signed-off-by: Greg Kroah-Hartman

    drivers/usb/host/pci-quirks.c | 22 ++++++++++++++++++----
    1 file changed, 18 insertions(+), 4 deletions(-)

    David Brownell
     
  • This simplifies the OHCI root hub suspend logic:

    - Uses new usbcore root hub calls to make autosuspend work again:
    * Uses a newish usbcore root hub wakeup mechanism,
    making requests to khubd not keventd.
    * Uses an even newer sibling suspend hook.

    - Expect someone always made usbcore call ohci_hub_suspend() before bus
    glue fires; and that ohci_hub_resume() is only called after that bus
    glue ran. Previously, only CONFIG_USB_SUSPEND promised those things.
    (Includes updates to PCI and OMAP bus glue.)

    - Handle a not-noticed-before special case during resume from one of
    the swsusp snapshots when using "usb-handoff": the controller isn't
    left in RESET state. (A bug to fix in the usb-handoff code...)

    Also cleans up a minor debug printk glitch, and switches an mdelay over
    to an msleep (how did that stick around for so long?).

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

    drivers/usb/host/ohci-dbg.c | 4 ----
    drivers/usb/host/ohci-hcd.c | 2 +-
    drivers/usb/host/ohci-hub.c | 42 ++++++++++++------------------------------
    drivers/usb/host/ohci-mem.c | 1 -
    drivers/usb/host/ohci-omap.c | 36 ++++++++++++------------------------
    drivers/usb/host/ohci-pci.c | 40 ++++++++--------------------------------
    drivers/usb/host/ohci.h | 1 -
    7 files changed, 33 insertions(+), 93 deletions(-)

    David Brownell
     
  • This updates the PCI glue to address the new and simplified usbcore suspend
    semantics, where CONFIG_USB_SUSPEND becomes irrelevant to HCDs because
    hcd->hub_suspend() will always be called.

    - Removes now-unneeded recursion support

    - Go back to ignoring faults reported by the wakeup calls; we expect them
    to fail sometimes, and that's just fine.

    The PCI HCDs will need simple changes to catch up to this, like being able
    to ignore the setting of CONFIG_USB_SUSPEND.

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

    drivers/usb/core/hcd-pci.c | 106 +++++++++++++++++++++------------------------
    drivers/usb/core/hcd.h | 6 +-
    2 files changed, 53 insertions(+), 59 deletions(-)

    David Brownell
     
  • This patch associates hub suspend and resume logic (including for root hubs)
    with CONFIG_PM -- instead of CONFIG_USB_SUSPEND as before -- thereby unifying
    two troublesome versions of suspend logic into just one. It'll be easier to
    keep things right from now on.

    - Now usbcore _always_ calls hcd->hub_suspend as needed, instead of
    only when USB_SUSPEND is enabled:
    * Those root hub methods are now called from hub suspend/resume;
    no more skipping between layers during device suspend/resume;
    * It now handles cases allowed by sysfs or autosuspended root hubs,
    by forcing the hub interface to resume too.

    - All devices, including virtual root hubs, now get the same treatment
    on their resume paths ... including re-activating all their interfaces.

    Plus it gets rid of those stub copies of usb_{suspend,resume}_device(), and
    updates the Kconfig to match the new definition of USB_SUSPEND: it provides
    (a) selective suspend, downstream from hubs; and (b) remote wakeup, upstream
    from any device configuration which supports it.

    This calls for minor followup patches for most HCDs (and their PCI glue).

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

    drivers/usb/core/Kconfig | 11 ++-
    drivers/usb/core/hub.c | 163 +++++++++++++++++++++++++----------------------
    2 files changed, 97 insertions(+), 77 deletions(-)

    David Brownell
     
  • This patch collects various small updates related to root hubs, to shrink
    later patches which build on them.

    - For root hub suspend/resume support:
    * Make the existing usb_hcd_resume_root_hub() routine respect pmcore
    locking, exporting and using the dpm_runtime_resume() method.
    * Add a new usb_hcd_suspend_root_hub() to pair with that routine.
    (Essential to make OHCI autosuspend behave again...)
    * HC_SUSPENDED by itself only refers to the root hub's downstream ports.
    So let HCDs see root hub URBs unless the parent device is suspended.

    - Remove an assertion we no longer need (and now, also don't want).

    - Generic suspend/resume updates to work better with swsusp.
    * Ignore the FREEZE vs SUSPEND distinction for hardware; trying to
    use it breaks the swsusp snapshots it's supposed to help (sigh).
    * On resume, mark devices as resumed right away, but then
    do nothing else if the device is marked NOTATTACHED.

    These changes shouldn't be very noticable by themselves.

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

    drivers/base/power/runtime.c | 1
    drivers/usb/core/hcd.c | 64 ++++++++++++++++++++++++++++++++++++++-----
    drivers/usb/core/hcd.h | 1
    drivers/usb/core/hub.c | 45 ++++++++++++++++++++++++------
    drivers/usb/core/usb.c | 20 +++++++++----
    drivers/usb/core/usb.h | 1
    6 files changed, 111 insertions(+), 21 deletions(-)

    David Brownell