Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Change log for patch v2.6.7

Summary of changes from v2.6.6 to v2.6.7
============================================

<vojtech@suse.cz>
   input: Chips passing MUX detection incorrectly due to USB Legacy support
          report MUX version 10.12, not 12.10. Fixed.

<vojtech@suse.cz>
   input: Profusion/ServerWorks chipset workaround in i8042.c for Ingo Molnar.

<perex@suse.cz>
   Fixed ALSA aureal driver compilation - wrong and missing PCI IDs

<vojtech@suse.cz>
   input: Fix emulation of mouse reset (0xff) command.

<hch@lst.de>
   [PATCH] kill acient compat cruft from acenic
   
   Kills lots of really old cruft and adds a little cruft to actually
   make the driver work with recent 2.4 again.

<hch@lst.de>
   [PATCH] convert acenic to pci_driver API

<hirofumi@mail.parknet.co.jp>
   [PATCH] 8139too: more useful debug info for tx_timeout
   
   Hi,
   
   I think this patch is useful for looking whether it's the real driver
   bug or other bug.
   
   What do you think of this? If ok, please apply.
   --
   OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
   
   
   
   [PATCH] 8139too: more useful debug info for tx_timeout
   
      /* disable Tx ASAP, if not already */
      tmp8 = RTL_R8 (ChipCmd);
      if (tmp8 & CmdTxEnb)
         RTL_W8 (ChipCmd, CmdRxEnb);
   
   The above will clear the Tx Descs. So, this prints the debugging info
   before rtl8139_tx_timeout() does it. And IntrStatus etc. also prints
   anytime for the debug.

<airlied@pdx.freedesktop.org>
   - Converted Linux drivers to initialize DRM instances based on PCI IDs, not
   just a single instance. The PCI ID lists include a driver private field, which may be used
   by drivers for chip family or other information. Based on work by jonsmirl
   and Eric Anholt. I've left out the PCI device naming for this patch as
   that might be a bit controversial. clean up tdfx to look like everyone else..

<airlied@pdx.freedesktop.org>
   From: Eric Anholt:
   - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them from
   __HAVE_DMA. This will be useful for adding vblank sync support to sis and
   tdfx. Rename dma_service to irq_handler, which is more accurately what it is.
   - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have
   the right number of underscores. This may have been a problem in the case
   that the server died without doing its DRM_IOCTL_CONTROL to uninit

<airlied@pdx.freedesktop.org>
   left gamma_dma.c out of last changeset

<airlied@pdx.freedesktop.org>
   - Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code to get
   the drm_file_t * based on the filp passed in ioctl handlers. 

<airlied@pdx.freedesktop.org>
   From Eric Anholt:
    Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the server
   or client to notify the DRM that it expects a certain version of the device
   dependent or device independent interface. If the major doesn't match or minor
   is too large, EINVAL is returned. A major of -1 means that the requestor
   doesn't care about that portion of the interface. The ioctl returns the actual
   versions in the same struct. 

<airlied@pdx.freedesktop.org>
   From: Michel Daenzer:
   Memory layout transition:
   
   * the 2D driver initializes MC_FB_LOCATION and related registers sanely
   * the DRM deduces the layout from these registers
   * clients use the new SETPARAM ioctl to tell the DRM where they think the
   framebuffer is located in the card's address space
   * the DRM uses all this information to check client state and fix it up if
   necessary
   
   This is a prerequisite for things like direct rendering with IGP chips and
   video capturing.

<airlied@pdx.freedesktop.org>
   From Eric Anholt: some cleanups from AlanH:
   - Tie the DRM to a specific device: setunique no longer succeeds when given
   a busid that doesn't correspond to the device the DRM is attached to. This
   is a breaking of backwards-compatibility only for the multiple-DRI-head case
   with X Servers that don't use interface 1.1.
   - Move irq_busid to drm_irq.h and make it only return the IRQ for the current
   device. Retains compatibility with previous X Servers, cleans up unnecessary
   code. This means no irq_busid on !__HAVE_IRQ, but can be changed if
   necessary.
   - Bump interface version to 1.2. This version when set signifies that the
   control ioctl should ignore the irq number passed in and enable the
   interrupt handler for the attached device. Otherwise it errors out when
   the passed-in irq is not equal to the device's.
   - Store the highest version the interface has been set to in the device. 

<airlied@pdx.freedesktop.org>
   From Eric Anholt:
   Return EBUSY when attempting to addmap a DRM_SHM area with a lock in it if
   dev->lock.hw_lock is already set. This fixes the case of two X Servers running
   on the same head on different VTs with interface 1.1, by making the 2nd head
   fail to inizialize like before.

<airlied@pdx.freedesktop.org>
   From Eric Anholt + Jon Smirl:
   Don't ioremap the framebuffer area. The ioremapped area wasn't used by
   anything.

<airlied@pdx.freedesktop.org>
   From Michel Daenzer:
   Adapt to nopage() prototype change in Linux 2.6.1.
   
   Reviewed by: Arjan van de Ven <arjanv@redhat.com>, additional feedback
   from William Lee Irwin III and Linus Torvalds.

<airlied@pdx.freedesktop.org>
   More differentiated error codes for DRM(agp_acquire)

<airlied@pdx.freedesktop.org>
   drm_ctx_dtor.patch
   Submitted by: Erdi Chen

<airlied@pdx.freedesktop.org>
   Miscellaneous changes from DRM CVS

<airlied@pdx.freedesktop.org>
   radeon_drm.h:
     missing define from previous checkin

<airlied@pdx.freedesktop.org>
   * Introduce COMMIT_RING() as in radeon DRM, stop using error prone
     writeback for ring read pointer (Paul Mackerras)
   * Get rid of some superfluous stuff, minor fixes

<airlied@pdx.freedesktop.org>
   From Jon Smirl:
   This code allows the mesa drivers to use a single definition of the DRM sarea/IOCTLS 

<davej@redhat.com>
   [AGPGART] If ati_create_gatt_pages() fails, don't propagate an address we've freed.

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #0: replace dev->base_addr with ioaddr

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #1: replace magic constants with enums

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #2: add 'static'; fix wrapped comment

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #3: fix pointer substraction bug

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #4: stop doing stop_nic_rx/writel(np->crvalue) in reset_rx_descriptors
   
   this can inadvertently (re)enable tx and/or rx.

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #5: introduce stop_nic_rxtx(), use it where makes sense

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #6: Francois' fixes for low memory handling; remove free_one_rx_descriptor (not used anymore)

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #7: Garzik fix (IIRC): add locking to tx_timeout

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #8: rework error handling
   
   Add reset timer, fire it 1/2 sec after 'Too much work in interrupt'
   Move reset code from tx_timeout into two separate routines:
   reset_and_disable_rxtx() and enable_rxtx()
   New function reset_tx_descriptors(): clean up tx ring
   after tx_timeout. tx_timeout now does:
       reset_and_disable_rxtx()
       reset_tx_descriptors()
       enable_rxtx()
       netif_wake_queue()
   Absense of netif_wake_queue() call was probably the cause of
   tx_timeout() stalling all future tx.
   Remove stop_nic_tx(), not used anymore

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #9: fix locking for set_rx_mode

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #10: replace local delay functions with udelay

<vda@port.imtp.ilyichevsk.odessa.ua>
   [PATCH] fealnx #11: cleanup and coding style

<brazilnut@us.ibm.com>
   [PATCH] pcnet32 add register dump capability
   
   At the next opportunity to add new code to 2.6.6, please apply the following
   patch to include the capability to dump chip registers.  Ethtool -d support.

<brazilnut@us.ibm.com>
   [PATCH] pcnet32 timer to free tx skbs for 79C971/972
   
   At the next opportunity to add new code to 2.6.6, please apply the following:
   
   This patch uses an on-chip timer to free completed transmit skb's for the
   79C971 and 972 versions which currently will leave completed transmit
   skb's on the transmit ring until new transmit traffic occurs.

<airlied@pdx.freedesktop.org>
   define an empty driver pci ids for ffb driver

<pavel@ucw.cz>
   [PATCH] Cleanups for b44
   
   Hi!
   
   During some unrelated work I was confused by b44_init_hw. Its return
   is checked in _open() but nowhere else. I started adding missing
   checks, but then I found why its so: it only ever returns 0.
   
   So this turns it into void. Killed #if 0-ed piece of code and fixed
   indentation at one point. Please apply,
                           Pavel

<jgarzik@redhat.com>
   [libata sata_sis] add new PCI id
   
   Also remove constant from linux/pci_ids.h.

<jgarzik@redhat.com>
   [libata] Promise driver split part 1: clone to sx4
   
   Clone sata_promise to sata_sx4.

<jgarzik@redhat.com>
   [libata] Promise driver split part 2: remove SX4 code from sata_promise

<jgarzik@redhat.com>
   [libata] Promise driver split part 3: remove TX2/4 code from sata_sx4

<jgarzik@redhat.com>
   [libata] Promise driver split part 4: common header

<airlied@pdx.freedesktop.org>
   convert DRM to use pci device structures on Linux, move pci ids
   into a separate include file (this is auto-generated from the DRM
   tree)

<airlied@pdx.freedesktop.org>
   drmP.h:
     remove unused structure

<davej@redhat.com>
   [CPUFREQ] powernow-k8 cpuid changes.
   cpuid changes to support new processors that will be coming out in the
   future. Also works around a processor that we have released to the field
   that can have an erroneous cpuid value.
   
   From paul.devriendt@amd.com

<davej@redhat.com>
   [CPUFREQ] powernow-k8 ignore invalid p-states.
   From paul.devriendt@amd.com

<davej@redhat.com>
   [CPUFREQ] powernow-k8: prevent BIOSs offering a vid of 0x1f, which means off.
   From paul.devriendt@amd.com

<dtor_core@ameritech.net>
   Input: synaptics driver cleanup
          - pack all button data in 2 bytes instead of 48
          - adjust the way we extract button data
          - query extended capabilities if SYN_EXT_CAP_REQUESTS >= 1
            (was == 1) according to Synaptics' addendum to the interfacing
            guide
          - do not announce or report BTN_BACK/BTN_FORWARD unless touchpad
            has SYN_CAP_FOUR_BUTTON in its capability flags

<dtor_core@ameritech.net>
   Input: support Synaptics touchpads that have separate middle button

<dtor_core@ameritech.net>
   Input: pass maximum allowed protocol to psmouse_extensions instead of
          accessing psmouse_max_proto directly allowing to avoid changing
          the global parameter when synaptics initialization fails

<dtor_core@ameritech.net>
   Input: Change spurious ACK warning in atkbd to soften accusation
          against XFree86

<dtor_core@ameritech.net>
   Input: fix trailing whitespace in atkbd

<dtor_core@ameritech.net>
   Input: remove unneeded fields in atkbd structure, convert to bitfields

<dtor_core@ameritech.net>
   Input: Do not generate events from atkbd until keyboard is completely
          initialized. It should suppress messages about suprious NAKs
          when controller's timeout is longer than one in atkbd

<dtor_core@ameritech.net>
   Input: when getting a new device announce (0xAA 0x00) in psmouse
          try reconnecting instead of rescanning to preserve (if possible)
          the same input device.

<dtor_core@ameritech.net>
   Input: move "reconnect after so many errors" handling from synaptics driver
          to psmouse so it can be used by other PS/2 protcol drivers (but so far
          only synaptics knows how to validate incoming data)

<dtor_core@ameritech.net>
   Input: add protocol_handler to psmouse structure to ease adding
          new protocols to psmouse module

<dtor_core@ameritech.net>
   Input: add psmouse_sliced_command (passes extended commands encoded
          with 0xE8 to the mouse) and use it in Synaptics and Logitech
          drivers

<dtor_core@ameritech.net>
   Input: do not modify device's properties when probing for protocol
          extensions on reconnect as it may interfere with reconnect
          process

<dtor_core@ameritech.net>
   Input: allow disabling legacy psaux device even for non-embedded systems

<dtor_core@ameritech.net>
   Input: serio trailing whitespace fixes

<dtor_core@ameritech.net>
   Input: make serio open and close methods optional

<dtor_core@ameritech.net>
   Input: trailing whitespace fixes

<dtor_core@ameritech.net>
   Input: - move set_abs_params from synaptics driver to input and
            rename to input_set_abs_params
          - convert input_report_* macros into inline functions
          - make use of set_abs_params in touchscreen drivers

<david-b@pacbell.net>
   [PATCH] USB: fix usbfs iso interval problem
   
   In 2.6, ISO transfers on USB require a value for urb->interval ... which
   usbfs didn't provide (until this patch), or let user mode drivers specify.
   
   This patch initializes the urb->interval from the endpoint's descriptor,
   so ISO transfers should now work from userspace.  It also fixes a related
   problem for interrupt transfers.

<david-b@pacbell.net>
   [PATCH] USB: root hubs can report remote wakeup feature
   
   The patch lets HCDs report the root hub remote wakeup feature to usbcore
   through config descriptors, and lets usbcore say whether or not remote
   wakeup (of host from sleep, by devices) should be enabled.
   
   Both OHCI and UHCI HCDs have some remote wakeup support already; I'm not
   too sure how well it works.  Given (separate) patches, their root hubs
   can start to act more like other hubs in this area too.  That'll make
   it easier to start using USB suspend mode.

<stern@rowland.harvard.edu>
   [PATCH] USB: Remove unusual_devs entries for Minolta DiMAGE 7, 7Hi
   
   It looks safe to conclude that the unusual_devs.h entries for the Minolta
   DiMAGE 7x cameras aren't needed.  (Michael has tested the 7Hi and it's
   definitely unnecessary.)  The two other DiMAGE entries probably aren't
   needed either, but we don't have any evidence of that so I'm leaving them.

