1. 30 May, 2008 31 commits
  2. 29 May, 2008 9 commits
    • Li Yang's avatar
      USB: fsl_usb2_udc: fix recursive lock · 185e3dea
      Li Yang authored
      UDC needs to release lock before calling out to gadget driver, since
      it may need to reenter.  The change fixes kernel BUG observed on rt
      kernel.
      
      > kernel BUG at kernel/rtmutex.c:683!
      > stopped custom tracer.
      > Oops: Exception in kernel mode, sig: 5 [#1]
      > PREEMPT MPC834x ITX
      > NIP: c021629c LR: c0216270 CTR: 00000000
      > REGS: df761d70 TRAP: 0700   Not tainted  (2.6.23.9-rt13)
      > MSR: 00021032 <ME,IR,DR>  CR: 28000022  XER: 00000000
      > TASK = df632080[241] 'IRQ-38' THREAD: df760000
      > GPR00: 00000001 df761e20 df632080 00000000 11111111 00000000 df761e6c
      > 00000000
      > GPR08: df761e48 00000000 df761e50 00000000 80000000 ede5cdde 1fffd000
      > 00800000
      > GPR16: ffffffff 00000000 007fff00 00000040 00000000 007ffeb0 00000000
      > 1fff8b08
      > GPR24: 00000000 00000026 00000000 df79a320 c026b2e8 c02240bc 00009032
      > df79a320
      > NIP [c021629c] rt_spin_lock_slowlock+0x9c/0x200
      > LR [c0216270] rt_spin_lock_slowlock+0x70/0x200
      > Call Trace:
      > [df761e20] [c0216270] rt_spin_lock_slowlock+0x70/0x200 (unreliable)
      > [df761e90] [c0182828] fsl_ep_disable+0xcc/0x154
      > [df761eb0] [c0184d30] eth_reset_config+0x88/0x1d0
      > [df761ed0] [c0184ec0] eth_disconnect+0x48/0x64
      > [df761ef0] [c01831a4] reset_queues+0x60/0x78
      > [df761f00] [c0183b74] fsl_udc_irq+0x9b8/0xa58
      > [df761f50] [c003ef30] handle_IRQ_event+0x64/0x100
      > [df761f80] [c003f758] thread_simple_irq+0x6c/0xc8
      > [df761fa0] [c003f888] do_irqd+0xd4/0x2e4
      > [df761fd0] [c0032284] kthread+0x50/0x8c
      > [df761ff0] [c000f9b4] kernel_thread+0x44/0x60
      Signed-off-by: default avatarLi Yang <leoli@freescale.com>
      Cc: Eugene T. Bordenkircher <Eugene_Bordenkircher@selinc.com>
      Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      185e3dea
    • Michael Karcher's avatar
      USB: usb-serial: option: Don't match Huawei driver CD images · a7f3872c
      Michael Karcher authored
      Add the interface info matching to all Huawei cards, as they all also
      contain a Mass Storage Device interface (usually containing Windows
      drivers) which should not get bound by this driver.
      
      See also drivers/usb/storage/unusual_devs.h
      Signed-off-by: default avatarMichael Karcher <kernel@mkarcher.dialup.fu-berlin.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      a7f3872c
    • Steve Murphy's avatar
      USB: pl2303: another product ID · 4be2fa18
      Steve Murphy authored
      I've just got a USB GPRS/EDGE modem branded Manufacturer Micromax Model
      MMX610U (see http://www.airtel.in/level2_t3data.aspx?path=1/106/179)
      working by adding another product ID to pl2303.  Modem info reports same
      module as  Max Arnold's i.e.SIMCOM SIM600  but  with product ID 0x0612
      (cf Ox0611).
      
      From: Steve Murphy <steve@gnusis.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      4be2fa18
    • René Rebe's avatar
      USB: add another scanner quirk · 598eff6d
      René Rebe authored
      Like the HP53{00,70} scanner other devices of the OEM Avision require
      the USB_QUIRK_STRING_FETCH_255 to correct set a configuration with
      "recent" Linux kernels.
      Signed-off-by: default avatarRené Rebe <rene@exactcode.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      598eff6d
    • Javier Smaldone's avatar
      USB: Add support for ROKR W5 in unusual_devs.h · 2a8bc9e7
      Javier Smaldone authored
      This patch adds support for rev 2 of an existing unusual_devs entry
      enabling ROKR W5s to work. Greg, please apply.
      
      From: Javier Smaldone <javier@smaldone.com.ar>
      Signed-off-by: default avatarPhil Dibowitz <phil@ipom.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      2a8bc9e7
    • Phil Dibowitz's avatar
      USB: Fix M600i unusual_devs entry · c5f23b0e
      Phil Dibowitz authored
      It turns out that the unusual_devs entry for the Motorola M600i needs
      another flag. This patch adds it. Thanks to Atte André Jensen
      <atte@ballbreaker.dk>.
      Signed-off-by: default avatarPhil Dibowitz <phil@ipom.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c5f23b0e
    • Alan Stern's avatar
      USB: usb-storage: unusual_devs update for Cypress ATACB · c7257bd2
      Alan Stern authored
      This patch (as1101) updates the unusual_devs entry for the Cypress
      ATACB pass-through.  The protocol field is changed from US_PR_BULK to
      US_PR_DEVICE, since the Cypress devices already set bInterfaceProtocol
      to Bulk-only.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c7257bd2
    • Alan Stern's avatar
      USB: EHCI: fix performance regression · fa38dfcc
      Alan Stern authored
      This patch (as1099) fixes a performance regression in ehci-hcd.  The
      fundamental problem is that queue headers get removed from the
      schedule too quickly, since the code checks for a counter advancing
      rather than making an actual time-based check.  The latency involved
      in removing the queue header and then relinking it can severely
      degrade certain kinds of workloads.
      
      The patch replaces a simple counter with a timestamp derived from the
      controller's uframe value.  In addition, the delay for unlinking an
      idle queue header is increased from 5 ms to 10 ms; since some
      controllers (nVidia) have a latency of up to 1 ms for unlinking, this
      reduces the relative impact from 20% to 10%.
      
      Finally, a logical error left over from the IAA watchdog-timer
      conversion is corrected.  Now the driver will always either unlink an
      idle queue header or set up a timer to unlink it later.  The old code
      would sometimes fail to do either.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Leonid <leonidv11@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      fa38dfcc
    • Alan Stern's avatar
      USB: EHCI: fix bug in Iso scheduling · b40e43fc
      Alan Stern authored
      This patch (as1098) changes the way ehci-hcd schedules its periodic
      Iso transfers.  That the current scheduling code is wrong is clear on
      the face of it: Sometimes it returns -EL2NSYNC (meaning that an URB
      couldn't be scheduled because it was submitted too late), but it does
      this even when the URB_ISO_ASAP flag is set (meaning the URB should be
      scheduled as soon as possible).
      
      The new code properly implements as-soon-as-possible scheduling,
      assigning the next unexpired slot as the URB's starting point.  It
      also is more careful about checking for Iso URB completion: It doesn't
      bother to check for activity during frames that are already over,
      and it allows for the possibility that some of the URB's packets may
      have raced the hardware when they were submitted and so never got used
      (the packet status is set to -EXDEV).
      
      This fixes problems several people have experienced with USB video
      applications.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b40e43fc