]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
16 years agoUSB: serial: refuse to open recently removed USB Serial devices
James Woodcock [Wed, 11 Feb 2009 15:06:53 +0000 (15:06 +0000)]
USB: serial: refuse to open recently removed USB Serial devices

A USB-serial converter device is plugged into a system, and a process
opens it's device node.  If the device is physically removed whilst the
process still has its device node open, then other processes can
sucessfully open the now non-existent device's node.  I would expect
that open() on a device that has been physically removed should return
ENODEV.

This is manifesting itself with getty on my system.  I do the following:
1.  set up inittab to spawn getty on ttyUSB0, eg:
    T1:23:respawn:/sbin/getty -L ttyUSB0 115200 vt100
2.  Plug in USB-serial converter cable
3.  Wait for a login prompt on a terminal program attached to the serial
    cable
4.  Login
5.  Pull the USB-serial converter cable from the box
6.  getty doesn't realise that ttyUSB0 no longer exists as /dev/ttyUSB0
    can still be opened.
7.  Re-insert the USB-serial converter cable
8.  You should no longer get a login prompt over the serial cable, as
    the the USB-serial cable now shows up as /dev/ttyUSB1, and getty is
    trying to talk to /dev/ttyUSB0.

The attached patch will cause open("/dev/ttyUSB0", O_RDONLY) to return
ENODEV after the USB-serial converter has been pulled.  The patch was
created against 2.6.28.1.  I can supply it against something else if
needs be.  It is fairly simple, so should be OK.

I am using a pl2303 device, although I don't think that makes any
difference.

From: James Woodcock <James.Woodcock@ACULAB.COM>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: serial: remove recourse to generic method
Oliver Neukum [Mon, 9 Feb 2009 09:03:49 +0000 (10:03 +0100)]
USB: serial: remove recourse to generic method

This removes the fallback to the generic method. It is cleaner to
explicitely request it. Introducing this was my mistake. This will
be solved by an explicit test and the driver being allowed to request
what it needs to be done upon resumption.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: skeleton: Use dev_info instead of info
Matt Kraai [Sat, 7 Feb 2009 03:38:51 +0000 (19:38 -0800)]
USB: skeleton: Use dev_info instead of info

338b67b0c1a97ca705023a8189cf41aa0828d294 removed the info macro and
replaced its uses with dev_info.  This patch does so for
usb-skeleton.c, which was missed.

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agousb_storage: make Kconfig note visible in the console
Borislav Petkov [Sat, 7 Feb 2009 19:20:42 +0000 (20:20 +0100)]
usb_storage: make Kconfig note visible in the console

Make lines about usb_storage depending on SCSI visible when configuring the
kernel in a 80x25 console

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: serial: opticon: add serial line ioctls
Greg Kroah-Hartman [Sat, 7 Feb 2009 02:31:46 +0000 (18:31 -0800)]
USB: serial: opticon: add serial line ioctls

This lets userspace determine what the state of the RTS line is, which
is what is needed to properly handle data flow for this device (it
raises RTS when there is data to be sent from it.)

Cc: Kees Stoop <kees.stoop@opticon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: serial: opticon: add write support
Greg Kroah-Hartman [Sat, 7 Feb 2009 02:30:56 +0000 (18:30 -0800)]
USB: serial: opticon: add write support

This patch allows data to be sent to the scanner.

Cc: Kees Stoop <kees.stoop@opticon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: otg: adding nop usb transceiver
Ajay Kumar Gupta [Fri, 6 Feb 2009 12:02:35 +0000 (17:32 +0530)]
USB: otg: adding nop usb transceiver

NOP transceiver is used by all the usb transceiver which are mostly
autonomous and doesn't require any programming or which are built
into the usb ip itself.NOP transceiver only allocates the memory
for struct xceiv and calls otg_set_transceiver() so function call
to otg_get_transceiver() will return a valid transceiver.

NOP transceiver device should be registered by calling
usb_nop_xceiv_register() from platform files.

Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
Cc: Felipe Balbi <felipe.balbi@nokia.com>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: ftdi_sio: remove pointless syslog spew
David Brownell [Fri, 6 Feb 2009 10:39:11 +0000 (02:39 -0800)]
USB: ftdi_sio: remove pointless syslog spew

Remove some pointless messages from the FTDI serial driver;
I found these filling up syslog on one system.  Also remove
a pointless "break" after a "return" in the same area.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: add missing KERN_* constants to printks
Frank Seidel [Thu, 5 Feb 2009 15:16:24 +0000 (16:16 +0100)]
USB: add missing KERN_* constants to printks

According to kerneljanitors todo list all printk calls (beginning
a new line) should have an according KERN_* constant.
Those are the missing peaces here for the usb subsystem.

Signed-off-by: Frank Seidel <frank@f-seidel.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: serial: use generic method if no alternative is provided in usb serial layer
Oliver Neukum [Fri, 6 Feb 2009 17:06:43 +0000 (18:06 +0100)]
USB: serial: use generic method if no alternative is provided in usb serial layer

