From 438a5da35f19c325c40b18070a2598ae5953a47a Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Mon, 16 Oct 2006 07:23:45 +0900 Subject: [PATCH] libata: add hp-poll support to controllers with hotplug interrutps This patch adds hp-poll support to the following drivers. * ahci * sata_nv (nf2 and c804 only) * sata_sil * sata_sil24 All the above controllers are capable of hotplug-by-interrupt and hp-poll will be used only for watching disabled ports. Signed-off-by: Tejun Heo Signed-off-by: Robin H. Johnson --- drivers/ata/ahci.c | 4 +++- drivers/ata/sata_nv.c | 6 ++++++ drivers/ata/sata_sil.c | 3 +++ drivers/ata/sata_sil24.c | 3 +++ 4 files changed, 15 insertions(+), 1 deletions(-) diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 7c61bc7..3968799 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -273,10 +273,12 @@ static const struct ata_port_operations ahci_ops = { .freeze = ahci_freeze, .thaw = ahci_thaw, - .error_handler = ahci_error_handler, .post_internal_cmd = ahci_post_internal_cmd, + .hp_poll_activate = sata_std_hp_poll_activate, + .hp_poll = sata_std_hp_poll, + #ifdef CONFIG_PM .port_suspend = ahci_port_suspend, .port_resume = ahci_port_resume, diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c index 0216974..bcf4934 100644 --- a/drivers/ata/sata_nv.c +++ b/drivers/ata/sata_nv.c @@ -394,7 +394,10 @@ static const struct ata_port_operations nv_nf2_ops = { .thaw = nv_nf2_thaw, .error_handler = nv_error_handler, .post_internal_cmd = ata_bmdma_post_internal_cmd, + .hp_poll_activate = sata_std_hp_poll_activate, + .hp_poll = sata_std_hp_poll, .data_xfer = ata_data_xfer, + .irq_handler = nv_nf2_interrupt, .irq_clear = ata_bmdma_irq_clear, .irq_on = ata_irq_on, .irq_ack = ata_irq_ack, @@ -420,7 +423,10 @@ static const struct ata_port_operations nv_ck804_ops = { .thaw = nv_ck804_thaw, .error_handler = nv_error_handler, .post_internal_cmd = ata_bmdma_post_internal_cmd, + .hp_poll_activate = sata_std_hp_poll_activate, + .hp_poll = sata_std_hp_poll, .data_xfer = ata_data_xfer, + .irq_handler = nv_ck804_interrupt, .irq_clear = ata_bmdma_irq_clear, .irq_on = ata_irq_on, .irq_ack = ata_irq_ack, diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c index 0a1e417..8f8cc5f 100644 --- a/drivers/ata/sata_sil.c +++ b/drivers/ata/sata_sil.c @@ -208,6 +208,9 @@ static const struct ata_port_operations sil_ops = { .thaw = sil_thaw, .error_handler = ata_bmdma_error_handler, .post_internal_cmd = ata_bmdma_post_internal_cmd, + .hp_poll_activate = sata_std_hp_poll_activate, + .hp_poll = sata_std_hp_poll, + .irq_handler = sil_interrupt, .irq_clear = ata_bmdma_irq_clear, .irq_on = ata_irq_on, .irq_ack = ata_irq_ack, diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c index e6223ba..81e6bef 100644 --- a/drivers/ata/sata_sil24.c +++ b/drivers/ata/sata_sil24.c @@ -412,6 +412,9 @@ static const struct ata_port_operations sil24_ops = { .error_handler = sil24_error_handler, .post_internal_cmd = sil24_post_internal_cmd, + .hp_poll_activate = sata_std_hp_poll_activate, + .hp_poll = sata_std_hp_poll, + .port_start = sil24_port_start, }; -- 1.5.1.1