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 -
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 -
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 -
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=2So 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 -
New variant of the 5520 found by Luke Sheldrick.
Signed-off-by: Dan Williams
Cc: stable
Signed-off-by: Greg Kroah-Hartman -
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=0msSigned-off-by: Filip Aben
Signed-off-by: Phil Dibowitz
Cc: stable
Signed-off-by: Greg Kroah-Hartman -
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 -
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 -
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 -
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 -
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 -
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 StorageAfter 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 ClassVariable 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 -
This patch fixes ordering problems with entries in unusual_devs.h.
Signed-off-by: Phil Dibowitz
Signed-off-by: Greg Kroah-Hartman -
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 -22Adding 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 -
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 -
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 -
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 pointerSigned-off-by: Harvey Harrison
Signed-off-by: Greg Kroah-Hartman -
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 -
As reported by Magnus Boman
Cc: Magnus Boman
Cc: stable
Signed-off-by: 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 -
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
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 -
Add ThinkOptics WavIt to cp2101 device table
Signed-off-by: Bernhard Beck
Signed-off-by: Linus Torvalds
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
07 May, 2008
1 commit
-
Sparc doesn't have some of the OF interfaces this driver
wants to use.Acked-by: Benjamin Herrenschmidt
Signed-off-by: David S. Miller
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 -
Gadget tells controller driver to ignore Clear-Feature(HALT_ENDPOINT)
Signed-off-by: David Lopo
Acked-by: Alan Stern -
Signed-off-by: Alan Cox
Signed-off-by: Greg Kroah-Hartman -
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 -
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 -
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 -
This patch adds HCD support for the Cypress c67x00 family of devices.
Signed-off-by: Peter Korsgaard
Signed-off-by: Greg Kroah-Hartman -
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 -
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 -
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 -
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 -
Signed-off-by: Andrew Lunn
Signed-off-by: Matthew Dharm
Signed-off-by: Greg Kroah-Hartman -
Add more usb device ids to the ftdi driver.
From: Peter Mack
Signed-off-by: Greg Kroah-Hartman -
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=0x2Signed-off-by: Yoshihiro Shimoda
Signed-off-by: Greg Kroah-Hartman -
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