This patch makes use of the generic method if a serial driver provides
no implementation. This simplifies implementing suspend/resume support
in serial drivers.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: serial: export symbol of usb_serial_generic_resume
Oliver Neukum [Fri, 6 Feb 2009 14:37:14 +0000 (15:37 +0100)]
USB: serial: export symbol of usb_serial_generic_resume

This exports a symbol for usb_serial_generic_resume, so that modules can
use it.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: serial generic resume function fix
Oliver Neukum [Fri, 6 Feb 2009 14:01:54 +0000 (15:01 +0100)]
USB: serial generic resume function fix

This removes an unnecessary check for autoresume from the generic
resume method. The check has been obsoleted by the now delayed
increase of the usage counter which makes the error this check prevented
impossible. This change allows drivers which only use the bulk read URB
the use of the generic method even if they support autosuspend.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: serial: introduce a flag into the usb serial layer to tell drivers that their...
Oliver Neukum [Thu, 5 Feb 2009 15:54:25 +0000 (16:54 +0100)]
USB: serial: introduce a flag into the usb serial layer to tell drivers that their URBs are killed due to suspension

This patch introduces a flag into the usb serial layer to tell drivers
that their URBs are killed due to suspension. That is necessary to let
drivers know whether they should report an error back.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Hi Greg,

this is for 2.6.30. Patches to use this in drivers are under development.

Regards
Oliver

16 years agoUSB: count reaches -1, tested 0
Roel Kluin [Sat, 31 Jan 2009 11:37:04 +0000 (12:37 +0100)]
USB: count reaches -1, tested 0

With a postfix decrement count will reach -1 rather than 0,
so the warning will not be issued.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: suspend/resume for opticon driver
Oliver Neukum [Wed, 14 Jan 2009 17:34:06 +0000 (18:34 +0100)]
USB: suspend/resume for opticon driver

this does the standard support for suspend/resume for the opticon
driver.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: suspend/resume support for option driver
Oliver Neukum [Tue, 27 Jan 2009 16:21:40 +0000 (17:21 +0100)]
USB: suspend/resume support for option driver

This patch implements suspend and resume methods for the
option driver. With my hardware I can even suspend the system
and keep up a connection for a short time.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-Off-By: Matthias Urlichs <smurf@smurf.noris.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: imx_udc: Fix IMX UDC gadget general irq handling
Darius Augulis [Wed, 21 Jan 2009 13:19:19 +0000 (15:19 +0200)]
USB: imx_udc: Fix IMX UDC gadget general irq handling

Workaround of hw bug in IMX UDC.
This bug causes wrong handling of CFG_CHG interrupt.
Workaround is documented inline source code.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: imx_udc: Fix IMX UDC gadget ep0 irq handling
Darius Augulis [Wed, 21 Jan 2009 13:18:33 +0000 (15:18 +0200)]
USB: imx_udc: Fix IMX UDC gadget ep0 irq handling

Fix ep0 interrupt handling in IMX UDC Gadget.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: imx_udc: Fix IMX UDC gadget code style
Darius Augulis [Wed, 21 Jan 2009 13:17:55 +0000 (15:17 +0200)]
USB: imx_udc: Fix IMX UDC gadget code style

Fix code style errors in IMX UDC Gadget.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: imx_udc: Fix IMX UDC gadget bugs
Darius Augulis [Wed, 21 Jan 2009 13:17:25 +0000 (15:17 +0200)]
USB: imx_udc: Fix IMX UDC gadget bugs

Fix small bugs and add some omptimization in IMX UDC Gadget.

Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: usb-serial ch341: support for DTR/RTS/CTS
Werner Cornelius [Fri, 16 Jan 2009 20:02:41 +0000 (21:02 +0100)]
USB: usb-serial ch341: support for DTR/RTS/CTS

Fixup of Werner Cornelius patch to the ch341 USB-serial driver, which adds:
- support all baudrates, not just a hard-coded set
- support for controlling DTR, RTS and CTS

Features still missing:
- character length other than 8 bits
- parity settings
- break control

I adapted his patch for the new usb_serial API introduced in 2.6.25-git8 by
Alan Cox on 22 July 2008. Non-compliance to the new API was a reason for
refusing a similar patch from Tollef Fog Heen.

Usage example by Tollef Fog Heen :
        TEMPer USB thermometer <http://err.no/src/TEMPer.c>

Signed-off-by: Werner Cornelius <Werner.Cornelius@cornelius-consult.de>
Signed-off-by: Boris Hajduk <boris@hajduk.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: gadget: remove duplicated #include
Huang Weiyi [Sun, 11 Jan 2009 09:25:13 +0000 (17:25 +0800)]
USB: gadget: remove duplicated #include

Removed duplicated #include in
  drivers/usb/gadget/ci13xxx_udc.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: drivers: use USB API functions rather than constants
Julia Lawall [Mon, 29 Dec 2008 10:22:14 +0000 (11:22 +0100)]
USB: drivers: use USB API functions rather than constants

This set of patches introduces calls to the following set of functions:

