Subject: [BK PATCH] USB changes for 2.4.21-pre2
From: Greg KH <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]

Hi,

Here are some USB updates and bugfixes for 2.4.21-pre2.

Please pull from:  bk://linuxusb.bkbits.net/marcelo-2.4

The individual patches will be sent in follow up messages to this email
to you and the linux-usb-devel mailing list.

thanks,

greg k-h

 Documentation/usb/scanner-hp-sane.txt |   79 ----
 Documentation/Configure.help          |   27 +
 Documentation/usb/ov511.txt           |   10 
 Documentation/usb/scanner.txt         |  328 +++++++------------
 Documentation/usb/usb-serial.txt      |   34 +-
 Makefile                              |    4 
 drivers/usb/hcd.c                     |   34 +-
 drivers/usb/hcd.h                     |    7 
 drivers/usb/hcd/ehci-dbg.c            |   90 +++--
 drivers/usb/hcd/ehci-hcd.c            |  203 ++++++------
 drivers/usb/hcd/ehci-hub.c            |   19 -
 drivers/usb/hcd/ehci-mem.c            |   83 ++--
 drivers/usb/hcd/ehci-q.c              |  571 ++++++++++++++++------------------
 drivers/usb/hcd/ehci-sched.c          |   28 -
 drivers/usb/hcd/ehci.h                |    9 
 drivers/usb/ibmcam.c                  |  135 ++++----
 drivers/usb/kaweth.c                  |    8 
 drivers/usb/ov511.c                   |  511 ++++++++++++++++--------------
 drivers/usb/ov511.h                   |   22 -
 drivers/usb/pegasus.c                 |    5 
 drivers/usb/pegasus.h                 |    9 
 drivers/usb/rtl8150.c                 |   10 
 drivers/usb/scanner.c                 |  156 +++++----
 drivers/usb/scanner.h                 |   68 ++--
 drivers/usb/serial/ipaq.c             |   38 ++
 drivers/usb/serial/ipaq.h             |   53 ++-
 drivers/usb/ultracam.c                |   62 +--
 drivers/usb/usbvideo.c                |  493 +++++++++++++++--------------
 drivers/usb/usbvideo.h                |  196 ++++++-----
 29 files changed, 1699 insertions(+), 1593 deletions(-)
-----

[email-masked], 2003-01-06 11:13:49-08:00, [email-masked]
  Merge kroah.com:/home/greg/linux/BK/bleeding_edge-2.4
  into kroah.com:/home/greg/linux/BK/gregkh-2.4

 Documentation/Configure.help |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)
------

[email-masked], 2003-01-06 11:07:07-08:00, [email-masked]
  [PATCH] USB ov511: Convert to new V4L 1 interface
  
  Here's a patch to switch ov511 over to the new V4L 1 interface
  introduced in 2.4.19. Rather than storing the function pointers for
  open(), ioctl(), etc in struct video_device, I just hand the V4L layer a
  struct file_operations.
  
  The advantages of this are:
  
  - The driver more closely resembles its 2.5 counterpart.
  
  - Multiple simultaneous opens will eventually be possible.
  
  - The old interfaces required calling video_unregister_device() from
  close() if the device was unplugged while open, causing a deadlock in
  the V4L layer. Now we just call video_unregister_device()
  unconditionally from disconnect(). (Credit goes to Duncan Haldane for
  tracking that bug down)
  
  This is just a backport of the changes made to the driver in ~2.5.10;
  nothing new here. I've been using this version of the code under 2.4 for
  months and it works well.

 drivers/usb/ov511.c |  127 ++++++++++++++++++----------------------------------
 1 files changed, 44 insertions(+), 83 deletions(-)
------

[email-masked], 2003-01-06 11:02:25-08:00, [email-masked]
  [PATCH] USB scanner driver: updated documentation
  
  This patch updates the documentation for the USB scanner driver. The
  details:
  
  Documentation/usb/scanner.txt:
    - Added information about read_timeout
    - Added more details about /proc/bus/usb/devices
    - Added/updated links
    - Added pointers two "special" scanner drivers
    - Reordering, spell-checking, formatting
    - Used /dev/usb/scanner[0-15] instead of /dev/usbscanner[0-15]
    - Removed some basic USB configuration stuff
    - Added EHCI
    - Removed some more references to HP
  
  Documentation/usb/scanner-hp-sane.txt:
    Removed completely. This was a very outdated text for some HP
    scanners. All of this is explained in the documentation of the
    user-space SANE tools. Links and a short explanation about SANE was
    added to scanner.txt instead.

 Documentation/usb/scanner-hp-sane.txt |   79 --------
 Documentation/usb/scanner.txt         |  328 +++++++++++++---------------------
 2 files changed, 133 insertions(+), 274 deletions(-)
