提交 6fd36390 编写于 作者: T Tejun Heo 提交者: Jeff Garzik

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: NTejun Heo <htejun@gmail.com>
Signed-off-by: NJeff Garzik <jeff@garzik.org>
上级 3d5a3d67
...@@ -290,7 +290,7 @@ int ata_busy_sleep(struct ata_port *ap, ...@@ -290,7 +290,7 @@ int ata_busy_sleep(struct ata_port *ap,
while (status != 0xff && (status & ATA_BUSY) && while (status != 0xff && (status & ATA_BUSY) &&
time_before(jiffies, timeout)) { time_before(jiffies, timeout)) {
msleep(50); msleep(50);
status = ata_chk_status(ap); status = ap->ops->check_status(ap);
} }
if (status == 0xff) if (status == 0xff)
...@@ -326,7 +326,7 @@ int ata_wait_ready(struct ata_port *ap, unsigned long deadline) ...@@ -326,7 +326,7 @@ int ata_wait_ready(struct ata_port *ap, unsigned long deadline)
int warned = 0; int warned = 0;
while (1) { while (1) {
u8 status = ata_chk_status(ap); u8 status = ap->ops->check_status(ap);
unsigned long now = jiffies; unsigned long now = jiffies;
if (!(status & ATA_BUSY)) if (!(status & ATA_BUSY))
...@@ -1486,7 +1486,7 @@ inline unsigned int ata_host_intr(struct ata_port *ap, ...@@ -1486,7 +1486,7 @@ inline unsigned int ata_host_intr(struct ata_port *ap,
goto idle_irq; goto idle_irq;
/* check main status, clearing INTRQ */ /* check main status, clearing INTRQ */
status = ata_chk_status(ap); status = ap->ops->check_status(ap);
if (unlikely(status & ATA_BUSY)) if (unlikely(status & ATA_BUSY))
goto idle_irq; goto idle_irq;
...@@ -1506,7 +1506,7 @@ inline unsigned int ata_host_intr(struct ata_port *ap, ...@@ -1506,7 +1506,7 @@ inline unsigned int ata_host_intr(struct ata_port *ap,
#ifdef ATA_IRQ_TRAP #ifdef ATA_IRQ_TRAP
if ((ap->stats.idle_irq % 1000) == 0) { if ((ap->stats.idle_irq % 1000) == 0) {
ata_chk_status(ap); ap->ops->check_status(ap);
ap->ops->irq_clear(ap); ap->ops->irq_clear(ap);
ata_port_printk(ap, KERN_WARNING, "irq trap\n"); ata_port_printk(ap, KERN_WARNING, "irq trap\n");
return 1; return 1;
...@@ -1582,7 +1582,7 @@ void ata_bmdma_freeze(struct ata_port *ap) ...@@ -1582,7 +1582,7 @@ void ata_bmdma_freeze(struct ata_port *ap)
* ATA_NIEN manipulation. Also, many controllers fail to mask * ATA_NIEN manipulation. Also, many controllers fail to mask
* previously pending IRQ on ATA_NIEN assertion. Clear it. * previously pending IRQ on ATA_NIEN assertion. Clear it.
*/ */
ata_chk_status(ap); ap->ops->check_status(ap);
ap->ops->irq_clear(ap); ap->ops->irq_clear(ap);
} }
...@@ -1599,7 +1599,7 @@ void ata_bmdma_freeze(struct ata_port *ap) ...@@ -1599,7 +1599,7 @@ void ata_bmdma_freeze(struct ata_port *ap)
void ata_bmdma_thaw(struct ata_port *ap) void ata_bmdma_thaw(struct ata_port *ap)
{ {
/* clear & re-enable interrupts */ /* clear & re-enable interrupts */
ata_chk_status(ap); ap->ops->check_status(ap);
ap->ops->irq_clear(ap); ap->ops->irq_clear(ap);
ap->ops->irq_on(ap); ap->ops->irq_on(ap);
} }
...@@ -1709,7 +1709,7 @@ unsigned int ata_dev_try_classify(struct ata_device *dev, int present, ...@@ -1709,7 +1709,7 @@ unsigned int ata_dev_try_classify(struct ata_device *dev, int present,
class = ATA_DEV_ATA; class = ATA_DEV_ATA;
else else
class = ATA_DEV_NONE; class = ATA_DEV_NONE;
} else if ((class == ATA_DEV_ATA) && (ata_chk_status(ap) == 0)) } else if ((class == ATA_DEV_ATA) && (ap->ops->check_status(ap) == 0))
class = ATA_DEV_NONE; class = ATA_DEV_NONE;
return class; return class;
...@@ -1820,7 +1820,7 @@ void ata_wait_after_reset(struct ata_port *ap, unsigned long deadline) ...@@ -1820,7 +1820,7 @@ void ata_wait_after_reset(struct ata_port *ap, unsigned long deadline)
*/ */
if (ap->flags & ATA_FLAG_SATA) { if (ap->flags & ATA_FLAG_SATA) {
while (1) { while (1) {
u8 status = ata_chk_status(ap); u8 status = ap->ops->check_status(ap);
if (status != 0xff || time_after(jiffies, deadline)) if (status != 0xff || time_after(jiffies, deadline))
return; return;
...@@ -1851,7 +1851,7 @@ static int ata_bus_softreset(struct ata_port *ap, unsigned int devmask, ...@@ -1851,7 +1851,7 @@ static int ata_bus_softreset(struct ata_port *ap, unsigned int devmask,
* the bus shows 0xFF because the odd clown forgets the D7 * the bus shows 0xFF because the odd clown forgets the D7
* pulldown resistor. * pulldown resistor.
*/ */
if (ata_chk_status(ap) == 0xFF) if (ap->ops->check_status(ap) == 0xFF)
return -ENODEV; return -ENODEV;
return ata_bus_post_reset(ap, devmask, deadline); return ata_bus_post_reset(ap, devmask, deadline);
...@@ -2034,7 +2034,7 @@ void ata_bmdma_error_handler(struct ata_port *ap) ...@@ -2034,7 +2034,7 @@ void ata_bmdma_error_handler(struct ata_port *ap)
} }
ata_altstatus(ap); ata_altstatus(ap);
ata_chk_status(ap); ap->ops->check_status(ap);
ap->ops->irq_clear(ap); ap->ops->irq_clear(ap);
spin_unlock_irqrestore(ap->lock, flags); spin_unlock_irqrestore(ap->lock, flags);
...@@ -2725,7 +2725,6 @@ EXPORT_SYMBOL_GPL(ata_sff_port_ops); ...@@ -2725,7 +2725,6 @@ EXPORT_SYMBOL_GPL(ata_sff_port_ops);
EXPORT_SYMBOL_GPL(ata_bmdma_port_ops); EXPORT_SYMBOL_GPL(ata_bmdma_port_ops);
EXPORT_SYMBOL_GPL(ata_qc_prep); EXPORT_SYMBOL_GPL(ata_qc_prep);
EXPORT_SYMBOL_GPL(ata_dumb_qc_prep); EXPORT_SYMBOL_GPL(ata_dumb_qc_prep);
EXPORT_SYMBOL_GPL(ata_pci_default_filter);
EXPORT_SYMBOL_GPL(ata_std_dev_select); EXPORT_SYMBOL_GPL(ata_std_dev_select);
EXPORT_SYMBOL_GPL(ata_check_status); EXPORT_SYMBOL_GPL(ata_check_status);
EXPORT_SYMBOL_GPL(ata_altstatus); EXPORT_SYMBOL_GPL(ata_altstatus);
...@@ -2754,6 +2753,7 @@ EXPORT_SYMBOL_GPL(ata_bmdma_error_handler); ...@@ -2754,6 +2753,7 @@ EXPORT_SYMBOL_GPL(ata_bmdma_error_handler);
EXPORT_SYMBOL_GPL(ata_bmdma_post_internal_cmd); EXPORT_SYMBOL_GPL(ata_bmdma_post_internal_cmd);
EXPORT_SYMBOL_GPL(ata_sff_port_start); EXPORT_SYMBOL_GPL(ata_sff_port_start);
EXPORT_SYMBOL_GPL(ata_std_ports); EXPORT_SYMBOL_GPL(ata_std_ports);
EXPORT_SYMBOL_GPL(ata_pci_default_filter);
EXPORT_SYMBOL_GPL(ata_bmdma_setup); EXPORT_SYMBOL_GPL(ata_bmdma_setup);
EXPORT_SYMBOL_GPL(ata_bmdma_start); EXPORT_SYMBOL_GPL(ata_bmdma_start);
EXPORT_SYMBOL_GPL(ata_bmdma_stop); EXPORT_SYMBOL_GPL(ata_bmdma_stop);
......
...@@ -1264,7 +1264,7 @@ static void bfin_bmdma_freeze(struct ata_port *ap) ...@@ -1264,7 +1264,7 @@ static void bfin_bmdma_freeze(struct ata_port *ap)
* ATA_NIEN manipulation. Also, many controllers fail to mask * ATA_NIEN manipulation. Also, many controllers fail to mask
* previously pending IRQ on ATA_NIEN assertion. Clear it. * previously pending IRQ on ATA_NIEN assertion. Clear it.
*/ */
ata_chk_status(ap); ap->ops->check_status(ap);
bfin_irq_clear(ap); bfin_irq_clear(ap);
} }
......
...@@ -854,7 +854,7 @@ static void scc_bmdma_freeze (struct ata_port *ap) ...@@ -854,7 +854,7 @@ static void scc_bmdma_freeze (struct ata_port *ap)
* ATA_NIEN manipulation. Also, many controllers fail to mask * ATA_NIEN manipulation. Also, many controllers fail to mask
* previously pending IRQ on ATA_NIEN assertion. Clear it. * previously pending IRQ on ATA_NIEN assertion. Clear it.
*/ */
ata_chk_status(ap); ap->ops->check_status(ap);
ap->ops->irq_clear(ap); ap->ops->irq_clear(ap);
} }
......
...@@ -267,14 +267,14 @@ static void inic_host_intr(struct ata_port *ap) ...@@ -267,14 +267,14 @@ static void inic_host_intr(struct ata_port *ap)
ata_qc_from_tag(ap, ap->link.active_tag); ata_qc_from_tag(ap, ap->link.active_tag);
if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) { if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) {
ata_chk_status(ap); /* clear ATA interrupt */ ap->ops->check_status(ap); /* clear ATA interrupt */
return; return;
} }
if (likely(ata_host_intr(ap, qc))) if (likely(ata_host_intr(ap, qc)))
return; return;
ata_chk_status(ap); /* clear ATA interrupt */ ap->ops->check_status(ap); /* clear ATA interrupt */
ata_port_printk(ap, KERN_WARNING, "unhandled " ata_port_printk(ap, KERN_WARNING, "unhandled "
"interrupt, irq_stat=%x\n", irq_stat); "interrupt, irq_stat=%x\n", irq_stat);
return; return;
...@@ -351,7 +351,7 @@ static unsigned int inic_qc_issue(struct ata_queued_cmd *qc) ...@@ -351,7 +351,7 @@ static unsigned int inic_qc_issue(struct ata_queued_cmd *qc)
*/ */
if (unlikely(qc->tf.command == ATA_CMD_ID_ATA || if (unlikely(qc->tf.command == ATA_CMD_ID_ATA ||
qc->tf.command == ATA_CMD_ID_ATAPI)) { qc->tf.command == ATA_CMD_ID_ATAPI)) {
u8 stat = ata_chk_status(ap); u8 stat = ap->ops->check_status(ap);
if (stat == 0x7f || stat == 0xff) if (stat == 0x7f || stat == 0xff)
return AC_ERR_HSM; return AC_ERR_HSM;
} }
...@@ -365,7 +365,7 @@ static void inic_freeze(struct ata_port *ap) ...@@ -365,7 +365,7 @@ static void inic_freeze(struct ata_port *ap)
__inic_set_pirq_mask(ap, PIRQ_MASK_FREEZE); __inic_set_pirq_mask(ap, PIRQ_MASK_FREEZE);
ata_chk_status(ap); ap->ops->check_status(ap);
writeb(0xff, port_base + PORT_IRQ_STAT); writeb(0xff, port_base + PORT_IRQ_STAT);
readb(port_base + PORT_IRQ_STAT); /* flush */ readb(port_base + PORT_IRQ_STAT); /* flush */
...@@ -375,7 +375,7 @@ static void inic_thaw(struct ata_port *ap) ...@@ -375,7 +375,7 @@ static void inic_thaw(struct ata_port *ap)
{ {
void __iomem *port_base = inic_port_base(ap); void __iomem *port_base = inic_port_base(ap);
ata_chk_status(ap); ap->ops->check_status(ap);
writeb(0xff, port_base + PORT_IRQ_STAT); writeb(0xff, port_base + PORT_IRQ_STAT);
__inic_set_pirq_mask(ap, PIRQ_MASK_OTHER); __inic_set_pirq_mask(ap, PIRQ_MASK_OTHER);
......
...@@ -369,7 +369,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2) ...@@ -369,7 +369,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) { if (unlikely(!qc || (qc->tf.flags & ATA_TFLAG_POLLING))) {
/* this sometimes happens, just clear IRQ */ /* this sometimes happens, just clear IRQ */
ata_chk_status(ap); ap->ops->check_status(ap);
return; return;
} }
...@@ -405,7 +405,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2) ...@@ -405,7 +405,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
} }
/* check main status, clearing INTRQ */ /* check main status, clearing INTRQ */
status = ata_chk_status(ap); status = ap->ops->check_status(ap);
if (unlikely(status & ATA_BUSY)) if (unlikely(status & ATA_BUSY))
goto err_hsm; goto err_hsm;
...@@ -480,7 +480,7 @@ static void sil_thaw(struct ata_port *ap) ...@@ -480,7 +480,7 @@ static void sil_thaw(struct ata_port *ap)
u32 tmp; u32 tmp;
/* clear IRQ */ /* clear IRQ */
ata_chk_status(ap); ap->ops->check_status(ap);
ata_bmdma_irq_clear(ap); ata_bmdma_irq_clear(ap);
/* turn on SATA IRQ if supported */ /* turn on SATA IRQ if supported */
......
...@@ -173,7 +173,7 @@ static void svia_noop_freeze(struct ata_port *ap) ...@@ -173,7 +173,7 @@ static void svia_noop_freeze(struct ata_port *ap)
/* Some VIA controllers choke if ATA_NIEN is manipulated in /* Some VIA controllers choke if ATA_NIEN is manipulated in
* certain way. Leave it alone and just clear pending IRQ. * certain way. Leave it alone and just clear pending IRQ.
*/ */
ata_chk_status(ap); ap->ops->check_status(ap);
ata_bmdma_irq_clear(ap); ata_bmdma_irq_clear(ap);
} }
......
...@@ -251,7 +251,7 @@ static void vsc_port_intr(u8 port_status, struct ata_port *ap) ...@@ -251,7 +251,7 @@ static void vsc_port_intr(u8 port_status, struct ata_port *ap)
* simply clear the interrupt * simply clear the interrupt
*/ */
if (unlikely(!handled)) if (unlikely(!handled))
ata_chk_status(ap); ap->ops->check_status(ap);
} }
/* /*
......
...@@ -1401,11 +1401,6 @@ extern int ata_pci_init_one(struct pci_dev *pdev, ...@@ -1401,11 +1401,6 @@ extern int ata_pci_init_one(struct pci_dev *pdev,
struct scsi_host_template *sht, void *host_priv); struct scsi_host_template *sht, void *host_priv);
#endif /* CONFIG_PCI */ #endif /* CONFIG_PCI */
static inline u8 ata_chk_status(struct ata_port *ap)
{
return ap->ops->check_status(ap);
}
/** /**
* ata_pause - Flush writes and pause 400 nanoseconds. * ata_pause - Flush writes and pause 400 nanoseconds.
* @ap: Port to wait for. * @ap: Port to wait for.
...@@ -1439,7 +1434,7 @@ static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits, ...@@ -1439,7 +1434,7 @@ static inline u8 ata_busy_wait(struct ata_port *ap, unsigned int bits,
do { do {
udelay(10); udelay(10);
status = ata_chk_status(ap); status = ap->ops->check_status(ap);
max--; max--;
} while (status != 0xff && (status & bits) && (max > 0)); } while (status != 0xff && (status & bits) && (max > 0));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册