Subject: [BK PATCH] Some more USB changes for 2.5.30
From: Greg KH <[email-masked]>
To: [email-masked]
Cc: [email-masked]

Here are some more USB changesets.

Pull from:  http://linuxusb.bkbits.net/linus-2.5

thanks,

greg k-h

 Documentation/DocBook/kernel-api.tmpl |    2 
 drivers/usb/core/Makefile             |    4 
 drivers/usb/core/buffer.c             |  186 +++++++++++++
 drivers/usb/core/hcd-pci.c            |   17 -
 drivers/usb/core/hcd.c                |   12 
 drivers/usb/core/hcd.h                |   41 +++
 drivers/usb/core/usb.c                |  175 ++++++++++++-
 drivers/usb/host/ehci-dbg.c           |  214 +++++++++++++++-
 drivers/usb/host/ehci-hcd.c           |  129 ++++++---
 drivers/usb/host/ehci-q.c             |  364 +++++++++++++++------------
 drivers/usb/host/ehci-sched.c         |  454 ++++++++++++++--------------------
 drivers/usb/host/ehci.h               |   18 -
 drivers/usb/host/ohci-q.c             |    2 
 drivers/usb/storage/scsiglue.c        |    3 
 include/linux/usb.h                   |   53 +++
 15 files changed, 1191 insertions(+), 483 deletions(-)
------

[email-masked], 2002-08-06 21:57:39-07:00, [email-masked]
  [PATCH] USB root hub polling and suspend
  
  Currently with 2.5, when I suspend and resume my powerbook, I find
  that the USB subsystem no longer sees root hub events, i.e. it doesn't
  notice when I plug in a new USB device (it doesn't notice when I
  unplug a device either but of course the driver for the device sees
  that it is no longer responding).
  
  It turns out that what happens is that the root hub timer goes off
  after the OHCI driver has done its suspend stuff.  The timer routine
  sees that the HCD is not running at the moment and doesn't schedule
  another timeout.  Hence the series of timeouts stops.

 drivers/usb/core/hcd.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)
------

[email-masked], 2002-08-06 20:49:14-07:00, [email-masked]
  USB: Makefile fix for previous patch

 drivers/usb/core/Makefile |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
------

[email-masked], 2002-08-06 20:05:47-07:00, [email-masked]
  [PATCH] expose dma_addr_t in urbs
  
  This patch exposes DMA addresses in URBs.  It exposes new APIs that
  let drivers be a bit smarter in terms of DMA, reducing USB overhead
  on some platforms (but not commodity pcs).  As discussed with DaveM,
  and on the usb-devel list.
  
  Supporting patches are still needed.  Of course, there's teaching HCDs
  to use _these_ addresses when they're provided (easy).  There's also
  teaching drivers (like hid) to use the new usb_buffer_alloc() support,;
  can happen incrementally.  And adding scatterlist support, which will
  be desirable for usb-storage and hpusbscanner.  But this is the start
  needed to get all of that going.

 Documentation/DocBook/kernel-api.tmpl |    2 
 drivers/usb/core/buffer.c             |  186 ++++++++++++++++++++++++++++++++++
 drivers/usb/core/hcd-pci.c            |   17 ++-
 drivers/usb/core/hcd.c                |    5 
 drivers/usb/core/hcd.h                |   41 +++++++
 drivers/usb/core/usb.c                |  153 +++++++++++++++++++++++++++
 include/linux/usb.h                   |   53 ++++++++-
 7 files changed, 446 insertions(+), 11 deletions(-)
------

[email-masked], 2002-08-06 19:29:58-07:00, [email-masked]
  [PATCH] ehci does interrupt queuing
  
  This patch makes EHCI
  
    - Share the same TD queueing code for control, bulk,
      and interrupt traffic;
    - Queue interrupt transfers, modifying the code for
      urb submit/unlink/complete;
    - Thinner, by removing lots of nasty fatty special case
      logic for interrupt transfers (size, no queueing, etc);
    - Grow some "automagic resubmit" logic, ready to be
      ripped out soonish;
    - Package its interrupt scheduling so it can be called
      from more places.

 drivers/usb/host/ehci-hcd.c   |   45 +++--
 drivers/usb/host/ehci-q.c     |  166 ++++++++-----------
 drivers/usb/host/ehci-sched.c |  362 +++++++++++++++++++-----------------------
 drivers/usb/host/ehci.h       |    1 
 4 files changed, 278 insertions(+), 296 deletions(-)
------

[email-masked], 2002-08-06 15:58:22-07:00, [email-masked]
  [PATCH] ehci, debug info in driverfs
  
  This patch teaches the ehci driver how to dump its schedule
  through two driverfs files:
  
    "sched-async" shows the control/bulk queue.  usually has
       no tds, often the idle queue head is showing.
    "sched-periodic" shows the iso/interrupt schedule.
  
  Since this is for debugging, the files aren't normally
  configured into the driver.

 drivers/usb/host/ehci-dbg.c |  214 +++++++++++++++++++++++++++++++++++++++++++-
 drivers/usb/host/ehci-hcd.c |    4 
 2 files changed, 217 insertions(+), 1 deletion(-)
------

[email-masked], 2002-08-05 15:38:08-07:00, [email-masked]
  [PATCH] usb_string fix
  
  Things are indeed as conjectured, and I can reproduce the situation
  where usb_string() returns -EPIPE. Now that this is an internal
  error code for the USB subsystem, and not meant to get out to the
  user, I made these driverfs files empty in case of error.
  (While if there is no error but the string has length 0,
  the file will consist of a single '\n'.)
  
  One fewer random memory corruption. Unfortunately, there are more.
  
  Andries

 drivers/usb/core/usb.c |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)
------

[email-masked], 2002-08-05 15:37:54-07:00, [email-masked]
  [PATCH] ohci, rm sparc64 oops
  
  The recent "unlink cleanups" patch had a problem
  with bitmask byteswapping.

 drivers/usb/host/ohci-q.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
------

[email-masked], 2002-08-05 10:24:05-07:00, [email-masked]
  [PATCH] ehci updates
  
  This patch is the first part of fixing the EHCI driver to queue
  interrupt transactions, handle larger requests, and basically treat
  interrupt as just "bulk that lives on the periodic schedule".  One
  more patch should wrap that up.
  
       qh processing cleanup
  	- split "append tds to qh" logic out of "put on async schedule",
  	  so it can be used with "put on periodic schedule" too
       interrupt transfer cleanup
  	- save rest of scheduling params in the qh
  	- calculate scheduling params only once
       other cleanup
  	- use new container_of()
  	- minor code shrinkage (avoid pipe bitops, conditionals, etc)
  	- rename variable (will track endpoints, not urbs)
  	- free_config() logic

 drivers/usb/host/ehci-hcd.c   |   80 ++++++++++------
 drivers/usb/host/ehci-q.c     |  198 +++++++++++++++++++++++++++++-------------
 drivers/usb/host/ehci-sched.c |   92 +++++--------------
 drivers/usb/host/ehci.h       |   17 ++-
 4 files changed, 226 insertions(+), 161 deletions(-)
------

[email-masked], 2002-08-05 10:12:38-07:00, [email-masked]
  USB storage: split up BUG_ON for easier debugging.
  
  As requested by Adam Richter.

 drivers/usb/storage/scsiglue.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)
------