aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata.h
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-09-23 00:19:54 -0400
committerJeff Garzik <jeff@garzik.org>2007-10-12 14:55:44 -0400
commit3af9a77af9e2b72366363864bfcd3d51465ff98a (patch)
treef6a311a56353cf81d34d64cf1a3f86aa6f659246 /drivers/ata/libata.h
parent3495de733633d24ee97852080b737b436c110d6e (diff)
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>
Diffstat (limited to 'drivers/ata/libata.h')
-rw-r--r--drivers/ata/libata.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
index ebe22982e80c..a9b9c9e1e105 100644
--- a/drivers/ata/libata.h
+++ b/drivers/ata/libata.h
@@ -153,6 +153,11 @@ extern void ata_schedule_scsi_eh(struct Scsi_Host *shost);
153extern void ata_scsi_dev_rescan(struct work_struct *work); 153extern void ata_scsi_dev_rescan(struct work_struct *work);
154extern int ata_bus_probe(struct ata_port *ap); 154extern int ata_bus_probe(struct ata_port *ap);
155 155
156/* libata-pmp.c */
157extern int sata_pmp_scr_read(struct ata_link *link, int reg, u32 *val);
158extern int sata_pmp_scr_write(struct ata_link *link, int reg, u32 val);
159extern int sata_pmp_attach(struct ata_device *dev);
160
156/* libata-eh.c */ 161/* libata-eh.c */
157extern enum scsi_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd); 162extern enum scsi_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd);
158extern void ata_scsi_error(struct Scsi_Host *host); 163extern void ata_scsi_error(struct Scsi_Host *host);