android_kernel_xiaomi_sm8350/drivers
Mikael Pettersson 95006188cb sata_promise: ATAPI support
This patch adds ATAPI support to the sata_promise driver.
This has been tested on both first- and second-generation
chips (20378 and 20575), and with both SATAPI and PATAPI
devices. CD-writing works.

SATAPI DMA works on second-generation chips, but on
first-generation chips SATAPI is limited to PIO due
to what appears to be HW limitations.
PATAPI DMA works on both first- and second-generation
chips, but requires the separate PATA support patch
before it can be used on TX2plus chips.

The functional changes to the driver are:
- remove ATA_FLAG_NO_ATAPI from PDC_COMMON_FLAGS
- add ->check_atapi_dma() operation to enable DMA for bulk data
  transfers but force PIO for other ATAPI commands; this filter
  is from Promise's driver and largely matches pata_pdc207x.c
- use a more restrictive ->check_atapi_dma() on first-generation
  chips to force SATAPI to always use PIO
- add handling of ATAPI protocols to pdc_qc_prep(), pdc_host_intr(),
  and pdc_qc_issue_prot(): ATAPI_DMA is handled by the driver
  while non-DMA protocols are handed over to libata generic code
- add pdc_issue_atapi_pkt_cmd() to handle the initial steps in
  issuing ATAPI DMA commands before sending the actual CDB;
  this procedure was ported from Promise's driver

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-09 17:39:29 -05:00
..
acorn
acpi [PATCH] wrong order of kzalloc arguments 2007-02-09 08:28:48 -08:00
amba
ata sata_promise: ATAPI support 2007-02-09 17:39:29 -05:00
atm
base
block
bluetooth
cdrom
char Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-apm 2007-02-09 09:44:28 -08:00
clocksource
connector
cpufreq
crypto Merge branch 'HEAD' of master.kernel.org:/pub/scm/linux/kernel/git/herbert/crypto-2.6 2007-02-08 15:25:18 -08:00
dio
dma
edac
eisa
fc4
firmware
hid
hwmon [PATCH] hwmon: ansify 2007-02-09 09:14:06 -08:00
i2c
ide Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6 2007-02-07 19:32:36 -08:00
ieee1394 ieee1394: fix host device registering when nodemgr disabled 2007-02-08 21:36:22 +01:00
infiniband [PATCH] iscsi endianness annotations 2007-02-09 09:14:07 -08:00
input [ALSA] ucb1400_ts.c compilation fix (struct snd_ac97) 2007-02-09 09:02:25 +01:00
isdn
kvm [PATCH] misc NULL noise removal 2007-02-09 09:14:07 -08:00
leds
macintosh [PATCH] enable mouse button 2+3 emulation for x86 macs 2007-02-09 09:25:47 -08:00
mca
md [PATCH] md: avoid possible BUG_ON in md bitmap handling 2007-02-09 09:25:47 -08:00
media [PATCH] misc duplicate field initializers 2007-02-09 09:14:07 -08:00
message
mfd
misc [PATCH] TIFM should depend on PCI - TIFM_CORE leads to use of pci primitives 2007-02-09 08:28:48 -08:00
mmc [PATCH] TIFM should depend on PCI - TIFM_CORE leads to use of pci primitives 2007-02-09 08:28:48 -08:00
mtd
net Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-tc 2007-02-09 09:22:36 -08:00
nubus
oprofile
parisc
parport
pci Merge master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6 2007-02-07 19:32:36 -08:00
pcmcia [PATCH] m32r: class_device -> device fallout 2007-02-09 08:28:48 -08:00
pnp
ps3
rapidio
rtc [PATCH] rtc-pcf8563: detect polarity of century bit automatically 2007-02-09 09:25:46 -08:00
s390 [S390]: Adapt special message interface to new IUCV API 2007-02-08 13:51:11 -08:00
sbus
scsi Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-tc 2007-02-09 09:22:36 -08:00
serial [PATCH] drivers/serial NULL noise removal 2007-02-09 09:14:06 -08:00
sh
sn
spi Revert "Driver core: convert SPI code to use struct device" 2007-02-07 21:34:08 -08:00
tc [TC] MIPS: TURBOchannel resources off-by-one fix 2007-02-09 16:23:15 +00:00
telephony
usb [PATCH] hci_{read,write}l() does force casts to wrong type for no reason 2007-02-09 09:14:08 -08:00
video [TC] pmagb-b-fb: Convert to the driver model 2007-02-09 16:23:18 +00:00
w1
zorro
Kconfig
Makefile [PATCH] enable mouse button 2+3 emulation for x86 macs 2007-02-09 09:25:47 -08:00