usb_endpoint_dir_in(epd)
usb_endpoint_dir_out(epd)
usb_endpoint_is_bulk_in(epd)
usb_endpoint_is_bulk_out(epd)
usb_endpoint_is_int_in(epd)
usb_endpoint_is_int_out(epd)
usb_endpoint_num(epd)
usb_endpoint_type(epd)
usb_endpoint_xfer_bulk(epd)
usb_endpoint_xfer_control(epd)
usb_endpoint_xfer_int(epd)
usb_endpoint_xfer_isoc(epd)

In some cases, introducing one of these functions is not possible, and it
just replaces an explicit integer value by one of the following constants:

USB_ENDPOINT_XFER_BULK
USB_ENDPOINT_XFER_CONTROL
USB_ENDPOINT_XFER_INT
USB_ENDPOINT_XFER_ISOC

An extract of the semantic patch that makes these changes is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r1@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) ==
- \(USB_ENDPOINT_XFER_CONTROL\|0\))
+ usb_endpoint_xfer_control(epd)

@r5@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bEndpointAddress & \(USB_ENDPOINT_DIR_MASK\|0x80\)) ==
-  \(USB_DIR_IN\|0x80\))
+ usb_endpoint_dir_in(epd)

@inc@
@@

#include <linux/usb.h>

@depends on !inc && (r1||r5)@
@@

+ #include <linux/usb.h>
  #include <linux/usb/...>
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: Remove redundant test in pxa27x_udc and ftdi_sio
Julia Lawall [Sun, 21 Dec 2008 15:41:36 +0000 (16:41 +0100)]
USB: Remove redundant test in pxa27x_udc and ftdi_sio

priv is checked not to be NULL near the beginning of the function and not
changed subsequently, making the test redundant.

A simplified version of the semantic patch that makes this change is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
expression E;
position p1,p2;
@@

if (x@p1 == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
(
x@p2 == NULL
|
x@p2 != NULL
)

// another path to the test that is not through p1?
@s exists@
local idexpression r.x;
position r.p1,r.p2;
@@

... when != x@p1
(
x@p2 == NULL
|
x@p2 != NULL
)

@fix depends on !s@
position r.p1,r.p2;
expression x,E;
statement S1,S2;
@@

(
- if ((x@p2 != NULL) || ...)
  S1
|
- if ((x@p2 == NULL) && ...) S1
|
- BUG_ON(x@p2 == NULL);
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: ub: use USB API functions rather than constants
Julia Lawall [Mon, 29 Dec 2008 10:19:10 +0000 (11:19 +0100)]
USB: ub: use USB API functions rather than constants

This set of patches introduces calls to the following set of functions:

usb_endpoint_dir_in(epd)
usb_endpoint_dir_out(epd)
usb_endpoint_is_bulk_in(epd)
usb_endpoint_is_bulk_out(epd)
usb_endpoint_is_int_in(epd)
usb_endpoint_is_int_out(epd)
usb_endpoint_num(epd)
usb_endpoint_type(epd)
usb_endpoint_xfer_bulk(epd)
usb_endpoint_xfer_control(epd)
usb_endpoint_xfer_int(epd)
usb_endpoint_xfer_isoc(epd)

In some cases, introducing one of these functions is not possible, and it
just replaces an explicit integer value by one of the following constants:

USB_ENDPOINT_XFER_BULK
USB_ENDPOINT_XFER_CONTROL
USB_ENDPOINT_XFER_INT
USB_ENDPOINT_XFER_ISOC

An extract of the semantic patch that makes these changes is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r1@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bmAttributes & \(USB_ENDPOINT_XFERTYPE_MASK\|3\)) ==
- \(USB_ENDPOINT_XFER_CONTROL\|0\))
+ usb_endpoint_xfer_control(epd)

@r5@ struct usb_endpoint_descriptor *epd; @@

- ((epd->bEndpointAddress & \(USB_ENDPOINT_DIR_MASK\|0x80\)) ==
-  \(USB_DIR_IN\|0x80\))
+ usb_endpoint_dir_in(epd)

@inc@
@@

#include <linux/usb.h>

@depends on !inc && (r1||r5)@
@@

+ #include <linux/usb.h>
  #include <linux/usb/...>
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: Move definitions from usb.h to usb/ch9.h
Julia Lawall [Mon, 29 Dec 2008 21:48:19 +0000 (22:48 +0100)]
USB: Move definitions from usb.h to usb/ch9.h

The functions:

usb_endpoint_dir_in(epd)
usb_endpoint_dir_out(epd)
usb_endpoint_is_bulk_in(epd)
usb_endpoint_is_bulk_out(epd)
usb_endpoint_is_int_in(epd)
usb_endpoint_is_int_out(epd)
usb_endpoint_is_isoc_in(epd)
usb_endpoint_is_isoc_out(epd)
usb_endpoint_num(epd)
usb_endpoint_type(epd)
usb_endpoint_xfer_bulk(epd)
usb_endpoint_xfer_control(epd)
usb_endpoint_xfer_int(epd)
usb_endpoint_xfer_isoc(epd)

