diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2010-05-07 14:49:02 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2010-05-14 17:35:52 -0400 |
commit | e42a542ba9cca594897176020445023c54d903d6 (patch) | |
tree | b2a136581d6fcea9a2a6c534888319b70e15c2af /drivers/ata/pata_bf54x.c | |
parent | 41dec29bcb05eb8ec396f70ce791c6e3e4ce4712 (diff) |
libata: make sff_irq_on() method optional
Now, with the introduction of the sff_set_devctl() method, we can
use it in sff_irq_on() method too -- that way its implementations
in 'pata_bf54x' and 'pata_scc' become virtually identical to
ata_sff_irq_on(). The sff_irq_on() method now becomes quite
superfluous, and the only reason not to remove it completely is
the existence of the 'pata_octeon_cf' driver which implements it
as an empty function. Just make the method optional then, with
ata_sff_irq_on() becoming generic taskfile-bound function, still
global for the 'pata_bf54x' driver to be able to call it from its
thaw() and postreset() methods.
While at it, make the sff_irq_on() method and ata_sff_irq_on() return
'void' as the result is always ignored anyway.
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/pata_bf54x.c')
-rw-r--r-- | drivers/ata/pata_bf54x.c | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/drivers/ata/pata_bf54x.c b/drivers/ata/pata_bf54x.c index 198307534d90..07c110470e25 100644 --- a/drivers/ata/pata_bf54x.c +++ b/drivers/ata/pata_bf54x.c | |||
@@ -1228,30 +1228,6 @@ static void bfin_irq_clear(struct ata_port *ap) | |||
1228 | } | 1228 | } |
1229 | 1229 | ||
1230 | /** | 1230 | /** |
1231 | * bfin_irq_on - Enable interrupts on a port. | ||
1232 | * @ap: Port on which interrupts are enabled. | ||
1233 | * | ||
1234 | * Note: Original code is ata_sff_irq_on(). | ||
1235 | */ | ||
1236 | |||
1237 | static unsigned char bfin_irq_on(struct ata_port *ap) | ||
1238 | { | ||
1239 | void __iomem *base = (void __iomem *)ap->ioaddr.ctl_addr; | ||
1240 | u8 tmp; | ||
1241 | |||
1242 | dev_dbg(ap->dev, "in atapi irq on\n"); | ||
1243 | ap->ctl &= ~ATA_NIEN; | ||
1244 | ap->last_ctl = ap->ctl; | ||
1245 | |||
1246 | write_atapi_register(base, ATA_REG_CTRL, ap->ctl); | ||
1247 | tmp = ata_wait_idle(ap); | ||
1248 | |||
1249 | bfin_irq_clear(ap); | ||
1250 | |||
1251 | return tmp; | ||
1252 | } | ||
1253 | |||
1254 | /** | ||
1255 | * bfin_thaw - Thaw DMA controller port | 1231 | * bfin_thaw - Thaw DMA controller port |
1256 | * @ap: port to thaw | 1232 | * @ap: port to thaw |
1257 | * | 1233 | * |
@@ -1262,7 +1238,7 @@ void bfin_thaw(struct ata_port *ap) | |||
1262 | { | 1238 | { |
1263 | dev_dbg(ap->dev, "in atapi dma thaw\n"); | 1239 | dev_dbg(ap->dev, "in atapi dma thaw\n"); |
1264 | bfin_check_status(ap); | 1240 | bfin_check_status(ap); |
1265 | bfin_irq_on(ap); | 1241 | ata_sff_irq_on(ap); |
1266 | } | 1242 | } |
1267 | 1243 | ||
1268 | /** | 1244 | /** |
@@ -1279,7 +1255,7 @@ static void bfin_postreset(struct ata_link *link, unsigned int *classes) | |||
1279 | void __iomem *base = (void __iomem *)ap->ioaddr.ctl_addr; | 1255 | void __iomem *base = (void __iomem *)ap->ioaddr.ctl_addr; |
1280 | 1256 | ||
1281 | /* re-enable interrupts */ | 1257 | /* re-enable interrupts */ |
1282 | bfin_irq_on(ap); | 1258 | ata_sff_irq_on(ap); |
1283 | 1259 | ||
1284 | /* is double-select really necessary? */ | 1260 | /* is double-select really necessary? */ |
1285 | if (classes[0] != ATA_DEV_NONE) | 1261 | if (classes[0] != ATA_DEV_NONE) |
@@ -1477,7 +1453,6 @@ static struct ata_port_operations bfin_pata_ops = { | |||
1477 | .postreset = bfin_postreset, | 1453 | .postreset = bfin_postreset, |
1478 | 1454 | ||
1479 | .sff_irq_clear = bfin_irq_clear, | 1455 | .sff_irq_clear = bfin_irq_clear, |
1480 | .sff_irq_on = bfin_irq_on, | ||
1481 | 1456 | ||
1482 | .port_start = bfin_port_start, | 1457 | .port_start = bfin_port_start, |
1483 | .port_stop = bfin_port_stop, | 1458 | .port_stop = bfin_port_stop, |