Skip to content

Commit

Permalink
libata: remove unused functions
Browse files Browse the repository at this point in the history
This patch removes the following obsolete functions:
- libata-core.c: __sata_phy_reset()
- libata-core.c: sata_phy_reset()
- libata-eh.c: ata_qc_timeout()
- libata-eh.c: ata_eng_timeout()

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Tejun Heo <htejun@gmail.com>
  • Loading branch information
Adrian Bunk authored and Tejun Heo committed Nov 19, 2007
1 parent de753e5 commit 21bef6d
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 177 deletions.
78 changes: 0 additions & 78 deletions drivers/ata/libata-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -2580,81 +2580,6 @@ void sata_print_link_status(struct ata_link *link)
}
}

/**
* __sata_phy_reset - Wake/reset a low-level SATA PHY
* @ap: SATA port associated with target SATA PHY.
*
* This function issues commands to standard SATA Sxxx
* PHY registers, to wake up the phy (and device), and
* clear any reset condition.
*
* LOCKING:
* PCI/etc. bus probe sem.
*
*/
void __sata_phy_reset(struct ata_port *ap)
{
struct ata_link *link = &ap->link;
unsigned long timeout = jiffies + (HZ * 5);
u32 sstatus;

if (ap->flags & ATA_FLAG_SATA_RESET) {
/* issue phy wake/reset */
sata_scr_write_flush(link, SCR_CONTROL, 0x301);
/* Couldn't find anything in SATA I/II specs, but
* AHCI-1.1 10.4.2 says at least 1 ms. */
mdelay(1);
}
/* phy wake/clear reset */
sata_scr_write_flush(link, SCR_CONTROL, 0x300);

/* wait for phy to become ready, if necessary */
do {
msleep(200);
sata_scr_read(link, SCR_STATUS, &sstatus);
if ((sstatus & 0xf) != 1)
break;
} while (time_before(jiffies, timeout));

/* print link status */
sata_print_link_status(link);

/* TODO: phy layer with polling, timeouts, etc. */
if (!ata_link_offline(link))
ata_port_probe(ap);
else
ata_port_disable(ap);

if (ap->flags & ATA_FLAG_DISABLED)
return;

if (ata_busy_sleep(ap, ATA_TMOUT_BOOT_QUICK, ATA_TMOUT_BOOT)) {
ata_port_disable(ap);
return;
}

ap->cbl = ATA_CBL_SATA;
}

/**
* sata_phy_reset - Reset SATA bus.
* @ap: SATA port associated with target SATA PHY.
*
* This function resets the SATA bus, and then probes
* the bus for devices.
*
* LOCKING:
* PCI/etc. bus probe sem.
*
*/
void sata_phy_reset(struct ata_port *ap)
{
__sata_phy_reset(ap);
if (ap->flags & ATA_FLAG_DISABLED)
return;
ata_bus_reset(ap);
}

/**
* ata_dev_pair - return other device on cable
* @adev: device
Expand Down Expand Up @@ -7653,8 +7578,6 @@ EXPORT_SYMBOL_GPL(ata_dev_disable);
EXPORT_SYMBOL_GPL(sata_set_spd);
EXPORT_SYMBOL_GPL(sata_link_debounce);
EXPORT_SYMBOL_GPL(sata_link_resume);
EXPORT_SYMBOL_GPL(sata_phy_reset);
EXPORT_SYMBOL_GPL(__sata_phy_reset);
EXPORT_SYMBOL_GPL(ata_bus_reset);
EXPORT_SYMBOL_GPL(ata_std_prereset);
EXPORT_SYMBOL_GPL(ata_std_softreset);
Expand Down Expand Up @@ -7725,7 +7648,6 @@ EXPORT_SYMBOL_GPL(ata_port_desc);
#ifdef CONFIG_PCI
EXPORT_SYMBOL_GPL(ata_port_pbar_desc);
#endif /* CONFIG_PCI */
EXPORT_SYMBOL_GPL(ata_eng_timeout);
EXPORT_SYMBOL_GPL(ata_port_schedule_eh);
EXPORT_SYMBOL_GPL(ata_link_abort);
EXPORT_SYMBOL_GPL(ata_port_abort);
Expand Down
95 changes: 0 additions & 95 deletions drivers/ata/libata-eh.c
Original file line number Diff line number Diff line change
Expand Up @@ -559,101 +559,6 @@ void ata_port_wait_eh(struct ata_port *ap)
}
}