<stern@rowland.harvard.edu>
   [PATCH] USB: unusual_devs.h update
   
   On Tue, 20 Apr 2004, Damian Ivereigh wrote:
   
   > Here is the output of dmesg when plugging in an IBM USB MemKey
   >
   > usb-storage: This device (0a16,8888,0100 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h
   >    Please send a copy of this message to <linux-usb-devel@lists.sourceforge.net>
   
   Thank you for sending this in.  Greg and Pete, here's the patch.

<stern@rowland.harvard.edu>
   [PATCH] USB: Implement endpoint_disable() for UHCI
   
   This patch implements the endpoint_disable method for the UHCI driver, as
   you requested a while back.  It guarantees that during unbinding events
   (disconnect, configuration change, rmmod) the UHCI driver will have
   finished using every URB for the interface being unbound.  It doesn't
   quite guarantee that the completion handlers will have finished running,
   but it would take a pretty unlikely race to violate that assumption.  (I
   think it's the same with the OHCI and EHCI drivers.)
   
   Despite the patch numbering this one applies _after_ as249, which is a
   more important bugfix.

<stern@rowland.harvard.edu>
   [PATCH] USB: Eliminate dead code from the UHCI driver
   
   I'm not sure what this piece of code is doing in the UHCI driver.  It
   looks like someone envisioned queuing several URBs for the same endpoint
   simultaneously.  Anyway, the driver can't do that and this code can never
   run.

<greg@kroah.com>
   [PATCH] USB: fix devio compiler warnings created by previous patch.

<david-b@pacbell.net>
   [PATCH] USB: usbtest, smp unlink modes
   
   Handle some SMP-visible unlink states better.

<david-b@pacbell.net>
   [PATCH] USB: re-factor enumeration logic
   
   This is an update to some patches from the December/January
   timeframe, which will help sort out some of the mess for
   drivers that need to use the reset logic.  It's one of the
   last significant patches in my gadget-2.6 tree that haven't
   yet been merged into the main kernel tree.
   
   
   More refactoring of the enumeration code paths:
   
    * The first half of usb_new_device() becomes the second half of a new
      hub_port_init() routine (resets, sets address, gets descriptor)
   
    * The middle chunk of hub_port_connect_change() becomes the first half
      of that new hub_port_init() routine.
   
    * Khubd uses that new routine in hub_port_connect_change().
   
    * Now usb_new_device() cleans up better after faults, and has
      a more useful locking policy (caller owns dev->serialize).
   
    * Has related minor cleanups including commenting some of
      the curious request sequences coming from khubd.
   
   Refactoring means a lot of the current usb_reset_device() logic won't
   need to stay an imperfect clone of the enumeration code ... soon, it
   can just call hub_port_init().
   
   Even without touching usb_reset_device(), this eliminates a deadlock.
   Previously, address0_sem was used both during probe and during reset,
   so probe routines can't implement DFU firmware download (involves a
   reset; DFU also uncovers other problems) or safely recover from probe
   faults by resetting (usb-storage can try that).  Now that lock is no
   longer held during probe(); so those deadlocks are gone.  (And some
   drivers, like at76c503, can start to remove ugly workarounds.)

<david-b@pacbell.net>
   [PATCH] USB: khubd fixes
   
   This goes on top of the other enumeration patch I just sent,
   to handle some dubious and/or broken hub configurations better.
   
   
   Make khubd handle some cases better:
   
    - Track power budget for bus-powered hubs.  This version only warns
      when the budgets are exceeded.  Eventually, the budgets should help
      prevent such errors.
   
    - Rejects illegal USB setup:  two consecutive bus powered hubs
      would exceed the voltage drop budget, causing much flakiness.
   
    - For hosts with high speed hubs, warn when devices are hooked up
      to full speed hubs if they'd be faster on a high speed one.
   
    - For hubs that don't do power switching, don't try to use it
   
    - For hubs that aren't self-powered, don't report local power status

<baldrick@free.fr>
   [PATCH] USB usbfs: take a reference to the usb device
   
   Hi Greg, this is the first of a series of patches that replace the
   per-file semaphore ps->devsem with the per-device semaphore
   ps->dev->serialize.  The role of devsem was to protect against
   device disconnection.  This can be done equally well using
   ps->dev->serialize.  On the other hand, ps->dev->serialize
   protects against configuration and other changes, and has
   already been introduced into usbfs in several places.  Using
   just one semaphore simplifies the code and removes some
   remaining race conditions.  It should also fix the oopses some
   people have been seeing.  In this first patch, a reference is
   taken to the usb device as long as the usbfs file is open.  That
   way we can use ps->dev->serialize for as long as ps exists.
   
    devio.c |   27 ++++++++++++++++-----------
    inode.c |    3 ---
    2 files changed, 16 insertions(+), 14 deletions(-)

<baldrick@free.fr>
   [PATCH] USB usbfs: replace the per-file semaphore with the per-device semaphore
   
    devio.c      |   43 +++++++++++++++++++++++--------------------
    usbdevice_fs.h   |    1 -
    2 files changed, 23 insertions(+), 21 deletions(-)

<baldrick@free.fr>
   [PATCH] USB usbfs: remove obsolete comment from proc_resetdevice
   
    devio.c |    3 ---
    1 files changed, 3 deletions(-)

<baldrick@free.fr>
   [PATCH] USB usbfs: fix up proc_setconfig
   
   The semaphore is now taken in the caller.
   
    devio.c |    2 --
    1 files changed, 2 deletions(-)

<baldrick@free.fr>
   [PATCH] USB usbfs: fix up proc_ioctl
   
   The semaphore is now taken in the caller.
   
    devio.c |    2 --
    1 files changed, 2 deletions(-)

<baldrick@free.fr>
   [PATCH] USB usbfs: fix up releaseintf
   
   The semaphore is now taken in the callers.
   
    devio.c |    2 --
    1 files changed, 2 deletions(-)

<baldrick@free.fr>
   [PATCH] USB usbfs: destroy submitted urbs only on the disconnected interface
   
   The remaining three patches contain miscellaneous fixes to usbfs.
   This one fixes up the disconnect callback to only shoot down urbs
   on the disconnected interface, and not on all interfaces.  It also adds
   a sanity check (this check is pointless because the interface could
   never have been claimed in the first place if it failed, but I feel better
   having it there).
   
    devio.c |    6 ++++--
    1 files changed, 4 insertions(+), 2 deletions(-)

<baldrick@free.fr>
   [PATCH] USB usbfs: missing lock in proc_getdriver
   
   Hi Oliver,
   
   > I expect it to rarely matter, but it might matter now and then. It's
   > just a question of hygiene. If you are using a temporary buffer I'd
   > like to see it used to full advantage. So either drop the lock or do
   > a direct copy. I'd prefer the first option your patch implemented.
   
   I agree.  Greg, please consider applying the updated patch:
   
   
   
   Protect against driver binding changes while reading the driver name.

<baldrick@free.fr>
   [PATCH] USB usbfs: drop pointless racy check
   
   The check of interface->dev.driver requires a lock to be taken
   to protect against driver binding changes.  But in fact I think it
   is better just to drop the test.  The result is that the caller is
   required to claim an interface before changing the altsetting,
   which is consistent with the other routines that operate on
   interfaces.
   
    devio.c |    6 ++----
    1 files changed, 2 insertions(+), 4 deletions(-)

<stern@rowland.harvard.edu>
   [PATCH] USB: Ignore URB_NO_INTERRUPT flag in UHCI
   
   Following a suggestion of David Brownell's I have decided to remove
   support for the URB_NO_INTERRUPT flag in the UHCI driver.  The overall
   effect of the flag is to reduce the number of interrupts, thereby
   improving throughput somewhat while increasing the duration of the
   remaining IRQ handlers quite a lot (i.e., increasing interrupt variance).
   So I think we're better off without it.  Mind you, this is all in the
   absence of any firm measurements.
   
   A common case where this will come up is during usb-storage bulk
   transfers.  Such transfers are generally divided into scatter-gather
   components each corresponding to a single URB and transferring one memory
   page (4 KB).  While generating an interrupt for each one is a little
   faster than ideal -- about every 3 ms -- it's better than waiting until 64
   KB has been transferred and there are 1024 individual TDs to clean up
   during the IRQ.

<stern@rowland.harvard.edu>
   [PATCH] USB: Cosmetic improvements for the UHCI driver
   
   This patch makes a few minor improvements to the appearance of the UHCI
   driver.  Please apply.

<stern@rowland.harvard.edu>
   [PATCH] USB: Altsetting updates for USB media drivers
   
   This patch implements the new altsetting regime for the drivers under
   usb/media.  Not much needed to be changed.  I'm unable to test any of the
   changes, but at least they compile all right (except that I didn't even
   try to compile the pwc driver since it's marked BROKEN).
   
   The stv680 and w9968cf drivers still include an assumption that they are
   bound to interface number 0.  Since that the drivers are fairly tightly
   linked to a specific kind of device I didn't try to change those
   assumptions, but maybe they should be changed.

<stern@rowland.harvard.edu>
   [PATCH] USB: Altsetting update for USB misc drivers
   
   This is the altsetting update for the drivers under usb/misc.  As you can,
   not much was needed at all.

<stern@rowland.harvard.edu>
   [PATCH] USB: Altsetting update for USB net drivers
   
   The only driver under usb/net that needed any altsetting changes was
   usbnet.  I'm not looking forward to going through all the source files
   under usb/serial. :-(

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   CS4281 driver
   Added retry_count

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   PCMCIA Kconfig
   SND_PDAUDIOCF depends on SND_PCM

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   ALSA Version
   release: 1.0.4

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   VIA82xx driver
   added dxs_support and ac97_quirk entries for Amira notebook.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   ATIIXP driver
   - fixed SPDIF support.
     restricted only 48k sample rate.
   - fixed the address assignment for bigendian (not existing, though)

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   AC97 Codec Core
   - fixed the possibl ac97 register cache mismatch.
   - added the detection of spdif sample rates.

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   AC97 Codec Core
   fix access to wrong register when clearing powerdown bits

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   Intel8x0 driver
   20-bit sample format support

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   USB generic driver
   remove superfluous address operator from literal arrays

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   USB generic driver
   allow specification of rate_table in AUDIO_FIXED_ENDPOINT quirks

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   Timer Midlevel,ALSA Core
   Added early event flag and code to the timer interface.

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   AC97 Codec Core
   show AC'97 2.3 information in proc file

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   AC97 Codec Core
   fix AC'97 revision bits on AD1985

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Documentation,SA11xx UDA1341 driver,Memalloc module,PCM Midlevel
   RawMidi Midlevel,RTC timer driver,ALSA Core,Timer Midlevel
   ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer,Generic drivers
   MPU401 UART,OPL3,OPL4,ALS100 driver,AZT2320 driver,CMI8330 driver
   DT019x driver,ES18xx driver,OPL3SA2 driver,Sound Galaxy driver
   Sound Scape driver,AD1816A driver,AD1848 driver,CS4231 driver
   CS4236+ driver,PC98(CS423x) driver,ES1688 driver,GUS Classic driver
   GUS Extreme driver,GUS MAX driver,AMD InterWave driver,Opti9xx drivers
   EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver
   Wavefront drivers,PARISC Harmony driver,ALS4000 driver,ATIIXP driver
   AZT3328 driver,BT87x driver,CMIPCI driver,CS4281 driver
   ENS1370/1+ driver,ES1938 driver,ES1968 driver,FM801 driver
   Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver,RME32 driver
   RME96 driver,SonicVibes driver,VIA82xx driver,AC97 Codec Core
   ALI5451 driver,au88x0 driver,CS46xx driver,EMU10K1/EMU10K2 driver
   ICE1712 driver,ICE1724 driver,KORG1212 driver,MIXART driver
   NM256 driver,RME HDSP driver,RME9652 driver,Trident driver
   Digigram VX222 driver,YMFPCI driver,Sound Core PDAudioCF driver
   Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
   SPARC cs4231 driver,USB generic driver
   use the new module_param*() functions.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Documentation,Control Midlevel,ALSA Core,AD1848 driver,CS4231 driver
   CS46xx driver,Trident driver,YMFPCI driver,ES18xx driver,OPL3SA2 driver
   ATIIXP driver,CS4281 driver,ES1968 driver,Intel8x0 driver
   Intel8x0-modem driver,Maestro3 driver,ALI5451 driver,NM256 driver
   Sound Core PDAudioCF driver
   Clean up of power-management codes.
   
   - moved commonly used codes to the core layer.
   - using the unified suspend/resume callbacks for PCI and ISA
   - added snd_card_set_pm_callbacks() and snd_card_set_isa_pm_callbacks()
     as the registration functions.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   ALI5451 driver
   Clean up of power-management codes.
   
   - moved commonly used codes to the core layer.
   - using the unified suspend/resume callbacks for PCI and ISA
   - added snd_card_set_pm_callbacks() and snd_card_set_isa_pm_callbacks()
     as the registration functions.

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   Trident driver,CS4231 driver,PARISC Harmony driver
   Remove all old SNDRV_DMA_TYPE_PCI references

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   ALSA sequencer
   load snd-seq-dummy automatically, as documented in seq_dummy.c

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   USB generic driver
   use wrapper function for usb_control_msg()
   to prevent DMA'ing from/to the stack

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Documentation,ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver
   CMIPCI driver,CS4281 driver,ENS1370/1+ driver,ES1938 driver
   ES1968 driver,FM801 driver,Intel8x0 driver,Intel8x0-modem driver
   Maestro3 driver,RME32 driver,RME96 driver,SonicVibes driver
   VIA82xx driver,ALI5451 driver,au88x0 driver,CS46xx driver
   EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
   MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
   Trident driver,Digigram VX222 driver,YMFPCI driver
   - removed superfluous warning messages after pci_module_init().
     (2.6 kernel doesn't return the error anyway...)
   - store card pointer in pci_drvdata instead of chip pointer.
     this would make easier to add PM support.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   PCI drivers,au88x0 driver
   bugfixes and VIA/AMD chipset automatic workaround by Manuel Jander <manuel.jander@mat.utfsm.cl>

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   ICE1712 driver
   added Event Electronics EZ8 support by Doug McLain <nostar@comcast.net>

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Intel8x0 driver
   fixed MX440 workaround in suspend/resume.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Memalloc module
   fixed the allocation of coherent DMA pages under 32bit mask.

<perex@suse.cz>
   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
   USB generic driver
   Edirol UA-700 advanced modes support

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Intel8x0 driver,Intel8x0-modem driver
   - probe only audio (intel8x0) or modem (intel8x0m) codecs.
   - call snd_ac97_suspend() in the suspend callback.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   AC97 Codec Core
   - export snd_ac97_suspend().
   - mute MASTER and HEADPHONE volumes in suspend to avoid possible clicks.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   CS4281 driver,ES1968 driver,Maestro3 driver,ALI5451 driver
   CS46xx driver,NM256 driver,Trident driver,YMFPCI driver
   - call snd_ac97_suspend() in the suspend callback.
   - suspend/resume secondary codecs, too.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   PCM Midlevel
   fixed the deadlock of power_lock in suspend (by Terry Loftin)

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   PPC PMAC driver
   fixed the suspend/resume with the new ALSA common callbacks.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Memalloc module
   removed the obsolete hack for dev_alloc_coherent() with dev = 0.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   PPC PMAC driver
   another fix for the new suspend/resume.

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   ICE1712 driver
   <Dirk.Kalis@t-online.de>
   added a control for default rate in the ice1712 driver

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   PPC PMAC driver
   fixed the missing function declarations.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   ATIIXP driver
   - added the PCI id entry for SB300.
   - added the missing terminator to the PCI id list.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   AC97 Codec Core
   - fixed the center/mic share switch on ALC65x.
   - created AC97_SINGLE_VALUME() macro.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Control Midlevel
   - fixed the compilation without CONFIG_PM.
   - fixed the return value of POWER ioctl.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   AC97 Codec Core
   added the mic/center sharing switch of cm9739 codec again.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   Documentation,AC97 Codec Core
   added the write support to ac97#x-x+regs proc file.
   
   this is for debugging purpose, and enabled only when CONFIG_SND_DEBUG is set.
   it allows the user to modify AC97 register bits without compiling the sources.

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   AC97 Codec Core
   Fixed AD18xx PCM bit handling

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   Opti9xx drivers
   Fixed irq&dma initialization for <93x chips

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   Intel8x0 driver
   From: Giridhar Pemmasani <giri@lmc.cs.sunysb.edu>
   
   It seems that pci config space is messed up after resume for Intel ICH4
   audio controller (on Dell Latitude D600, but I notice that others also
   complain about this problem).  Consequently resume from S3 causes oops with
   snd_intel8x0 module.  If the module is removed before suspend and loaded
   afterwards, I still get oops.  The following simple patch fixes the
   problem.  With this, I can leave alsa untouched during suspend/resume.

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   AC97 Codec Core
   patch_sigmatel_stac9758
     - initialize with default values from datasheet
     - apply old initialization only for Gateway M675 notebook

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   AC97 Codec Core
   ac97->pci might be null

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   PPC Keywest driver,PPC PMAC driver,PPC PowerMac driver
   PPC Tumbler driver
   fixed the oops on resume and the initialization of chip.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   AC97 Codec Core
   fixed the compilation without CONFIG_SND_DEBUG.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   PCI drivers,ATIIXP driver
   - added IXP 300 to descriptions and comments.
   - fixed the codec probing without the proper interrupts.
   - added the experimental PM support.

<perex@suse.cz>
   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
   VIA82xx driver
   - added the experimental PM support.

<perex@suse.cz>
   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
   OPL3SA2 driver
   Added YMH0801 ISA PnP ID - OPL3-SA2

<jgarzik@redhat.com>
   [libata] add ata_tf_{to,from}_fis helpers

<jgarzik@redhat.com>
   [libata] clean up taskfile submission to hardware
   
   When writing taskfile (an ATA command) to the controller, the exact
   setup of the taskfile is dependent on the taskfile "protocol":
   PIO, PIO Multiple, DMA, Non-data, etc.
   
   So, we separate out the submission of the taskfile to hardware into
   a separate function ata_qc_issue_prot(), which will later be the
   home for more code.
   
   Also, remove some dead code (#if 0'd).

<jeremy@sgi.com>
   [PATCH] sata_vsc initialization fix

<airlied@pdx.freedesktop.org>
   drm_irq.h:
     remove NO_VERSION

<jejb@mulgrave.(none)>
   MPT Fusion add back FC909 support
   
   From: "Moore, Eric Dean" <Emoore@lsil.com>

<aris@cathedrallabs.org>
   [PATCH] qlogicfas: kill horrible irq probing
   
      this patch kills irq probe and also I/O because isn't useful to
      probe I/O if we can't probe irq later.

<aris@cathedrallabs.org>
   [PATCH] qlogicfas: split and create a new module

<aris@cathedrallabs.org>
   [PATCH] qlogic_cs: use qlogicfas408 module
   
   this patch kills qlogic_core.c and I guess the same idea can be
   applied to other pcmcia scsi drivers. comments?

<praka@users.sourceforge.net>
   [PATCH] qla2xxx set current state fixes
   
   - always set_current_state(TASK_UNINTERRUBTIBLE) unless we explicitly
     check for signals.
   
   - make all timeouts take HZ based values.

<Kai.Makisara@kolumbus.fi>
   [PATCH] SCSI tape log message fixes
   
   This patch changes the st console/log messages:
   
   - __GFP_NOWARN added to buffer allocation to suppress useless messages
     when having to use smaller than default segments
   - move log message from enlarge_buffer() to caller so that the tape name
     can be printed and remove some debugging messages; now the st messages
     should include drive name where applicable (a problem reported by
     Hironobu Ishii)
   - setting options is logged only when debugging; the most important
     options are now seen in sysfs

<akpm@osdl.org>
   [PATCH] aic7xxx: fix oops whe hardware is not present
   
   From: Herbert Xu <herbert@gondor.apana.org.au>
   
   This is because aic7xxx does not unregister itself properly if no devices
   are found.  This patch fixes the problem.

<jejb@mulgrave.(none)>
   aic7xxx: compile fix for EISA only case
   
   We can't refer to PCI functions for a pure
   EISA machine.

<chrisw@osdl.org>
   [PATCH] Update aacraid MAINTAINERS entry

<garloff@suse.de>
   [PATCH] scsi: don't attach device if PQ indicates not connected

<aradford@amcc.com>
   [PATCH] 3ware driver update
   
   This patch includes the following driver changes:
   
      1.26.00.038 - Roll driver minor version to 26 to denote kernel 2.6.
                    Add support for cmds_per_lun module parameter.
      1.26.00.039 - Fix bug in tw_chrdev_ioctl() polling code.
                    Fix data_buffer_length usage in tw_chrdev_ioctl().
                    Update contact information.

<jgarzik@redhat.com>
   [libata] move ATAPI startup from katad thread to workqueue thread
   
   libata creates one thread per ata_port structure.  This is inadequate
   for our needs, and also cumbersome to maintain, now that workqueues
   and Rusty's thread work is available.
   
   This patch begins to move libata away from doing its own per-port
   thread, by moving the ATAPI command initiation code to work under
   the workqueue system.
   
   This patch also creates a private workqueue, global to all of libata.

<jgarzik@redhat.com>
   [libata] move PIO data xfer from katad thread to workqueue thread

<jgarzik@redhat.com>
   [libata] move probe execution from katad thread to workqueue thread
   
   This allows us to kill the katad thread itself, and several
   thread-related variables in struct ata_port.

<andmike@us.ibm.com>
   [PATCH] fix module unload problem in sd
   
   Move scsi_device_get out of sd probe path to allow module to be unloaded
   when devices are not open.

<jgarzik@redhat.com>
   [libata] move ATAPI command initiation code from libata-scsi to libata-core

<jgarzik@redhat.com>
   [libata] make ata_wq workqueue local to libata-core module
   
   Now that libata-scsi module no longer calls queue_work() directly,
   we can localize the use of ata_wq.

<jgarzik@redhat.com>
   [libata] internal cleanup: kill ata_pio_start
   
   Integrate it into its caller.

<jgarzik@redhat.com>
   [libata] some work on the ATAPI path
   
   Remove a lot of redundant code in ATAPI packet submission.
   
   ATAPI is still disabled, it doesn't work yet.

<jgarzik@redhat.com>
   [libata] work queueing cleanups and fixes
   
   Make sure to initialize PIO data xfer state.
   
   Use queue_delayed_work() rather than manually calling schedule_timeout(),
   then queue_work(), ourselves.

<jgarzik@redhat.com>
   [libata] increase max-sectors limit for modern drives
   
   This is the much-discussed "speed up SATA" patch.  It limits requests
   to 1MB as discussed, rather than the hardware maximum (32MB).
   
   As soon as Jens Axboe's patch to dynamically determining request
   size is merged, max_sectors becomes what it properly should be --
   a description of the absolute hardware maximum.

<jgarzik@redhat.com>
   [libata] replace per-command semaphore with optional completion
   
   The semaphore was initialized and up'd for each command, but nobody
   was listening.  Replace this with a completion, which may or may not
   be present.

<jgarzik@redhat.com>
   [libata promise] make sure our schedule_timeout(N) are never with N==0
   
   Make sure we delay for a minimum desired length of time.

<airlied@pdx.freedesktop.org>
   drm_pciids.h:
     add new tdfx id, and blank ffb ids

<akpm@osdl.org>
   [PATCH] scsi_disk_release() warning fix
   
   drivers/scsi/sd.c: In function `scsi_disk_release':
   drivers/scsi/sd.c:1477: warning: unused variable `sdev'

<jgarzik@redhat.com>
   [libata] remove unused struct ata_engine

<akpm@osdl.org>
   [PATCH] sata_sx4.c warning fix
   
   drivers/scsi/sata_sx4.c: In function `pdc20621_put_to_dimm':
   drivers/scsi/sata_sx4.c:928: warning: comparison is always true due to limited range of data type
   
   The code is doing, effectively:
   
      if ((long)(expr returning u32)) >= 0
   
   but on 64-bit architectures, that will always be true.
   
   So cast the u32 result to s32 before promoting to long so that bit 31
   correctly propagates into bits 32-63.

<tejohnson@yahoo.com>
   [PATCH] USB: mtouchusb update for 2.6.6-rc2
   
   The attached patch for the 3M Touch Systems Capacitive controller.
   
   Quick list of changes:
   
           *    Changed reset from standard USB dev reset to vendor reset
           *    Changed data sent to host from compensated to raw coordinates
           *    Eliminated vendor/product module params
           *    Performed multiple successfull tests with an EXII-5010UC
   
   The changes are primarily due to comments from Vojtech Pavlik, as well
   as making the newer EXII-50XXUC controllers work.
   
   Thanks to 3M Touch Systems for sending me some new controllers to test with!
   
   An updated HOWTO is also available at:
   
   
   http://groomlakelabs.com/grandamp/code/microtouch/Linux-Input-USB-Touchscreen-HowTo.txt

<bellucda@tiscali.it>
   [PATCH] USB: audits in usb_init()
   
   there were some missing audits in usb_init()

<baldrick@free.fr>
   [PATCH] USB: be assertive in usbfs
   
   Be assertive.

<stern@rowland.harvard.edu>
   [PATCH] USB: Altsetting updates for usb/serial
   
   The updates needed for proper altsetting handling among the USB serial
   drivers turned out to be a lot easier than I expected, thanks to the
   organization of the drivers.  Only a handful of changes were needed.

<mdharm-usb@one-eyed-alien.net>
   [PATCH] USB: usb-storage driver changes for 2.6.x [1/4]
   
   Patch as239b from Alan Stern:  This patch improves the interaction between
   a SCSI reset, an internally generated reset, and an abort.  This improves
   our error-recovery in cases where the device is hung (or almost hung) while
   we're trying to auto-reset.

<mdharm-usb@one-eyed-alien.net>
   [PATCH] USB: usb-storage driver changes for 2.6.x [2/4]
   
   This is patch as248b from Alan Stern, modified by myself:  This adds a flag
   which allows us to supress the "unneeded unusual_devs.h entry" message.
   This is useful for times when idiotic device manufacturers break the rules
   and release two different devices with the same VID, PID, and revision
   number.

<mdharm-usb@one-eyed-alien.net>
   [PATCH] USB: usb-storage driver changes for 2.6.x [3/4]
   
   This patch adds some clear-halt calls if a GetMaxLUN fails.  Apparently,
   some devices (like certain early-rev Zip100s) stall their bulk pipes if
   they receive a GetMaxLUN.

<mdharm-usb@one-eyed-alien.net>
   [PATCH] USB: usb-storage driver changes for 2.6.x [4/4]
   
   This is a trivial patch to remove some duplicate includes.  sched.h and
   errno.h are already included in this file about a dozen lines or so above
   this point.

<greg@kroah.com>
   USB: switch struct urb to use a kref instead of it's own atomic_t

<jgarzik@redhat.com>
   [libata sata_sx4] trivial: fix filename in header

<greg@kroah.com>
   USB: removed unused atomic_t in keyspan driver structure.

<greg@kroah.com>
   USB: make ehci driver use a kref instead of an atomic_t

<greg@kroah.com>
   USB: fix incorrect usb-serial conversion for cur_altsetting from previous patch.

<stern@rowland.harvard.edu>
   [PATCH] USB: Allocate interface structures dynamically
   
   This is a revised version of an earlier patch; I feel a lot better about
   this one.  Basically it does the same thing as before: allocate
   interfaces dynamically to avoid the problems with reusing them.
   
   The difference is that this patch adds a struct kref to the array of
   usb_interface_cache's, so the array can persist if needed after the
   device has been disconnected.  Each interface takes a reference to it
   (along with the configuration itself), so as long as the interfaces
   remain pinned in memory the altsettings will also remain.
   
   Here is a slight revision of patch as246b.  This one allocates all the new
   interfaces before changing any other state; otherwise it's the same.

<greg@kroah.com>
   USB: fix compiler warnings in devices.c file.

<jejb@mulgrave.(none)>
   Cset exclude: jejb@mulgrave.(none)|ChangeSet|20040404150128|05866
   
   scsi_get_device needs no NULL check

<Michael_E_Brown@Dell.com>
   [PATCH] add SMBIOS tables to sysfs -- UPDATED

<greg@kroah.com>
   My cleanups to the smbios driver.

<sean@mess.org>
   [PATCH] USB: add new USB PhidgetServo driver
   
   Here is a driver for the usb servo controllers from Phidgets
   <http://www.phidgets.com/>, using sysfs.
   
   Note that the devices claim to be hid devices, so I've added them to the
   hid_blacklist (HID_QUIRK_IGNORE). A servo controller isn't really an hid
   device (or is it?).

<stern@rowland.harvard.edu>
   [PATCH] USB: Lock devices during tree traversal
   
   On Tue, 27 Apr 2004, Greg KH wrote:
   
   > So, what's next in this patch series?  :)
   
   Funny you should ask...
   
   While writing those patches I noted a problem, that the USB device tree
   can change while a process reading /proc/bus/usb/devices is traversing it,
   leading to an oops when a pointer to a no-longer-existing child device is
   dereferenced.  The ensuing discussion led to the conclusion that the
   devices' ->serialize locks should be acquired, top-down, while going
   through the tree.
   
   That means changing the code that populates the devices file and changing
   the code that adds and removes USB device structures.  This patch takes
   care of the first part.  I'm delaying the second part because that section
   of usbcore is still under change -- David Brownell's revisions have not
   yet been fully integrated.
   
   A similar change should be made to usb_find_device() and match_device() in
   usb.c.  You may want to add that yourself.

<david-b@pacbell.net>
   [PATCH] USB: fix sparc64 2.6.6-rc2-mm2 build busted: usb/core/hub.c hubstatus
   
   > 2) An undefined 'hubstatus' variable in drivers/usb/core/hub.c:
   >
   >       CC      drivers/usb/core/hub.o
   >     drivers/usb/core/hub.c: In function `hub_port_connect_change':
   >     drivers/usb/core/hub.c:1343: error: `hubstatus' undeclared (first use in this function)
   >     drivers/usb/core/hub.c:1343: error: (Each undeclared identifier is reported only once
   >     drivers/usb/core/hub.c:1343: error: for each function it appears in.)
   >     make[3]: *** [drivers/usb/core/hub.o] Error 1
   >
   >   As a total shot in the dark, the following fixes the build (I've no clue
   >   if it is the right fix):
   
   Yes, it's the right fix.  Greg, please merge the attached patch,
   which will be needed on any big-endian system.

<sean@mess.org>
   [PATCH] USB: fix PhidgetServo driver
   
   Somehow I managed to send the wrong version. Here is a patch which fixes
   that. (Remove a dev_info() which wasn't supposed to be there, and make sure
   that everything is still consistent in the unlikely event that kmalloc()
   fails). Just minor cleanups.

<greg@kroah.com>
   USB: remove the wait_for_urb function from bfusb driver as it's no longer needed.

<greg@kroah.com>
   USB: fix build error in hci_usb driver due to urb reference count change.
   
   This really needs to get fixed the proper way, by making the urb allocation
   dynamic in the driver, instead of the hack it is currently doing...

<dsaxena@plexity.net>
   [PATCH] PCI: pci.ids update from sf.net + add IXP4xx to pci_ids.h

<jochen@jochen.org>
   [PATCH] PCI: I'm moving
   
   Can you please feed the following patch to Andrew?

<jochen@jochen.org>
   [PATCH] PCI: message cleanup in PCI probe
   
   The messages read:
   
   PCI: Address space collision on region 8 of bridge 0000:00:1f.0 [1180:11bf]
   PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
   Transparent bridge - 0000:00:1e.0
   PCI: Using IRQ router PIIX/ICH [8086/24cc] at 0000:00:1f.0
   PCI: Found IRQ 11 for device 0000:00:1f.1
   
   The following patch adds "PCI: " in front of the message and KERN_INFO as well.
   Compile&boot tested.
   
   Jochen

<lxiep@us.ibm.com>
   [PATCH] PCI Hotplug: rpaphp: set eeh option (enabled ) prior to any i/o to newly added IOA
   
   Attached patch fix the problem I have found during DLPAR I/O slots
   testing on our new hardware.  rpaphp needs to set eeh-option(eanbled)
   for newly added IOA prior to performing PCI config(pci_setup_device),
   otherwise the pci_dev of the IOA will have invalid base address
   information.
   
   Linas Vepstas impleted eeh changes.

<johnrose@austin.ibm.com>
   [PATCH] PCI Hotplug: RPA DLPAR remove slot, return code fix

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Clean up acpiphp_core.c: null checks
   
   If the "struct hotplug_struct *" parameter to any function in
   hotplug_slots_ops is ever NULL something bogus is going on. In this case we
   should just oops and not hide the bug. This also fixes the driver name used in
   debug messages.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Clean up acpiphp_core.c: slot_paranoia_check
   
   Matthew Wilcox wrote:
   > On Thu, Apr 22, 2004 at 01:18:23PM +0200, Rolf Eike Beer wrote:
   > > slot_paranoia_check is only another kind of checking everything for NULL.
   > > Removing this leads to function get_slot is reduced to a simple cast, so
   > > this function can be killed also.
   >
   > Since private is void *, you don't even need the casts.
   >
   > >  static int enable_slot (struct hotplug_slot *hotplug_slot)
   > >  {
   > > -   struct slot *slot = get_slot(hotplug_slot, __FUNCTION__);
   > > +   struct slot *slot = (struct slot *)hotplug_slot->private;
   >
   >    struct slot *slot = hotplug_slot->private;
   >
   > is enough.
   
   Fixed.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Clean up acpiphp_core.c: coding style
   
   This patch kills the space before the opening brace in function
   declarations. It also beautifies some ugly return statements.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Clean up acpiphp_core.c: kill hardware_test
   
   The function hardware_test only tells that there are no tests. If we just
   kill it the file "test" in the slot's directory will not show up which
   means pretty much the same.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Clean up acpiphp_core.c: use goto for error handling
   
   This one converts the error handling in init_slots to use gotos to avoid code
   duplication.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Clean up acpiphp_core.c: return
   
   Fix 2 very ugly return constructs.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Clean up acpiphp_core.c: remove 3 get_* functions
   
   If we remove this 3 get_* functions the pci hotplug core will do the same
   thing for us.

<eike-hotplug@sf-tec.de>
   [PATCH] CompactPCI Hotplug: remove unneeded funtion for parameter handling
   
   A special function for handling the parameters in non-module case is not
   needed, the MODULE_* makros handle this also for compiled in situations.

<eike-hotplug@sf-tec.de>
   [PATCH] CompactPCI Hotplug: kill magic number
   
   slot->magic is not used anymore since slot_paranoia_check is dead, so just kill
   it.

<eike-hotplug@sf-tec.de>
   [PATCH] CompactPCI Hotplug ZT5550: use new style of module parameters
   
   Convert the driver to use new interface for module parameters, Also fix the
   driver name used in debug messages.
   
   Eike

<eike-hotplug@sf-tec.de>
   [PATCH] ACPI PCI Hotplug: use new style of module parameters
   
   This one converts acpiphp_core.c to use the new interface for module
   parameters.

<eike-hotplug@sf-tec.de>
   [PATCH] ACPI PCI Hotplug: kill magic number
   
   The magic slot number was only another type of checking the validity of a
   pointer. These checks are all gone so magic can follow them.

<eike-hotplug@sf-tec.de>
   [PATCH] ACPI PCI Hotplug: use goto for error handling
   
   This one fixes another space before an opening brace I missed before and
   optimizes the error paths in init_slots a bit more.

<eike-hotplug@sf-tec.de>
   [PATCH] ACPI PCI Hotplug: coding style fixes
   
   Some minor coding style fixes:
   -space before opening brace of function
   -wrap some long lines
   -change some identations from spaces to tabs

<eike-hotplug@sf-tec.de>
   [PATCH] ACPI PCI Hotplug: add a BUG() where one should be
   
   If there is a condition with the comment "should never happen" it is a good
   place for a BUG() if it is ever reached.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug skeleton: use new style of module parameters
   
   Convert the PCI hotplug skeleton driver to use new style of module parameter
   handling.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug skeleton: remove useless NULL checks
   
   This one removes all the useless NULL checks including slot_paranoia_check,
   get_slot and the magic number from the PCI hotplug skeleton driver. Also some
   lines containing only a single tab are fixed.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug skeleton: fix codingstyle
   
   Coding style fixes for pcihp_skeleton.c: remove spaces before opening braces
   and change a comment in function hardware_test to make clearer that the
   functions purpose is not to tell the user there are no tests.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug skeleton: mark functions __init/__exit
   
   Add __init and __exit to some functions only called from __init/__exit context.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug skeleton: use goto for error handling
   
   Convert PCI hotplug skeleton driver to use goto for error handling in
   init_slots to avoid code duplication.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug skeleton: final cleanups
   
   Some final fixes for the skeleton driver:
   -spaces before opening brace
   -add a better example for hardware_test function
   -remove a "int retval" in a void function
   -some more coding style changes
   -changed enough stuff: increase version number
   -fix a typo in a comment

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: fix coding style

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: remove useless kmalloc casts
   
   The result of kmalloc does not need to be casted, it is a void * which can be
   assigned to any pointer variable. Also avoid code duplication in one if
   statement.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: splut pciehp_ctrl.c::configure_new_function
   
   configure_new_function is way too big (>600 lines). Split it in 2 functions,
   one for the new functions and one for bridges. And split out a small piece
   from the bridge function which is used twice to it's own function.
   
   Patch is huge because of the identation changes but does nothing than the
   split and some minor coding style changes.

<tejohnson@yahoo.com>
   input: Microtouch USB driver update
      Changed reset from standard USB dev reset to vendor reset
      Changed data sent to host from compensated to raw coordinates
      Eliminated vendor/product module params
      Performed multiple successfull tests with an EXII-5010UC

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: coding style fixes
   
   The usual coding style fixes, this time for cpqphp_ctrl.c and cpqphp.c.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: remove useless NULL checks
   
   Remove some useless NULL and magic checks from Compaq PCI Hotplug driver.
   If one of this pointers is invalid we are in bad trouble anyway.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: move huge inline function out of header file
   
   set_controller_speed is implemented in cpqphp.h but only used in cpqphp_ctrl.c
   and it's much too big to be defined in a header file. This patch moves it to
   cpqphp_ctrl.c. Also the inline attribute is removed, this function is called
   from 2 places and to big to be an inline.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: use new style of module parameters
   
   Convert Compaq PCI Hotplug driver to use the new style of module parameters.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: more coding style fixes
   
   Fix a lot of coding style issues in Compaq PCI hotplug:
   -spaces before opening brace of functions
   -much too much C++ style comments
   -wrap long lines
   -remove some comments where the code does not really need to be explained
   
   Eike

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: split up hardware_test
   
   This puts the LED shifting used as "hardware test" in a function to make
   cpqhp_hardware_test much smaller and easier to read. Also changes some
   comments from C++ to C style.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: use goto for error handling
   
   Convert ctrl_slot_setup to use goto for error handling and fix some minor
   coding style things.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: remove useless NULL checks from cpqphp_core.c
   
   Remove some useless NULL checks in cpqphp_core.c

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: fix C++ style comments
   
   This is not C++! Fix comments from C++ style to C style, removing some useless
   ones (e.g. no need to tell up and down protect a critical section).

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: use goto for error handling in cpqphp_ctrl.c
   
   Change cpqphp_ctrl.c to use goto for error handling.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: coding style fixes for cpqphp_ctrl.c
   
   Some coding style fixes I missed last time.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: some final fixes for cpqphp_core.c
   
   Final small fixes for cpqphp_core.c:
   -use better error handling in one_time_init
   -small coding style fixes
   -the name of the driver is not "pci_hotplug"
   -add an __exit for unload_cpqphp
   -changes enough to increment version, isn't it?

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Remove type magic from kmalloc
   
   This patch removes the cast of kmalloc's results to the target pointer type.
   Also it fixes kmalloc to use sizeof(*foo) instead of sizeof(type_of_foo) as
   suggested by Matthew Wilcox. Also removes a few useless checks if a pointer
   is NULL before calling kfree: kfree checks this itself.

<eike-hotplug@sf-tec.de>
   [PATCH] [BUGFIX] shpchp_pci.c: fix missing braces after if
   
   Add missing braces around if statement, if not we will try to add devices
   for an empty slot.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug Core: use new style of module parameters
   
   Convert PCI Hotplug Core to new style of module parameter handling.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Hotplug: Move an often used while loop to an inline function
   
   Walking through a pci_resource list and freeing all members is done a lot of
   times in unload functions. This patch moves this to an inline function in
   pciehp_core.c, pciehp_pci.c, shpchp_core.c and shpchp_pci.c. This shrinks the
   code a lot (some 200 lines) and makes it much easier to read. Also adds some
   __exit.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: use new style of module parameters
   
   This converts PCI Express Hotplug to the new style of module parameter
   handling.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: fix missing braces
   
   Fix missing braces. It does not change the code but makes it easier to read.

<greg@kroah.com>
   PCI Hotplug: fix stupid build bugs caused by previous patches.
   
   Doesn't anyone build their patches anymore before sending them out...

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: remove useless NULL checks
   
   Remove useless NULL checks and magic numbers from PCI Express Hotplug, also
   some minimal coding style fixes.

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: Remove useless NULL checks
   
   Remove useless NULL checks and magic numbers from rpaphp. If one of these
   ever becomes invalid we are in serious trouble anyway.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: kill useless kmalloc casts
   
   This patch removes the cast of kmalloc's results to the target pointer type.
   Also it fixes kmalloc to use sizeof(*foo) instead of sizeof(type_of_foo) as
   suggested by Matthew Wilcox. Also removes a few useless checks if a pointer
   is NULL before calling kfree: kfree checks this itself.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: kill hardware_test
   
   The hardware_test function of the PCI Express Hotplug driver is empty. It's
   better to completely kill this to tell the user hardware tests are not
   supported by this driver.

<eike-hotplug@sf-tec.de>
   [PATCH] Compaq PCI Hotplug: remove useless NULL checks from cpqphp_ctrl.c
   
   Remove useless NULL checks from cpqphp_ctrl.c. Under normal circumstances
   there is no chance for any of this functions to get called with a NULL
   argument. If we are in such trouble that we get a NULL pointer don't hide it,
   just oops.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: use goto for error handling
   
   This changes pciehp_core.c::init_slots to use goto for error hanling. Also a
   missing magic missed by previous patches is killed.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: codingstyle fixes for pciehp.h
   
   Some small coding style fixes and a typo fix for pciehp.h

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: remove useless kmalloc casts
   
   The result of kmalloc does not need to be casted to any other pointer type.
   Also use kmalloc(*foo) instead of kmalloc(type_of_foo) and wrap some long
   lines.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: some cleanups
   
   Some coding style fixes and small cleanups for pciehp_core.c:
   -wrap long lines
   -kill spaces before opening braces of functions
   -remove code duplication where both parts of an if statement do exactly the
    same
   -kill some useless comments
   -kill an unneeded initialisation

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: mark global variables static
   
   Don't know why, but it looks like a good idea to mark this global variables
   static.

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: kill more useless casts
   
   This patch does two things:
   -remove casts of pointers which are void* or already the correct type for the
    target
   -if we dereferenced a struct member and copied this to it's own variable use
    this and don't dereference the member again

<eike-hotplug@sf-tec.de>
   [PATCH] PCI Express Hotplug: codingstyle fixes for pciehp_pci.c
   
   This is a bunch of coding style fixes (wrap long lines, whitspacing etc.) for
   pciehp_pci.c

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: use new style of module parameters
   
   The debug parameter of rpaphp is only used as a boolean so we can scan the
   commandline of it like a boolean parameter.

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: kill get_cur_bus_speed from rpaphp_core.c
   
   The get_cur_bus_speed function of rpaphp does nothing that the PCI Hotplug Core
   would not do by itself if this function does not exist, so just kill it.

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: codingstyle fixes for rpaphp_core.c
   
   Some coding style fixes for rpaphp_core.c:
   -s/return(foo)/return foo/
   -some whitespace fixes
   -document function in proper way
   
   Eike

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: fix up init_slots in rpaphp_core.c
   
   rpaphp_core.c::init_slots is not more than a for loop and is called only from
   one place, this inlines the important 3 lines. Als add some __init and __exit.

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: remove useless NULL checks from rpaphp_core.c
   
   Remove two useless NULL checks from rpaphp_core.c

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: use goto for error handling in rpaphp_slot.c
   
   Convert rpaphp_slot.c::alloc_slot_struct to use goto for error handling. Also
   some small coding style fixes.

<eike-hotplug@sf-tec.de>
   [PATCH] RPA PCI Hotplug: codingstyle fixes for rpaphp_pci.c
   
   Some coding style fixes for rpaphp_pci.c.

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: use new style of module parameters
   
   Convert shpchp_core.c to use new style of module handling.
   
   Eike

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: kill hardware_test
   
   shpchp_core.c::hardware_test is empty. If we remove it we tell the user that
   hardware tests are not supported at all.

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: fix cleanup_slots to use a release function
   
   shpchp is the only driver which does not use a release function for the slot
   struct. This adds one and does some minor coding style fixes. Also no one
   cares about the return value of cleanup_slots (which is always 0 anyway) so
   we can make the function void.

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: use goto for error handling
   
   Convert shpchp_core.c::init_slots to use goto for error handling.

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: codingstyle fixes
   
   Some small coding style fixes for shpchp_core.c.

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: kill useless NULL checks

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: more coding style fixes
   
   A big bunch of coding style fixes for shpchp_ctrl.c and shpchp_pci.c
   
   Eike

<eike-hotplug@sf-tec.de>
   [PATCH] SHPC PCI Hotplug: remove some useless casts
   
   Remove a useless cast: pci_add_new_bus returns a struct pci_bus*, so no need
   to cast.

<greg@kroah.com>
   PCI Hotplug: fix build error due to previous patches.

<jejb@mulgrave.(none)>
   Fix errors in [PATCH] aic7xxx: fix oops whe hardware is not present
   
   This patch was causing a boot panic.  Now fixed.

<stern@rowland.harvard.edu>
   [PATCH] USB: USB altsetting updates for IDSN Hisax driver
   
   The USB core is changing the way interfaces and altsettings are stored.
   They are no longer required to be in numerical order, and as a result,
   simply indexing the interface and altsetting arrays won't work as
   expected.
   
   This patch for the st5481 takes these changes into account.  A simpler
   approach would be to store a pointer to the struct usb_host_interface
   rather than look it up repeatedly, but I'm not very familiar with this
   driver and didn't want to attempt such an alteration.

<linux-usb@nerds-incorporated.org>
   [PATCH] USB: Alcatel TD10 Serial to USB converter cable support
   
   The Alcatel TD10 USB to Serial converter cable (for use with a Alcatel
   OT 535 or 735(i) mobile phone) seems to be a repackaged Alcatel
   version of the Prolific 2303 adapter.
   
   And as such, simply adding its product/vendor id (0x11f7/0x02df) to
   drivers/usb/serial/pl2303.c seems to be enough to make it work.

<david-b@pacbell.net>
   [PATCH] USB Gadget: gadget zero and USB suspend/resume
   
   This patch lets gadget zero be more useful in testing usb suspend
   and resume.  It prints messages on suspend() and resume(), and
   supports an "autoresume=N" mode to wake the host after N seconds.

<david-b@pacbell.net>
   [PATCH] USB: reject urb submissions to suspended devices
   
   This patch rejects URB submissions to suspended devices, so
   that they don't get hardware-specific fault reports.  Instead,
   they get the same code (-EHOSTUNREACH) for all HCDs.
   
   It also fixes a minor problem with colliding declarations of
   the symbol USB_STATE_SUSPENDED.

<stuber@loria.fr>
   [PATCH] USB: LEGO USB Tower driver v0.95
   
   here is the latest version 0.95 of the LEGO USB Tower driver against 2.6.6-rc3
   which corrects a lot of problems in the version currently in the kernel,
   most notably sleeping in interrupt context and improper locking.
   Please apply.
   
   It has been thoroughly tested with UHCI, OHCI and EHCI host controllers
   using Lejos and NQC.  Firmware and program download, and with proper
   modifications all communication protocols supported by Lejos work,
   as well as firmware and program download and datalog upload in NQC.
   
   Notes to application maintainers/protocol designers:
   
   - Small modifications are needed in communication protocols because
     the tower tends to discard the first byte of transmissions.
     So for example LNP needs to send an extra byte like 0xff before
     the packet, and F7 handlers needs to cope with a lost 0x55.
   
   - I suggest /dev/usb/legousbtower0 etc. as the standard device names.
     This puts it in the same place as the other USB devices and makes
     clear which driver is responsible for these devices.

<baldrick@free.fr>
   [PATCH] USB: usbfs: change extern inline to static inline
   
   And change __inline__ to inline and get rid of an unused function
   while at it.

<baldrick@free.fr>
   [PATCH] USB: fix WARN_ON in usbfs
   
   On Tuesday 27 April 2004 10:58, Oliver Neukum wrote:
   > Am Dienstag, 27. April 2004 00:14 schrieb Greg KH:
   > > On Mon, Apr 26, 2004 at 04:05:17PM +0200, Duncan Sands wrote:
   > > > diff -Nru a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
   > > > --- a/drivers/usb/core/devio.c   Mon Apr 26 13:48:28 2004
   > > > +++ b/drivers/usb/core/devio.c   Mon Apr 26 13:48:28 2004
   > > > @@ -350,8 +350,8 @@
   > > >      * all pending I/O requests; 2.6 does that.
   > > >      */
   > > >
   > > > -   if (ifnum < 8*sizeof(ps->ifclaimed))
   > > > -      clear_bit(ifnum, &ps->ifclaimed);
   > > > +   BUG_ON(ifnum >= 8*sizeof(ps->ifclaimed));
   > >
   > > I've changed that to a WARN_ON().  Yeah, writing over memory is bad, but
   > > oopsing is worse.  Let's be a bit nicer than that.
   >
   > You aren't nice that way. An oops has localised consequences. Scribbling
   > over memory can cause anything.
   
   Hi Greg, if won't accept a BUG_ON, how about the following?

<david-b@pacbell.net>
   [PATCH] USB: dummy_hcd, root port wakeup/suspend
   
   Here's what's in my tree to make dummy_hcd do suspend and
   wakeup correctly ... that is, making its emulated root hub
   and gadget work more like real ones.
   
   It's easier to do this for fake hardware than the real stuff.
   But real drivers tend to need very similar changes ... :)
   
   - Dave
   
   p.s. This does not depend on the suspend/resume patch.
         And it doesn't do "global" suspend (of root hub).

<msdemlei@cl.uni-heidelberg.de>
   [PATCH] USB: DSBR-100 tiny patch
   
   On Fri, Feb 06, 2004 at 10:17:32AM -0800, Greg KH wrote:
   > On Fri, Feb 06, 2004 at 05:06:01PM +0100, Markus Demleitner wrote:
   > > Since I finally switched over to 2.6 I noticed that my dsbr100 driver
   > > produces a warning to the effect that I should provide a release
   > > callback.  After a quick google on the issue I came to the conclusion
   >
   > No, you will have to fix up your driver to work properly, sorry.  It's
   > due to the changes to the v4l layer to handle removable devices much
   > better (and to tie it into the driver model.)
   
   I didn't get around to doing real work on this until now, but finally
   in the attachment there's my stab at bringing dsbr100 up to kernel 2.6.
   I'm not really comfortable with the release callback issues (I've yet
   to find some HOWTO-like documentation on this...) on the v4l side,
   so I'd be grateful if you could have a look at it.  I've basically
   tried to copy what stv680 does, which may or may not have been a
   good idea (in particular see the comment above the disconnect
   function).
   
   I've used the opportunity for some code beautyfing, which of course
   makes the patch a bit of a mess.  I hope you won't mind too much
   -- as you can see, it would have been pretty messy anyway.

<khali@linux-fr.org>
   [PATCH] I2C: Add LM99 support to the lm90 driver
   
   The following patch adds support for the LM99 chip to the lm90 driver,
   on popular request. The nVidia GeForce FX 5900 series cards have such a
   chip on-board for monitoring the GPU temperature.
   
   Relevant pointers:
   http://archives.andrew.net.au/lm-sensors/msg07671.html
   http://secure.netroedge.com/~lm78/readticket.cgi?ticket=1661
   http://secure.netroedge.com/~lm78/readticket.cgi?ticket=1662
   
   Additional effects of the patch:
   
   * Do not consider the lm90 driver experimental anymore. I have had
   enough testers and not a single problem report, the driver is working
   OK.
   
   * Support the LM89. According to the datasheets, it is exactly the same
   chip as the LM99 (to the chip ID). We've never seen this chip in a
   computer so far, but it doesn't cost anything to support it (actually we
   cannot not support it, since we have no way to differenciate with the
   LM99).
   
   * Scan two addresses instead of one. The LM99 and LM89 have a "-1"
   variant using an alternate address.
   
   * Update copyright year.
   
   * Reword the identification code a bit. It is hopefully slightly less
   unreadable.
   
   This patch was successfully tested by Corey Hickey.

<akpm@osdl.org>
   [PATCH] PCI Hotplug: pciehp-linkage-fix.patch
   
   This fixes allyesconfig

<greg@kroah.com>
   I2C: rename i2c-ip4xx.c driver

<khali@linux-fr.org>
   [PATCH] I2C: Voltage conversions in via686a
   
   My previous patch was actually not correct, reading from the chip's
   registers was fixed but writing limits to it wasn't. This new version of
   the patch should be better. Sorry for the trouble.

<kevin@koconnor.net>
   [PATCH] I2C: support I2C_M_NO_RD_ACK in i2c-algo-bit
   
   I have an I2C device (Samsung ks0127 video grabber) with a peculiar i2c
   implementation.  When reading bytes, it only senses for the stop condition
   in the place where the acknowledge bit should be.  So, to properly support
   this device acks need to be turned off during reads.
   
   There is an I2C_M_NO_RD_ACK bit already defined in i2c.h which appears to
   be what I want.  Unfortunately it doesn't seem to be used anywhere in the
   current tree.  At the end of this message is a patch to teach i2c_algo_bit
   to honor the bit.

<dsaxena@plexity.net>
   [PATCH] I2C: Update IXP4xx I2C bus driver
   
   The 2.6 IXP4xx code has been cleaned up to change all references to
   IXP42x/IXP425 with IXP4xx. The following patch updates the I2C bits.
   Before applying, you need to 'bk move i2c-ixp42x.c ixp-4xx.c".

<stefan.eletzhofer@eletztrick.de>
   [PATCH] I2C: add I2C epson 8564 RTC chip driver
   
   Add support for the Epson 8564 RTC chip.

<stevef@steveft21.ltcsamba>
   Update cifs change log

<sebek64@post.cz>
   [PATCH] Class support for ppdev.c

<hannal@us.ibm.com>
   [PATCH] Add class support to drivers/char/ip2main.c

<hannal@us.ibm.com>
   [PATCH] add class support to drivers/block/paride/pg.c
   
   This patch adds class support to pg.c, the parallel port generic ATAPI device driver.
   
   I have verified it compiles but do not have the hardware. If someone does and
   could test that would be helpful.

<hannal@us.ibm.com>
   [PATCH] add class support to drivers/block/paride/pt.c
   
   This patch adds class support to pt.c which "the high-level driver for parallel
   port ATAPI tape drives based on chips supported by the paride module." Which I
   dont have in order to test.
   
   I have verified it compiles but can not test it. If someone who has the
   hardware could I would appreciate it.

<hannal@us.ibm.com>
   [PATCH] add class support to drivers/char/tipar.c
   
   This patch adds class support to the Texas Instruments graphing calculators
   with a parallel link cable.
   
   I have verified it compiles. If someone has the hardware please verify it works.

<kenn@linux.ie>
   [PATCH] Re: Platform device matching
   
   On Mon, Apr 26, 2004 at 12:27:33AM +0100, Russell King wrote:
   > So, this comment needs updating:
   >
   >  *      So, extract the <name> from the device, and compare it against
   >  *      the name of the driver. Return whether they match or not.
   
   Want a patch?

<stevef@smfhome.smfdom>
   Add missing cifs protocol data unit definitions

<tony.cureington@hp.com>
   [TG3]: Add eeprom dump support.

<c.lucas@ifrance.com>
   [PATCH] USB: esthetic and trivial patch.

<stern@rowland.harvard.edu>
   [PATCH] USB: Altsetting update for USB IrDA driver
   
   This patch updates the USB IrDA driver to take into account that the
   kernel may no longer store altsetting entries in numerical order.
   The driver only needed one change; this was a simple matter of using the
   entry corresponding to the altsetting that was just installed.

<tejohnson@yahoo.com>
   [PATCH] USB: update for mtouchusb
   
   The attached patch for the 3M Touch Systems Capacitive controller. (again)
   
   Quick list of changes:
   
      * decrease mtouch->open counter in the event of a urb submission
        failure
   
   The changes are due to comments Oliver Neukum's comments on the
   touchkit.c driver.  Good catch!  Sorry I missed it.
   
   http://marc.theaimsgroup.com/?l=linux-usb-devel&m=108343028201159&w=2

<davidm@tiger.hpl.hp.com>
   ia64: Avoid ".save rp, r0" since the kernel unwinder doesn't support it yet.
   
   Once we switch to a libunwind-based kernel unwinder, this code can be
   re-enabled again.

<stevef@smfhome.smfdom>
   Add smb copy function

<stevef@smfhome.smfdom>
   fix truncated directory listings on large directories to Samba (when Unicode and Unix extensions enabled)

<rct@gherkin.frus.com>
   [PATCH] sym53c500_cs PCMCIA SCSI driver (round 5)
   
   Fifth attempt at a PCMCIA SCSI driver for the Symbios 53c500
   controller.  This version has all the cleanup Christoph has requested
   to date, including removal of support for the obsolete (in 2.6)
   proc_info functionality.
   
   Support for additional sysfs class device attributes has been added:
   two are read-only (irq, ioport), one is read-write (fast_pio).  The
   read-write attribute is a per-instance flag indicating the PIO speed
   of the particular HBA: valid values are 1 (enabled -- default) and 0
   (disabled).

<stern@rowland.harvard.edu>
   [PATCH] PATCH: (as255) Handle Unit Attention during INQUIRY better
   
   Some buggy USB storage devices can return Unit Attention status for
   INQUIRY commands.  The current code in scsi_scan.c checks for ASC = 0x28 =
   Not ready to ready transition, but these devices can also return ASC =
   0x29 = Power-on or reset occurred.  In addition, the code doesn't retry
   the INQUIRY when these codes are received.

<jeremy@sgi.com>
   [PATCH] minor changes to qla1280 driver
   
   On one of our big machines we found a problem with posted writes while
   running AIM.
   
   Two writes of the Request Queue In pointer went out of order, making
   the chip think that it had a queue wrap.
   
   I took advantage of this opportunity to add relaxed reads, which helps
   the Altix.  It should not affect other arches.  All reads are relaxed
   except for the read of the Semaphore register.

<akpm@osdl.org>
   [PATCH] aic7xxx deadlock fix
   
   We cannot call del_timer_sync() from within that timer's handler function!

<rddunlap@osdl.org>
   [PATCH] (5/5) pcmcia/nsp: use kernel.h min/max/ARRAY_SIZE
   
   From: Michael Veeck <michael.veeck@gmx.net>
   Subject: [Kernel-janitors] [PATCH] drivers/scsi/pcmcia MIN/MAX/NUMBER removal
   
   
   Patch (against 2.6.6-rc1) removes unnecessary min/max/number macros and
   changes calls to use kernel.h macros instead.
   
   
    drivers/scsi/pcmcia/nsp_cs.c |   12 ++++++------
    drivers/scsi/pcmcia/nsp_cs.h |    2 --
    2 files changed, 6 insertions(+), 8 deletions(-)

<rddunlap@osdl.org>
   [PATCH] (2/5) aic7xyz_old: use kernel.h min/max/ARRAY_SIZE
   
   From: Michael Veeck <michael.veeck@gmx.net>
   Subject: [Kernel-janitors] [PATCH] drivers/scsi/aic7xxx_old MIN/MAX/NUMBER
      removal
   
   Patch (against 2.6.6-rc1) removes unnecessary min/max/number macros and
   changes calls to use kernel.h macros instead.
   
   
    drivers/scsi/aic7xxx_old.c              |   43 ++++++++++++++------------------
    drivers/scsi/aic7xxx_old/aic7xxx_proc.c |    6 ++--
    2 files changed, 23 insertions(+), 26 deletions(-)

<rddunlap@osdl.org>
   [PATCH] (4/5) nsp32 (ninja): use kernel.h min/max/ARRAY_SIZE
   
   From: Michael Veeck <michael.veeck@gmx.net>
   Subject: [Kernel-janitors] [PATCH] drivers/scsi/nsp MIN/MAX/NUMBER removal
   
   Patch (against 2.6.6-rc1) removes unnecessary min/max/number macros and
   changes calls to use kernel.h macros instead.
   
   
    drivers/scsi/nsp32.c |   24 ++++++++++++------------
    drivers/scsi/nsp32.h |    4 ----
    2 files changed, 12 insertions(+), 16 deletions(-)

<rddunlap@osdl.org>
   [PATCH] (3/5) ncr53c8x: use kernel.h min/max
   
   From: Michael Veeck <michael.veeck@gmx.net>
   Subject: [Kernel-janitors] [PATCH] drivers/scsi/53c* MIN/MAX removal
   
   
   Patch (against 2.6.6-rc1) removes unnecessary min/max macros and changes
   calls to use kernel.h macros instead.
   
   
    drivers/scsi/ncr53c8xx.c      |    6 +++---
    drivers/scsi/sym53c8xx_comm.h |    5 +----
    2 files changed, 4 insertions(+), 7 deletions(-)

<akpm@osdl.org>
   [PATCH] support swsusp for aic7xxx
   
   From: Pavel Machek <pavel@ucw.cz>
   
   Marks threads as needed for suspend.
   DESC
   aic79xx_osm.c build fix
   EDESC
   
   drivers/scsi/aic7xxx/aic79xx_osm.c: In function `ahd_linux_dv_thread':
   drivers/scsi/aic7xxx/aic79xx_osm.c:2594: `PF_IOTHREAD' undeclared (first use in this function)

<jgarzik@redhat.com>
   [netdrvr b44] ethtool_ops support

<jgarzik@redhat.com>
   [netdrvr b44] use netdev_priv

<jgarzik@redhat.com>
   [netdrvr b44] use miilib for MII ioctl handling

<olh@suse.de>
   [PATCH] add simple class for adb
   
   This adds /sys/class/adb/, removes unused devfs lines and updates a
   comment to match reality.

<greg@kroah.com>
   PCI Hotplug: revert broken PCI Express hotplug patch

<greg@kroah.com>
   USB: add support for Zire 31 devices.
   
   Info was from Adriaan de Groot <adridg@cs.kun.nl>

<stefan.eletzhofer@eletztrick.de>
   [PATCH] USB Gadget: fix pxa define in gadget_chips.h
   
   below is a trivial patch which fixes the PXA gadget define
   in drivers/linux/usb/gadget/gadget_chips.h
   
   Everywhere CONFIG_USB_GADGET_PXA2XX is used, except in that file, which
   bites obviously ...
   
   
   Fix define for PXA UDC.

<stefan.eletzhofer@eletztrick.de>
   [PATCH] USB Gadget: fix g_serial debug module parm
   
   g_serial.ko can't be load as module because "debug" is only
   defined if G_SERIAL_DEBUG is defined, but "debug" is referenced
   in MODULE_PARM().

<david-b@pacbell.net>
   [PATCH] USB: usbnet handles Billionton Systems USB2AR
   
   This adds another ax8817x device to "usbnet".

<daniel.ritz@gmx.ch>
   [PATCH] USB: add support for eGalax Touchscreen USB
   
   this is the second version of the patch to add support for eGalax Touchkit USB
   touchscreen. changes since last patch:
   - fixed the bug in open, found by oliver neukum
   - renamed driver from touchkit.c to touchkitusb.c (since the thing also exists
     as RS232, PS/2 and I2C)
   - some minor coding style updates

<stern@rowland.harvard.edu>
   [PATCH] USB: Reduce kernel stack usage
   
   This patch allocates a temporary array from the heap instead of from the
   kernel's stack in usb_set_configuration().  It also updates a few
   comments.  Please apply.

<stern@rowland.harvard.edu>
   [PATCH] USB Storage: unusual_devs.h update
   
   On 4 May 2004, Rajesh Kumble Nayak wrote:
   
   > The Above patch work fine for Sony Hc-85
   > I shall post the dmesg entry soon.
   >
   > With many thanks
   > Rajesh
   
   Greg and Pete, here's the patch.  It's possible that this entry could be
   combined with the previous one, but until we know definitely they should
   be kept separate.

<stern@rowland.harvard.edu>
   [PATCH] USB: Small change to CPiA USB driver
   
   Only one aspect of it is notable: The CPiA USB
   driver calls usb_driver_release_interface() during its disconnect()
   routine.  That doesn't appear to be necessary, since it didn't call
   usb_driver_claim_interface() beforehand and since the interface will be
   released automatically when disconnect() returns.

<al.fracchetti@tin.it>
   [PATCH] USB Storage: Kyocera Finecsm 3L -unusual_devs.h

<stern@rowland.harvard.edu>
   [PATCH] PATCH: (as268) Import device-reset changes from gadget-2.6 tree
   
   This patch imports the changes that David Brownell has made to the
   device-reset functions in his gadget-2.6 tree.  Once these ongoing
   troubling questions about locking are settled, I'll add support for the
   "descriptors changed" case.

<lxiep@us.ibm.com>
   [PATCH] PCI Hotplug: rpaphp doesn't initialize slot's name
   
   Attached is a revised version of rpaphp.patch.  It has the following fixes:
   - Set up slot->name
   - Kill some dbgs
   - Eike's fixes
   - New fixes for incorrect "goto" in rpaphp_slot.c.

<herbert@gondor.apana.org.au>
   [PATCH] USB Storage: Sony Clie
   
   I've received the following report which indicates that the Sony Clie needs
   the US_FL_FIX_INQUIRY flag set.
   
   http://bugs.debian.org/243650

<greg@kroah.com>
   Driver core: handle error if we run out of memory in kmap code

<bellucda@tiscali.it>
   [PATCH] missing audit in bus_register()
   
   |How about using a goto on the error path to clean up properly
   |instead of the different return sections.
   
   .. here goes Take 2:

<khali@linux-fr.org>
   [PATCH] I2C: Sensors (W83627HF) in Tyan S2882

<khali@linux-fr.org>
   [PATCH] I2C: Invert as99127f beep bits in kernel space
   
   The following patch changes the way we invert beep bits for the AS99127F
   sensor chip. This chip behaves differently from the other chips in that
   a disabled bit is 1, not 0. So far we didn't handle that specificity in
   the w83781d driver, so it was left to user-space applications to handle
   it. For the sake of uniformity, it's obviously better if it's done in
   the driver instead (although the meaning of each bit is still
   chip-dependant).
   
   I already did a similar change to the 2.4 driver and the sensors
   program. I don't think that many user-space application will be
   affected, since most of them don't handle the beep mask as far as I can
   tell.
   
   This also close Debian bug #209299:
   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=209299
   
   Successfully tested on my AS99127F rev.1 chip. Aurelien Jarno also
   checked that there were no regression on non-Asus chips.

<khali@linux-fr.org>
   [PATCH] I2C: Rewrite temperature conversions in via686a driver
   
   The following patch rewrites the temperature conversion macros and
   functions found in the via686a chip driver. Contrary to the voltage
   conversions a few weeks ago, temperature conversions were numerically
   correct, but artificially complex. The new ones are cleaner. It also
   fixes a highly improbable array overflow (would take one of the measured
   temperatures to be over 145 degrees C).
   
   Successfully tested by Mark D. Studebaker and I, and already applied to
   our CVS repository.

<khali@linux-fr.org>
   [PATCH] I2C: Fix memory leaks in w83781d and asb100
   
   Quoting myself
   
   > U-ho. I think I've introduced a memory leak with this patch :(
   >
   > For drivers that handle subclients (asb100 and w83781d on i2c), the
   > sublient memory is never released if I read the code correctly. This
   > is because we now free the private data on unload, assuming that it
   > contains the i2c client data as well. That's true for the main i2c
   > client, but not for the subclients (data == NULL so nothing is freed).
   >
   > Could someone take a look and confirm?
   
   I could test and actually saw memory leaking when cycling the w83781d
   driver at a sustained rate (5/s).
   
   > I can see two different fixes:
   >
   > 1* When freeing the memory, free the data if it's not NULL (main
   > client), else free client (subclients). Cleaner (I suppose?).
   >
   > 2* When creating subclients, do data = &client instead of data = NULL.
   > Then freeing will work. Less code, faster. Are there side effects? (I
   > don't think so)
   >
   > My preference would go to 2*.
   
   I ended up implementing 1*. That's cleaner and there's actually almost
   no extra code.
   
   Mark, can you confirm that I'm doing the correct thing? I'll do
   something similar in our CVS repository (for now, the asb100 and w83781d
   drivers had not their memory allocation scheme reworked there).

<hunold@convergence.de>
   [PATCH] I2C: add .class to i2c drivers
   
   in the "[RFC|PATCH][2.6] Additional i2c adapter flags for i2c client
   isolation" thread, the i2c people have  agreed that an ".class" field
   should be added to struct i2c_driver.
   
   Currently only drivers do checks for plausibility ("Is this an adapter I
   can attach to?"), but adapters don't have a chance to keep drivers away
   from their bus.
   
   If both drivers and adapters provide a .class entry, the i2c-core can
   easily compare them and let devices only probe on busses where they can
   really exist.
   
   Real world example: DVB i2c adapters cannot ensure that only known DVB
   i2c chipsets probe their busses. Most client drivers probe every bus
   they get their hands on. This will confuse some DVB i2c busses.
   
   With the new I2C_CLASS_ALL flag it will be possible that an adapter can
   request that really all drivers are probed on the adapter. On the other
   hand, drivers can make sure that they get the chance to probe on every
   i2c adapter out there (this is not encouraged, though)
   
   The attached patch does the first step:
   - add .class member to struct i2c_device
   - remove unused .flags member from struct i2c_adapter
   - rename I2C_ADAP_CLASS_xxx to I2C_CLASS_xxx (to be used both for
     drivers and adapters)
   - add new I2C_CLASS_ALL and I2C_CLASS_SOUND classes
   - follow these changes in the existing drivers with copy & paste

<eranian@hpl.hp.com>
   [PATCH] ia64: perfmon update
   
   - Cleanup the read/write check routines for pfm_write_pmcs,
     pfm_write_pmds, pfm_read_pmds.
   
   - Autodetect the PMU model. No need to have the kernel compiled for
     Itanium, HP Simulator, or Itanium2. The support for all PMU models
     is included.  Probing is based on processor family and
     platform_name, if necessary.  With this patch, it is possible to use
     an Itanium2 compiled kernel on an Itanium 1 system and get perfmon
     to work.
   
   - Removed remaining dependency on CONFIG_MCKINLEY by adding a new
     field (flags) to pmu_config_t.  Update /proc/perfmon to show the new
     field.
   
   - Fixed a bug in the Itanium2 pmc_ita2_write_check() where an inactive
     PMC13 would be considered active.

<bjorn.helgaas@hp.com>
   [PATCH] ia64: initialize IO-port-base early
   
   (start_secondary): Set up IO port base here, in case early console
   needs it.
   (smp_callin): Move IO port base setup to start_secondary().

<a.othieno@bluewin.ch>
   [PATCH] ia64: arch/ia64/kernel/smp.c: kill duplicate #include
   
   linux/cache.h is included more than once.

<davidm@tiger.hpl.hp.com>
   ia64: rename "mem" boot parameter to "max_addr" and implement proper "mem"
   
   Patch by Robert Picco:
   
   This patch renames the mem bootparameter to max_addr and implements the mem
   boot parameter to work as documented (i.e., to limit the amount of memory
   to be recognized by the kernel).

<Matt_Domsch@dell.com>
   [PATCH] PCI: PCI devices with no PCI_CACHE_LINE_SIZE implemented
   
   On Wed, May 05, 2004 at 03:31:02PM -0700, Greg KH wrote:
   > On Thu, Apr 29, 2004 at 02:53:01PM -0500, Matt Domsch wrote:
   > > a) need this be a warning, wouldn't KERN_DEBUG suffice, if a message
   > > is needed at all?  This is printed in pci_generic_prep_mwi().
   >
   > Yes, we should make that KERN_DEBUG.  I don't have a problem with that.
   > Care to make a patch?

<pfg@sgi.com>
   [PATCH] ia64: SN2 - remove node_first_cpu member
   
   Remove node_first_cpu member from nodepda_s and replace its usage with calls
   to sn_get_node_first_cpu().

<davidm@tiger.hpl.hp.com>
   ia64: Fix spurious GAS dependency-violation (dv) warnings by taking
      advantage of two new GAS directives (.serialize.{data,instruction}).

<davej@redhat.com>
   [CPUFREQ] Export scaling cur frequencies
   Many users want to know the current cpu freqeuncy, even if not using
   the userspace frequency. On ->target cpufreq drivers (if they do their
   calls to cpufreq_notify_transition correctly) this just means reading
   out cpufreq_policy->cur.

<davej@redhat.com>
   [CPUFREQ] Move cpufreq_get() from the userspace governor to the core.
   Contrary to the previous implementation, it now calls the cpufreq driver,
   and reads out the _actual_ current frequency, and not the frequency the
   CPUfreq core _thinks_ the CPU is running at. Most cpufreq drivers do provide
   such a "hw get" function (only ACPI-io can definitely not be supported,
   I'm not sure about sh, sparc64 and powermac) anyway, and it is useful for
   other issues.

<davej@redhat.com>
   [CPUFREQ] Export cpufreq_get() to userspace.
   As it involves calls to hardware which might take some time,
   only let the super-user read out this value.

<davej@redhat.com>
   [CPUFREQ] Fix 'out of sync' issue.
   Sometimes we might discover during a call to cpufreq_get() that we're "out of sync",
   meaning the actual CPU frequency changed "behind our back". If this happens, the flag
   CPUFREQ_PANIC_OUTOFSYNC decides what can be done: if it is set, the kernel panic's,
   it it is not set, the cpufreq transition notifiers are informed of this change, and
   a call to cpufreq_update_policy() is scheduled [using the default workqueue] so that
   the user-defined values override BIOS / external interaction.

<davej@redhat.com>
   [CPUFREQ] (Hopefully) fix cpufreq resume support.
    
   Upon resuming, first CPUfreq hardware support needs to be re-enabled in certain cases
   (call to cpufreq_driver->resume()).
    
   Then, two different paths may need to be taken:
   a) frequency during suspend equals frequency during resume ==> everything is fine,
    
   b) frequency differ ==> either we can't handle it, then panic (see flag
      CPUFREQ_PANIC_RESUME_OUTOFSYNC). Or we can handle it, then notify all

<davej@redhat.com>
   [CPUFREQ] Handle CPUFREQ_RESUMECHANGE notifications
   Notifications in i386, sparc64, x86_64, sh-sci and sa11xx-pcmcia notifiers.
   sa1100-framebuffer doesn't seem to be able to handle frequency transitions
   behind its back well. So, sa11xx will be marked
   CPUFREQ_PANIC_OUTOFSYNC | CPUFREQ_PANIC_RESUME_OUTOFSYNC later.

<davej@redhat.com>
   [CPUFREQ] use elanfreq's internal get function as ->get()

<davej@redhat.com>
   [CPUFREQ] use gx-suspmod's internal get function as ->get()

<davej@redhat.com>
   [CPUFREQ] Add a longhaul_get function.

<davej@redhat.com>
   [CPUFREQ] Add longrun ->get
   Longrun users might be interested in their CPU's current frequency as
   well, so use a longrun-specific cpuid-call in longrun_get().

<davej@redhat.com>
   [CPUFREQ] Add p4-clockmod ->get
   p4-clockmod is a bit more complicated as it might run on SMP, HT, and
   the instructions need to run on the specific (physical) CPU.

<davej@redhat.com>
   [CPUFREQ] powernow-k6 ->get
   powernow_k6 has almost all pieces in place for its own ->get() function.
   Add the rest.

<davej@redhat.com>
   [CPUFREQ] powernow-k7->get() implementation by Bruno Ducrot.

<davej@redhat.com>
   [CPUFREQ] Add powernowk8_get()
   but be careful as some code needs to run on specified CPU only.

<davej@redhat.com>
   [CPUFREQ] use speedstep_centrino's internal get function as ->get()

<davej@redhat.com>
   [CPUFREQ] Use speedstep_lib's capabilites for ->get() in speedstep-ich.c

<davej@redhat.com>
   [CPUFREQ] Use speedstep_lib's capabilites for ->get() in speedstep-smi.c

<shaggy@austin.ibm.com>
   JFS: Avoid race invalidating metadata page

<davej@redhat.com>
   [CPUFREQ] arm-integrator ->get() implementation 
   arm-integrator had its ->get() implementation inside
   integrator_cpufreq_init(). Move it to an extra function,
   and add it as ->get() function.

<davej@redhat.com>
   [CPUFREQ] sa11x0 ->get
   sa11x0_getspeed can be used by both cpu-sa1100.c and cpu-sa1110.c as
   ->get() function. Update calling conventions, and un-export it as
   we fixed the handling of cpufreq_get in the cpufreq core. Also,
   remove special call to userspace-governor init as it isn't needed
   any longer.
   

<davej@redhat.com>
   [CPUFREQ] Handle CPU frequency changing behind our back.
   Once we detected 50 consecutive ticks with lost ticks (and this is half of
   the amount needed to trigger the fallback to a "sane" timesource), verify
   the CPU frequency is in sync if cpufreq is used: sometimes the CPU frequency
   changes behind the user's back, and then the TSC detects lost ticks. By a
   call to cpufreq_get(), the frequency the TSC driver thinks the CPU is in
   is updated to the actual frequency, in case these differ. Works really nice
   on my notebook -- it's never falling back to a different timesource now, even
   if I plug in the power cord.

<davej@redhat.com>
   [CPUFREQ] Also check whether the CPU frequency is out of sync once we get to cpufreq_notify_transition.

<davej@redhat.com>
   [CPUFREQ] Handle P4 TSC scaling.
   Currently, the TSC cpufreq notifiers does almost nothing on P4s, as we
   assumed the TSC to be constant independent of _all_ frequency transitions.
   Extensive testing by Karol Kozimor has shown, though, that only _throttling_
   does not affect the TSC, but _scaling_ does.
                                                                                   
   So:
   - pass the CPUFREQ_CONST_LOOPS flags (to be exact, all flags) to cpufreq
     transition notifiers
   - skip TSC value changes if this flag is set
   - set this flag for P4 / P4-Ms only in p4-clockmod [On Pentium-M banias
     the TSC _is_ affected by p4-clock modulation

<davej@redhat.com>
   [CPUFREQ] Clean up P4 centrino detection.
   Add a new "struct cpu_id" for better handling of different Pentium M
   steppings / revisions.

<davej@redhat.com>
   [CPUFREQ] Improved Banias detection.
   The built-in tables are only valid for Pentium M (Banias) processors
   with CPUID 6/9/5. So, add a pointer to the proper struct cpu_id to the
   cpu_model struct, and re-name _CPU/CPU to _BANIAS/BANIAS

<davej@redhat.com>
   [CPUFREQ] Add support for Pentium M (Dothan) processors.
   Until further review, only ACPI data will get this driver to run - no built-in tables will exist.
                                                                                   
   Many thanks to Thomas Renninger for reporting the lack of, and testing
   the support for Dothan processors.

<davej@redhat.com>
   [CPUFREQ] Add support for Pentium M (Dothan) processors for p4-clockmod.
   But warn loudly if anyone tries to use it -- you really should use speedstep-centrino
   instead. On Dothans, the TSC is _not_ affected by TSC transitions (contrary
   to Banias processors), so set the CPUFREQ_CONST_LOOPS flag.
                                                                                   
   Many thanks to Thomas Renninger for reporting the lack of, and testing
   the support for Dothan processors.

<shaggy@austin.ibm.com>
   JFS: reduce stack usage

<hch@lst.de>
   [PATCH] ia64: fix MOD_{INC,DEC}_USE_COUNT use in prominfo
   
   set proper proc_entry owner instead.  Patch OK'd by Jesse Barnes.

<shaggy@austin.ibm.com>
   JFS: [CHECKER] More robust error recovery in add_index
   
   If an error is encountered in add_index, it now leaves the index table
   in a consistent state.  Since the return value is stored in the
   directory entry regardless of add_index's success, return zero
   instead of -EPERM (which made no sense).

<greg@kroah.com>
   Add modules to sysfs
   
   This patch adds basic kobject support to struct module, and it creates a 
   /sys/module directory which contains all of the individual modules.  Each
   module currently exports the refcount (if they are unloadable) and any
   module paramaters that are marked exportable in sysfs.
   
   Was written by me and Rusty over and over many times during the past 6 months.

<stevef@stevef95.austin.ibm.com>
   update readme for mode,uid,gid description

<eranian@hpl.hp.com>
   [PATCH] ia64: make perfmon treat Ski simulator like real Itanium chip
   
   Remove perfmon_hpsim.c. Support is folded into perfmon_itanium.c or
   perfmon_itanium2.c depending on how Ski identifies itself via the CPU
   ID family (Merced or McKinley/Madison).  Also fix firmware emulator
   PAL_PERFMON_INFO emulation to report Itanium2 information.

<davem@nuts.davemloft.net>
   [TG3]: Add 572x/575x PCI IDs.

<davem@nuts.davemloft.net>
   [TG3]: Add 5750 chip and PHY IDs.

<davem@nuts.davemloft.net>
   [TG3]: Prepare for 5750 support plus minor fixes.
   
   1) Handle cases that apply to 5750 the same as 5705.
   2) Only set CLOCK_CTRL_FORCE_CLKRUN on 5705_A0
   3) Clear out on-chip and memory stats block right before
      setting MAC_MODE.
   4) On bootup chip probe, always skip PHY reset if link
      is up.

<davem@nuts.davemloft.net>
   [TIGON3]: Detect and record PCI Express.

<davem@nuts.davemloft.net>
   [TG3]: PCI Express 5750_A0 chips need 5701_REG_WRITE_BUG treatment.

<davem@nuts.davemloft.net>
   [TG3]: Fix chiprev test in previous change.

<davem@nuts.davemloft.net>
   [TG3]: Do not set CLOCK_CTRL_DELAY_PCI_GRANT on PCI Express.

<davem@nuts.davemloft.net>
   [TG3]: Double delay after writing MAC_MI_MODE reg.

<davem@nuts.davemloft.net>
   [TG3]: Correct RDMAC/WDMAC mode settings on 5705/5750.

<davem@nuts.davemloft.net>
   [TG3]: Do not write stats coalescing ticks reg on 5705/5750.

<dtor_core@ameritech.net>
   Input: trailing whitespace fixes in drivers/input/serio

<dtor_core@ameritech.net>
   Input: kbd98io_interrupt should return irqreturn_t

<dtor_core@ameritech.net>
   Input: kbd98_interrupt should return irqreturn_t

<dtor_core@ameritech.net>
   Input: various fixes for H3600 touchscreen driver 
          - h3600ts_interrupt, npower_button_handler and action_button_handler
            should return irqreturn_t
          - fix missing argument in h3600ts_process_packet call
          - add MODULE_AUTHOR, MODULE_DESCRIPTION and MODULE_LICENSE
          - small formatting changes

<dtor_core@ameritech.net>
   Input: twidjoy module
          - twidjoy_interrupt should return irqreturn_t
          - add MODULE_DESCRIPTION and MODULE_LICENSE

<dtor_core@ameritech.net>
   Input: trailing whitespace fixes in drivers/input/keyboard

<dtor_core@ameritech.net>
   Input: power - add MODULE_LICENSE

<dtor_core@ameritech.net>
   Input: trailing whitespace fixes in drivers/input/joystick

<dtor_core@ameritech.net>
   Input: trailing whitespace fixes in drivers/input/gameport

<dtor_core@ameritech.net>
   Input: trailing whitespace fixes in drivers/input

<dtor_core@ameritech.net>
   Input: do not call synaptics_init unless we are ready to do full
          mouse setup

<dtor_core@ameritech.net>
   Input: split i8042 interrupt handling into an IRQ handler and a tasklet

<dtor_core@ameritech.net>
   Patch from Sau Dan Lee
   Input: i8042 - kill the timer only after removing interrupt handler,
          otherwise there is a chance that interrupt handler will install
          the timer again and it will trigger after module is unloaded.

<dtor_core@ameritech.net>
   Input: mousedev - better multiplex absolute and relative devices;
          cleanups

<aia21@cantab.net>
   NTFS: 2.1.9 release - Fix two bugs in the decompression engine
         in handling of corner cases.

<davej@redhat.com>
   [CPUFREQ] Warning fixes.
   On sparc64:
                                                                                                              
   drivers/cpufreq/cpufreq.c: In function `cpufreq_add_dev':
   drivers/cpufreq/cpufreq.c:394: warning: cast to pointer from integer of different size
   drivers/cpufreq/cpufreq.c: In function `handle_update':
   drivers/cpufreq/cpufreq.c:507: warning: cast from pointer to integer of different size

<brking@us.ibm.com>
   [PATCH] Make SCSI timeout modifiable
   
   add a timeout field to struct scsi_device and expose it in in sysfs.
   
   This patch allows LLDs to override the default timeout used for scsi devices
   and exposes it in sysfs. The default timeout value used is too short for
   many RAID array devices, such as those created by the ipr driver.

<jejb@mulgrave.(none)>
   MPT Fusion driver 3.01.06 update
   
   From:    Moore, Eric Dean <Emoore@lsil.com>

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [1/15]  qla2xxx: Firmware dump fixes
   
     ISP dump routine fixes:
   
        o Properly release hardware_lock in failure path.
   
        o Fix inability to complete ISP2100 dump, by properly
          reseting the RISC after register reads.
   
    drivers/scsi/qla2xxx/qla_dbg.c |   34 ++++++++++++----------------------
    1 files changed, 12 insertions(+), 22 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [2/15]  qla2xxx: Remove flash routines
   
     Remove flash support from embedded driver:
   
        o Remove unused option-rom variables from host structure.
        o Remove flash manipulation routines.
   
    drivers/scsi/qla2xxx/qla_def.h  |    2
    drivers/scsi/qla2xxx/qla_gbl.h  |    8
    drivers/scsi/qla2xxx/qla_init.c |    3
    drivers/scsi/qla2xxx/qla_sup.c  |  446 ----------------------------------------
    4 files changed, 459 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [3/15]  qla2xxx: 2100 request-q contraints
   
     Older, notably the ISP2100, chips have some contraints for the request
     queue depth and number of scatter-gather elements allowed for a
     given command.  For this chip, reduce request queue size to 128 and
     maximum number of scatter-gather entries for a command to 32.
   
    drivers/scsi/qla2xxx/qla_def.h  |   14 +++-----------
    drivers/scsi/qla2xxx/qla_init.c |    9 +++++----
    drivers/scsi/qla2xxx/qla_iocb.c |   14 +++++++-------
    drivers/scsi/qla2xxx/qla_os.c   |   14 +++++++++-----
    drivers/scsi/qla2xxx/qla_rscn.c |    2 +-
    5 files changed, 25 insertions(+), 28 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [4/15]  qla2xxx: PortID binding fixes
   
     Fix problem where port ID binding would not be honoured when
     a device was moved within the fabric.
   
    drivers/scsi/qla2xxx/qla_init.c |   33 ++++++++++++++++++++++++---------
    1 files changed, 24 insertions(+), 9 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [5/15]  qla2xxx: Debug messages during ISP abort
   
     Issue a kernel warning message before initiating an ISP abort (big
     hammer) -- additional debugging mechanism in case of event.
   
    drivers/scsi/qla2xxx/qla_mbx.c  |    9 +++++++++
    drivers/scsi/qla2xxx/qla_os.c   |    2 ++
    drivers/scsi/qla2xxx/qla_rscn.c |    2 ++
    3 files changed, 13 insertions(+)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [6/15]  qla2xxx: LoopID downcast fix
   
     Fix problem where the driver would incorrectly down-cast the target
     loop_id while retrieving link statistics.
   
    drivers/scsi/qla2xxx/qla_gbl.h |    2 +-
    drivers/scsi/qla2xxx/qla_mbx.c |    2 +-
    2 files changed, 2 insertions(+), 2 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [7/15]  qla2xxx: Firmware options fixes
   
     Cleanup retrieval and update of firmware options:
   
        o Update only valid for non-(2[12]00) ISPs.
        o Instruct firmware to return completed IOCBs without
          waiting for an ABTS to complete.
   
    drivers/scsi/qla2xxx/qla_init.c |   79 +++++++++++++++++++++++++---------------
    1 files changed, 50 insertions(+), 29 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [8/15]  qla2xxx: Volatile topology fixes
   
     Fix problem where during ISP initialization in a volatile topology
     (i.e. fabric environment with large number of streaming RSCNs) the
     driver would loop indefinitely or hang due to termination of an
     invalid thread pid.
   
    drivers/scsi/qla2xxx/qla_init.c |  142 ++++++++++++++++------------------------
    drivers/scsi/qla2xxx/qla_os.c   |    1
    2 files changed, 60 insertions(+), 83 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [9/15]  qla2xxx: Tape command handling fixes
   
     Fix several problems when handling commands issued to tape devices:
   
        1) insure commands are not prematurely returned to the mid-layer
           with a failed status during loop/fabric transitions.
   
        2) tape commands tend to have rather 'long' timeout values,
           unfortunately, as the these values increase into the 17 to
           20 minute range (and larger), the cumulative skew of the
           RISC's own timer result in commands being held for seconds
           beyond their defined timeout values.  Compensate for this
           in the driver's command timeout function.
   
    drivers/scsi/qla2xxx/qla_def.h  |    3 +
    drivers/scsi/qla2xxx/qla_init.c |    4 ++
    drivers/scsi/qla2xxx/qla_isr.c  |   10 ++---
    drivers/scsi/qla2xxx/qla_os.c   |   74 ++++++++++++++++++++++++++++++++++++----
    4 files changed, 79 insertions(+), 12 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [10/15] qla2xxx: Use readX_relaxed
   
     Jeremy Higdon <jeremy () sgi ! com>:
   
        For those to whom this is new (it was discussed on linux-kernel
        and linux-ia64 I believe), normal PCI register reads imply that
        PCI DMA writes that occured prior to the PCI MMR (memory mapped
        register) read (on the PCI bus) will be reflected in system
        memory once the MMR read is complete.
   
        On our platforms, we can speed up the MMR read significantly if
        that ordering requirement is "relaxed".
   
        So I attempted to find the common register reads that don't
        have a need for this ordering so that I could make them use
        this faster read.
   
    drivers/scsi/qla2xxx/qla_def.h  |    3 +++
    drivers/scsi/qla2xxx/qla_iocb.c |    6 +++---
    drivers/scsi/qla2xxx/qla_isr.c  |    2 +-
    3 files changed, 7 insertions(+), 4 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [11/15] qla2xxx: /proc fixes
   
     /proc file updates:
   
        o Address 'unaligned access' message on ia64 platorms
          while displaying bit-field flags.
   
        o Iterate through the the OS target array to display
          target ID bindings.
   
    drivers/scsi/qla2xxx/qla_os.c |   30 ++++++++++++------------------
    1 files changed, 12 insertions(+), 18 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [12/15] qla2xxx: RIO/ZIO fixes
   
     RIO/ZIO fixes:
   
        o Reduce register access during RIO operation by checking
          for a 'dirtied' signature.
   
        o Fix problem where ZIO mode handling could result in a
          nasty recursive call-frame.
   
    drivers/scsi/qla2xxx/qla_os.c |    5 +----
    1 files changed, 1 insertion(+), 4 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [13/15] qla2xxx: Misc. code scrubbing
   
     Misc. driver scrubbing:
   
        o Use kernel #define for PCI command register bit.
   
        o Fix rate-limiting check the queue-depth module
          parameter.
   
        o Clean-up comments.
   
    drivers/scsi/qla2xxx/qla_init.c |    2 +-
    drivers/scsi/qla2xxx/qla_mbx.c  |    1 -
    drivers/scsi/qla2xxx/qla_os.c   |    7 +++----
    3 files changed, 4 insertions(+), 6 deletions(-)

<jejb@mulgrave.(none)>
   PATCH [14/15] qla2xxx: Resync with latest released firmware -- 3.02.28.
   
   From:    Andrew Vasquez <andrew.vasquez@qlogic.com>
   
    drivers/scsi/qla2xxx/ql2300_fw.c |12380 +++++++++++++++++++--------------------
    drivers/scsi/qla2xxx/ql2322_fw.c |11812 ++++++++++++++++++-------------------
    drivers/scsi/qla2xxx/ql6312_fw.c |10174 ++++++++++++++++----------------
    drivers/scsi/qla2xxx/ql6322_fw.c |10352 ++++++++++++++++----------------
    4 files changed, 22368 insertions(+), 22350 deletions(-)

<andrew.vasquez@qlogic.com>
   [PATCH] PATCH [15/15] qla2xxx: Update driver version
   
     Update version number to 8.00.00b12-k.
   
    drivers/scsi/qla2xxx/qla_version.h |    4 ++--
    1 files changed, 2 insertions(+), 2 deletions(-)

<hch@lst.de>
   [PATCH] imm/ppa style police
   
   fix remaining style problems after Al ressurrected the drivers.

<hch@lst.de>
   [PATCH] missing pci_set_master in megaraid

<hch@lst.de>
   [PATCH] mca_53c9x needs CONFIG_MCA_LEGACY

<jejb@mulgrave.(none)>
   sym53c500_cs remove irq,ioport scsi attributes
   
   From:    Bob Tracy <rct@gherkin.frus.com>

<noodles@earth.li>
   [PATCH] Initio INI-9X00U/UW error handling in 2.6
   
   Plumb old error handling into new eh infrastructure.

<marcel@holtmann.org>
   [Bluetooth] Fix disconnect race on ISOC interface
   
   The hci_usb_disconnect() gets called recursively when SCO support
   is enabled and used. This causes sysfs_hash_and_remove() finally to
   dereference a NULL pointer.
   
   Noticed by Sebastian Schmidt <yath@yath.eu.org>

<marcel@holtmann.org>
   [Bluetooth] Adapt changes for USB core altsettings
   
   The USB core has changed its way the interfaces and the altsettings are
   stored. The probe routines of the USB based Bluetooth drivers must be
   changed and in some cases they are simplified.
   
   Patch from Alan Stern <stern@rowland.harvard.edu>

<shaggy@austin.ibm.com>
   JFS: module unload was not removing /proc/fs/jfs/

<jejb@mulgrave.(none)>
   Add IBM power RAID driver 2.0.6
   
   From:    Brian King <brking@us.ibm.com>

<jgarzik@redhat.com>
   [netdrvr tg3] netdev_priv

<marcel@holtmann.org>
   [Bluetooth] Use type of the parent socket
   
   The SELinux fixes for kernel sockets assume that we always use the type
   SOCK_SEQPACKET, but this must not be the truth. Give the sock->type
   as argument to sock_create_lite() and everything is correct for the new
   child socket.

<jejb@mulgrave.(none)>
   Add SCSI IPR PCI Ids to pci_ids.h

<akpm@osdl.org>
   [PATCH] small scheduler cleanup
   
   From: Ingo Molnar <mingo@elte.hu>
   
   From: Nick Piggin <piggin@cyberone.com.au> wrote:
   
   It removes the last place where we mess with run_list open coded.

<akpm@osdl.org>
   [PATCH] sched: improved resolution in find_busiest_node
   
   From: Nick Piggin <piggin@cyberone.com.au>
   
   From: Frank Cornelis <frank.cornelis@elis.ugent.be>
   
   In order to get the best possible resolution we need to use NR_CPUS instead
   of the constant value 10.  load is an int, so no need to worry about
   overflows...

<akpm@osdl.org>
   [PATCH] sched: scheduler domain support
   
   From: Nick Piggin <piggin@cyberone.com.au>
   
   This is the core sched domains patch.  It can handle any number of levels
   in a scheduling heirachy, and allows architectures to easily customize how
   the scheduler behaves.  It also provides progressive balancing backoff
   needed by SGI on their large systems (although they have not yet tested
   it).
   
   It is built on top of (well, uses ideas from) my previous SMP/NUMA work, and
   gets results very similar to them when using the default scheduling
   description.
   
   Benchmarks
   ==========
   
   Martin was seeing I think 10-20% better system times in kernbench on the 32
   way.  I was seeing improvements in dbench, tbench, kernbench, reaim,
   hackbench on a 16-way NUMAQ.  Hackbench in fact had a non linear element
   which is all but eliminated.  Large improvements in volanomark.
   
   Cross node task migration was decreased in all above benchmarks, sometimes by
   a factor of 100!!  Cross CPU migration was also generally decreased.  See
   this post:
   http://groups.google.com.au/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&frame=right&th=a406c910b30cbac4&seekm=UAdQ.3hj.5%40gated-at.bofh.i+
t#link2
   
   Results on a hyperthreading P4 are equivalent to Ingo's shared runqueues
   patch (which is a big improvement).
   
   Some examples on the 16-way NUMAQ (this is slightly older sched domain code):
   
    http://www.kerneltrap.org/~npiggin/w26/hbench.png
    http://www.kerneltrap.org/~npiggin/w26/vmark.html
   
   From: Jes Sorensen <jes@wi