------

[email-masked], 2003-01-06 11:02:15-08:00, [email-masked]
  [PATCH] scanner.c: fix race in ioctl_scanner()
  
  This patch adds locking to ioctl_scanner() which was completely
  lacking until now. The patch is originally from Oliver Neukum
  <[email-masked]>.

 drivers/usb/scanner.c |   95 +++++++++++++++++++++++++-------------------------
 1 files changed, 48 insertions(+), 47 deletions(-)
------

[email-masked], 2003-01-06 10:59:57-08:00, [email-masked]
  [PATCH] USB kaweth bugfix
  
  - correct freeing of skbs

 drivers/usb/kaweth.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
------

[email-masked], 2003-01-06 10:49:31-08:00, [email-masked]
  [PATCH] Petkan's email address change
  
  email address change

 Documentation/Configure.help |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
------

[email-masked], 2003-01-06 10:49:21-08:00, [email-masked]
  [PATCH] USB rtl8150 update
  
  set mac address at dev->open() time;

 drivers/usb/rtl8150.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
------

[email-masked], 2003-01-06 10:49:12-08:00, [email-masked]
  [PATCH] USB pegasus update
  
  set mac address at dev->open() time as per the standard;
  missing flag added to Linksys USB10T;

 drivers/usb/pegasus.c |    5 ++++-
 drivers/usb/pegasus.h |    4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)
------

[email-masked], 2002-12-26 18:54:18-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo fixes from 2.5  5/5
  
  Make usbvideo_register take a usb_device_id argument which it
  can then pass to usb_register via the struct usb_device.
  Currently it passes NULL.

 drivers/usb/ibmcam.c   |   23 +++++++++++++----------
 drivers/usb/ultracam.c |   18 ++++++++----------
 drivers/usb/usbvideo.c |    4 +++-
 drivers/usb/usbvideo.h |    3 ++-
 4 files changed, 26 insertions(+), 22 deletions(-)
------

[email-masked], 2002-12-26 18:54:02-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo fixes from 2.5  4/5
  
  Add setVideoMode callback to VIDIOCSWIN
  Make VIDIOCGWIN return videosize instead of canvas size

 drivers/usb/usbvideo.c |    7 +++++--
 drivers/usb/usbvideo.h |    1 +
 2 files changed, 6 insertions(+), 2 deletions(-)
------

[email-masked], 2002-12-26 18:53:43-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo fixes from 2.5  3/5
  
  Add startDataPump and stopDataPump callbacks to usbvideo.c

 drivers/usb/usbvideo.c |   12 ++++++++----
 drivers/usb/usbvideo.h |    2 ++
 2 files changed, 10 insertions(+), 4 deletions(-)
------

[email-masked], 2002-12-26 18:53:28-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo fixes from 2.5  2/5
  
  This patch fixes the use of USBVIDEO_NUMFRAMES. A few places in the code
  assumed it was 2.

 drivers/usb/usbvideo.c |   49 ++++++++++++++++++++++++++-----------------------
 1 files changed, 26 insertions(+), 23 deletions(-)
------

[email-masked], 2002-12-26 18:53:13-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo fixes from 2.5  1/5
  
  This patch backports some fixes from 2.5 for the RingQueue_*
  functions
  
  Make the buffer length be a power of 2 to speed up index manipulation
  Make RingQueue_Dequeue use memcpy() rather than a byte by byte copy
  Make RingQueue_Enqueue use memcpy() instead of memmove() as the memory
    regions do not overlap
  Add RingQueue_Flush() and RingQueue_GetFreeSpace()
  Make RingQueue_GetLength() an inline

 drivers/usb/usbvideo.c |   80 +++++++++++++++++++++++++++++++------------------
 drivers/usb/usbvideo.h |   22 ++++++++-----
 2 files changed, 66 insertions(+), 36 deletions(-)
------

[email-masked], 2002-12-24 11:56:19-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo cleanups 4/4
  
  This is a backport of some usbvideo cleanups from 2.5:
  
  typedef enum { .. } ScanState_t -> enum ScanState
  typedef enum { .. } ParseState_t -> enum ParseState
  typedef enum { .. } FrameState_t -> enum FrameState
  typedef enum { .. } Deinterlace_t -> enum Deinterlace
  typedef struct { .. } usbvideo_t -> struct usbvideo

 drivers/usb/ibmcam.c   |   14 +++++++-------
 drivers/usb/ultracam.c |    2 +-
 drivers/usb/usbvideo.c |   30 +++++++++++++++---------------
 drivers/usb/usbvideo.h |   36 ++++++++++++++++++------------------
 4 files changed, 41 insertions(+), 41 deletions(-)