are moved from include/linux/usb.h to include/linux/usb/ch9.h.
include/linux/usb/ch9.h makes more sense for these functions because they
only depend on constants that are defined in this file.

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: pxa27x_udc: add vbus_draw callback
Robert Jarzmik [Sun, 25 Jan 2009 07:59:38 +0000 (23:59 -0800)]
USB: pxa27x_udc: add vbus_draw callback

Add the vbus_draw() callback to inform the transceiver, if
it exists, how much current may be drawn. The decision is
taken on gadget driver side using the configuration chosen
by the host and its bMaxPower field.  Some systems can use
the host's VBUS supply to augment or recharge a battery.
(There's also a default of 100 mA for unconfigured devices,
or 8 mA if they're OTG devices.)

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: pxa27x_udc: add otg transceiver support
Robert Jarzmik [Sun, 25 Jan 2009 07:57:30 +0000 (23:57 -0800)]
USB: pxa27x_udc: add otg transceiver support

When a transceiver driver is used, no automatic udc enable
is done. The transceiver (OTG or not) should :
 - take care of VBus sensing
 - call usb_gadget_vbus_connect()
 - call usb_gadget_vbus_disconnect()

The pullup should remain within this driver's management,
either by gpio_pullup of udc_command() fields.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: pxa27x_udc: add vbus session handling
Robert Jarzmik [Sun, 25 Jan 2009 07:56:42 +0000 (23:56 -0800)]
USB: pxa27x_udc: add vbus session handling

On vbus_session() call, optionally activate D+ pullup
resistor and enable the udc, or deactivate D+ pullup
resistor and disable the udc.

It is intentional to not handle any VBus sense related irq.
An external transceiver driver (like gpio_vbus) should
catch VBus sense signal, and call usb_gadget_vbus_connect()
or usb_gadget_vbus_disconnect().

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: pxa27x_udc: factor pullup code to prepare otg transceiver
Robert Jarzmik [Sun, 25 Jan 2009 07:55:34 +0000 (23:55 -0800)]
USB: pxa27x_udc: factor pullup code to prepare otg transceiver

Prepare pxa27x_udc to handle usb D+ pullup properly : it
should connect the pullup resistor and disconnect it only
if no external transceiver is handling it.

[ dbrownell@users.sourceforge.net: kerneldoc and gpio fixes ]

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: gpio_vbus: add delayed vbus_session calls
Robert Jarzmik [Sun, 25 Jan 2009 07:54:31 +0000 (23:54 -0800)]
USB: gpio_vbus: add delayed vbus_session calls

Call usb_gadget_vbus_connect() and ...disconnect() from a
workqueue rather than from an irq handler, allowing msleep()
calls in vbus_session.  Update kerneldoc to match.

[ dbrownell@users.sourceforge.net: more kerneldoc updates ]

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agousblp: continuously poll for status
Pete Zaitcev [Wed, 7 Jan 2009 00:20:42 +0000 (17:20 -0700)]
usblp: continuously poll for status

The usblp in 2.6.18 polled for status regardless if we actually needed it.
At some point I dropped it, to save the batteries if nothing else.
As it turned out, printers exist (e.g. Canon BJC-3000) that need prodding
this way or else they stop. This patch restores the old behaviour.
If you want to save battery, don't leave jobs in the print queue.

I tested this on my printers by printing and examining usbmon traces
to make sure status is being requested and printers continue to print.
Tuomas Jäntti verified the fix on BJC-3000.

Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: usb-storage: increase max_sectors for tape drives
Alan Stern [Mon, 23 Mar 2009 13:51:02 +0000 (09:51 -0400)]
USB: usb-storage: increase max_sectors for tape drives

This patch (as1203) increases the max_sector limit for USB tape
drives.  By default usb-storage sets max_sectors to 240 (i.e., 120 KB)
for all devices.  But tape drives need a higher limit, since tapes can
and do have very large block sizes.  Without the ability to transfer
an entire large block in a single command, such tapes can't be used.

This fixes Bugzilla #12207.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-and-tested-by: Phil Mitchell <philipm@sybase.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: gadget: fix rndis regression
David Brownell [Fri, 20 Mar 2009 08:08:20 +0000 (01:08 -0700)]
USB: gadget: fix rndis regression

Restore some code that was wrongly dropped from the RNDIS
driver, and caused interop problems observed with OpenMoko.

The issue is with hardware which needs help conforming to part
of the USB 2.0 spec (section 8.5.3.2); some can automagically
send a ZLP in response to an unexpected IN, but not all chips
will do that.  We don't need to check the packet length ourselves
the way earlier code did, since the UDC must already check it.
But we do need to tell the UDC when it must force a short packet
termination of the data stage.

(Based on a patch from Aric D. Blumer <aric at sdgsystems.com>)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years agoUSB: add quirk to avoid config and interface strings
Alan Stern [Wed, 18 Mar 2009 18:28:53 +0000 (14:28 -0400)]
USB: add quirk to avoid config and interface strings

Apparently the Configuration and Interface strings aren't used as
often as the Vendor, Product, and Serial strings.  In at least one
device (a Saitek Cyborg Gold 3D joystick), attempts to read the
Configuration string cause the device to stop responding to Control
requests.

This patch (as1226) adds a quirks flag, telling the kernel not to
read a device's Configuration or Interface strings, together with a
new quirk for the offending joystick.

Reported-by: Melchior FRANZ <melchior.franz@gmail.com>
Tested-by: Melchior FRANZ <melchior.franz@gmail.com>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@kernel.org> [2.6.28 and 2.6.29, nothing earlier]
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
16 years ago[ARM] twl4030 - leak fix
Alan Cox [Mon, 23 Mar 2009 10:43:54 +0000 (10:43 +0000)]
[ARM] twl4030 - leak fix

Trivial error path leak fix. Problem found by Daniel Marjamäki using
cppcheck

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] fix leak in iop13xx/pci
Alan Cox [Mon, 23 Mar 2009 10:44:07 +0000 (10:44 +0000)]
[ARM] fix leak in iop13xx/pci

