diff options
author | Tejun Heo <tj@kernel.org> | 2008-07-31 04:02:40 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-09-29 00:22:28 -0400 |
commit | 82ef04fb4c82542b3eda81cca461f0594ce9cd0b (patch) | |
tree | e513df5ad8dc9f7400830bfc8786afb6bec90fb6 /drivers/ata/sata_svw.c | |
parent | 6ef190cc92e33565accff6a320f0e7d90480bfe7 (diff) |
libata: make SCR access ops per-link
Logically, SCR access ops should take @link; however, there was no
compelling reason to convert all SCR access ops when adding @link
abstraction as there's one-to-one mapping between a port and a non-PMP
link. However, that assumption won't hold anymore with the scheduled
addition of slave link.
Make SCR access ops per-link.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/sata_svw.c')
-rw-r--r-- | drivers/ata/sata_svw.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/ata/sata_svw.c b/drivers/ata/sata_svw.c index fb13b82aacba..609d147813ae 100644 --- a/drivers/ata/sata_svw.c +++ b/drivers/ata/sata_svw.c | |||
@@ -123,20 +123,22 @@ static int k2_sata_check_atapi_dma(struct ata_queued_cmd *qc) | |||
123 | } | 123 | } |
124 | } | 124 | } |
125 | 125 | ||
126 | static int k2_sata_scr_read(struct ata_port *ap, unsigned int sc_reg, u32 *val) | 126 | static int k2_sata_scr_read(struct ata_link *link, |
127 | unsigned int sc_reg, u32 *val) | ||
127 | { | 128 | { |
128 | if (sc_reg > SCR_CONTROL) | 129 | if (sc_reg > SCR_CONTROL) |
129 | return -EINVAL; | 130 | return -EINVAL; |
130 | *val = readl(ap->ioaddr.scr_addr + (sc_reg * 4)); | 131 | *val = readl(link->ap->ioaddr.scr_addr + (sc_reg * 4)); |
131 | return 0; | 132 | return 0; |
132 | } | 133 | } |
133 | 134 | ||
134 | 135 | ||
135 | static int k2_sata_scr_write(struct ata_port *ap, unsigned int sc_reg, u32 val) | 136 | static int k2_sata_scr_write(struct ata_link *link, |
137 | unsigned int sc_reg, u32 val) | ||
136 | { | 138 | { |
137 | if (sc_reg > SCR_CONTROL) | 139 | if (sc_reg > SCR_CONTROL) |
138 | return -EINVAL; | 140 | return -EINVAL; |
139 | writel(val, ap->ioaddr.scr_addr + (sc_reg * 4)); | 141 | writel(val, link->ap->ioaddr.scr_addr + (sc_reg * 4)); |
140 | return 0; | 142 | return 0; |
141 | } | 143 | } |
142 | 144 | ||