/**
* ata_qc_timeout - Handle timeout of queued command
* @qc: Command that timed out
*
* Some part of the kernel (currently, only the SCSI layer)
* has noticed that the active command on port @ap has not
* completed after a specified length of time. Handle this
* condition by disabling DMA (if necessary) and completing
* transactions, with error if necessary.
*
* This also handles the case of the "lost interrupt", where
* for some reason (possibly hardware bug, possibly driver bug)
* an interrupt was not delivered to the driver, even though the
* transaction completed successfully.
*
* TODO: kill this function once old EH is gone.
*
* LOCKING:
* Inherited from SCSI layer (none, can sleep)
*/
static void ata_qc_timeout(struct ata_queued_cmd *qc)
{
struct ata_port *ap = qc->ap;
u8 host_stat = 0, drv_stat;
unsigned long flags;

DPRINTK("ENTER\n");

ap->hsm_task_state = HSM_ST_IDLE;

spin_lock_irqsave(ap->lock, flags);

switch (qc->tf.protocol) {

case ATA_PROT_DMA:
case ATA_PROT_ATAPI_DMA:
host_stat = ap->ops->bmdma_status(ap);

/* before we do anything else, clear DMA-Start bit */
ap->ops->bmdma_stop(qc);

/* fall through */

default:
ata_altstatus(ap);
drv_stat = ata_chk_status(ap);

/* ack bmdma irq events */
ap->ops->irq_clear(ap);

ata_dev_printk(qc->dev, KERN_ERR, "command 0x%x timeout, "
"stat 0x%x host_stat 0x%x\n",
qc->tf.command, drv_stat, host_stat);

/* complete taskfile transaction */
qc->err_mask |= AC_ERR_TIMEOUT;
break;
}

spin_unlock_irqrestore(ap->lock, flags);

ata_eh_qc_complete(qc);

DPRINTK("EXIT\n");
}

/**
* ata_eng_timeout - Handle timeout of queued command
* @ap: Port on which timed-out command is active
*
* Some part of the kernel (currently, only the SCSI layer)
* has noticed that the active command on port @ap has not
* completed after a specified length of time. Handle this
* condition by disabling DMA (if necessary) and completing
* transactions, with error if necessary.
*
* This also handles the case of the "lost interrupt", where
* for some reason (possibly hardware bug, possibly driver bug)
* an interrupt was not delivered to the driver, even though the
* transaction completed successfully.
*
* TODO: kill this function once old EH is gone.
*
* LOCKING:
* Inherited from SCSI layer (none, can sleep)
*/
void ata_eng_timeout(struct ata_port *ap)
{
DPRINTK("ENTER\n");

ata_qc_timeout(ata_qc_from_tag(ap, ap->link.active_tag));

DPRINTK("EXIT\n");
}

static int ata_eh_nr_in_flight(struct ata_port *ap)
{
unsigned int tag;
Expand Down
4 changes: 0 additions & 4 deletions include/linux/libata.h
Original file line number Diff line number Diff line change
Expand Up @@ -771,8 +771,6 @@ static inline int ata_port_is_dummy(struct ata_port *ap)

extern void sata_print_link_status(struct ata_link *link);
extern void ata_port_probe(struct ata_port *);
extern void __sata_phy_reset(struct ata_port *ap);
extern void sata_phy_reset(struct ata_port *ap);
extern void ata_bus_reset(struct ata_port *ap);
extern int sata_set_spd(struct ata_link *link);
extern int sata_link_debounce(struct ata_link *link,
Expand Down Expand Up @@ -994,8 +992,6 @@ extern void sata_pmp_do_eh(struct ata_port *ap,
/*
* EH
*/
extern void ata_eng_timeout(struct ata_port *ap);

extern void ata_port_schedule_eh(struct ata_port *ap);
extern int ata_link_abort(struct ata_link *link);
extern int ata_port_abort(struct ata_port *ap);
Expand Down

0 comments on commit 21bef6d

Please sign in to comment.