Another leak found by Daniel Marjamäki

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years ago[ARM] cumana: Fix a long standing bogon
Alan Cox [Mon, 23 Mar 2009 10:37:57 +0000 (10:37 +0000)]
[ARM] cumana: Fix a long standing bogon

Should be using strncmp as the data from user space may be unterminated

(Bug #8004)

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
16 years agoMerge branch 'highmem' into devel
Russell King [Tue, 24 Mar 2009 22:47:45 +0000 (22:47 +0000)]
Merge branch 'highmem' into devel

16 years agoclaw: fix minor findings from code analysis tool
Andrew H. Richter [Tue, 24 Mar 2009 03:27:51 +0000 (03:27 +0000)]
claw: fix minor findings from code analysis tool

This patch fixes two problems in the claw driver identified by
static code analysis:
o Change in case differentiation of received sense codes
o Use correct data length in claw hard_start_xmit routine

Signed-off-by: Andrew H. Richter <richtera@us.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoctcm: fix minor findings from code analysis tool
Joel A. Fowler [Tue, 24 Mar 2009 03:27:49 +0000 (03:27 +0000)]
ctcm: fix minor findings from code analysis tool

From: Ursula Braun <ursula.braun@de.ibm.com>

This patch fixes problems in the ctcm driver identified by
static code analysis:
o remove an unnecessary always true condition in ctcm_unpack_skb
o remove duplicate assignment in ctc_mpc_alloc_channel
o remove an unnecessary always true condition in ctcmpc_send_sweep_resp
o remove duplicate initialization in ctcmpc_unpack_skb
o shorten if condition in mpc_action_go_inop
o remove INOP event if mpc group is undefined in mpc_action_doxid7

Signed-off-by: Joel A. Fowler <fowlerja@us.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoctcm: avoid wraparound in length of incoming data
Roel Kluin [Tue, 24 Mar 2009 03:27:48 +0000 (03:27 +0000)]
ctcm: avoid wraparound in length of incoming data

Since the receive code should tolerate any incoming garbage, it
should be protected against a potential wraparound when manipulating
length values within incoming data.
block_len is unsigned, so a too large subtraction will cause a
wraparound.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoctcm: invalid return code from hard_start_xmit
Ursula Braun [Tue, 24 Mar 2009 03:27:47 +0000 (03:27 +0000)]
ctcm: invalid return code from hard_start_xmit

Avoid kernel warning by using the correct hard_start_xmit return
code NETDEV_TX_BUSY for skb requeuing.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoclaw: invalid return codes from hard_start_xmit
Ursula Braun [Tue, 24 Mar 2009 03:27:46 +0000 (03:27 +0000)]
claw: invalid return codes from hard_start_xmit

Avoid kernel warnings by using the correct hard_start_xmit return
code NETDEV_TX_BUSY for skb requeuing.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetiucv: invalid return code from hard_start_xmit
Ursula Braun [Tue, 24 Mar 2009 03:27:45 +0000 (03:27 +0000)]
netiucv: invalid return code from hard_start_xmit

Avoid kernel warning by using the correct hard_start_xmit return
code NETDEV_TX_BUSY for skb requeuing.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agolcs: invalid return codes from hard_start_xmit.
Klaus-Dieter Wacker [Tue, 24 Mar 2009 03:27:44 +0000 (03:27 +0000)]
lcs: invalid return codes from hard_start_xmit.

Lcs hard_start_xmit routine issued return codes other than
defined for this interface. Now lcs returns only either
NETDEV_TX_OK or NETDEV_TX_BUSY.

Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoUse kthread instead of kernel_thread
Klaus-Dieter Wacker [Tue, 24 Mar 2009 03:27:43 +0000 (03:27 +0000)]
Use kthread instead of kernel_thread

Lcs uses low-level kernel_thread implementation.
All drivers should use <linux/kthread.h> API instead.

Signed-off-by: Klaus-Dieter Wacker <kdwacker@de.ibm.com>
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoide: use try_to_identify() in ide_driveid_update()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:59 +0000 (23:22 +0100)]
ide: use try_to_identify() in ide_driveid_update()

