diff options
author | Tejun Heo <htejun@gmail.com> | 2007-09-23 00:14:13 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-10-12 14:55:42 -0400 |
commit | 7d77b247088fb360aa74bfdd9e19bce1e1987668 (patch) | |
tree | add1b03309dd6fa82eb0f47e1a88766695f38f28 /include/linux | |
parent | e31e8531d668c9c4dc7883054788f89805188003 (diff) |
libata-pmp-prep: implement sata_async_notification()
AN serves multiple purposes. For ATAPI, it's used for media change
notification. For PMP, for downstream PHY status change notification.
Implement sata_async_notification() which demultiplexes AN.
To avoid unnecessary port events, ATAPI AN is not enabled if PMP is
attached but SNTF is not available.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Kriten Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/libata.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index 56b218771114..cd9c2a28136a 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -139,7 +139,7 @@ enum { | |||
139 | ATA_DFLAG_FLUSH_EXT = (1 << 4), /* do FLUSH_EXT instead of FLUSH */ | 139 | ATA_DFLAG_FLUSH_EXT = (1 << 4), /* do FLUSH_EXT instead of FLUSH */ |
140 | ATA_DFLAG_ACPI_PENDING = (1 << 5), /* ACPI resume action pending */ | 140 | ATA_DFLAG_ACPI_PENDING = (1 << 5), /* ACPI resume action pending */ |
141 | ATA_DFLAG_ACPI_FAILED = (1 << 6), /* ACPI on devcfg has failed */ | 141 | ATA_DFLAG_ACPI_FAILED = (1 << 6), /* ACPI on devcfg has failed */ |
142 | ATA_DFLAG_AN = (1 << 7), /* device supports AN */ | 142 | ATA_DFLAG_AN = (1 << 7), /* AN configured */ |
143 | ATA_DFLAG_CFG_MASK = (1 << 12) - 1, | 143 | ATA_DFLAG_CFG_MASK = (1 << 12) - 1, |
144 | 144 | ||
145 | ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */ | 145 | ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */ |
@@ -787,7 +787,6 @@ extern void ata_host_init(struct ata_host *, struct device *, | |||
787 | extern int ata_scsi_detect(struct scsi_host_template *sht); | 787 | extern int ata_scsi_detect(struct scsi_host_template *sht); |
788 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); | 788 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); |
789 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); | 789 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); |
790 | extern void ata_scsi_media_change_notify(struct ata_device *atadev); | ||
791 | extern void ata_sas_port_destroy(struct ata_port *); | 790 | extern void ata_sas_port_destroy(struct ata_port *); |
792 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, | 791 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, |
793 | struct ata_port_info *, struct Scsi_Host *); | 792 | struct ata_port_info *, struct Scsi_Host *); |
@@ -953,6 +952,7 @@ extern void ata_port_schedule_eh(struct ata_port *ap); | |||
953 | extern int ata_link_abort(struct ata_link *link); | 952 | extern int ata_link_abort(struct ata_link *link); |
954 | extern int ata_port_abort(struct ata_port *ap); | 953 | extern int ata_port_abort(struct ata_port *ap); |
955 | extern int ata_port_freeze(struct ata_port *ap); | 954 | extern int ata_port_freeze(struct ata_port *ap); |
955 | extern int sata_async_notification(struct ata_port *ap); | ||
956 | 956 | ||
957 | extern void ata_eh_freeze_port(struct ata_port *ap); | 957 | extern void ata_eh_freeze_port(struct ata_port *ap); |
958 | extern void ata_eh_thaw_port(struct ata_port *ap); | 958 | extern void ata_eh_thaw_port(struct ata_port *ap); |