15 May, 2008

21 commits

  • 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: David Brownell
    Acked-by: Haavard Skinnemoen
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • 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: Robert Jarzmik
    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Robert Jarzmik
     
  • 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 .

    Signed-off-by: Marcin Slusarz
    Cc: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Marcin Slusarz
     
  • 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: Xiaofan Chen
    Cc: Michael Hund
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Xiaofan Chen
     
  • New variant of the 5520 found by Luke Sheldrick.

    Signed-off-by: Dan Williams
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Dan Williams
     
  • 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: Filip Aben
    Signed-off-by: Phil Dibowitz
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Filip Aben
     
  • 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: David Brownell
    Cc: Al Borchers
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • 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: David Brownell
    Cc: Al Borchers
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • 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: David Brownell
    Cc: Al Borchers
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • 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: David Brownell
    Cc: Al Borchers
    Cc: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    David Brownell
     
  • drivers/usb/host/isp1760-if.c:275: warning: 'ret' is used uninitialized in this function

    Signed-off-by: Sebastian Siewior
    Signed-off-by: Greg Kroah-Hartman

    Sebastian Siewior
     
  • 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: Eugeniy Meshcheryakov
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Eugeniy Meshcheryakov
     
  • This patch fixes ordering problems with entries in unusual_devs.h.

    Signed-off-by: Phil Dibowitz
    Signed-off-by: Greg Kroah-Hartman

    Phil Dibowitz
     
  • 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: Iain McFarlane
    Acked-by: Oliver Neukum
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Iain McFarlane
     
  • 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: Mauro Andreolini
    Signed-off-by: Matthias Urlichs
    Signed-off-by: Greg Kroah-Hartman

    andreoli@samba.ing.unimo.it
     
  • 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: Mauro Andreolini
    Acked-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    andreoli@samba.ing.unimo.it
     
  • 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: Harvey Harrison
    Signed-off-by: Greg Kroah-Hartman

    Harvey Harrison
     
  • 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: Randy Dunlap
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     
  • As reported by Magnus Boman

    Cc: Magnus Boman
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • 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: Alan Stern
    Cc: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This should work on a KRZR K1m, and some other Motorola phones that do
    not use the "standard" cdc ACM protocol to talk to USB hosts.

    Tested-by: Jeff Garzik
    Cc: Jiang Dejun
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

12 May, 2008

2 commits

  • This patch fixes bug #10627 which caused the compilation error below.

    CC [M] drivers/usb/c67x00/c67x00-ll-hpi.o
    drivers/usb/c67x00/c67x00-ll-hpi.c: In function `ll_recv_msg':
    drivers/usb/c67x00/c67x00-ll-hpi.c:243: erreur: `HZ' undeclared (first use in this function)
    drivers/usb/c67x00/c67x00-ll-hpi.c:243: erreur: (Each undeclared identifier is reported only once
    drivers/usb/c67x00/c67x00-ll-hpi.c:243: erreur: for each function it appears in.)

    Signed-off-by: Fernando Luis Vazquez Cao
    Signed-off-by: Linus Torvalds

    Fernando Luis Vázquez Cao
     
  • Add ThinkOptics WavIt to cp2101 device table

    Signed-off-by: Bernhard Beck
    Signed-off-by: Linus Torvalds

    Bernhard Beck
     

09 May, 2008

1 commit

  • The file drivers/usb/serial/iuu_phoenix.c uses "int" for flags. This can
    cause hard to find bugs on some architectures. This patch converts the flags
    to use "long" instead.

    This bug was discovered by doing an allyesconfig make on the -rt kernel where
    checks are done to ensure all flags are of size sizeof(long).

    Signed-off-by: Steven Rostedt
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Steven Rostedt
     

07 May, 2008

1 commit


03 May, 2008