------

[email-masked], 2002-12-24 11:56:06-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo cleanups 3/4
  
  This is a backport of some usbvideo cleanups from 2.5:
  
  typedef struct { .. } RingQueue_t -> struct RingQueue
  typedef struct { .. } usbvideo_sbuf_t -> struct usbvideo_sbuf
  typedef struct { .. } usbvideo_frame_t -> struct usbvideo_frame
  typedef struct { .. } usbvideo_statistics_t -> struct usbvideo_statistics
  typedef struct { .. } usbvideo_cb_t -> struct usbvideo_cb

 drivers/usb/ibmcam.c   |   14 ++++-----
 drivers/usb/ultracam.c |    4 +-
 drivers/usb/usbvideo.c |   42 +++++++++++++--------------
 drivers/usb/usbvideo.h |   74 +++++++++++++++++++++++--------------------------
 4 files changed, 66 insertions(+), 68 deletions(-)
------

[email-masked], 2002-12-24 11:55:52-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo cleanups 2/4
  
  This is a backport of some usbvideo cleanups from 2.5:
  
  typedef struct { } uvd_t -> struct uvd

 drivers/usb/ibmcam.c   |   84 ++++++++++++++++++++++++-------------------------
 drivers/usb/ultracam.c |   38 +++++++++++-----------
 drivers/usb/usbvideo.c |   74 +++++++++++++++++++++----------------------
 drivers/usb/usbvideo.h |   58 ++++++++++++++++-----------------
 4 files changed, 127 insertions(+), 127 deletions(-)
------

[email-masked], 2002-12-24 11:55:39-08:00, [email-masked]
  [PATCH] 2.4.20 usbvideo cleanups 1/4
  
  This is a backport of some usbvideo cleanups from 2.5:
  
  Replace static const char proc[] = <function name> with __FUNCTION__

 drivers/usb/usbvideo.c |  195 +++++++++++++++++++++----------------------------
 1 files changed, 86 insertions(+), 109 deletions(-)
------

[email-masked], 2002-12-24 10:23:21-08:00, [email-masked]
  [PATCH] USB ipaq driver update
  
  The ActiveSync USB "protocol" seems to be the same for all WinCE
  devices seen so far. So it seems reasonable to pre-emptively support
  all devices which work with ActiveSync.

 Documentation/Configure.help     |    6 ++--
 Documentation/usb/usb-serial.txt |   34 ++++++++++++++++---------
 drivers/usb/serial/ipaq.c        |   38 +++++++++++++++++++++++++--
 drivers/usb/serial/ipaq.h        |   53 +++++++++++++++++++++++++++++++++++----
 4 files changed, 107 insertions(+), 24 deletions(-)
------

[email-masked], 2002-12-23 16:02:27-08:00, [email-masked]
  [PATCH] USB scanner: stop managing our module reference count, and let the VFS do it.

 drivers/usb/scanner.c |    9 +--------
 1 files changed, 1 insertion(+), 8 deletions(-)
------

[email-masked], 2002-12-23 11:55:53-08:00, [email-masked]
  [PATCH] usb semaphore lock in 2.4.20-rc1 (since 2.4.13)
  
  This fixes an oops if cpia is built into the kernel along with USB.
  cpia (in drivers/media/) inits before USB and causes use of an
  uninitialized semaphore in USB.
  
  Patch is from Duncan Haldane.
  
  Alan OK-ed this patch.

 Makefile |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
------

[email-masked], 2002-12-23 11:49:14-08:00, [email-masked]
  [PATCH] [PATCH 2.4.21-pre1] scanner.c: Use first altsetting in probe_scanner()
  
  Without this patch, the alternate setting with index ifnum was used,
  not the first one.

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

[email-masked], 2002-12-23 11:48:26-08:00, [email-masked]
  [PATCH] scanner.c: Accept scanners with more than one interface
  
  This patch allows the scanner driver to accept devices with more than
  one interface. That's needed by some multi-function periphals (e.g.
  scanner+printer).

 drivers/usb/scanner.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)
------

