1. 28 9月, 2006 5 次提交
    • A
      usbcore: make usb_generic a usb_device_driver · 782da727
      Alan Stern 提交于
      This patch (as714b) makes usb_generic into a usb_device_driver capable
      of being probed and unbound, just like other drivers.  A fair amount of
      the work that used to get done during discovery or removal of a USB
      device have been moved to the probe and disconnect methods of
      usb_generic: creating the sysfs attributes and selecting an initial
      configuration.  However the normal behavior should continue to be the
      same as before.
      
      We will now have the possibility of creating other USB device drivers,
      They will assist with exporting devices to remote systems
      (USB-over-TCPIP) or to paravirtual guest operating systems.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      782da727
    • A
      usbcore: add usb_device_driver definition · 8bb54ab5
      Alan Stern 提交于
      This patch (as732) adds a usb_device_driver structure, for representing
      drivers that manage an entire USB device as opposed to just an
      interface.  Support routines like usb_register_device_driver,
      usb_deregister_device_driver, usb_probe_device, and usb_unbind_device
      are also added.
      
      Unlike an earlier version of this patch, the new code is type-safe.  To
      accomplish this, the existing struct driver embedded in struct
      usb_driver had to be wrapped in an intermediate wrapper.  This enables
      the core to tell at runtime whether a particular struct driver belongs
      to a device driver or to an interface driver.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8bb54ab5
    • A
      usbcore: move code among source files · 36e56a34
      Alan Stern 提交于
      This revised patch (as713b) moves a few routines among source files in
      usbcore.  Some driver-related code in usb.c (claiming interfaces and
      matching IDs) is moved to driver.c, where it belongs.  Also the
      usb_generic stuff in driver.c is moved to a new source file: generic.c.
      (That's the reason for revising the patch.)  Although not very big now,
      it will get bigger in a later patch.
      
      None of the code has been changed; it has only been re-arranged.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      36e56a34
    • A
      usbcore: rename usb_suspend_device to usb_port_suspend · 140d8f68
      Alan Stern 提交于
      This revised patch (as715b) renames usb_suspend_device to
      usb_port_suspend, usb_resume_device to usb_port_resume, and
      finish_device_resume to finish_port_resume.  There was no objection to
      the original version of the patch so this should be okay to apply.
      
      The revision was needed only because I have re-arranged the order of the
      earlier patches.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      140d8f68
    • D
      USB: Make usb_buffer_free() NULL-safe · b94badbb
      Dmitry Torokhov 提交于
      kfree() handles NULL arguments which is handy in error handling paths as one
      does need to  insert bunch of ifs. How about making usb_buffer_free() do the
      same?
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b94badbb
  2. 01 7月, 2006 1 次提交
  3. 23 6月, 2006 1 次提交
    • G
      [PATCH] USB: get USB suspend to work again · 0517587e
      Greg Kroah-Hartman 提交于
      Yeah, it's a hack, but it is only temporary until Alan's patches
      reworking this area make it in.  We really should not care what devices
      below us are doing, especially when we do not really know what type of
      devices they are.  This patch relies on the fact that the endpoint
      devices do not have a driver assigned to us.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0517587e
  4. 22 6月, 2006 1 次提交
    • A
      [PATCH] usbcore: port reset for composite devices · 79efa097
      Alan Stern 提交于
      This patch (as699) adds usb_reset_composite_device(), a routine for
      sending a USB port reset to a device with multiple interfaces owned by
      different drivers.  Drivers are notified about impending and completed
      resets through two new methods in the usb_driver structure.
      
      The patch modifieds the usbfs ioctl code to make it use the new routine
      instead of usb_reset_device().  Follow-up patches will modify the hub,
      usb-storage, and usbhid drivers so they can utilize this new API.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      79efa097
  5. 15 4月, 2006 1 次提交
  6. 21 3月, 2006 1 次提交
  7. 05 1月, 2006 6 次提交
  8. 22 12月, 2005 1 次提交
  9. 18 11月, 2005 1 次提交
  10. 29 10月, 2005 5 次提交
    • A
      [PATCH] usbcore: Use kzalloc instead of kmalloc/memset · 0a1ef3b5
      Alan Stern 提交于
      This patch (as590) fixes up all the remaining places where usbcore can
      use kzalloc rather than kmalloc/memset.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0a1ef3b5
    • G
      [PATCH] USB: always export interface information for modalias · 7521803d
      Greg Kroah-Hartman 提交于
      This fixes a problem with some cdc acm devices that were not getting
      automatically loaded as the module alias was not being reported
      properly.
      
      This check was for back in the days when we only reported hotplug events
      for the main usb device, not the interfaces.  We should always give the
      interface information for MODALIAS/modalias as it can be needed.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      7521803d
    • D
      [PATCH] root hub changes (lesser half) · 979d5199
      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: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       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(-)
      979d5199
    • D
      [PATCH] remove usb_suspend_device() parameter · 390a8c34
      David Brownell 提交于
      This patch removes the extra usb_suspend_device() parameter.  The original
      reason to pass that parameter was so that this routine could suspend any
      active children.  A previous patch removed that functionality ... leaving
      no reason to pass the parameter.  A close analogy is pci_set_power_state,
      which doesn't need a pm_message_t either.
      
      On the internal code path that comes through the driver model, the parameter
      is now used to distinguish cases where USB devices need to "freeze" but not
      suspend.   It also checks for an error case that's accessible through sysfs:
      attempting to suspend a device before its interfaces (or for hubs, ports).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/core/hub.c         |   34 +++++++++++++++++++++-------------
       drivers/usb/core/usb.c         |   23 +++++++++++++++++++++--
       drivers/usb/host/ehci-hcd.c    |    2 +-
       drivers/usb/host/isp116x-hcd.c |    2 +-
       drivers/usb/host/ohci-pci.c    |    2 +-
       include/linux/usb.h            |    2 +-
       6 files changed, 46 insertions(+), 19 deletions(-)
      390a8c34
    • D
      [PATCH] usb_interface power state · db690874
      David Brownell 提交于
      This updates the handling of power state for USB interfaces.
      
        - Formalizes an existing invariant:  interface "power state" is a boolean:
          ON when I/O is allowed, and FREEZE otherwise.  It does so by defining
          some inlined helpers, then using them.
      
        - Adds a useful invariant:  the only interfaces marked active are those
          bound to non-suspended drivers.  Later patches build on this invariant.
      
        - Simplifies the interface driver API (and removes some error paths) by
          removing the requirement that they record power state changes during
          suspend and resume callbacks.  Now usbcore does that.
      
      A few drivers were simplified to address that last change.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/core/hub.c       |   33 +++++++++------------
       drivers/usb/core/message.c   |    1
       drivers/usb/core/usb.c       |   65 +++++++++++++++++++++++++++++++++----------
       drivers/usb/core/usb.h       |   18 +++++++++++
       drivers/usb/input/hid-core.c |    2 -
       drivers/usb/misc/usbtest.c   |   10 ------
       drivers/usb/net/pegasus.c    |    2 -
       drivers/usb/net/usbnet.c     |    2 -
       8 files changed, 85 insertions(+), 48 deletions(-)
      db690874
  11. 28 10月, 2005 1 次提交
  12. 22 9月, 2005 1 次提交
  13. 09 9月, 2005 3 次提交
    • A
      [PATCH] USB: Support unbinding of the usb_generic driver · 3b4d7f79
      Alan Stern 提交于
      This patch (as556) adds support for unbinding the usb_generic "driver".
      That driver only binds to USB devices, as opposed to interfaces, and it
      does nothing much besides marking which struct device's go with an
      overall USB device plus providing suspend/resume methods.  Now that
      users can unbind drivers at will using the sysfs "unbind" attribute, we
      need a rational way of dealing with USB devices that are no longer under
      full control of the USB stack.  The patch handles this by unconfiguring
      the device, thereby removing all the interfaces and their associated
      drivers and children.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3b4d7f79
    • A
      [PATCH] USB: Add timeout to usb_lock_device_for_reset · 3ea15966
      Alan Stern 提交于
      This patch (as555) modifies the already-awkward
      usb_lock_device_for_reset routine in usbcore by adding a timeout.  The
      whole point of the routine is that the caller wants to acquire some
      semaphores in the wrong order; protecting against the possibility of
      deadlock by timing out seems only prudent.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3ea15966
    • K
      [PATCH] USB: real nodes instead of usbfs · fbf82fd2
      Kay Sievers 提交于
      This patch introduces a /sys/class/usb_device/ class
      where every connected usb-device will show up:
      
        tree /sys/class/usb_device/
        /sys/class/usb_device/
        |-- usb1.1
        |   |-- dev
        |   `-- device -> ../../../devices/pci0000:00/0000:00:1d.0/usb1
        |-- usb2.1
        |   |-- dev
        |   `-- device -> ../../../devices/pci0000:00/0000:00:1d.1/usb2
        ...
      
      The presence of the "dev" file lets udev create real device nodes.
        kay@pim:~/src/linux-2.6> tree /dev/bus/usb/
        /dev/bus/usb/
        |-- 1
        |   `-- 1
        |-- 2
        |   `-- 1
        ...
      
      udev rule:
        SUBSYSTEM="usb_device", PROGRAM="/sbin/usb_device %k", NAME="%c"
        (echo $1 | /bin/sed 's/usb\([0-9]*\)\.\([0-9]*\)/bus\/usb\/\1\/\2/')
      
      This makes libusb pick up the real nodes instead of the mounted usbfs:
        export USB_DEVFS_PATH=/dev/bus/usb
      
      Background:
        All this makes it possible to manage usb devices with udev instead of
        the devfs solution. We are currently working on a pam_console/resmgr
        replacement driven by udev and a pam-helper. It applies ACL's to device
        nodes, which is required for modern desktop functionalty like
        "Fast User Switching" or multiple local login support.
      
      New patch with its own major. I've succesfully disabled usbfs and use real
      nodes only on my box. With: "export USB_DEVFS_PATH=/dev/bus/usb" libusb picks
      up the udev managed nodes instead of reading usbfs files.
      
      This makes udev to provide symlinks for libusb to pick up:
        SUBSYSTEM="usb_device", PROGRAM="/sbin/usbdevice %k", SYMLINK="%c"
      
      /sbin/usbdevice:
        #!/bin/sh
        echo $1 | /bin/sed 's/usbdev\([0-9]*\)\.\([0-9]*\)/bus\/usb\/\1\/\2/'
      Signed-off-by: NKay Sievers <kay.sievers@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      fbf82fd2
  14. 05 9月, 2005 1 次提交
  15. 13 7月, 2005 2 次提交
  16. 21 6月, 2005 5 次提交
  17. 23 4月, 2005 1 次提交
  18. 19 4月, 2005 2 次提交
    • G
      [PATCH] USB: fix up some sparse warnings about static functions that aren't static. · 6d5e8254
      Greg KH 提交于
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      
      Index: gregkh-2.6/drivers/usb/core/usb.h
      ===================================================================
      6d5e8254
    • D
      [PATCH] usb suspend updates (interface suspend) · 27d72e85
      David Brownell 提交于
      This is the first of a few installments of PM API updates to match the
      recent switch to "pm_message_t".  This installment primarily affects
      USB device drivers (for USB interfaces), and it changes the handful of
      drivers which currently implement suspend methods:
      
          - <linux/usb.h> and usbcore, signature change
      
          - Some drivers only changed the signature, net effect this just
            shuts up "sparse -Wbitwise":
      	* hid-core
      	* stir4200
      
          - Two network drivers did that, and also grew slightly more
            featureful suspend code ... they now properly shut down
            their activities.  (As should stir4200...)
      	* pegasus
      	* usbnet
      
      Note that the Wake-On-Lan (WOL) support in pegasus doesn't yet work; looks
      to me like it's missing a request to turn it on, vs just configuring it.
      The ASIX code in usbnet also has WOL hooks that are ready to use; untested.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      Index: gregkh-2.6/drivers/net/irda/stir4200.c
      ===================================================================
      27d72e85
  19. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4