linux/drivers/ide
Hemant Pedanekar 28c1969ff8 ide: fix ioctl to pass requested transfer mode to ide_find_dma_mode instead of UDMA6
Currently, ide_cmd_ioctl when invoked for setting DMA transfer mode calls
ide_find_dma_mode with requested mode as XFER_UDMA_6. This prevents setting DMA
mode to any other value than the default (maximum) supported by the device (or
UDMA6, if supported) irrespective of the actual requested transfer mode and
returns error.

For example, setting mode to UDMA2 using hdparm, where UDMA4 is the default
transfer mode gives following error:
	# ./hdparm -d1 -Xudma2  /dev/hda
	 /dev/hda:hda: UDMA/66 mode selected
	 setting using_dma to 1 (on)
	 hda: UDMA/66 mode selected
	 setting xfermode to 66 (UltraDMA mode2)
	 HDIO_DRIVE_CMD(setxfermode) failed: Invalid argument
	 using_dma     =  1 (on)

This patch fixes the issue.

Signed-off-by: Hemant Pedanekar <hemantp@ti.com>
Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-11-25 15:04:54 -08:00
..
aec62xx.c
ali14xx.c
alim15x3.c
amd74xx.c
at91_ide.c at91_ide: remove headers specific for at91sam9263 2009-08-15 18:55:09 -07:00
atiixp.c ahci: Add AMD SB900 SATA/IDE controller device IDs 2009-09-11 02:31:27 -04:00
au1xxx-ide.c
buddha.c ide: move ack_intr() method into 'struct ide_port_ops' (take 2) 2009-06-15 18:52:58 +02:00
cmd64x.c ide: Serialize CMD643 and CMD646 to fix a hardware bug with SSD 2009-10-29 03:02:06 -07:00
cmd640.c cmd640: implement test_irq() method 2009-06-15 18:52:58 +02:00
cs5520.c ide cs5520: Initialize second port's interrupt number. 2009-06-24 02:36:17 -07:00
cs5530.c
cs5535.c
cs5536.c ide: do not access ide_drive_t 'drive_data' field directly 2009-06-15 22:13:44 +02:00
cy82c693.c
delkin_cb.c
dtc2278.c
falconide.c ide: move ack_intr() method into 'struct ide_port_ops' (take 2) 2009-06-15 18:52:58 +02:00
gayle.c ide: move ack_intr() method into 'struct ide_port_ops' (take 2) 2009-06-15 18:52:58 +02:00
hpt366.c
ht6560b.c ide: do not access ide_drive_t 'drive_data' field directly 2009-06-15 22:13:44 +02:00
icside.c ide: do not access ide_drive_t 'drive_data' field directly 2009-06-15 22:13:44 +02:00
ide_platform.c ide: remove driver_data direct access of struct device 2009-06-15 21:30:26 -07:00
ide-4drives.c
ide-acpi.c ide: fix resume for CONFIG_BLK_DEV_IDEACPI=y 2009-06-29 19:20:42 -07:00
ide-atapi.c Merge branch 'for-2.6.31' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 2009-06-20 10:11:11 -07:00
ide-cd_ioctl.c
ide-cd_verbose.c
ide-cd.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
ide-cd.h
ide-cs.c pcmcia: add CNF-CDROM-ID for ide 2009-08-14 13:09:32 -07:00
ide-devsets.c ide: always kill the whole request on error 2009-06-25 23:57:16 -07:00
ide-disk_ioctl.c
ide-disk_proc.c ide: convert to ->proc_fops 2009-09-01 17:52:57 -07:00
ide-disk.c ide: fix memory leak when flush command is issued 2009-07-21 20:23:46 -07:00
ide-disk.h
ide-dma-sff.c
ide-dma.c ide: relax DMA info validity checking 2009-06-24 00:32:32 -07:00
ide-eh.c ide: always kill the whole request on error 2009-06-25 23:57:16 -07:00
ide-floppy_ioctl.c
ide-floppy_proc.c ide: convert to ->proc_fops 2009-09-01 17:52:57 -07:00
ide-floppy.c ide: always kill the whole request on error 2009-06-25 23:57:16 -07:00
ide-floppy.h
ide-gd.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
ide-gd.h
ide-generic.c
ide-h8300.c
ide-io-std.c
ide-io.c Revert "ide: improve handling of Power Management requests" 2009-07-06 12:39:27 -07:00
ide-ioctls.c ide: fix ioctl to pass requested transfer mode to ide_find_dma_mode instead of UDMA6 2009-11-25 15:04:54 -08:00
ide-iops.c ide: fixup for fujitsu disk 2009-09-15 01:36:25 -07:00
ide-legacy.c
ide-lib.c
ide-park.c
ide-pci-generic.c
ide-pio-blacklist.c
ide-pm.c ide: fix resume for CONFIG_BLK_DEV_IDEACPI=y 2009-06-29 19:20:42 -07:00
ide-pnp.c
ide-probe.c Revert "ide: try to use PIO Mode 0 during probe if possible" 2009-11-06 04:52:50 -08:00
ide-proc.c ide: use printk_once 2009-09-22 16:29:00 -07:00
ide-scan-pci.c
ide-sysfs.c
ide-tape.c const: make block_device_operations const 2009-09-22 07:17:25 -07:00
ide-taskfile.c ide: fix races in handling of user-space SET XFER commands 2009-08-07 10:43:00 -07:00
ide-timings.c
ide-xfer-mode.c ide: don't enable IORDY at a probe time 2009-06-15 18:52:54 +02:00
ide.c
it821x.c
it8172.c ide: IORDY handling fixes 2009-06-15 18:52:53 +02:00
it8213.c ide: IORDY handling fixes 2009-06-15 18:52:53 +02:00
jmicron.c
Kconfig
macide.c ide: move ack_intr() method into 'struct ide_port_ops' (take 2) 2009-06-15 18:52:58 +02:00
Makefile
ns87415.c
opti621.c ide: do not access ide_drive_t 'drive_data' field directly 2009-06-15 22:13:44 +02:00
palm_bk3710.c IDE: palm_bk3710: convert clock usage after clkdev conversion 2009-08-15 18:55:08 -07:00
pdc202xx_new.c
pdc202xx_old.c pdc202xx_old: implement test_irq() method (take 2) 2009-06-15 18:52:59 +02:00
piix.c ide: IORDY handling fixes 2009-06-15 18:52:53 +02:00
pmac.c
q40ide.c ide: move ack_intr() method into 'struct ide_port_ops' (take 2) 2009-06-15 18:52:58 +02:00
qd65xx.c ide: do not access ide_drive_t 'drive_data' field directly 2009-06-15 22:13:44 +02:00
qd65xx.h ide: do not access ide_drive_t 'drive_data' field directly 2009-06-15 22:13:44 +02:00
rapide.c
rz1000.c
sc1200.c
scc_pata.c
serverworks.c
setup-pci.c
sgiioc4.c sgiioc4: coding style cleanup 2009-06-15 18:52:55 +02:00
siimage.c siimage: implement test_irq() method 2009-06-15 18:53:00 +02:00
sis5513.c sis5513: fix PIO setup for ATAPI devices 2009-10-07 04:07:17 -07:00
sl82c105.c ide: do not access ide_drive_t 'drive_data' field directly 2009-06-15 22:13:44 +02:00
slc90e66.c ide: IORDY handling fixes 2009-06-15 18:52:53 +02:00
tc86c001.c
triflex.c
trm290.c
tx4938ide.c
tx4939ide.c
umc8672.c trivial: remove unnecessary semicolons 2009-09-21 15:14:58 +02:00
via82cxxx.c