* Pass pointer to buffer for IDENTIFY data to do_identify()
  and try_to_identify().

* Un-static try_to_identify() and use it in ide_driveid_update().

* Rename try_to_identify() to ide_dev_read_id().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: clear drive IRQ after re-enabling local IRQs in ide_driveid_update()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:58 +0000 (23:22 +0100)]
ide: clear drive IRQ after re-enabling local IRQs in ide_driveid_update()

Clear drive IRQ after re-enabling local IRQs in ide_driveid_update()
to match try_to_identify().

Also remove superfluous local_irq_enable() call while at it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: sanitize SELECT_MASK() usage in ide_driveid_update()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:58 +0000 (23:22 +0100)]
ide: sanitize SELECT_MASK() usage in ide_driveid_update()

Call SELECT_MASK() after ide_fix_driveid().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: classify device type in do_probe()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:58 +0000 (23:22 +0100)]
ide: classify device type in do_probe()

Defer classifying device type from do_identify() to do_probe().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove broken EXABYTENEST support
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:58 +0000 (23:22 +0100)]
ide: remove broken EXABYTENEST support

do_identify() marks EXABYTENEST device as non-present and frees
drive->id so enable_nest() has absolutely no chance of working.

The code was like this since at least 2.6.12-rc2 and nobody
has noticed so just remove broken EXABYTENEST support.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: shorten timeout value in ide_driveid_update()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:57 +0000 (23:22 +0100)]
ide: shorten timeout value in ide_driveid_update()

Shorten timeout value in ide_driveid_update() (30s -> 15s)
to match try_to_identify().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: propagate AltStatus workarounds to ide_driveid_update()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:55 +0000 (23:22 +0100)]
ide: propagate AltStatus workarounds to ide_driveid_update()

Propagate AltStatus workarounds from try_to_identify()
to ide_driveid_update().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix kmalloc() failure handling in ide_driveid_update()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:54 +0000 (23:22 +0100)]
ide: fix kmalloc() failure handling in ide_driveid_update()

* Doing kmalloc() in the middle of command execution is not only ugly
  but leaves drive waiting to send data on kmalloc() failure.  Fix it.

While at it:

* Unify error code paths.

* Fixup error message to be more useful and add missing KERN_ERR level.

* Rename 'stat' variable to 's'.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agomn10300: remove <asm/ide.h>
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:54 +0000 (23:22 +0100)]
mn10300: remove <asm/ide.h>

* Remove superfluous <asm/intctl-regs.h> include.

* Remove no longer used SUPPORT_SLOW_DATA_PORTS define.

* Move defining SUPPORT_VLB_SYNC to <linux/ide.h>.

* Use __ide_mm_*() macros from <asm-generic/ide_iops.h>
  (MN10300 uses only memory-mapped I/O).

* Remove <asm/ide.h>.

While at it:

* Remove superfluous SPARC64 #ifdef from <linux/ide.h>.

Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agofrv: remove <asm/ide.h>
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:54 +0000 (23:22 +0100)]
frv: remove <asm/ide.h>

* Remove superfluous <asm/{setup,io,irq}.h> includes.

* Remove <asm/ide.h>.

Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove pciirq argument from ide_pci_setup_ports()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:53 +0000 (23:22 +0100)]
ide: remove pciirq argument from ide_pci_setup_ports()

* Set ->irq explicitly in cs5520.c.

* Remove irq argument from ide_hw_configure().

* Remove pciirq argument from ide_pci_setup_ports().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix ->init_chipset method to return 'int' value
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:53 +0000 (23:22 +0100)]
ide: fix ->init_chipset method to return 'int' value

* Return 0 instead of dev->irq in ->init_chipset implementations.

* Fix ->init_chipset method to return 'int' value instead of
  'unsigned int' one.

This fixes ->init_chipset handling for host drivers (cs5530, hpt366
and pdc202xx_new) for which it is possible for this method to fail.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove try_to_identify() wrapper
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:53 +0000 (23:22 +0100)]
ide: remove try_to_identify() wrapper

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove no longer needed IRQ auto-probing from try_to_identify() (v2)
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:53 +0000 (23:22 +0100)]
ide: remove no longer needed IRQ auto-probing from try_to_identify() (v2)

v2:
Update actual_try_to_identify() documentation.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove no longer needed IRQ fallback code from hwif_init()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:52 +0000 (23:22 +0100)]
ide: remove no longer needed IRQ fallback code from hwif_init()

Then remove no longer used __ide_default_irq().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoamd74xx: remove no longer needed ->init_hwif method
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:52 +0000 (23:22 +0100)]
amd74xx: remove no longer needed ->init_hwif method

