android_kernel_xiaomi_sm8350/drivers/ata
Tejun Heo 9116300634 libata: automatically use DMADIR if drive/bridge requires it
Back in 2.6.17-rc2, a libata module parameter was added for atapi_dmadir.

That's nice, but most SATA devices which need it will tell us about it
in their IDENTIFY PACKET response, as bit-15 of word-62 of the
returned data (as per ATA7, ATA8 specifications).

So for those which specify it, we should automatically use the DMADIR bit.
Otherwise, disc writing will fail by default on many SATA-ATAPI drives.

This patch adds ATA_DFLAG_DMADIR and make ata_dev_configure() set it
if atapi_dmadir is set or identify data indicates DMADIR is necessary.
atapi_xlat() is converted to check ATA_DFLAG_DMADIR before setting
DMADIR.

Original patch is from Mark Lord.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2008-02-24 00:27:33 -05:00
..
ahci.c PM: Introduce PM_EVENT_HIBERNATE callback state 2008-02-23 10:40:04 -08:00
ata_generic.c
ata_piix.c PM: Introduce PM_EVENT_HIBERNATE callback state 2008-02-23 10:40:04 -08:00
Kconfig sata_mv: Remove PCI dependency 2008-02-01 12:26:37 -05:00
libata-acpi.c
libata-core.c libata: automatically use DMADIR if drive/bridge requires it 2008-02-24 00:27:33 -05:00
libata-eh.c libata: implement libata.force module parameter 2008-02-20 12:12:28 -05:00
libata-pmp.c
libata-scsi.c libata: automatically use DMADIR if drive/bridge requires it 2008-02-24 00:27:33 -05:00
libata-sff.c
libata.h libata: implement libata.force module parameter 2008-02-20 12:12:28 -05:00
Makefile Merge branch 'linux-2.6' 2008-01-31 11:25:51 +11:00
pata_acpi.c ata: fix sparse warning in pata_acpi.c 2008-02-15 13:51:33 -05:00
pata_ali.c
pata_amd.c ata: sparse fixes for pata_amd.c 2008-02-15 13:51:24 -05:00
pata_artop.c
pata_at32.c drivers/ata/: Spelling fixes 2008-02-03 17:08:11 +02:00
pata_atiixp.c pata_atiixp: Use 255 sector limit 2008-02-24 00:27:23 -05:00
pata_bf54x.c Blackfin pata-bf54x driver: fix compiling bug - no ata_port struct in struct ata_device any more 2008-02-01 12:26:43 -05:00
pata_cmd64x.c
pata_cmd640.c
pata_cs5520.c PCI: Remove users of pci_enable_device_bars() 2008-02-01 15:04:27 -08:00
pata_cs5530.c
pata_cs5535.c
pata_cs5536.c ata: fix sparse warning in pata_cs5536.c 2008-02-15 13:51:27 -05:00
pata_cypress.c
pata_efar.c drivers/ata/: Spelling fixes 2008-02-03 17:08:11 +02:00
pata_hpt3x2n.c
pata_hpt3x3.c
pata_hpt37x.c
pata_hpt366.c
pata_icside.c libata: eliminate the home grown dma padding in favour of 2008-02-19 11:36:56 +01:00
pata_isapnp.c
pata_it821x.c
pata_it8213.c drivers/ata/: Spelling fixes 2008-02-03 17:08:11 +02:00
pata_ixp4xx_cf.c
pata_jmicron.c ata: fix sparse warning in pata_jmicron.c 2008-02-15 13:51:29 -05:00
pata_legacy.c ata: fix sparse warnings in pata_legacy.c 2008-02-20 12:08:15 -05:00
pata_marvell.c ata: fix sparse warning in pata_marvell.c 2008-02-15 13:51:30 -05:00
pata_mpc52xx.c Merge branch 'linux-2.6' 2008-01-31 11:25:51 +11:00
pata_mpiix.c
pata_netcell.c
pata_ninja32.c pata_ninja32: setup changes 2008-02-11 14:30:07 -05:00
pata_ns87410.c
pata_ns87415.c
pata_of_platform.c Rename: linux/pata_platform.h to linux/ata_platform.h 2008-02-06 06:54:17 -05:00
pata_oldpiix.c
pata_opti.c
pata_optidma.c
pata_pcmcia.c
pata_pdc202xx_old.c
pata_pdc2027x.c
pata_platform.c Rename: linux/pata_platform.h to linux/ata_platform.h 2008-02-06 06:54:17 -05:00
pata_qdi.c
pata_radisys.c
pata_rz1000.c
pata_sc1200.c
pata_scc.c pata_scc.c: add thaw ops 2008-02-15 13:51:22 -05:00
pata_serverworks.c
pata_sil680.c
pata_sis.c drivers/ata/: Spelling fixes 2008-02-03 17:08:11 +02:00
pata_sl82c105.c pata_sl82c105: dual channel support 2008-02-01 12:26:40 -05:00
pata_triflex.c
pata_via.c pata_via: fix SATA cable detection on cx700 2008-02-11 14:29:42 -05:00
pata_winbond.c
pdc_adma.c
sata_fsl.c libata: eliminate the home grown dma padding in favour of 2008-02-19 11:36:56 +01:00
sata_inic162x.c iommu sg merging: sata_inic162x: use pci_set_dma_max_seg_size 2008-02-05 09:44:11 -08:00
sata_mv.c sata_mv: remove iounmap in mv_platform_remove and use devm_iomap 2008-02-20 12:20:46 -05:00
sata_nv.c sata_nv: fix ATAPI issues with memory over 4GB (v7) 2008-02-06 07:00:27 -05:00
sata_promise.c ata: fix sparse warning in sata_promise.c 2008-02-15 13:50:59 -05:00
sata_promise.h
sata_qstor.c
sata_sil24.c libata: eliminate the home grown dma padding in favour of 2008-02-19 11:36:56 +01:00
sata_sil.c
sata_sis.c
sata_svw.c
sata_sx4.c
sata_uli.c
sata_via.c ata: fix sparse warning in sata_via.c 2008-02-15 13:51:01 -05:00
sata_vsc.c
sis.h