From a64ae082d852dad6efa62d6aebcc642f740eb0e4 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: <0c837e57bdd0dd3292113dc62c7e629a2aa1a6e3.1167304716.git.robbat2@gentoo.org> References: <0c837e57bdd0dd3292113dc62c7e629a2aa1a6e3.1167304716.git.robbat2@gentoo.org> From: Tejun Heo Date: Mon, 16 Oct 2006 07:23:45 +0900 Subject: [PATCH 7/9] [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 | 4 ++++ drivers/ata/sata_sil.c | 2 ++ drivers/ata/sata_sil24.c | 3 +++ 4 files changed, 12 insertions(+), 1 deletions(-) diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 2592912..d95d99b 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c @@ -262,10 +262,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, + .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 323b607..a75d5cc 100644 --- a/drivers/ata/sata_nv.c +++ b/drivers/ata/sata_nv.c @@ -200,6 +200,8 @@ 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_pio_data_xfer, .irq_handler = nv_nf2_interrupt, .irq_clear = ata_bmdma_irq_clear, @@ -227,6 +229,8 @@ 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_pio_data_xfer, .irq_handler = nv_ck804_interrupt, .irq_clear = ata_bmdma_irq_clear, diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c index ca8d993..5c8a349 100644 --- a/drivers/ata/sata_sil.c +++ b/drivers/ata/sata_sil.c @@ -205,6 +205,8 @@ 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, .scr_read = sil_scr_read, diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c index 169e200..c84efc3 100644 --- a/drivers/ata/sata_sil24.c +++ b/drivers/ata/sata_sil24.c @@ -410,6 +410,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, .port_stop = sil24_port_stop, .host_stop = sil24_host_stop, -- 1.4.4.3