linux/drivers/ata
Tejun Heo ff2aeb1eb6 libata: convert to chained sg
libata used private sg iterator to handle padding sg.  Now that sg can
be chained, padding can be handled using standard sg ops.  Convert to
chained sg.

* s/qc->__sg/qc->sg/

* s/qc->pad_sgent/qc->extra_sg[]/.  Because chaining consumes one sg
  entry.  There need to be two extra sg entries.  The renaming is also
  for future addition of other extra sg entries.

* Padding setup is moved into ata_sg_setup_extra() which is organized
  in a way that future addition of other extra sg entries is easy.

* qc->orig_n_elem is unused and removed.

* qc->n_elem now contains the number of sg entries that LLDs should
  map.  qc->mapped_n_elem is added to carry the original number of
  mapped sgs for unmapping.

* The last sg of the original sg list is used to chain to extra sg
  list.  The original last sg is pointed to by qc->last_sg and the
  content is stored in qc->saved_last_sg.  It's restored during
  ata_sg_clean().

* All sg walking code has been updated.  Unnecessary assertions and
  checks for conditions the core layer already guarantees are removed.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2008-01-23 05:24:14 -05:00
..
ahci.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
ata_generic.c libata: kill ata_id_to_dma_mode() 2008-01-23 05:24:11 -05:00
ata_piix.c ata_piix: separate controller IDs into separate enum 2008-01-23 05:24:12 -05:00
Kconfig pata_ninja32: Cardbus ATA initial support 2008-01-23 05:24:10 -05:00
libata-acpi.c libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() 2008-01-23 05:24:12 -05:00
libata-core.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
libata-eh.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
libata-pmp.c libata-pmp: 4726 hates SRST 2008-01-10 16:53:12 -05:00
libata-scsi.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
libata-sff.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
libata.h libata: move ata_set_mode() to libata-eh.c 2008-01-23 05:24:10 -05:00
Makefile pata_ninja32: Cardbus ATA initial support 2008-01-23 05:24:10 -05:00
pata_acpi.c libata: implement ata_timing_cycle2mode() and use it in libata-acpi and pata_acpi 2008-01-23 05:24:12 -05:00
pata_ali.c libata: checkpatch fixes 2008-01-23 05:24:10 -05:00
pata_amd.c pata_amd: update mode selection for NV PATAs 2008-01-23 05:24:12 -05:00
pata_artop.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_at32.c Several fixes for the AVR32 PATA driver 2007-12-01 17:35:58 -05:00
pata_atiixp.c pata_atiixp: Audit notes on locking 2007-10-12 14:55:42 -04:00
pata_bf54x.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
pata_cmd64x.c pata_cmd64x.c typo fix 2007-10-20 01:02:48 +02:00
pata_cmd640.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_cs5520.c [libata] struct pci_dev related cleanups 2007-10-12 14:55:47 -04:00
pata_cs5530.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_cs5535.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_cs5536.c pata_cs5536: MWDMA fix 2007-10-19 22:55:03 -04:00
pata_cypress.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_efar.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_hpt3x2n.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_hpt3x3.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_hpt37x.c pata_hpt37x: checkpatch fixes 2008-01-23 05:24:13 -05:00
pata_hpt366.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_icside.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
pata_isapnp.c pata_isapnp: Polled devices 2007-11-23 19:33:27 -05:00
pata_it821x.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_it8213.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_ixp4xx_cf.c libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pata_jmicron.c pata_jmicron: fix disabled port handling in jmicron_pre_reset() 2007-11-23 19:23:55 -05:00
pata_legacy.c libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pata_marvell.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_mpc52xx.c mpc52xx-ata: fix compile warning (unused variable) 2007-10-14 08:57:30 -07:00
pata_mpiix.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_netcell.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_ninja32.c libata: checkpatch fixes 2008-01-23 05:24:10 -05:00
pata_ns87410.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_ns87415.c pata_ns87415: define SUPERIO_IDE_MAX_RETRIES 2007-10-29 06:21:33 -04:00
pata_oldpiix.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_opti.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_optidma.c [libata] fix 'if(' and similar areas that lack whitespace 2007-10-29 06:15:27 -04:00
pata_pcmcia.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
pata_pdc202xx_old.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
pata_pdc2027x.c [libata] fix 'if(' and similar areas that lack whitespace 2007-10-29 06:15:27 -04:00
pata_platform.c libata: pata_platform: Support polling-mode configuration. 2007-11-08 13:08:41 -05:00
pata_qdi.c libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pata_radisys.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_rz1000.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_sc1200.c Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
pata_scc.c libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pata_serverworks.c pata_serverworks: Fix problem with some drive combinations 2007-11-05 18:08:46 -05:00
pata_sil680.c pata_sil680: kill bogus reset code (take 2) 2007-11-23 19:23:55 -05:00
pata_sis.c pata_sis.c: Add Packard Bell EasyNote K5305 to laptops 2007-11-19 12:28:11 +09:00
pata_sl82c105.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_triflex.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_via.c libata: reimplement ata_acpi_cbl_80wire() using ata_acpi_gtm_xfermask() 2008-01-23 05:24:12 -05:00
pata_winbond.c libata: update ->data_xfer hook for ATAPI 2008-01-23 05:24:14 -05:00
pdc_adma.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_fsl.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_inic162x.c libata: rename ATA_PROT_ATAPI_* to ATAPI_PROT_* 2008-01-23 05:24:14 -05:00
sata_mv.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_nv.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_promise.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_promise.h Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00
sata_qstor.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_sil24.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_sil.c libata: implement protocol tests 2008-01-23 05:24:10 -05:00
sata_sis.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_svw.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_sx4.c libata: convert to chained sg 2008-01-23 05:24:14 -05:00
sata_uli.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_via.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sata_vsc.c [libata] Address some checkpatch-spotted issues 2007-10-29 06:15:27 -04:00
sis.h libata: PATA-mode fixes for sis_sata 2007-07-02 10:17:42 -04:00