libata-sff: kill unused ata_bus_reset()
... since I see no callers of it. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
parent
4f2c774856
commit
294440887b
|
@ -81,16 +81,14 @@ void (*port_disable) (struct ata_port *);
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Called from ata_bus_probe() and ata_bus_reset() error paths,
|
Called from ata_bus_probe() error path, as well as when
|
||||||
as well as when unregistering from the SCSI module (rmmod, hot
|
unregistering from the SCSI module (rmmod, hot unplug).
|
||||||
unplug).
|
|
||||||
This function should do whatever needs to be done to take the
|
This function should do whatever needs to be done to take the
|
||||||
port out of use. In most cases, ata_port_disable() can be used
|
port out of use. In most cases, ata_port_disable() can be used
|
||||||
as this hook.
|
as this hook.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Called from ata_bus_probe() on a failed probe.
|
Called from ata_bus_probe() on a failed probe.
|
||||||
Called from ata_bus_reset() on a failed bus reset.
|
|
||||||
Called from ata_scsi_release().
|
Called from ata_scsi_release().
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
|
@ -2631,100 +2631,6 @@ u8 ata_bmdma_status(struct ata_port *ap)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ata_bmdma_status);
|
EXPORT_SYMBOL_GPL(ata_bmdma_status);
|
||||||
|
|
||||||
/**
|
|
||||||
* ata_bus_reset - reset host port and associated ATA channel
|
|
||||||
* @ap: port to reset
|
|
||||||
*
|
|
||||||
* This is typically the first time we actually start issuing
|
|
||||||
* commands to the ATA channel. We wait for BSY to clear, then
|
|
||||||
* issue EXECUTE DEVICE DIAGNOSTIC command, polling for its
|
|
||||||
* result. Determine what devices, if any, are on the channel
|
|
||||||
* by looking at the device 0/1 error register. Look at the signature
|
|
||||||
* stored in each device's taskfile registers, to determine if
|
|
||||||
* the device is ATA or ATAPI.
|
|
||||||
*
|
|
||||||
* LOCKING:
|
|
||||||
* PCI/etc. bus probe sem.
|
|
||||||
* Obtains host lock.
|
|
||||||
*
|
|
||||||
* SIDE EFFECTS:
|
|
||||||
* Sets ATA_FLAG_DISABLED if bus reset fails.
|
|
||||||
*
|
|
||||||
* DEPRECATED:
|
|
||||||
* This function is only for drivers which still use old EH and
|
|
||||||
* will be removed soon.
|
|
||||||
*/
|
|
||||||
void ata_bus_reset(struct ata_port *ap)
|
|
||||||
{
|
|
||||||
struct ata_device *device = ap->link.device;
|
|
||||||
struct ata_ioports *ioaddr = &ap->ioaddr;
|
|
||||||
unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
|
|
||||||
u8 err;
|
|
||||||
unsigned int dev0, dev1 = 0, devmask = 0;
|
|
||||||
int rc;
|
|
||||||
|
|
||||||
DPRINTK("ENTER, host %u, port %u\n", ap->print_id, ap->port_no);
|
|
||||||
|
|
||||||
/* determine if device 0/1 are present */
|
|
||||||
if (ap->flags & ATA_FLAG_SATA_RESET)
|
|
||||||
dev0 = 1;
|
|
||||||
else {
|
|
||||||
dev0 = ata_devchk(ap, 0);
|
|
||||||
if (slave_possible)
|
|
||||||
dev1 = ata_devchk(ap, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dev0)
|
|
||||||
devmask |= (1 << 0);
|
|
||||||
if (dev1)
|
|
||||||
devmask |= (1 << 1);
|
|
||||||
|
|
||||||
/* select device 0 again */
|
|
||||||
ap->ops->sff_dev_select(ap, 0);
|
|
||||||
|
|
||||||
/* issue bus reset */
|
|
||||||
if (ap->flags & ATA_FLAG_SRST) {
|
|
||||||
rc = ata_bus_softreset(ap, devmask,
|
|
||||||
ata_deadline(jiffies, 40000));
|
|
||||||
if (rc && rc != -ENODEV)
|
|
||||||
goto err_out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* determine by signature whether we have ATA or ATAPI devices
|
|
||||||
*/
|
|
||||||
device[0].class = ata_sff_dev_classify(&device[0], dev0, &err);
|
|
||||||
if ((slave_possible) && (err != 0x81))
|
|
||||||
device[1].class = ata_sff_dev_classify(&device[1], dev1, &err);
|
|
||||||
|
|
||||||
/* is double-select really necessary? */
|
|
||||||
if (device[1].class != ATA_DEV_NONE)
|
|
||||||
ap->ops->sff_dev_select(ap, 1);
|
|
||||||
if (device[0].class != ATA_DEV_NONE)
|
|
||||||
ap->ops->sff_dev_select(ap, 0);
|
|
||||||
|
|
||||||
/* if no devices were detected, disable this port */
|
|
||||||
if ((device[0].class == ATA_DEV_NONE) &&
|
|
||||||
(device[1].class == ATA_DEV_NONE))
|
|
||||||
goto err_out;
|
|
||||||
|
|
||||||
if (ap->flags & (ATA_FLAG_SATA_RESET | ATA_FLAG_SRST)) {
|
|
||||||
/* set up device control for ATA_FLAG_SATA_RESET */
|
|
||||||
iowrite8(ap->ctl, ioaddr->ctl_addr);
|
|
||||||
ap->last_ctl = ap->ctl;
|
|
||||||
}
|
|
||||||
|
|
||||||
DPRINTK("EXIT\n");
|
|
||||||
return;
|
|
||||||
|
|
||||||
err_out:
|
|
||||||
ata_port_printk(ap, KERN_ERR, "disabling port\n");
|
|
||||||
ata_port_disable(ap);
|
|
||||||
|
|
||||||
DPRINTK("EXIT\n");
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL_GPL(ata_bus_reset);
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1631,7 +1631,6 @@ extern void ata_bmdma_setup(struct ata_queued_cmd *qc);
|
||||||
extern void ata_bmdma_start(struct ata_queued_cmd *qc);
|
extern void ata_bmdma_start(struct ata_queued_cmd *qc);
|
||||||
extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
|
extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
|
||||||
extern u8 ata_bmdma_status(struct ata_port *ap);
|
extern u8 ata_bmdma_status(struct ata_port *ap);
|
||||||
extern void ata_bus_reset(struct ata_port *ap);
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev);
|
extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev);
|
||||||
|
|
Reference in New Issue