[email-masked], 2002-12-23 11:48:06-08:00, [email-masked]
  [PATCH] ehci updates
  
  This patch basically brings the 2.4 code up to the level
  of the latest 2.5.52bk4+ patches ... so while not perfect
  (I know of a hub issue) I think it's worth circulating:
  
  - Fixes "it hangs" ... at least for the storage cases
      I could reproduce.
  
  - Longer reset timeout for Intel EHCI ... this bug had
      been lurking since July in the 2.5 series, but was
      only reported (and most of the fix identified!) by a
      user after 2.4.21pre1 came out.
  
  - Better fixes for a problem first seen with VT8235.
      Had to dedicate a QH as list head, never unlinked.
      Oopsable, but NEC hardware seemingly implemented the
      EHCI spec in a way that they didn't require that.
  
  - Significant updates to QTD and URB queuing.  Much
      more robust, fewer hardware races.  Uses "dummy td"
      scheme.  Most USB device drivers in 2.4 won't stress
      that logic as much as usb-storage does in 2.5, but
      the robustness should help all around.
  
  - Diagnostics updates.  Both 2.4 and 2.5 versions
      should emit the same "new style" diagnostics,
      but 2.4 can't use <linux/device.h> to do it.
  
  - DaveM's "remove tasklet" patch.  Bubbled up to the
      "hcd" glue, but completions on 2.4 don't receive
      the 'struct pt_regs *' so it stops there.
  
  - Other less notable fixes and cleanups too.
  
  One way to look at the patch is:  (a) a smallish set
  of "hcd" updates, which can help 2.4 backports of the
  other 2.5 "*hcd" drivers too; (b) the 2.5 ehci-hcd with
  the addition of about 4K of patches to handle things
  like "2.4 needs interrupt automagic".

 drivers/usb/hcd.c            |   34 +-
 drivers/usb/hcd.h            |    7 
 drivers/usb/hcd/ehci-dbg.c   |   90 ++++--
 drivers/usb/hcd/ehci-hcd.c   |  203 ++++++++-------
 drivers/usb/hcd/ehci-hub.c   |   19 -
 drivers/usb/hcd/ehci-mem.c   |   83 +++---
 drivers/usb/hcd/ehci-q.c     |  571 +++++++++++++++++++++----------------------
 drivers/usb/hcd/ehci-sched.c |   28 --
 drivers/usb/hcd/ehci.h       |    9 
 9 files changed, 543 insertions(+), 501 deletions(-)
------

[email-masked], 2002-12-23 11:47:29-08:00, [email-masked]
  [PATCH] Update ov511 to version 1.63. This is a backport of the 2.5 driver,
  
  Notable changes:
  * Make use of usb_make_path()
  * Fix an oops when snapshot mode is enabled
  * Get rid of automagic resubmit
  * OV518 is closer to working
  * Clean up OV6x30 register settings
  * Remove some dead code

 Documentation/usb/ov511.txt |   10 +
 drivers/usb/ov511.c         |  384 ++++++++++++++++++++++++++------------------
 drivers/usb/ov511.h         |   22 --
 3 files changed, 242 insertions(+), 174 deletions(-)
------

[email-masked], 2002-12-19 15:03:38-08:00, [email-masked]
  [PATCH] a new device added and assign proper vendor id to the Netgear adapter

 drivers/usb/pegasus.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)
------

[email-masked], 2002-12-19 14:47:00-08:00, [email-masked]
  [PATCH] scanner.c: Support for devices with only one bulk-in endpoint
  
  This patch (originally from Sergey Vlasov) adds support for scanners
  with only one bulk-in endpoint. It's needed by all the GT-6801 based
  scanners like the Artec Ultima 2000 or some of the Mustek BearPaws.

 drivers/usb/scanner.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)
------

[email-masked], 2002-12-19 14:46:51-08:00, [email-masked]
  [PATCH] scanner.c: silence noisy debug message
  
  The patch changes the noisy "Unable to access minor data" message to a
  dbg.

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

[email-masked], 2002-12-19 14:46:41-08:00, [email-masked]
  [PATCH] scanner.h: add/fix vendor/product ids
  
  This patch adds additional vendor and product ids for Nikon, Mustek,
  Plustek, Genius, Epson, Canon, Umax, Hewlett-Packard, Benq, Agfa,
  and Minolta scanners. The entries for Benq, Genius and Plustek
  scanners have been updated.
  
  I've also increased the version number to 0.4.9 and brought the
  version numbers in scanner.c and scanner.h in sync.

 drivers/usb/scanner.c |   13 ++++++++-
 drivers/usb/scanner.h |   68 ++++++++++++++++++++++++++++++++++----------------
 2 files changed, 59 insertions(+), 22 deletions(-)
------