diff options
author | Tejun Heo <tj@kernel.org> | 2010-09-06 11:56:29 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2010-10-21 20:21:05 -0400 |
commit | 97750cebb3000a9cc08f8ce8dc8c7143be7d7201 (patch) | |
tree | 04220b8a8ed3f353e3e0023805b32e7d746dc6f3 /drivers/ata/sata_sil24.c | |
parent | a97c40068fab5d85c4241451fc312cb9025d7e6c (diff) |
libata: add @ap to ata_wait_register() and introduce ata_msleep()
Add optional @ap argument to ata_wait_register() and replace msleep()
calls with ata_msleep() which take optional @ap in addition to the
duration. These will be used to implement EH exclusion.
This patch doesn't cause any behavior difference.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/sata_sil24.c')
-rw-r--r-- | drivers/ata/sata_sil24.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c index be7726d7686d..af41c6fd1254 100644 --- a/drivers/ata/sata_sil24.c +++ b/drivers/ata/sata_sil24.c | |||
@@ -589,9 +589,9 @@ static int sil24_init_port(struct ata_port *ap) | |||
589 | sil24_clear_pmp(ap); | 589 | sil24_clear_pmp(ap); |
590 | 590 | ||
591 | writel(PORT_CS_INIT, port + PORT_CTRL_STAT); | 591 | writel(PORT_CS_INIT, port + PORT_CTRL_STAT); |
592 | ata_wait_register(port + PORT_CTRL_STAT, | 592 | ata_wait_register(ap, port + PORT_CTRL_STAT, |
593 | PORT_CS_INIT, PORT_CS_INIT, 10, 100); | 593 | PORT_CS_INIT, PORT_CS_INIT, 10, 100); |
594 | tmp = ata_wait_register(port + PORT_CTRL_STAT, | 594 | tmp = ata_wait_register(ap, port + PORT_CTRL_STAT, |
595 | PORT_CS_RDY, 0, 10, 100); | 595 | PORT_CS_RDY, 0, 10, 100); |
596 | 596 | ||
597 | if ((tmp & (PORT_CS_INIT | PORT_CS_RDY)) != PORT_CS_RDY) { | 597 | if ((tmp & (PORT_CS_INIT | PORT_CS_RDY)) != PORT_CS_RDY) { |
@@ -631,7 +631,7 @@ static int sil24_exec_polled_cmd(struct ata_port *ap, int pmp, | |||
631 | writel((u64)paddr >> 32, port + PORT_CMD_ACTIVATE + 4); | 631 | writel((u64)paddr >> 32, port + PORT_CMD_ACTIVATE + 4); |
632 | 632 | ||
633 | irq_mask = (PORT_IRQ_COMPLETE | PORT_IRQ_ERROR) << PORT_IRQ_RAW_SHIFT; | 633 | irq_mask = (PORT_IRQ_COMPLETE | PORT_IRQ_ERROR) << PORT_IRQ_RAW_SHIFT; |
634 | irq_stat = ata_wait_register(port + PORT_IRQ_STAT, irq_mask, 0x0, | 634 | irq_stat = ata_wait_register(ap, port + PORT_IRQ_STAT, irq_mask, 0x0, |
635 | 10, timeout_msec); | 635 | 10, timeout_msec); |
636 | 636 | ||
637 | writel(irq_mask, port + PORT_IRQ_STAT); /* clear IRQs */ | 637 | writel(irq_mask, port + PORT_IRQ_STAT); /* clear IRQs */ |
@@ -719,9 +719,9 @@ static int sil24_hardreset(struct ata_link *link, unsigned int *class, | |||
719 | "state, performing PORT_RST\n"); | 719 | "state, performing PORT_RST\n"); |
720 | 720 | ||
721 | writel(PORT_CS_PORT_RST, port + PORT_CTRL_STAT); | 721 | writel(PORT_CS_PORT_RST, port + PORT_CTRL_STAT); |
722 | msleep(10); | 722 | ata_msleep(ap, 10); |
723 | writel(PORT_CS_PORT_RST, port + PORT_CTRL_CLR); | 723 | writel(PORT_CS_PORT_RST, port + PORT_CTRL_CLR); |
724 | ata_wait_register(port + PORT_CTRL_STAT, PORT_CS_RDY, 0, | 724 | ata_wait_register(ap, port + PORT_CTRL_STAT, PORT_CS_RDY, 0, |
725 | 10, 5000); | 725 | 10, 5000); |
726 | 726 | ||
727 | /* restore port configuration */ | 727 | /* restore port configuration */ |
@@ -740,7 +740,7 @@ static int sil24_hardreset(struct ata_link *link, unsigned int *class, | |||
740 | tout_msec = 5000; | 740 | tout_msec = 5000; |
741 | 741 | ||
742 | writel(PORT_CS_DEV_RST, port + PORT_CTRL_STAT); | 742 | writel(PORT_CS_DEV_RST, port + PORT_CTRL_STAT); |
743 | tmp = ata_wait_register(port + PORT_CTRL_STAT, | 743 | tmp = ata_wait_register(ap, port + PORT_CTRL_STAT, |
744 | PORT_CS_DEV_RST, PORT_CS_DEV_RST, 10, | 744 | PORT_CS_DEV_RST, PORT_CS_DEV_RST, 10, |
745 | tout_msec); | 745 | tout_msec); |
746 | 746 | ||
@@ -1253,7 +1253,7 @@ static void sil24_init_controller(struct ata_host *host) | |||
1253 | tmp = readl(port + PORT_CTRL_STAT); | 1253 | tmp = readl(port + PORT_CTRL_STAT); |
1254 | if (tmp & PORT_CS_PORT_RST) { | 1254 | if (tmp & PORT_CS_PORT_RST) { |
1255 | writel(PORT_CS_PORT_RST, port + PORT_CTRL_CLR); | 1255 | writel(PORT_CS_PORT_RST, port + PORT_CTRL_CLR); |
1256 | tmp = ata_wait_register(port + PORT_CTRL_STAT, | 1256 | tmp = ata_wait_register(NULL, port + PORT_CTRL_STAT, |
1257 | PORT_CS_PORT_RST, | 1257 | PORT_CS_PORT_RST, |
1258 | PORT_CS_PORT_RST, 10, 100); | 1258 | PORT_CS_PORT_RST, 10, 100); |
1259 | if (tmp & PORT_CS_PORT_RST) | 1259 | if (tmp & PORT_CS_PORT_RST) |