aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/host/isp1760-hcd.c
AgeCommit message (Collapse)Author
2009-05-28USB: isp1760: urb_dequeue doesn't always find the urbsWarren Free
The option driver (and presumably others) allocates several URBs when it opens and tries to free them when it closes. The isp1760_urb_dequeue function gets called, but the packet being dequeued is not necessarily at the front of one of the 32 queues. If not, the isp1760_urb_done function doesn't get called for the URB and the process trying to free it hangs forever on a wait_queue. This patch does two things. If the URB being dequeued has others queued behind it, it re-queues them. And it searches the queues looking for the URB being dequeued rather than just looking at the one at the front of the queue. [bigeasy@linutronix] whitespace fixes, reformating Cc: stable <stable@kernel.org> Signed-off-by: Warren Free <wfree@ipmn.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-03-24USB: isp1760: Add a delay before reading the SKIPMAP registers in isp1760-hcd.cCatalin Marinas
The data read from the SKIPMAP registers is not immediately available after writing and the driver panics when a packet is enqueued from the interrupt handler. This patch adds an ndelay(195) before these registers are read (delay value mentioned in section 15.1.1.3 of the ISP1760 data sheet). Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-03-24USB: replace uses of __constant_{endian}Harvey Harrison
The base versions handle constant folding now. Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-03-24USB: Make the isp1760_register function prototype more genericCatalin Marinas
The patch changes the prototype of the isp1760_register() function to use predefined types like phys_addr_t and resource_size_t rather than u64 Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Sebastian Siewior <bigeasy@linutronix.de> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-01-07USB: isp1760: don't auto disable Port1 on ISP1761Thomas Hommel
There is no need to disable port 1 on ISP1761. That port could be used as an OTG port which would require a different init sequence. However we don't have OTG support (yet) so we can use it as a normal USB port. This patch allows port 1 to be used a normal Port on the ISP1761. Signed-off-by: Thomas Hommel <Thomas.Hommel@gefanuc.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-08-21USB: ISP1760: fixed trivial math in commentEnrico Scholz
Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Acked-by: Sebastian Siewior <sebastian@breakpoint.cc> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-08-13usb: isp1760: don't be noisy about short packets.Sebastian Siewior
According to Alan Stern, short packets are quite normal under certain circumstances. This printk was triggered by usb to serial converters on every packet and some usb sticks triggered a few of those while plugging the stick. This printks are now hidden unless USB debug mode is activated. Cc: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Sebastian Siewior <sebastian@breakpoint.cc> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-08-13usb: ISP1760: improve pre-fetch timingEnrico Scholz
ISP1760 requires a delay of 90ns between programming the address and reading the data. Current driver solves this by a mdelay(1) which is very heavy weighted and slow. This patch applies the workaround from the ISP1760 FAQ by using two different banks for PTD and payload data and using a common wait for them. This wait is done by an additional ISP1760 access (whose timing constraints guarantee the 90ns delay). This improves speed when reading from an USB stick from: $ time dd if=/dev/sda of=/dev/zero bs=65536 count=1638 real 1m 15.43s user 0m 0.44s sys 0m 39.46s to $ time dd if=/dev/sda of=/dev/zero bs=65536 count=1638 real 0m 18.53s user 0m 0.16s sys 0m 12.97s [bigeasy@linutronix.de: fixed comment formating, moved define into header file, obey 80 char rule] Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-08-13usb: return error code instead of 0 in the enqueue function.Sebastian Siewior
if the enqueue function returns -ESHUTDOWN or -ENOMEM then we return 0 instead of an error. This leads to a timeout and then to a dequeue request of an not enqueued urb. Signed-off-by: Sebastian Siewior <sebastian@breakpoint.cc> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-07-21USB: isp1760: Support board-specific hardware configurationsNate Case
This adds support for hardware configurations that don't match the chip default register settings (e.g., 16-bit data bus, DACK and DREQ pulled up instead of down, analog overcurrent mode). These settings are passed in via the OF device tree. The PCI interface still assumes the same default values. Signed-off-by: Nate Case <ncase@xes-inc.com> Acked-by: Olof Johansson <olof@lixom.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-07-21USB: drivers/usb/host/isp1760-hcd.c: processor flags have type `unsigned long'Andrew Morton
Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-07-21USB: isp1760-hcd.c: make 2 functions staticAdrian Bunk
This patch makes the following needlessly global functions static: - enqueue_an_ATL_packet() - enqueue_an_INT_packet() Signed-off-by: Adrian Bunk <bunk@kernel.org> Acked-by: Sebastian Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-07-21USB: usb dev_set_name() instead of dev->bus_idKay Sievers
The bus_id field is going away, use the dev_set_name() function to set it properly. Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-06-11USB: isp1760: Assign resource fields before adding hcdNate Case
This fixes the bogus "io mem 0x00000000" message printed during driver init due to hcd->rsrc_start being assigned after the call to usb_add_hcd(). Signed-off-by: Nate Case <ncase@xes-inc.com> Acked-by: Sebastian Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-05-14USB: isp1760: fix printk formatRandy Dunlap
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 <randy.dunlap@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-05-02USB: ISP1760 HCD driverSebastian Siewior
This driver has been written from scratch and supports the ISP1760. ISP1761 might (should) work as well but the OTG isn't supported. Also ISO packets are not. However, it works on my little PowerPC board. Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>