1. 15 May, 2008 10 commits
  2. 14 May, 2008 30 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · db973ffa
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
        cs5520: disable VDMA
        ide/Kconfig: couple of fixes
        alim15x3: remove WDC_ALI15X3 config option
        alim15x3: add "wdc_udma" module parameter
        alim15x3: remove stale warning about ATI RS100 northbridge
        alim15x3: trivial cleanup for ali_set_pio_mode()
        make ide-iops.c:SELECT_MASK() static
        SWARM IDE: Fix up following changes to ide_hwif_t
      db973ffa
    • Bartlomiej Zolnierkiewicz's avatar
      cs5520: disable VDMA · cafa027b
      Bartlomiej Zolnierkiewicz authored
      Disable Virtual DMA support for now (it causes system hangs).
      
      Thanks to TAKADA Yoshihito for the help with debugging the problem.
      Reported-by: default avatarTAKADA Yoshihito <takada@mbf.nifty.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      cafa027b
    • Bartlomiej Zolnierkiewicz's avatar
      ide/Kconfig: couple of fixes · 64afc31f
      Bartlomiej Zolnierkiewicz authored
      * Don't ask to enable no longer existing config options
        ("Use DMA by default when available" and "Special UDMA Feature").
      
      * PIIX host driver doesn't support Victory66 chipset.
      
      * "ide0=cmd640_vlb" -> "cmd640.probe_vlb"
      
      * "ide=doubler" -> "gayle.doubler"
      
      * Amiga IDE doubler support is a feature for gayle host driver
        not a separate host driver.
      
      * Remove Andre's mail.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      64afc31f
    • Bartlomiej Zolnierkiewicz's avatar
      alim15x3: remove WDC_ALI15X3 config option · e7f379d5
      Bartlomiej Zolnierkiewicz authored
      There is "wdc_udma" module parameter now.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      e7f379d5
    • Bartlomiej Zolnierkiewicz's avatar
      alim15x3: add "wdc_udma" module parameter · 63b1623e
      Bartlomiej Zolnierkiewicz authored
      Add "wdc_udma" module parameter for allowing UDMA transfers
      on M1543C-E chipset for WDC disks.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      63b1623e
    • Bartlomiej Zolnierkiewicz's avatar
    • Bartlomiej Zolnierkiewicz's avatar
      alim15x3: trivial cleanup for ali_set_pio_mode() · df98668f
      Bartlomiej Zolnierkiewicz authored
      Remove commented out code and stale comment.
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      df98668f
    • Adrian Bunk's avatar
      make ide-iops.c:SELECT_MASK() static · e0b4eb51
      Adrian Bunk authored
      SELECT_MASK() can now become static.
      
      [bart: remove space between function name and open parenthesis]
      Signed-off-by: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      e0b4eb51
    • Maciej W. Rozycki's avatar
      SWARM IDE: Fix up following changes to ide_hwif_t · 4d4423ca
      Maciej W. Rozycki authored
       Following recent changes to ide_hwif_t update the SWARM IDE driver to use 
      hw_regs_t to initialize port mapping.  Plus minor layout adjustments along 
      the lines of other drivers.
      Signed-off-by: default avatarMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      4d4423ca
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · dd286422
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
        RDMA/cxgb3: Wrap the software send queue pointer as needed on flush
        IB/ipath: Change ipath_devdata.ipath_sdma_status to be unsigned long
        IB/ipath: Make ipath_portdata work with struct pid * not pid_t
        IB/ipath: Fix RDMA read response sequence checking
        IB/ipath: Fix many locking issues when switching to error state
        IB/ipath: Fix RC and UC error handling
        RDMA/nes: Fix up nes_lro_max_aggr module parameter
      dd286422
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb · 4717df58
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (70 commits)
        V4L/DVB (7900): pvrusb: Fix Kconfig if DVB=m V4L_core=y
        V4L/DVB (7899): Fixes a few remaining Kbuild issues at common/tuners
        V4L/DVB (7898): Fix VIDEO_MEDIA Kconfig logic
        V4L/DVB (7895): tveeprom: update Hauppauge analog audio and video decoders
        V4L/DVB (7893): xc5000: bug-fix: allow multiple devices in a single system
        V4L/DVB (7891): cx18/ivtv: fix open() kernel oops
        V4L/DVB (7890): cx18: removed bogus and confusing conditional
        V4L/DVB (7889): cx18: improve HVR-1600 detection.
        V4L/DVB (7888): cx18: minor card definition updates.
        V4L/DVB (7887): cx18: fix Compro H900 analog support.
        V4L/DVB (7881): saa7134: fixed a compile warning in saa7134-core.c
        V4L/DVB (7880): saa7134: remove explicit GPIO initialization
        V4L/DVB(7879): Adding cx18 Support for mxl5005s
        V4L/DVB(7878): mxl55005s: Makefile and Kconfig additions
        V4L/DVB(7877): mxl5005s: Ensure debug is off
        V4L/DVB(7876): mxl5005s: Remove incorrect copyright holders
        V4L/DVB(7875): mxl5005s: Remove redundant functions
        V4L/DVB(7874): mxl5005s: Fix function statics
        V4L/DVB(7873): mxl5005s: Fix header includes.
        V4L/DVB(7872): mxl5005s: checkpatch.pl compliance
        ...
      4717df58
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6 · fc99824c
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6:
        Driver core: struct class remove children list
        block: do_mounts - accept root=<non-existant partition>
      fc99824c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · e90a4e47
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (22 commits)
        USB: atmel_usba_udc fixes, mostly disconnect()
        USB: pxa27x_udc: minor fixes
        usbtest: comment on why this code "expects" negative and positive errnos
        USB: remove PICDEM FS USB demo (04d8:000c) device from ldusb
        USB: option: add new Dell 5520 HSDPA variant
        USB: unusual_devs: Add support for GI 0401 SD-Card interface
        USB: serial gadget: descriptor cleanup
        USB: serial gadget: simplify endpoint handling
        USB: serial gadget: remove needless data structure
        USB: serial gadget: cleanup/reorg
        usb: fix compile warning in isp1760
        USB: do not handle device 1410:5010 in 'option' driver
        USB: Fix unusual_devs.h ordering
        USB: add Zoom Telephonics Model 3095F V.92 USB Mini External modem to cdc-acm
        USB: Support for the ET502HS HDSPA modem in option driver
        USB: Support for the ET502HS HDSPA modem
        usb: fix integer as NULL pointer warnings found by sparse
        USB: isp1760: fix printk format
        USB: add Telstra NextG CDMA id to option driver
        USB: add association.h
        ...
      e90a4e47
    • Dave Young's avatar
      Driver core: struct class remove children list · 0a3ad00c
      Dave Young authored
      because of the class_device was removed, now do the children list removing
      Signed-off-by: default avatarDave Young <hidave.darkstar@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      0a3ad00c
    • Kay Sievers's avatar
      block: do_mounts - accept root=<non-existant partition> · 30f2f0eb
      Kay Sievers authored
      Some devices, like md, may create partitions only at first access,
      so allow root= to be set to a valid non-existant partition of an
      existing disk. This applies only to non-initramfs root mounting.
      
      This fixes a regression from 2.6.24 which did allow this to happen and
      broke some users machines :(
      Acked-by: default avatarNeil Brown <neilb@suse.de>
      Tested-by: default avatarJoao Luis Meloni Assirati <assirati@nonada.if.usp.br>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      30f2f0eb
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 6aa5fc43
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (73 commits)
        net: Fix typo in net/core/sock.c.
        ppp: Do not free not yet unregistered net device.
        netfilter: xt_iprange: module aliases for xt_iprange
        netfilter: ctnetlink: dump conntrack ID in event messages
        irda: Fix a misalign access issue. (v2)
        sctp: Fix use of uninitialized pointer
        cipso: Relax too much careful cipso hash function.
        tcp FRTO: work-around inorder receivers
        tcp FRTO: Fix fallback to conventional recovery
        New maintainer for Intel ethernet adapters
        DM9000: Use delayed work to update MII PHY state
        DM9000: Update and fix driver debugging messages
        DM9000: Add __devinit and __devexit attributes to probe and remove
        sky2: fix simple define thinko
        [netdrvr] sfc: sfc: Add self-test support
        [netdrvr] sfc: Increment rx_reset when reported as driver event
        [netdrvr] sfc: Remove unused macro EFX_XAUI_RETRAIN_MAX
        [netdrvr] sfc: Fix code formatting
        [netdrvr] sfc: Remove kernel-doc comments for removed members of struct efx_nic
        [netdrvr] sfc: Remove garbage from comment
        ...
      6aa5fc43
    • Nick Piggin's avatar
      fix SMP data race in pagetable setup vs walking · 362a61ad
      Nick Piggin authored
      There is a possible data race in the page table walking code. After the split
      ptlock patches, it actually seems to have been introduced to the core code, but
      even before that I think it would have impacted some architectures (powerpc
      and sparc64, at least, walk the page tables without taking locks eg. see
      find_linux_pte()).
      
      The race is as follows:
      The pte page is allocated, zeroed, and its struct page gets its spinlock
      initialized. The mm-wide ptl is then taken, and then the pte page is inserted
      into the pagetables.
      
      At this point, the spinlock is not guaranteed to have ordered the previous
      stores to initialize the pte page with the subsequent store to put it in the
      page tables. So another Linux page table walker might be walking down (without
      any locks, because we have split-leaf-ptls), and find that new pte we've
      inserted. It might try to take the spinlock before the store from the other
      CPU initializes it. And subsequently it might read a pte_t out before stores
      from the other CPU have cleared the memory.
      
      There are also similar races in higher levels of the page tables. They
      obviously don't involve the spinlock, but could see uninitialized memory.
      
      Arch code and hardware pagetable walkers that walk the pagetables without
      locks could see similar uninitialized memory problems, regardless of whether
      split ptes are enabled or not.
      
      I prefer to put the barriers in core code, because that's where the higher
      level logic happens, but the page table accessors are per-arch, and open-coding
      them everywhere I don't think is an option. I'll put the read-side barriers
      in alpha arch code for now (other architectures perform data-dependent loads
      in order).
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      362a61ad
    • Nick Piggin's avatar
      read_barrier_depends arch fixlets · 73f10281
      Nick Piggin authored
      read_barrie_depends has always been a noop (not a compiler barrier) on all
      architectures except SMP alpha. This brings UP alpha and frv into line with all
      other architectures, and fixes incorrect documentation.
      Signed-off-by: default avatarNick Piggin <npiggin@suse.de>
      Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      73f10281
    • David Brownell's avatar
      USB: atmel_usba_udc fixes, mostly disconnect() · 40517707
      David Brownell authored
      Various fixes to Atmel's high speed UDC driver.
      
        * Issue some missing disconnect() calls.  Currently they are only made
          when VBUS power goes away (on boards where the driver can sense such
          changes), but that's not enough for gadget drivers to clean out all
          the state that's needed.  Missing calls were:
      
            - After USB reset, before starting enumeration.
            - When unregistering a gadget driver, before unbind().
      
        * Don't assume gadget drivers provide disconnect callbacks; make sure
          to not call through a null pointer!
      
        * When the driver doesn't provide an unbind() callback, refuse to
          unregister it.
      
      Also remove two bogus "error" messages:
      
        * Related to mis-handling of disconnect() ... don't emit error messages
          for disconnect() handlers that disable endpoints.  All of them should
          be doing that; the problem is (unfixed) oddness in atmel_usba_udc.
      
        * Don't emit a diagnostic for a curious and transient nonfatal error
          that shows up sometimes with EP0.
      
      Those messages spammed syslog, for no good reason.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Acked-by: default avatarHaavard Skinnemoen <haavard.skinnemoen@atmel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      40517707
    • Robert Jarzmik's avatar
      USB: pxa27x_udc: minor fixes · 5a59bc54
      Robert Jarzmik authored
      Minor fixes to pxa27x udc driver :
       - don't clobber driver model bus_id field
       - wrong endianess fix (no functional change; cpu is little-endian)
       - double udc disable fix
       - resume/suspend fix (OTG hold bit)
       - make driver pxa27x dependant (check cpu at runtime)
      Signed-off-by: default avatarRobert Jarzmik <rjarzmik@free.fr>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      5a59bc54
    • Marcin Slusarz's avatar
      usbtest: comment on why this code "expects" negative and positive errnos · 6def7553
      Marcin Slusarz authored
      On Mon, May 12, 2008 at 01:02:22AM -0700, David Brownell wrote:
      > On Sunday 11 May 2008, Marcin Slusarz wrote:
      > > 
      > > test_ctrl_queue expects (?) positive and negative errnos.
      > > what is going on here?
      > 
      > The sign is just a way to flag something:
      > 
      >                 /* some faults are allowed, not required */
      > 
      > The negative ones are required.  Positive codes are optional,
      > in the sense that, depending on how the peripheral happens
      > to be implemented, they won't necessarily be triggered.
      > 
      > For example, the test to fetch a device qualifier desriptor
      > must succeed if the device is running at high speed.  So that
      > test is marked as negative.  But when it's full speed, it
      > could legitimately fail; marked as positive.  And so on for
      > other tests.
      > 
      > Look at how the codes are *interpreted* to see it work.
      
      Lets document it.
      
      Based on comment from David Brownell <david-b@pacbell.net>.
      Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6def7553
    • Xiaofan Chen's avatar
      USB: remove PICDEM FS USB demo (04d8:000c) device from ldusb · 5fc89390
      Xiaofan Chen authored
      Microchip has changed the PICDEM FS USB demo device (0x04d8:000c)
      to use bulk transfer and not interrupt transfer. So I've updated the libusb
      based program here (Post #31).
      	http://forum.microchip.com/tm.aspx?m=106426&mpage=2
      
      So I believe that the in-kernel ldusb driver will no longer work with the
      demo firmware.  It should be removed.
      Signed-off-by: default avatarXiaofan Chen <xiaofanc@gmail.com>
      Cc: Michael Hund <MHund@LD-Didactic.de>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      5fc89390
    • Dan Williams's avatar
      USB: option: add new Dell 5520 HSDPA variant · 96cb15cf
      Dan Williams authored
      New variant of the 5520 found by Luke Sheldrick.
      Signed-off-by: default avatarDan Williams <dcbw@redhat.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      96cb15cf
    • Filip Aben's avatar
      USB: unusual_devs: Add support for GI 0401 SD-Card interface · e7c6f80f
      Filip Aben authored
      Enables the SD-Card interface on the GI 0401 HSUPA card from Option.
      
      The unusual_devs.h entry is necessary because the device descriptor is
      vendor-specific. That prevents usb-storage from binding to it as an
      interface driver.
      
      This revised patch adds a small comment explaining why and reduces the
      rev range.
      
      T:  Bus=02 Lev=01 Prnt=01 Port=06 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
      D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
      P:  Vendor=0af0 ProdID=7401 Rev= 0.00
      S:  Manufacturer=Option N.V.
      S:  Product=Globetrotter HSUPA Modem
      C:* #Ifs=10 Cfg#= 1 Atr=80 MxPwr=500mA
      I:* If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 0 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 2 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 2 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 3 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 3 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 4 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 4 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 5 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 5 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 6 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 6 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 7 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      I:  If#= 7 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 8 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
      E:  Ad=89(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
      E:  Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=09(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
      I:* If#= 9 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
      E:  Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      Signed-off-by: default avatarFilip Aben <f.aben@option.com>
      Signed-off-by: default avatarPhil Dibowitz <phil@ipom.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e7c6f80f
    • David Brownell's avatar
      USB: serial gadget: descriptor cleanup · b9370332
      David Brownell authored
      Bugfix some serial gadget descriptors:
      
       - Stop mangling the low bits (controller type ID) of bcdDevice;
         just use the high bits for a driver revision code.
      
       - Serial numbers that aren't specific to individual devices
         are useless; stop reporting "0" for this.
      
       - Since it's not part of a CDC-conformant function, the "bulk only"
         configuration shouldn't be using "CDC Data" as its interface class.
         Switch over to using CLASS_VENDOR_SPEC (different value, 0xff).
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Al Borchers <alborchers@steinerpoint.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b9370332
    • David Brownell's avatar
      USB: serial gadget: simplify endpoint handling · 734d37c6
      David Brownell authored
      Switch serial gadget away from a *very* old idiom:  just remember
      the endpoints we'll be using, instead of looking them up by name
      each time.  This is a net code and data (globals) shrink.
      
      Also fix a small memory leak in the rmmod path, by working the
      same as the disconnect code.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Al Borchers <alborchers@steinerpoint.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      734d37c6
    • David Brownell's avatar
      USB: serial gadget: remove needless data structure · 2c2d28a0
      David Brownell authored
      This removes a needless data structure from the serial gadget code;
      it's a small code shrink, and a larger data shrink.
      
      Since "struct usb_request" already has a "struct list_head" reserved
      for use by gadget drivers, the serial gadget code doesn't need to
      allocate wrapper structs to hold that list ... it can (and should!)
      just use the list_head provided for that exact use.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Al Borchers <alborchers@steinerpoint.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      2c2d28a0
    • David Brownell's avatar
      USB: serial gadget: cleanup/reorg · 9079e91b
      David Brownell authored
      Some cleanup/reorg of g_serial ... simplifying it, and disentangling
      its structure so morphing it into a "function" driver (combinable with
      other interfaces) should be less painful.
      
       - Remove most forward declarations
           * put tty and gadget driver structs after their contents
           * snug module init/exit decls next to their functions
           * reordered some functions
      
       - Other cleanup:
           * convert a funky macro to an inline function
           * snug up module params next to their declarations
           * add missing driver.owner
           * add separator lines between major driver sections
      
       - Add comments re potential parameter/#define changes:
           * only supports one port (shrank GS_NUM_PORTS)
           * changing from 9600-8-N-1 affects multiple sites
      
       - Remove net2280-specific optimization ... it was being done
         way too late, can be done by net2280 module options, and in
         any case doesn't matter at any sane serial data rates.
      
      There are no behavioral changes, but the macro thing saves I-space.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Al Borchers <alborchers@steinerpoint.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      
      9079e91b
    • Sebastian Siewior's avatar
      usb: fix compile warning in isp1760 · fe312e77
      Sebastian Siewior authored
      drivers/usb/host/isp1760-if.c:275: warning: 'ret' is used uninitialized in this function
      Signed-off-by: default avatarSebastian Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      fe312e77
    • Eugeniy Meshcheryakov's avatar
      USB: do not handle device 1410:5010 in 'option' driver · cdafc37a
      Eugeniy Meshcheryakov authored
      This device is not a serial port, but a virtual CD-ROM device. For
      example with my Novatel MC950D:
      
      lsusb -v -d 1410:5010 | grep InterfaceClass
            bInterfaceClass         8 Mass Storage
      
      After some time (ca. 5min) or if virtual CD is ejected, device id
      changes to 1410:4400:
      
      % lsusb -v -d 1410:4400 | grep InterfaceClass
            bInterfaceClass       255 Vendor Specific Class
            bInterfaceClass       255 Vendor Specific Class
      
      Variable name says that 0x5010 is a Novatel U727, but searching in
      internet shows, that this device also provides virtual CD that should be
      ejected before use. Product id for serial port in this case is 0x4100.
      Signed-off-by: default avatarEugeniy Meshcheryakov <eugen@debian.org>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      cdafc37a