This is now handled by core IDE PCI code.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove no longer needed IDE_HFLAG[_FORCE]_LEGACY_IRQS
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:52 +0000 (23:22 +0100)]
ide: remove no longer needed IDE_HFLAG[_FORCE]_LEGACY_IRQS

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use ide_pci_is_in_compatibility_mode() in ide_pci_init_{one,two}()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:51 +0000 (23:22 +0100)]
ide: use ide_pci_is_in_compatibility_mode() in ide_pci_init_{one,two}()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use pci_get_legacy_ide_irq() in ide_pci_init_{one,two}()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:49 +0000 (23:22 +0100)]
ide: use pci_get_legacy_ide_irq() in ide_pci_init_{one,two}()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: handle IDE_HFLAG[_FORCE]_LEGACY_IRQS in ide_pci_init_{one,two}()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:49 +0000 (23:22 +0100)]
ide: handle IDE_HFLAG[_FORCE]_LEGACY_IRQS in ide_pci_init_{one,two}()

Move handling of IDE_HFLAG[_FORCE]_LEGACY_IRQS from ide_init_port()
to ide_pci_init_{one,two}().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotrm290: small ->init_hwif cleanup
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:49 +0000 (23:22 +0100)]
trm290: small ->init_hwif cleanup

Core IDE PCI code takes care of assigning hwif->irq for both ports.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agons87415: small ->init_hwif cleanup
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:49 +0000 (23:22 +0100)]
ns87415: small ->init_hwif cleanup

Core IDE PCI code takes care of assigning hwif->irq for both ports.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agons87415: use pci_get_legacy_ide_irq()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:48 +0000 (23:22 +0100)]
ns87415: use pci_get_legacy_ide_irq()

Fix ->init_hwif to use pci_get_legacy_ide_irq() instead of
__ide_default_irq().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoamd74xx: use ide_pci_is_in_compatibility_mode()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:48 +0000 (23:22 +0100)]
amd74xx: use ide_pci_is_in_compatibility_mode()

Fix ->init_hwif to check if IDE PCI controller is in compatibility
mode instead of checking for hwif->irq == 0.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agomn10300: add pci_get_legacy_ide_irq() to <asm/pci.h>
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:48 +0000 (23:22 +0100)]
mn10300: add pci_get_legacy_ide_irq() to <asm/pci.h>

Add missing pci_get_legacy_ide_irq() implementation
before it becomes required by core IDE PCI code.

Cc: David Howells <dhowells@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move error handling code to ide-eh.c (v2)
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:47 +0000 (23:22 +0100)]
ide: move error handling code to ide-eh.c (v2)

Do some CodingStyle fixups in <linux/ide.h> while at it.

v2:
Add missing <linux/delay.h> include (reported by Stephen Rothwell).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: checkpatch.pl fixes for ide-iops.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:47 +0000 (23:22 +0100)]
ide: checkpatch.pl fixes for ide-iops.c

Fix following checkpatch.pl warnings/errors:
- WARNING: space prohibited between function name and open parenthesis '('
- WARNING: EXPORT_SYMBOL(foo); should immediately follow its function/variable
- WARNING: line over 80 characters
- ERROR: trailing whitespace
- ERROR: space required before the open parenthesis '('

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix comments in ide_config_drive_speed()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:47 +0000 (23:22 +0100)]
ide: fix comments in ide_config_drive_speed()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix printk() levels in [atapi_]reset_pollfunc()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:47 +0000 (23:22 +0100)]
ide: fix printk() levels in [atapi_]reset_pollfunc()

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move standard I/O code to ide-io-std.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:46 +0000 (23:22 +0100)]
ide: move standard I/O code to ide-io-std.c

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ide_read_bcount_and_ireason() to ide-atapi.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:46 +0000 (23:22 +0100)]
ide: move ide_read_bcount_and_ireason() to ide-atapi.c

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move xfer mode tuning code to ide-xfer-mode.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:46 +0000 (23:22 +0100)]
ide: move xfer mode tuning code to ide-xfer-mode.c

* Move xfer mode tuning code to ide-xfer-mode.c.

* Add CONFIG_IDE_XFER_MODE config option to be selected by host drivers
  that support xfer mode tuning.

* Add CONFIG_IDE_XFER_MODE=n static inline versions of ide_set_pio()
  and ide_set_xfer_rate().

* Make IDE_TIMINGS and BLK_DEV_IDEDMA config options select IDE_XFER_MODE,
  also add explicit selects for few host drivers that need it.

* Build/link ide-xfer-mode.o and ide-pio-blacklist.o (it is needed only
  by ide-xfer-mode.o) only if CONFIG_IDE_XFER_MODE=y.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move device settings code to ide-devsets.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:44 +0000 (23:22 +0100)]
ide: move device settings code to ide-devsets.c

Remove stale comment from ide.c while at it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ide_do_park_unpark() to ide-park.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:44 +0000 (23:22 +0100)]
ide: move ide_do_park_unpark() to ide-park.c

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: factor out processing of special commands from ide_special_rq()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:44 +0000 (23:22 +0100)]
ide: factor out processing of special commands from ide_special_rq()

Factor out processing of special commands from ide_special_rq()
to ide_do_devset() and ide_do_park_unpark().

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove ide_do_drive_cmd()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:44 +0000 (23:22 +0100)]
ide: remove ide_do_drive_cmd()

* Use elv_add_request() instead of __elv_add_request() in ide_do_drive_cmd().

