aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2008-03-25 09:16:44 -0400
committerJeff Garzik <jgarzik@redhat.com>2008-04-17 15:44:18 -0400
commit6fd36390117f7844ad147377878ddb52088f583a (patch)
treec25d9a8357ff173ce46eb057cc50370b87b9cca8
parent3d5a3d67a578d95ac3a11a862d16a054e2d4d9cd (diff)
libata: kill ata_chk_status()
ata_chk_status() just calls ops->check_status and it only adds confusion with other status functions. Kill it. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/ata/libata-sff.c22
-rw-r--r--drivers/ata/pata_bf54x.c2
-rw-r--r--drivers/ata/pata_scc.c2
-rw-r--r--drivers/ata/sata_inic162x.c10
-rw-r--r--drivers/ata/sata_sil.c6
-rw-r--r--drivers/ata/sata_via.c2
-rw-r--r--drivers/ata/sata_vsc.c2
-rw-r--r--include/linux/libata.h7
8 files changed, 24 insertions, 29 deletions
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index ebdd46bc13c4..c601dcef2925 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -290,7 +290,7 @@ int ata_busy_sleep(struct ata_port *ap,
290 while (status != 0xff && (status & ATA_BUSY) && 290 while (status != 0xff && (status & ATA_BUSY) &&
291 time_before(jiffies, timeout)) { 291 time_before(jiffies, timeout)) {
292 msleep(50); 292 msleep(50);
293 status = ata_chk_status(ap); 293 status = ap->ops->check_status(ap);
294 } 294 }
295 295
296 if (status == 0xff) 296 if (status == 0xff)
@@ -326,7 +326,7 @@ int ata_wait_ready(struct ata_port *ap, unsigned long deadline)
326 int warned = 0; 326 int warned = 0;
327 327
328 while (1) { 328 while (1) {
329 u8 status = ata_chk_status(ap); 329 u8 status = ap->ops->check_status(ap);
330 unsigned long now = jiffies; 330 unsigned long now = jiffies;
331 331
332 if (!(status & ATA_BUSY)) 332 if (!(status & ATA_BUSY))
@@ -1486,7 +1486,7 @@ inline unsigned int ata_host_intr(struct ata_port *ap,
1486 goto idle_irq; 1486 goto idle_irq;
1487 1487
1488 /* check main status, clearing INTRQ */ 1488 /* check main status, clearing INTRQ */
1489 status = ata_chk_status(ap); 1489 status = ap->ops->check_status(ap);
1490 if (unlikely(status & ATA_BUSY)) 1490 if (unlikely(status & ATA_BUSY))
1491 goto idle_irq; 1491 goto idle_irq;
1492 1492
@@ -1506,7 +1506,7 @@ idle_irq:
1506 1506
1507#ifdef ATA_IRQ_TRAP 1507#ifdef ATA_IRQ_TRAP
1508 if ((ap->stats.idle_irq % 1000) == 0) { 1508 if ((ap->stats.idle_irq % 1000) == 0) {
1509 ata_chk_status(ap); 1509 ap->ops->check_status(ap);
1510 ap->ops->irq_clear(ap); 1510 ap->ops->irq_clear(ap);
1511 ata_port_printk(ap, KERN_WARNING, "irq trap\n"); 1511 ata_port_printk(ap, KERN_WARNING, "irq trap\n");
1512 return 1; 1512 return 1;
@@ -1582,7 +1582,7 @@ void ata_bmdma_freeze(struct ata_port *ap)
1582 * ATA_NIEN manipulation. Also, many controllers fail to mask 1582 * ATA_NIEN manipulation. Also, many controllers fail to mask
1583 * previously pending IRQ on ATA_NIEN assertion. Clear it. 1583 * previously pending IRQ on ATA_NIEN assertion. Clear it.
1584 */ 1584 */
1585 ata_chk_status(ap); 1585 ap->ops->check_status(ap);
1586 1586
1587 ap->ops->irq_clear(ap); 1587 ap->ops->irq_clear(ap);
1588} 1588}
@@ -1599,7 +1599,7 @@ void ata_bmdma_freeze(struct ata_port *ap)
1599void ata_bmdma_thaw(struct ata_port *ap) 1599void ata_bmdma_thaw(struct ata_port *ap)
1600{ 1600{
1601 /* clear & re-enable interrupts */ 1601 /* clear & re-enable interrupts */
1602 ata_chk_status(ap); 1602 ap->ops->check_status(ap);
1603 ap->ops->irq_clear(ap); 1603 ap->ops->irq_clear(ap);
1604 ap->ops->irq_on(ap); 1604 ap->ops->irq_on(ap);
1605} 1605}
@@ -1709,7 +1709,7 @@ unsigned int ata_dev_try_classify(struct ata_device *dev, int present,
1709 class = ATA_DEV_ATA; 1709 class = ATA_DEV_ATA;
1710 else 1710 else
1711 class = ATA_DEV_NONE; 1711 class = ATA_DEV_NONE;
1712 } else if ((class == ATA_DEV_ATA) && (ata_chk_status(ap) == 0)) 1712 } else if ((class == ATA_DEV_ATA) && (ap->ops->check_status(ap) == 0))
1713 class = ATA_DEV_NONE; 1713 class = ATA_DEV_NONE;
1714 1714
1715 return class; 1715 return class;
@@ -1820,7 +1820,7 @@ void ata_wait_after_reset(struct ata_port *ap, unsigned long deadline)
1820 */ 1820 */
1821 if (ap->flags & ATA_FLAG_SATA) { 1821 if (ap->flags & ATA_FLAG_SATA) {
1822 while (1) { 1822 while (1) {
1823 u8 status = ata_chk_status(ap); 1823 u8 status = ap->ops->check_status(ap);
1824 1824
1825 if (status != 0xff || time_after(jiffies, deadline)) 1825 if (status != 0xff || time_after(jiffies, deadline))
1826 return; 1826 return;
@@ -1851,7 +1851,7 @@ static int ata_bus_softreset(struct ata_port *ap, unsigned int devmask,
1851 * the bus shows 0xFF because the odd clown forgets the D7 1851 * the bus shows 0xFF because the odd clown forgets the D7
1852 * pulldown resistor. 1852 * pulldown resistor.
1853 */ 1853 */
1854 if (ata_chk_status(ap) == 0xFF) 1854 if (ap->ops->check_status(ap) == 0xFF)
1855 return -ENODEV; 1855 return -ENODEV;
1856 1856
1857 return ata_bus_post_reset(ap, devmask, deadline); 1857 return ata_bus_post_reset(ap, devmask, deadline);
@@ -2034,7 +2034,7 @@ void ata_bmdma_error_handler(struct ata_port *ap)
2034 } 2034 }
2035 2035
2036 ata_altstatus(ap); 2036 ata_altstatus(ap);
2037 ata_chk_status(ap); 2037 ap->ops->check_status(ap);
2038 ap->ops->irq_clear(ap); 2038 ap->ops->irq_clear(ap);
2039 2039
2040 spin_unlock_irqrestore(ap->lock, flags); 2040 spin_unlock_irqrestore(ap->lock, flags);
@@ -2725,7 +2725,6 @@ EXPORT_SYMBOL_GPL(ata_sff_port_ops);
2725EXPORT_SYMBOL_GPL(ata_bmdma_port_ops); 2725EXPORT_SYMBOL_GPL(ata_bmdma_port_ops);
2726EXPORT_SYMBOL_GPL(ata_qc_prep); 2726EXPORT_SYMBOL_GPL(ata_qc_prep);
2727EXPORT_SYMBOL_GPL(ata_dumb_qc_prep); 2727EXPORT_SYMBOL_GPL(ata_dumb_qc_prep);
2728EXPORT_SYMBOL_GPL(ata_pci_default_filter);
2729EXPORT_SYMBOL_GPL(ata_std_dev_select); 2728EXPORT_SYMBOL_GPL(ata_std_dev_select);
2730EXPORT_SYMBOL_GPL(ata_check_status); 2729EXPORT_SYMBOL_GPL(ata_check_status);
2731EXPORT_SYMBOL_GPL(ata_altstatus); 2730EXPORT_SYMBOL_GPL(ata_altstatus);
@@ -2754,6 +2753,7 @@ EXPORT_SYMBOL_GPL(ata_bmdma_error_handler);
2754EXPORT_SYMBOL_GPL(ata_bmdma_post_internal_cmd); 2753EXPORT_SYMBOL_GPL(ata_bmdma_post_internal_cmd);
2755EXPORT_SYMBOL_GPL(ata_sff_port_start); 2754EXPORT_SYMBOL_GPL(ata_sff_port_start);
2756EXPORT_SYMBOL_GPL(ata_std_ports); 2755EXPORT_SYMBOL_GPL(ata_std_ports);
2756EXPORT_SYMBOL_GPL(ata_pci_default_filter);
2757EXPORT_SYMBOL_GPL(ata_bmdma_setup); 2757EXPORT_SYMBOL_GPL(ata_bmdma_setup);
2758EXPORT_SYMBOL_GPL(ata_bmdma_start); 2758EXPORT_SYMBOL_GPL(ata_bmdma_start);
2759EXPORT_SYMBOL_GPL(ata_bmdma_stop); 2759EXPORT_SYMBOL_GPL(ata_bmdma_stop);
diff --git a/drivers/ata/pata_bf54x.c b/drivers/ata/pata_bf54x.c
index eea275acb2a8..457ac800cd5e 100644
--- a/drivers/ata/pata_bf54x.c
+++ b/drivers/ata/pata_bf54x.c
@@ -1264,7 +1264,7 @@ static void bfin_bmdma_freeze(struct ata_port *ap)
1264 * ATA_NIEN manipulation. Also, many controllers fail to mask 1264 * ATA_NIEN manipulation. Also, many controllers fail to mask
1265 * previously pending IRQ on ATA_NIEN assertion. Clear it. 1265 * previously pending IRQ on ATA_NIEN assertion. Clear it.
1266 */ 1266 */
1267 ata_chk_status(ap); 1267 ap->ops->check_status(ap);
1268 1268
1269 bfin_irq_clear(ap); 1269 bfin_irq_clear(ap);
1270} 1270}
diff --git a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c
index 07f2d7a6f1a8..85d33637dff9 100644
--- a/drivers/ata/pata_scc.c
+++ b/drivers/ata/pata_scc.c
@@ -854,7 +854,7 @@ static void scc_bmdma_freeze (struct ata_port *ap)
854 * ATA_NIEN manipulation. Also, many controllers fail to mask 854 * ATA_NIEN manipulation. Also, many controllers fail to mask
855 * previously pending IRQ on ATA_NIEN assertion. Clear it. 855 * previously pending IRQ on ATA_NIEN assertion. Clear it.
856 */ 856 */
857 ata_chk_status(ap); 857 ap->ops->check_status(ap);
858 858
859 ap->ops->irq_clear(ap); 859 ap->ops->irq_clear(ap);
860} 860}
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index ba1c09953517..12fbf3868fe2 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -267,14 +267,14 @@ static void inic_host_intr(struct ata_port *ap)
267 ata_qc_from_tag(ap, ap->link.active_tag); 267 ata_qc_from_tag(ap, ap->link.active_tag);
268 268
269 if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) { 269 if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) {
270 ata_chk_status(ap); /* clear ATA interrupt */ 270 ap->ops->check_status(ap); /* clear ATA interrupt */
271 return; 271 return;
272 } 272 }
273 273
274 if (likely(ata_host_intr(ap, qc))) 274 if (likely(ata_host_intr(ap, qc)))
275 return; 275 return;
276 276
277 ata_chk_status(ap); /* clear ATA interrupt */ 277 ap->ops->check_status(ap); /* clear ATA interrupt */
278 ata_port_printk(ap, KERN_WARNING, "unhandled " 278 ata_port_printk(ap, KERN_WARNING, "unhandled "
279 "interrupt, irq_stat=%x\n", irq_stat); 279 "interrupt, irq_stat=%x\n", irq_stat);
280 return; 280 return;
@@ -351,7 +351,7 @@ static unsigned int inic_qc_issue(struct ata_queued_cmd *qc)
351 */ 351 */
352 if (unlikely(qc->tf.command == ATA_CMD_ID_ATA || 352 if (unlikely(qc->tf.command == ATA_CMD_ID_ATA ||
353 qc->tf.command == ATA_CMD_ID_ATAPI)) { 353 qc->tf.command == ATA_CMD_ID_ATAPI)) {
354 u8 stat = ata_chk_status(ap); 354 u8 stat = ap->ops->check_status(ap);
355 if (stat == 0x7f || stat == 0xff) 355 if (stat == 0x7f || stat == 0xff)
356 return AC_ERR_HSM; 356 return AC_ERR_HSM;
357 } 357 }
@@ -365,7 +365,7 @@ static void inic_freeze(struct ata_port *ap)
365 365
366 __inic_set_pirq_mask(ap, PIRQ_MASK_FREEZE); 366 __inic_set_pirq_mask(ap, PIRQ_MASK_FREEZE);
367 367
368 ata_chk_status(ap); 368 ap->ops->check_status(ap);
369 writeb(0xff, port_base + PORT_IRQ_STAT); 369 writeb(0xff, port_base + PORT_IRQ_STAT);
370 370
371 readb(port_base + PORT_IRQ_STAT); /* flush */ 371 readb(port_base + PORT_IRQ_STAT); /* flush */
@@ -375,7 +375,7 @@ static void inic_thaw(struct ata_port *ap)
375{ 375{
376 void __iomem *port_base = inic_port_base(ap); 376 void __iomem *port_base = inic_port_base(ap);
377 377
378 ata_chk_status(ap); 378 ap->ops->check_status(ap);
379 writeb(0xff, port_base + PORT_IRQ_STAT); 379 writeb(0xff, port_base + PORT_IRQ_STAT);
380 380
381 __inic_set_pirq_mask(ap, PIRQ_MASK_OTHER); 381 __inic_set_pirq_mask(ap, PIRQ_MASK_OTHER);
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index eac7ca73cfa0..659dfcbdc1b2 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -369,7 +369,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
369 369
370 if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) { 370 if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) {
371 /* this sometimes happens, just clear IRQ */ 371 /* this sometimes happens, just clear IRQ */
372 ata_chk_status(ap); 372 ap->ops->check_status(ap);
373 return; 373 return;
374 } 374 }
375 375
@@ -405,7 +405,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
405 } 405 }
406 406
407 /* check main status, clearing INTRQ */ 407 /* check main status, clearing INTRQ */
408 status = ata_chk_status(ap); 408 status = ap->ops->check_status(ap);
409 if (unlikely(status & ATA_BUSY)) 409 if (unlikely(status & ATA_BUSY))
410 goto err_hsm; 410 goto err_hsm;
411 411
@@ -480,7 +480,7 @@ static void sil_thaw(struct ata_port *ap)
480 u32 tmp; 480 u32 tmp;
481 481
482 /* clear IRQ */ 482 /* clear IRQ */
483 ata_chk_status(ap); 483 ap->ops->check_status(ap);
484 ata_bmdma_irq_clear(ap); 484 ata_bmdma_irq_clear(ap);
485 485
486 /* turn on SATA IRQ if supported */ 486 /* turn on SATA IRQ if supported */
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index 402fd7333d48..4bc6e849af2c 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -173,7 +173,7 @@ static void svia_noop_freeze(struct ata_port *ap)
173 /* Some VIA controllers choke if ATA_NIEN is manipulated in 173 /* Some VIA controllers choke if ATA_NIEN is manipulated in
174 * certain way. Leave it alone and just clear pending IRQ. 174 * certain way. Leave it alone and just clear pending IRQ.
175 */ 175 */
176 ata_chk_status(ap); 176 ap->ops->check_status(ap);
177 ata_bmdma_irq_clear(ap); 177 ata_bmdma_irq_clear(ap);
178} 178}
179 179
diff --git a/drivers/ata/sata_vsc.c b/drivers/ata/sata_vsc.c
index 8045a72dc559..fb3a88722664 100644
--- a/drivers/ata/sata_vsc.c
+++ b/drivers/ata/sata_vsc.c
@@ -251,7 +251,7 @@ static void vsc_port_intr(u8 port_status, struct ata_port *ap)
251 * simply clear the interrupt 251 * simply clear the interrupt
252 */ 252 */
253 if (unlikely(!handled)) 253 if (unlikely(!handled))
254 ata_chk_status(ap); 254 ap->ops->check_status(ap);
255} 255}
256 256
257/* 257/*
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 53b8db05a1fb..61a7f8d06971 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -1401,11 +1401,6 @@ extern int ata_pci_init_one(struct pci_dev *pdev,
1401 struct scsi_host_template *sht, void *host_priv); 1401 struct scsi_host_template *sht, void *host_priv);
1402#endif /* CONFIG_PCI */ 1402#endif /* CONFIG_PCI */
1403 1403
1404static inline u8 ata_chk_status(struct ata_port *ap)
1405{
1406 return ap->ops->check_status(ap);
1407}
1408
1409/** 1404/**
1410 * ata_pause - Flush writes and pause 400 nanoseconds. 1405 * ata_pause - Flush writes and pause 400 nanoseconds.
1411 * @ap: Port to wait for. 1406 * @ap: Port to wait for.
@@ -1439,7 +1434,7 @@ static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
1439 1434
1440 do { 1435 do {
1441 udelay(10); 1436 udelay(10);
1442 status = ata_chk_status(ap); 1437 status = ap->ops->check_status(ap);
1443 max--; 1438 max--;
1444 } while (status != 0xff && (status & bits) && (max > 0)); 1439 } while (status != 0xff && (status & bits) && (max > 0));
1445 1440