1. 28 4月, 2007 2 次提交
  2. 24 2月, 2007 1 次提交
    • A
      USB: make autosuspend delay a module parameter · b5e795f8
      Alan Stern 提交于
      This patch (as859) makes the default USB autosuspend delay a module
      parameter of usbcore.  By setting the delay value at boot time, users
      will be able to prevent the system from autosuspending devices which
      for some reason can't handle it.
      
      The patch also stores the autosuspend delay as a per-device value.  A
      later patch will allow the user to change the value, tailoring the
      delay for each individual device.  A delay value of 0 will prevent
      autosuspend.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b5e795f8
  3. 08 2月, 2007 1 次提交
  4. 02 12月, 2006 2 次提交
  5. 22 11月, 2006 1 次提交
  6. 04 10月, 2006 1 次提交
  7. 29 9月, 2006 2 次提交
  8. 28 9月, 2006 11 次提交
    • G
      1b21d5e1
    • A
      usbcore: add autosuspend/autoresume infrastructure · 645daaab
      Alan Stern 提交于
      This patch (as739) adds the basic infrastructure for USB autosuspend
      and autoresume.  The main features are:
      
      	PM usage counters added to struct usb_device and struct
      	usb_interface, indicating whether it's okay to autosuspend
      	them or they are currently in use.
      
      	Flag added to usb_device indicating whether the current
      	suspend/resume operation originated from outside or as an
      	autosuspend/autoresume.
      
      	Flag added to usb_driver indicating whether the driver
      	supports autosuspend.  If not, no device bound to the driver
      	will be autosuspended.
      
      	Mutex added to usb_device for protecting PM operations.
      	Unlike the device semaphore, the locking rule for the pm_mutex
      	is that you must acquire the locks going _up_ the device tree.
      
      	New routines handling autosuspend/autoresume requests for
      	interfaces and devices.
      
      	Suspend and resume requests are propagated up the device tree
      	(but not outside the USB subsystem).
      
      	work_struct added to usb_device, for carrying out delayed
      	autosuspend requests.
      
      	Autoresume added (and autosuspend prevented) during probe and
      	disconnect.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      645daaab
    • A
      usbcore: trim down usb_bus structure · 17200583
      Alan Stern 提交于
      As part of the ongoing program to flatten out the HCD bus-glue layer,
      this patch (as771b) eliminates the hcpriv, release, and kref fields
      from struct usb_bus.  hcpriv and release were not being used for
      anything worthwhile, and kref has been moved into the enclosing
      usb_hcd structure.
      
      Along with those changes, the patch gets rid of usb_bus_get and
      usb_bus_put, replacing them with usb_get_hcd and usb_put_hcd.
      
      The one interesting aspect is that the dev_set_drvdata call was
      removed from usb_put_hcd, where it clearly doesn't belong.  This means
      the driver private data won't get reset to NULL.  It shouldn't cause
      any problems, since the private data is undefined when no driver is
      bound.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      17200583
    • A
      USB: remove struct usb_operations · a6d2bb9f
      Alan Stern 提交于
      All of the currently-supported USB host controller drivers use the HCD
      bus-glue framework.  As part of the program for flattening out the glue
      layer, this patch (as769) removes the usb_operations structure.  All
      function calls now go directly to the HCD routines (slightly renamed
      to remain within the "usb_" namespace).
      
      The patch also removes usb_alloc_bus(), because it's not useful in the
      HCD framework and it wasn't referenced anywhere.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      a6d2bb9f
    • L
      USB core: Use const where possible. · 095bc335
      Luiz Fernando N. Capitulino 提交于
      This patch marks some USB core's functions parameters as const. This
      improves the design (we're saying to the caller that its parameter is
      not going to be modified) and may help in compiler's optimisation work.
      Signed-off-by: NLuiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      095bc335
    • L
      USB: New functions to check endpoints info. · b7cfaaaf
      Luiz Fernando N. Capitulino 提交于
      These functions makes USB driver's code simpler when dealing with endpoints
      by avoiding them from accessing the endpoint's descriptor structure directly
      when they only need to know the endpoint's transfer type and/or
      direction.
      
      Please, read each functions' documentation in order to know how to use
      them.
      Signed-off-by: NLuiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b7cfaaaf
    • 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
  9. 01 7月, 2006 1 次提交
  10. 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
  11. 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
  12. 15 4月, 2006 1 次提交
  13. 21 3月, 2006 1 次提交
  14. 05 1月, 2006 6 次提交
  15. 22 12月, 2005 1 次提交
  16. 18 11月, 2005 1 次提交
  17. 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
  18. 28 10月, 2005 1 次提交