* ide_do_drive_cmd() is used only in ide-{atapi,cd}.c so inline it there.

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ide_dma_timeout_retry() to ide-dma.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:43 +0000 (23:22 +0100)]
ide: move ide_dma_timeout_retry() to ide-dma.c

Move ide_dma_timeout_retry() to ide-dma.c and add static inline
version for CONFIG_BLK_DEV_IDEDMA=n.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move drive_is_ready() to ide-io.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:43 +0000 (23:22 +0100)]
ide: move drive_is_ready() to ide-io.c

Move drive_is_ready() to ide-io.c, then make it static.

Also make some minor CodingStyle fixups while at it.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: unexport ide_devset_execute()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:43 +0000 (23:22 +0100)]
ide: unexport ide_devset_execute()

There are no modular ide_devset_execute() users left so unexport it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove stale comments from drive_is_ready()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:42 +0000 (23:22 +0100)]
ide: remove stale comments from drive_is_ready()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-acpi: remove taskfile_load_raw()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:42 +0000 (23:22 +0100)]
ide-acpi: remove taskfile_load_raw()

* taskfile_load_raw() is used only by do_drive_set_taskfiles()
  so inline it there.

While at it:
- rename 'args' variable to 'task'
- remove struct taskfile_array
- do ide_acpigtf check early
- use REGS_PER_GTF

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-acpi: cleanup do_drive_set_taskfiles()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:42 +0000 (23:22 +0100)]
ide-acpi: cleanup do_drive_set_taskfiles()

* ide_noacpi is already checked by ide_acpi_exec_tfs()
  which is the only user of do_drive_set_taskfiles().

* ide_acpi_exec_tfs() prints sufficient debug info about the
  device so no need to do it again.

* do_drive_get_GTF() + ide_acpi_exec_tfs() make sure that this
  function will never be called with incorrect gtf_length argument
  or if device is not present.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-acpi: cleanup do_drive_get_GTF()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:42 +0000 (23:22 +0100)]
ide-acpi: cleanup do_drive_get_GTF()

* ide_noacpi is already checked by ide_acpi_exec_tfs()
  which is the only user of do_drive_get_GTF().

* ide_acpi_exec_tfs() prints sufficient debug info about the
  device so no need to have excessive data about port/host.

* It is sufficient to check for drive->acpidata->obj_handle
  as it will be NULL if dev == NULL or hwif->acpidata == NULL
  or device is not present.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: sanitize ACPI initialization
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:41 +0000 (23:22 +0100)]
ide: sanitize ACPI initialization

* ide_acpi_init() -> ide_acpi_init_port()

* ide_acpi_blacklist() -> ide_acpi_init()

* Call ide_acpi_init() only once (do it during IDE core
  initialization) and cleanup the function accordingly.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_for_each_present_dev() iterator
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:41 +0000 (23:22 +0100)]
ide: add ide_for_each_present_dev() iterator

* Add ide_for_each_present_dev() iterator and convert IDE code to use it.

* Do some drive-by CodingStyle fixups in ide-acpi.c while at it.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-acpi: init ACPI handles early for devices
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:41 +0000 (23:22 +0100)]
ide-acpi: init ACPI handles early for devices

Init ACPI handles for devices in ide_acpi_port_init_devices()
and remove no longer needed ide_acpi_drive_get_handle().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-acpi: no need to zero ->acpidata for devices
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:41 +0000 (23:22 +0100)]
ide-acpi: no need to zero ->acpidata for devices

ide_acpi_init() takes care of it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove superfluous check from ide_proc_port_register_devices()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:40 +0000 (23:22 +0100)]
ide: remove superfluous check from ide_proc_port_register_devices()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: init_irq() doesn't need to hold ide_cfg_mtx
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:39 +0000 (23:22 +0100)]
ide: init_irq() doesn't need to hold ide_cfg_mtx

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ->lock and ->timer init from init_irq() to ide_init_port_data()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:39 +0000 (23:22 +0100)]
ide: move ->lock and ->timer init from init_irq() to ide_init_port_data()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: no need to touch local IRQs in ide_probe_port()
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:39 +0000 (23:22 +0100)]
ide: no need to touch local IRQs in ide_probe_port()

Remove superfluous

local_save_flags()
local_irq_enable_in_hardirq()

...

local_irq_restore()

combo.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ide_pktcmd_tf_load() to ide-atapi.c
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:39 +0000 (23:22 +0100)]
ide: move ide_pktcmd_tf_load() to ide-atapi.c

Then make it static and remove 'dma' argument.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix IDE_DFLAG_NO_IO_32BIT handling
Bartlomiej Zolnierkiewicz [Tue, 24 Mar 2009 22:22:38 +0000 (23:22 +0100)]
ide: fix IDE_DFLAG_NO_IO_32BIT handling

* IDE_DFLAG_NO_IO_32BIT may be set by cmd640's ->init_dev method
  so don't clear it in ide_port_tune_devices() (+ no need to do it).

* Move IDE_DFLAG_NO_IO_32BIT handling to ide_port_init_devices().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>