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 /drivers/ata/sata_sil24.c | |
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 'drivers/ata/sata_sil24.c')
-rw-r--r-- | drivers/ata/sata_sil24.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c index 9acfce43bde4..b4f81eb8bbbe 100644 --- a/drivers/ata/sata_sil24.c +++ b/drivers/ata/sata_sil24.c | |||
@@ -821,11 +821,8 @@ static void sil24_error_intr(struct ata_port *ap) | |||
821 | ata_ehi_push_desc(ehi, "irq_stat 0x%08x", irq_stat); | 821 | ata_ehi_push_desc(ehi, "irq_stat 0x%08x", irq_stat); |
822 | 822 | ||
823 | if (irq_stat & PORT_IRQ_SDB_NOTIFY) { | 823 | if (irq_stat & PORT_IRQ_SDB_NOTIFY) { |
824 | struct ata_device *dev = ap->link.device; | ||
825 | |||
826 | ata_ehi_push_desc(ehi, "SDB notify"); | 824 | ata_ehi_push_desc(ehi, "SDB notify"); |
827 | if (dev->flags & ATA_DFLAG_AN) | 825 | sata_async_notification(ap); |
828 | ata_scsi_media_change_notify(dev); | ||
829 | } | 826 | } |
830 | 827 | ||
831 | if (irq_stat & (PORT_IRQ_PHYRDY_CHG | PORT_IRQ_DEV_XCHG)) { | 828 | if (irq_stat & (PORT_IRQ_PHYRDY_CHG | PORT_IRQ_DEV_XCHG)) { |