1. 29 9月, 2006 1 次提交
  2. 28 9月, 2006 11 次提交
    • 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: store each usb_device's level in the tree · b6956ffa
      Alan Stern 提交于
      This patch (as778) adds a field to struct usb_device to store the
      device's level in the USB tree.  In itself this number isn't really
      important.  But the overhead is very low, and in a later patch it will
      be used for preventing bogus warnings from the lockdep checker.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b6956ffa
    • 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
      usbcore: Add flag for whether a host controller uses DMA · dd990f16
      Alan Stern 提交于
      This patch (as770b) introduces a new field to usb_bus: a flag
      indicating whether or not the host controller uses DMA.  This serves
      to encapsulate the computation.  It also means we will have only one
      spot to update if the DMA API changes.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      dd990f16
    • 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
    • A
      usbcore: help drivers to change device configs · 088dc270
      Alan Stern 提交于
      It's generally a bad idea for USB interface drivers to try to change a
      device's configuration, and usbcore doesn't provide any way for them
      to do it.  However in a few exceptional circumstances it can make
      sense.  This patch (as767) adds a roundabout mechanism to help drivers
      that may need it.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      088dc270
    • 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
    • J
      USB: making the kernel -Wshadow clean - USB & completion · 3d5b2510
      Jesper Juhl 提交于
      include/linux/usb.h causes a lot of -Wshadow warnings - fix them.
      
        include/linux/usb.h:901: warning: declaration of 'complete' shadows a global declaration
        include/linux/completion.h:52: warning: shadowed declaration is here
        include/linux/usb.h:932: warning: declaration of 'complete' shadows a global declaration
        include/linux/completion.h:52: warning: shadowed declaration is here
        include/linux/usb.h:967: warning: declaration of 'complete' shadows a global declaration
        include/linux/completion.h:52: warning: shadowed declaration is here
      Signed-off-by: NJesper Juhl <jesper.juhl@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3d5b2510
    • A
      usbcore: track whether interfaces are suspended · 4d064c08
      Alan Stern 提交于
      Currently we rely on intf->dev.power.power_state.event for tracking
      whether intf is suspended.  This is not a reliable technique because
      that value is owned by the PM core, not by usbcore.  This patch (as718b)
      adds a new flag so that we can accurately tell which interfaces are
      suspended and which aren't.
      
      At first one might think these flags aren't needed, since interfaces
      will be suspended along with their devices.  It turns out there are a
      couple of intermediate situations where that's not quite true, such as
      while processing a remote-wakeup request.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4d064c08
    • 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
  3. 03 8月, 2006 2 次提交
  4. 13 7月, 2006 1 次提交
  5. 22 6月, 2006 5 次提交
  6. 26 4月, 2006 1 次提交
  7. 29 3月, 2006 1 次提交
  8. 21 3月, 2006 1 次提交
  9. 05 1月, 2006 8 次提交
    • K
      [PATCH] driver core: replace "hotplug" by "uevent" · 312c004d
      Kay Sievers 提交于
      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: NKay Sievers <kay.sievers@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      312c004d
    • A
      [PATCH] USB: Store port number in usb_device · 12c3da34
      Alan Stern 提交于
      This patch (as610) adds a field to struct usb_device to store the device's
      port number.  This allows us to remove several loops in the hub driver
      (searching for a particular device among all the entries in the parent's
      array of children).
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      12c3da34
    • A
      [PATCH] USB: Consider power budget when choosing configuration · 55c52718
      Alan Stern 提交于
      This patch (as609) changes the way we keep track of power budgeting for
      USB hubs and devices, and it updates the choose_configuration routine to
      take this information into account.  (This is something we should have
      been doing all along.)  A new field in struct usb_device holds the amount
      of bus current available from the upstream port, and the usb_hub structure
      keeps track of the current available for each downstream port.
      
      Two new rules for configuration selection are added:
      
      	Don't select a self-powered configuration when only bus power
      	is available.
      
      	Don't select a configuration requiring more bus power than is
      	available.
      
      However the first rule is #if-ed out, because I found that the internal
      hub in my HP USB keyboard claims that its only configuration is
      self-powered.  The rule would prevent the configuration from being chosen,
      leaving the hub & keyboard unconfigured.  Since similar descriptor errors
      may turn out to be fairly common, it seemed wise not to include a rule
      that would break automatic configuration unnecessarily for such devices.
      
      The second rule may also trigger unnecessarily, although this should be
      less common.  More likely it will annoy people by sometimes failing to
      accept configurations that should never have been chosen in the first
      place.
      
      The patch also changes usbcore's reaction when no configuration is
      suitable.  Instead of raising an error and rejecting the device, now
      the core will simply leave the device unconfigured.  People can always
      work around such problems by installing configurations manually through
      sysfs.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      55c52718
    • A
      [PATCH] USB: Remove USB private semaphore · 9ad3d6cc
      Alan Stern 提交于
      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: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      9ad3d6cc
    • G
      [PATCH] USB: remove .owner field from struct usb_driver · 75318d2d
      Greg Kroah-Hartman 提交于
      It is no longer needed, so let's remove it, saving a bit of memory.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      75318d2d
    • G
      [PATCH] USB: make registering a usb driver automatically set the module owner · 2143acc6
      Greg Kroah-Hartman 提交于
      This fixes the driver that forgot to set the module owner up.  Now we
      can remove the unneeded pointer from the usb driver structure.  The idea
      for how to do this was from Al Viro, who did this for the PCI drivers.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      2143acc6
    • G
      [PATCH] USB: allow usb drivers to disable dynamic ids · ba9dc657
      Greg Kroah-Hartman 提交于
      This lets drivers, like the usb-serial ones, disable the ability to add
      ids from sysfs.
      
      The usb-serial drivers are "odd" in that they are really usb-serial bus
      drivers, not usb bus drivers, so the dynamic id logic will have to go
      into the usb-serial bus core for those drivers to get that ability.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ba9dc657
    • G
      [PATCH] USB: add dynamic id functionality to USB core · 733260ff
      Greg Kroah-Hartman 提交于
      Echo the usb vendor and product id to the "new_id" file in the driver's
      sysfs directory, and then that driver will be able to bind to a device
      with those ids if it is present.
      
      Example:
      	echo 0557 2008 > /sys/bus/usb/drivers/foo_driver/new_id
      adds the hex values 0557 and 2008 to the device id table for the foo_driver.
      
      Note, usb-serial drivers do not currently work with this capability yet.
      usb-storage also might have some oddities.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      733260ff
  10. 24 11月, 2005 1 次提交
  11. 14 11月, 2005 1 次提交
  12. 29 10月, 2005 7 次提交
    • A
      [PATCH] usbcore: Fix handling of sysfs strings and other attributes · 4f62efe6
      Alan Stern 提交于
      This patch (as592) makes a few small improvements to the way device
      strings are handled, and it fixes some bugs in a couple of other sysfs
      attribute routines.  (Look at show_configuration_string() to see what I
      mean.)
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4f62efe6
    • A
      [PATCH] usbcore: Wrap lines before column 80 · b724ae77
      Alan Stern 提交于
      I can't stand text lines that wrap-around in my 80-column windows.  This
      patch (as589) makes cosmetic changes to a couple of source files.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b724ae77
    • A
      [PATCH] usbcore: Improve endpoint sysfs file handling · be69e5b1
      Alan Stern 提交于
      This revised patch (as587b) improves the implementation of USB endpoint
      sysfs files.  Instead of storing a whole bunch of attributes for every
      single endpoint, each endpoint now gets its own kobject and they can
      share a static list of attributes.  The number of extra fields added to
      struct usb_host_endpoint has been reduced from 4 to 1.
      
      The bEndpointAddress field is retained even though it is redundant (it
      repeats the same information as the attributes' directory name).  The
      code avoids calling kobject_register, to prevent generating unwanted
      hotplug events.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      be69e5b1
    • G
      [PATCH] USB: add notifier functions to the USB core for devices and busses · 3099e75a
      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: NGreg Kroah-Hartman <gregkh@suse.de>
      3099e75a
    • D
      [PATCH] stop exporting two functions · 5edbfb7c
      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: NDavid Brownell <dbrownell@users.sourceforge.net>
      
       drivers/usb/core/hub.c |   12 ++++--------
       drivers/usb/core/usb.h |    4 ++++
       include/linux/usb.h    |    5 -----
       3 files changed, 8 insertions(+), 13 deletions(-)
      5edbfb7c
    • 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
    • G
      [PATCH] devfs: Remove the mode field from usb_class_driver as it's no longer needed · d6e5bcf4
      Greg Kroah-Hartman 提交于
      Also fixes all drivers that set this field, and removes some other devfs
      specfic USB logic.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/class/usblp.c           |    3 +--
       drivers/usb/core/file.c             |   19 ++++---------------
       drivers/usb/image/mdc800.c          |    3 +--
       drivers/usb/input/aiptek.c          |    2 +-
       drivers/usb/input/hiddev.c          |    3 +--
       drivers/usb/media/dabusb.c          |    3 +--
       drivers/usb/misc/auerswald.c        |    3 +--
       drivers/usb/misc/idmouse.c          |    5 ++---
       drivers/usb/misc/legousbtower.c     |    5 ++---
       drivers/usb/misc/rio500.c           |    3 +--
       drivers/usb/misc/sisusbvga/sisusb.c |    5 -----
       drivers/usb/misc/usblcd.c           |    9 ++++-----
       drivers/usb/usb-skeleton.c          |    3 +--
       include/linux/usb.h                 |    7 ++-----
       14 files changed, 22 insertions(+), 51 deletions(-)
      d6e5bcf4