android_kernel_xiaomi_sm8350/drivers/ide
Borislav Petkov 2eba082709 ide-atapi: start DMA after issuing a packet command
Apparently¹, some ATAPI devices want to see the packet command first
before enabling DMA otherwise they simply hang indefinitely. Reorder the
two steps and start DMA only after having issued the command first.

[1] http://marc.info/?l=linux-kernel&m=123835520317235&w=2

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Reported-by: Michael Roth <mroth@nessie.de>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
2009-03-31 20:14:58 +02:00
..
aec62xx.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00
ali14xx.c
alim15x3.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
amd74xx.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00
at91_ide.c at91_ide: fix ->ftf_flags handling 2009-03-31 20:14:57 +02:00
atiixp.c ide: remove no longer needed IDE_HFLAG[_FORCE]_LEGACY_IRQS 2009-03-24 23:22:52 +01:00
au1xxx-ide.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
buddha.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
cmd64x.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
cmd640.c cmd640: use ide_get_pair_dev() helper 2009-01-06 17:20:55 +01:00
cs5520.c ide: remove pciirq argument from ide_pci_setup_ports() 2009-03-24 23:22:53 +01:00
cs5530.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00
cs5535.c
cs5536.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
cy82c693.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
delkin_cb.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
dtc2278.c ide: add IDE_HFLAG_DTC2278 host flag 2009-03-27 12:46:28 +01:00
falconide.c ide: pass command instead of request to ide_pio_datablock() 2009-03-27 12:46:38 +01:00
gayle.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
hpt366.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
ht6560b.c
icside.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
ide_arm.c ide_arm: use struct ide_port_info 2009-03-27 12:46:17 +01:00
ide_platform.c
ide-4drives.c ide: add IDE_HFLAG_4DRIVES host flag 2009-03-27 12:46:28 +01:00
ide-acpi.c ide: remove ide_task_t typedef 2009-03-27 12:46:37 +01:00
ide-atapi.c ide-atapi: start DMA after issuing a packet command 2009-03-31 20:14:58 +02:00
ide-cd_ioctl.c
ide-cd_verbose.c
ide-cd.c ide: set hwif->expiry prior to calling [__]ide_set_handler() 2009-03-27 12:46:46 +01:00
ide-cd.h ide-cd: use ide_drive_t's rq in cdrom_queue_request_sense 2009-03-27 12:46:24 +01:00
ide-cs.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
ide-devsets.c ide: remove ide_end_request() 2009-03-27 12:46:45 +01:00
ide-disk_ioctl.c
ide-disk_proc.c ide: use ata_tf_protocols enums 2009-03-27 12:46:39 +01:00
ide-disk.c ide: keep track of number of bytes instead of sectors in struct ide_cmd 2009-03-27 12:46:47 +01:00
ide-disk.h
ide-dma-sff.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
ide-dma.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
ide-eh.c ide: set hwif->expiry prior to calling [__]ide_set_handler() 2009-03-27 12:46:46 +01:00
ide-floppy_ioctl.c ide-floppy: allocate only toplevel packet commands 2009-01-02 16:12:51 +01:00
ide-floppy_proc.c ide: NULL noise: drivers/ide/ide-*.c 2009-03-05 16:10:56 +01:00
ide-floppy.c ide: keep track of number of bytes instead of sectors in struct ide_cmd 2009-03-27 12:46:47 +01:00
ide-floppy.h
ide-gd.c ide: remove ->end_request method 2009-03-27 12:46:36 +01:00
ide-gd.h ide: move ->failed_pc to ide_drive_t 2009-03-27 12:46:34 +01:00
ide-generic.c ide-generic: use struct ide_port_info 2009-03-27 12:46:17 +01:00
ide-h8300.c ide: pass command instead of request to ide_pio_datablock() 2009-03-27 12:46:38 +01:00
ide-io-std.c ide: pass command instead of request to ide_pio_datablock() 2009-03-27 12:46:38 +01:00
ide-io.c ide: Fix code dealing with sleeping devices in do_ide_request() 2009-03-31 20:14:56 +02:00
ide-ioctls.c ide: use ata_tf_protocols enums 2009-03-27 12:46:39 +01:00
ide-iops.c ide: remove ide_execute_pkt_cmd() (v2) 2009-03-27 12:46:47 +01:00
ide-legacy.c ide: move legacy ISA/VLB ports handling to ide-legacy.c (v2) 2008-12-29 20:27:37 +01:00
ide-lib.c ide: remove ide_task_t typedef 2009-03-27 12:46:37 +01:00
ide-park.c ide: use ide_complete_cmd() for REQ_UNPARK_HEADS 2009-03-27 12:46:42 +01:00
ide-pci-generic.c ide: remove no longer needed IDE_HFLAG[_FORCE]_LEGACY_IRQS 2009-03-24 23:22:52 +01:00
ide-pio-blacklist.c
ide-pm.c ide: use ata_tf_protocols enums 2009-03-27 12:46:39 +01:00
ide-pnp.c ide-pnp: use struct ide_port_info 2009-03-27 12:46:18 +01:00
ide-probe.c ide: remove ide_task_t typedef 2009-03-27 12:46:37 +01:00
ide-proc.c ide: remove ide_task_t typedef 2009-03-27 12:46:37 +01:00
ide-scan-pci.c
ide-sysfs.c ide: move sysfs support to ide-sysfs.c 2009-01-02 16:12:48 +01:00
ide-tape.c ide: use do_rw_taskfile() for ATA_CMD_PACKET commands 2009-03-27 12:46:46 +01:00
ide-taskfile.c ide: keep track of number of bytes instead of sectors in struct ide_cmd 2009-03-27 12:46:47 +01:00
ide-timings.c
ide-xfer-mode.c ide: move xfer mode tuning code to ide-xfer-mode.c 2009-03-24 23:22:46 +01:00
ide.c ide: move device settings code to ide-devsets.c 2009-03-24 23:22:44 +01:00
it821x.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
it8172.c Resurrect IT8172 IDE controller driver 2009-01-06 17:21:01 +01:00
it8213.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
jmicron.c
Kconfig ide: move xfer mode tuning code to ide-xfer-mode.c 2009-03-24 23:22:46 +01:00
macide.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
Makefile ide: move error handling code to ide-eh.c (v2) 2009-03-24 23:22:47 +01:00
ns87415.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
opti621.c
palm_bk3710.c IDE: palm_bk3710: use ioremap instead of arch-specific IO_ADDRESS() 2009-03-27 12:46:23 +01:00
pdc202xx_new.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00
pdc202xx_old.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
piix.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00
pmac.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
q40ide.c ide: pass command instead of request to ide_pio_datablock() 2009-03-27 12:46:38 +01:00
qd65xx.c Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
qd65xx.h Fix my email address in qd65xx.[ch]/pata_qdi.c 2009-02-03 16:53:56 -08:00
rapide.c
rz1000.c rz1000: apply chipset quirks early (v2) 2008-12-29 20:27:33 +01:00
sc1200.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
scc_pata.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
serverworks.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00
setup-pci.c ide: allow host drivers to specify IRQ flags 2009-03-27 12:46:27 +01:00
sgiioc4.c ide: pass command to ide_map_sg() 2009-03-27 12:46:46 +01:00
siimage.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
sis5513.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00
sl82c105.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
slc90e66.c ide: remove no longer needed IDE_HFLAG[_FORCE]_LEGACY_IRQS 2009-03-24 23:22:52 +01:00
tc86c001.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
triflex.c ide: remove HWIF() macro 2009-01-06 17:20:52 +01:00
trm290.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
tx4938ide.c ide: pass command instead of request to ide_pio_datablock() 2009-03-27 12:46:38 +01:00
tx4939ide.c ide: add ->dma_timer_expiry method and remove ->dma_exec_cmd one (v2) 2009-03-27 12:46:47 +01:00
umc8672.c ide: merge ide_hwgroup_t with ide_hwif_t (v2) 2009-01-06 17:20:50 +01:00
via82cxxx.c ide: fix ->init_chipset method to return 'int' value 2009-03-24 23:22:53 +01:00