15 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6:
    [SCSI] aic94xx: fix section mismatch
    [SCSI] u14-34f: Fix 32bit only problem
    [SCSI] dpt_i2o: sysfs code
    [SCSI] dpt_i2o: 64 bit support
    [SCSI] dpt_i2o: move from virt_to_bus/bus_to_virt to dma_alloc_coherent
    [SCSI] dpt_i2o: use standard __init / __exit code
    [SCSI] megaraid_sas: fix suspend/resume sections
    [SCSI] aacraid: Add Power Management support
    [SCSI] aacraid: Fix jbod operations scan issues
    [SCSI] aacraid: Fix warning about macro side-effects
    [SCSI] add support for variable length extended commands
    [SCSI] Let scsi_cmnd->cmnd use request->cmd buffer
    [SCSI] bsg: add large command support
    [SCSI] aacraid: Fix down_interruptible() to check the return value correctly
    [SCSI] megaraid_sas; Update the Version and Changelog
    [SCSI] ibmvscsi: Handle non SCSI error status
    [SCSI] bug fix for free list handling
    [SCSI] ipr: Rename ipr's state scsi host attribute to prevent collisions
    [SCSI] megaraid_mbox: fix Dell CERC firmware problem

    Linus Torvalds
     
  • Gadget tells controller driver to ignore Clear-Feature(HALT_ENDPOINT)

    Signed-off-by: David Lopo
    Acked-by: Alan Stern

    David Lopo
     
  • Signed-off-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Alan Cox
     
  • Given that the bulk of the Kconfig file is enclosed in "if USB_ATM",
    remove the unnecessary dependencies.

    Signed-off-by: Robert P. J. Day
    Signed-off-by: Greg Kroah-Hartman

    Robert P. J. Day
     
  • This patch (as1084b) fixes the way uhci-hcd handles polling and
    remote wakeups for its root hubs. When remote wakeup is disabled,
    neither interrupts nor polling should be enabled during a root-hub
    suspend. Likewise, if interrupts are enabled during suspend then
    polling isn't needed.

    Furthermore the EGSM (Enter Global Suspend Mode) bit shouldn't be set
    in the Command register unless remote wakeup is enabled. Apparently
    some controllers will issue a remote-wakeup interrupt whenever EGSM
    is on, even if Resume-Detect interrupts are supposedly disabled.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • The patch (as1086) works around a bogus "uninitialized variable"
    warning generated by some versions of GCC.

    Signed-off-by: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alan Stern
     
  • This patch adds HCD support for the Cypress c67x00 family of devices.

    Signed-off-by: Peter Korsgaard
    Signed-off-by: Greg Kroah-Hartman

    Peter Korsgaard
     
  • This patch add the core driver for the c67x00 USB OTG controller. The core
    driver is responsible for the platform bus binding and creating either
    USB HCD or USB Gadget instances for each of the serial interface engines
    on the chip.

    This driver does not directly implement the HCD or gadget behaviours; it
    just controls access to the chip.

    Signed-off-by: Peter Korsgaard
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Peter Korsgaard
     
  • This patch adds the low level support code for the Cypress c67x00 family of
    OTG controllers. The low level code is responsible for register access and
    implements the software protocol for communicating with the 16bit
    microcontroller inside the c67x00 device.

    Communication is done over the HPI interface (16bit SRAM-like parallel bus).

    Signed-off-by: Peter Korsgaard
    Acked-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    Peter Korsgaard
     
  • The following patch fixes a [probable] copy & paste mistake in
    airprime.c. Instead of unlocking an acquired mutex, the actual
    code tries to lock it again.

    Signed-off-by: Leonardo Chiquitto
    Signed-off-by: Greg Kroah-Hartman

    Leonardo Chiquitto
     
  • drivers/usb/storage/unusual_devs.h lists the address
    linux-usb-devel@lists.sourceforge.net for patches to that file. This
    address results in a bounce and a pointer to vger. This patch updates
    the address in the header file.

    Signed-off-by: Andrew Lunn
    Signed-off-by: Greg Kroah-Hartman

    Andrew Lunn
     
  • Signed-off-by: Andrew Lunn
    Signed-off-by: Matthew Dharm
    Signed-off-by: Greg Kroah-Hartman

    Andrew Lunn
     
  • Add more usb device ids to the ftdi driver.

    From: Peter Mack
    Signed-off-by: Greg Kroah-Hartman

    Peter Mack
     
  • When I used ohci-sm501, hcd_alloc_coherent() in map_urb_for_dma() is not
    called, because usb_sg_init() always sets URB_NO_TRANSFER_DMA_MAP.

    dmesg (CONFIG_USB_STORAGE_DEBUG enabled):

    usb-storage: Bulk Command S 0x43425355 T 0x1 L 36 F 128 Trg 0 LUN 0 CL 6
    usb-storage: usb_stor_bulk_transfer_buf: xfer 31 bytes
    usb-storage: Status code 0; transferred 31/31
    usb-storage: -- transfer complete
    usb-storage: Bulk command transfer result=0
    usb-storage: usb_stor_bulk_transfer_sglist: xfer 36 bytes, 1 entries
    usb-storage: Status code -75; transferred 0/36
    usb-storage: -- babble
    usb-storage: Bulk data transfer result 0x3
    usb-storage: Attempting to get CSW...
    usb-storage: usb_stor_bulk_transfer_buf: xfer 13 bytes
    usb-storage: Status code 0; transferred 13/13
    usb-storage: -- transfer complete
    usb-storage: Bulk status result = 0
    usb-storage: Bulk Status S 0x53425355 T 0x1 R 0 Stat 0x0
    usb-storage: scsi cmd done, result=0x2

    Signed-off-by: Yoshihiro Shimoda
    Signed-off-by: Greg Kroah-Hartman

    Yoshihiro Shimoda
     
  • Initialize timer earlier so if an error occurs allocating USB request
    or buffer request (zero_bind) Gadget Zero will not hang trying to
    delete an uninitialized timer (zero_unbind).

    Signed-off-by: David Lopo
    Signed-off-by: David Brownell
    Signed-off-by: Greg Kroah-Hartman

    David Lopo