linux/drivers/ata
Tejun Heo 3af9a77af9 libata-pmp: implement Port Multiplier support
Implement Port Multiplier support.  To support PMP, a LLDD has to
supply ops->pmp_read() and pmp_write().  If non-null, ->pmp_attach and
->pmp_detach are called on PMP attach and detach, respectively.

->pmp_read/write() can be called while the port is frozen, so they
must be implemented by polling.  This patch supplies several helpers
to ease ->pmp_read/write() implementation.

Also, irq_handler and error_handler must be PMP aware.  Most of PMP
aware EH can be done by calling ata_pmp_do_eh() with appropriate
methods.  PMP EH uses separate set of reset methods and this patch
implements standard prereset, hardreset and postreset methods.

This patch only implements PMP support.  The next patch will integrate
PMP into the reset of libata and thus enable PMP support.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-10-12 14:55:44 -04:00
..
Kconfig pata_ns87415: Initial cut at 87415/87560 IDE support 2007-10-12 14:55:43 -04:00
Makefile libata-pmp: implement Port Multiplier support 2007-10-12 14:55:44 -04:00
ahci.c [libata] AHCI: enable AHCI mode, before using AHCI reset 2007-10-12 14:55:42 -04:00
ata_generic.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
ata_piix.c [libata] ata_piix: add HP compaq laptop to short cable list 2007-10-12 14:55:43 -04:00
libata-acpi.c [libata] add ACPI cable detect API 2007-10-12 14:55:34 -04:00
libata-core.c libata-pmp: implement Port Multiplier support 2007-10-12 14:55:44 -04:00
libata-eh.c libata-pmp: update ata_eh_reset() for PMP 2007-10-12 14:55:43 -04:00
libata-pmp.c libata-pmp: implement Port Multiplier support 2007-10-12 14:55:44 -04:00
libata-scsi.c libata-pmp-prep: implement sata_async_notification() 2007-10-12 14:55:42 -04:00
libata-sff.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
libata.h libata-pmp: implement Port Multiplier support 2007-10-12 14:55:44 -04:00
pata_ali.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_amd.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04: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 AVR32 PATA driver 2007-10-12 14:55:37 -04:00
pata_atiixp.c pata_atiixp: Audit notes on locking 2007-10-12 14:55:42 -04:00
pata_bf54x.c libata driver for bf548 on chip ATAPI controller. 2007-10-12 14:55:37 -04:00
pata_cmd64x.c [libata] Remove ->port_disable() hook 2007-10-12 14:55:35 -04: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: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_cs5530.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_cs5535.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -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 libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04: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: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_isapnp.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_it821x.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04: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: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_jmicron.c [libata] Remove ->port_disable() hook 2007-10-12 14:55:35 -04:00
pata_legacy.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04: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 libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_mpiix.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04: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_ns87410.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_ns87415.c pata_ns87415: Initial cut at 87415/87560 IDE support 2007-10-12 14:55:43 -04:00
pata_oldpiix.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04: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: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_pcmcia.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_pdc202xx_old.c pata_pdc202xx_old MWDMA fixes, and notes 2007-10-12 14:55:42 -04:00
pata_pdc2027x.c pdc2027x: Switch properly to ioread/iowrite 2007-10-12 14:55:38 -04:00
pata_platform.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_qdi.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pata_radisys.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04: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 libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_scc.c libata: Fix build failure on ppc64 drivers/ata/pata_scc.c 2007-10-12 14:55:42 -04:00
pata_serverworks.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_sil680.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_sis.c libata: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04: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: Switch most of the remaining SFF drivers to ata_sff_port_start 2007-10-12 14:55:36 -04:00
pata_winbond.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
pdc_adma.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_inic162x.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_mv.c libata: update ata_dev_try_classify() arguments 2007-10-12 14:55:39 -04:00
sata_nv.c libata-pmp-prep: implement ops->qc_defer() 2007-10-12 14:55:41 -04:00
sata_promise.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_promise.h Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00
sata_qstor.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_sil.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_sil24.c libata-pmp-prep: implement sata_async_notification() 2007-10-12 14:55:42 -04:00
sata_sis.c [libata] Remove ->port_disable() hook 2007-10-12 14:55:35 -04:00
sata_svw.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_sx4.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_uli.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sata_via.c sata_via: kill SATA_PATA_SHARING register handling 2007-10-12 14:55:42 -04:00
sata_vsc.c libata: implement and use ata_port_desc() to report port configuration 2007-10-12 14:55:37 -04:00
sis.h libata: PATA-mode fixes for sis_sata 2007-07-02 10:17:42 -04:00