aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_bf54x.c
diff options
context:
space:
mode:
authorSergei Shtylyov <sshtylyov@ru.mvista.com>2010-05-07 14:49:02 -0400
committerJeff Garzik <jgarzik@redhat.com>2010-05-14 17:35:52 -0400
commite42a542ba9cca594897176020445023c54d903d6 (patch)
treeb2a136581d6fcea9a2a6c534888319b70e15c2af /drivers/ata/pata_bf54x.c
parent41dec29bcb05eb8ec396f70ce791c6e3e4ce4712 (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.c29
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
1237static 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,