1. 15 May, 2008 1 commit
    • Huang, Xiaolan's avatar
      [IA64] fix personality(PER_LINUX32) performance issue · 839052d2
      Huang, Xiaolan authored
      The patch aims to fix a performance issue for the syscall
      personality(PER_LINUX32).
      
      On IA-64 box, the syscall personality (PER_LINUX32) has poor performance
      because it failed to find the Linux/x86 execution domain. Then it tried
      to load the kernel module however it failed always and it used the default
      execution domain PER_LINUX instead. Requesting kernel modules is very
      expensive. It caused the performance issue. (see the function
      lookup_exec_domain in kernel/exec_domain.c).
      
      To resolve the issue, execution domain Linux/x86 is always registered in
      initialization time for IA-64 architecture.
      Signed-off-by: default avatarXiaolan Huang <xiaolan.huang@intel.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      839052d2
  2. 14 May, 2008 39 commits
    • Prarit Bhargava's avatar
      [IA64] Properly unregister legacy interrupts · 3fb2c74e
      Prarit Bhargava authored
      acpi_unregister_gsi() should "undo" what acpi_register_gsi() does.
      
      On systems that have legacy interrupts, acpi_unregister_gsi erroneously calls
      iosapci_unregister_intr() which is wrong to do and causes a loud warning.
      
      acpi_unregister_gsi() should just return in these cases.
      Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      3fb2c74e
    • Simon Holm Thøgersen's avatar
      [IA64] Remove NULL pointer check for argument never passed as NULL. · 7af1d753
      Simon Holm Thøgersen authored
      There is only palinfo_handle_smp as (indirect) user of palinfo_smp_call (by
      way of smp_call_function_single) and surely palinfo_handle_smp never pass
      NULL as parameter for info.
      Signed-off-by: default avatarSimon Holm Thøgersen <odie@cs.aau.dk>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      7af1d753
    • Hidetoshi Seto's avatar
      [IA64] trivial cleanup for perfmon.c · 0fb232fd
      Hidetoshi Seto authored
      Fix a typo, and coding style cleanups for pfm_handle_work().
      Signed-off-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      0fb232fd
    • Hidetoshi Seto's avatar
      [IA64] trivial cleanup for entry.S · 2e513fe4
      Hidetoshi Seto authored
      This patch does:
       - make comment at next to resched check more robust
       - move "re-check" comments to next to where change predicate regs
      Signed-off-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      2e513fe4
    • Hidetoshi Seto's avatar
      [IA64] fix interrupt masking for pending works on kernel leave · 3633c730
      Hidetoshi Seto authored
      [Bug-fix for "[BUG?][2.6.25-mm1] sleeping during IRQ disabled"]
      
      This patch does:
       - enable interrupts before calling schedule() as same as others, ex. x86
       - enable interrupts during ia64_do_signal() and ia64_sync_krbs()
       - do_notify_resume_user() is still called with interrupts disabled, since
         we can take short path of fsys_mode if-statement quickly.
       - pfm_handle_work() is also called with interrupts disabled, since
         it can deal interrupt mask within itself.
       - fix/add some comments/notes
      Reported-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Signed-off-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      3633c730
    • Alex Chiang's avatar
      [IA64] allow user to force_pal_cache_flush · f13ae30e
      Alex Chiang authored
      The sequence executed in check_sal_cache_flush:
      
      	- pend a timer interrupt
      	- call SAL_CACHE_FLUSH
      	- see if interrupt is still pending
      
      can hang HP machines with buggy SAL_CACHE_FLUSH implementations.
      
      Provide a kernel command-line argument to allow users skip this
      check if desired. Using this parameter will force ia64_sal_cache_flush
      to call ia64_pal_cache_flush() instead of SAL_CACHE_FLUSH.
      Signed-off-by: default avatarAlex Chiang <achiang@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      f13ae30e
    • Bernhard Walle's avatar
      [IA64] Don't reserve crashkernel memory > 4 GB · 8a3360f0
      Bernhard Walle authored
      Some IA64 machines map all cell-local memory above 4 GB (32 bit limit).
      However, in most cases, the kernel needs some memory below that limit that is
      DMA-capable. So in this machine configuration, the crashkernel will be reserved
      above 4 GB.
      
      For machines that use SWIOTLB implementation because they lack an I/O MMU
      the low memory is required by the SWIOTLB implementation. In that case,
      it doesn't make sense to reserve the crashkernel at all because it's unusable
      for kdump.
      
      A special case is the "hpzx1" machine vector. In theory, it has a I/O MMU, so
      it can be booted above 4 GB. However, in the kdump case that is not possible
      because of changeset 51b58e3e:
      
          On HP zx1 machines, the 'machvec=dig' parameter is needed for the kdump
          kernel to avoid problems with the HP sba iommu.  The problem is that during
          the boot of the kdump kernel, the iommu is re-initialized, so in-flight DMA
          from improperly shutdown drivers causes an IOTLB miss which leads to an
          MCA.  With kdump, the idea is to get into the kdump kernel with as little
          code as we can, so shutting down drivers properly is not an option.
      
          The workaround is to add 'machvec=dig' to the kdump kernel boot parameters.
          This makes the kdump kernel avoid using the sba iommu altogether, leaving
          the IOTLB intact.  Any ongoing DMA falls harmlessly outside the kdump
          kernel.  After the kdump kernel reboots, all devices will have been
          shutdown properly and DMA stopped.
      
      This patch pushes that functionality into the sba iommu initialization
      code, so that users won't have to find the obscure documentation telling
      them about 'machvec=dig'.
      
      This means that also for hpzx1 it's not possible to boot when all
      memory is above the 4 GB limit. So the only machine vectors that can handle
      this case are "sn2" and "uv".
      Signed-off-by: default avatarBernhard Walle <bwalle@suse.de>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      8a3360f0
    • Jack Steiner's avatar
      [IA64] machvec support for SGI UV platform · 22246614
      Jack Steiner authored
      This patch adds the basic IA64 machvec infrastructure to support
      the SGI "UV" platform.
      Signed-off-by: default avatarJack Steiner <steiner@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      22246614
    • Jack Steiner's avatar
      [IA64] Add header files for SGI UV platform · 7868f1ed
      Jack Steiner authored
      Add new UV-specific header files.
      Signed-off-by: default avatarJack Steiner <steiner@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      7868f1ed
    • 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
    • Phil Dibowitz's avatar
      USB: Fix unusual_devs.h ordering · ed3e8fca
      Phil Dibowitz authored
      This patch fixes ordering problems with entries in unusual_devs.h.
      Signed-off-by: default avatarPhil Dibowitz <phil@ipom.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ed3e8fca
    • Iain McFarlane's avatar
      USB: add Zoom Telephonics Model 3095F V.92 USB Mini External modem to cdc-acm · 6149ed5e
      Iain McFarlane authored
      The patch below is a necessary workaround to support the Zoom Telephonics Model 3095F V.92 USB Mini External modem, which fails to initialise properly during normal probing thus:
      
      May  3 22:53:00 imcfarla kernel: drivers/usb/class/cdc-acm.c: Zero length descriptor references
      May  3 22:53:00 imcfarla kernel: cdc_acm: probe of 5-2:1.0 failed with error -22
      
      Adding the patch below causes the probing section to be skipped, and the modem
      then initialises correctly.
      Signed-off-by: default avatarIain McFarlane <iain@imcfarla.homelinux.net>
      Acked-by: default avatarOliver Neukum <oneukum@suse.de>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6149ed5e
    • andreoli@samba.ing.unimo.it's avatar
      USB: Support for the ET502HS HDSPA modem in option driver · 4c7d3137
      andreoli@samba.ing.unimo.it authored
      the proposed patch allows the ET502HS HDSPA modem to be handled by the
      "option" driver. It has been tested for 1 month and works reliably (no
      oopses, no hangs, 300KB/s throughput).
      Signed-off-by: default avatarMauro Andreolini <andreoli@weblab.ing.unimo.it>
      Signed-off-by: default avatarMatthias Urlichs <matthias@urlichs.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      4c7d3137
    • andreoli@samba.ing.unimo.it's avatar
      USB: Support for the ET502HS HDSPA modem · dddcb8b7
      andreoli@samba.ing.unimo.it authored
      The attached patch allows to bypass the ZeroCD mechanism for the ET502HS
      HDSPA modem, so that it can be mounted as a network device.
      Signed-off-by: default avatarMauro Andreolini <andreoli@weblab.ing.unimo.it>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      dddcb8b7
    • Harvey Harrison's avatar
      usb: fix integer as NULL pointer warnings found by sparse · af3d305c
      Harvey Harrison authored
      drivers/usb/host/ohci-sm501.c:93:24: warning: Using plain integer as NULL pointer
      drivers/usb/gadget/amd5536udc.c:3254:9: warning: Using plain integer as NULL pointer
      drivers/usb/gadget/amd5536udc.c:3267:9: warning: Using plain integer as NULL pointer
      drivers/usb/gadget/amd5536udc.c:3277:9: warning: Using plain integer as NULL pointer
      drivers/usb/gadget/amd5536udc.c:3285:9: warning: Using plain integer as NULL pointer
      drivers/usb/gadget/amd5536udc.c:3293:9: warning: Using plain integer as NULL pointer
      Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      af3d305c
    • Randy Dunlap's avatar
      USB: isp1760: fix printk format · 22026473
      Randy Dunlap authored
      Fix printk format warnings in isp1760 (in linux-next):
      
      next-20080430/drivers/usb/host/isp1760-hcd.c:994: warning: format '%d' expects type 'int', but argument 6 has type 'size_t'
      next-20080430/drivers/usb/host/isp1760-hcd.c:1092: warning: format '%d' expects type 'int', but argument 3 has type 'size_t'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      22026473
    • Greg Kroah-Hartman's avatar
      USB: add Telstra NextG CDMA id to option driver · 23cacd65
      Greg Kroah-Hartman authored
      As reported by Magnus Boman <captain.magnus@opensuse.org>
      
      Cc: Magnus Boman <captain.magnus@opensuse.org>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      23cacd65
    • Greg Kroah-Hartman's avatar
      USB: add association.h · d23039ee
      Greg Kroah-Hartman authored
      This will be used by the wireless usb code, as well as potentially other
      USB code.
      
      Originally based on some .c code written by Inaky Perez-Gonzalez
      <inaky.perez-gonzalez@intel.com>
      
      Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      d23039ee
    • Alan Stern's avatar
      USB: create attributes before sending uevent · 2e5f10e4
      Alan Stern authored
      This patch (as1087d) fixes a long-standing problem in usbcore: Device,
      interface, and endpoint attributes aren't added until _after_ the
      creation uevent has already been broadcast.
      
      Unfortunately there are a few attributes which cannot be created that
      early.  The "descriptors" attribute is binary and so must be created
      separately.  The power-management attributes can't be created until
      the dev/power/ group exists.  And the interface string can vary from
      one altsetting to another, so it has to be created dynamically.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      2e5f10e4