[PATCH] ata_piix: convert pata to new reset mechanism
Convert ata_piix pata ->phy_reset to new reset mechanism. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
parent
56497bd5f1
commit
573db6b8f9
1 changed files with 27 additions and 16 deletions
|
@ -131,7 +131,7 @@ enum {
|
|||
static int piix_init_one (struct pci_dev *pdev,
|
||||
const struct pci_device_id *ent);
|
||||
|
||||
static void piix_pata_phy_reset(struct ata_port *ap);
|
||||
static int piix_pata_probe_reset(struct ata_port *ap, unsigned int *classes);
|
||||
static void piix_sata_phy_reset(struct ata_port *ap);
|
||||
static void piix_set_piomode (struct ata_port *ap, struct ata_device *adev);
|
||||
static void piix_set_dmamode (struct ata_port *ap, struct ata_device *adev);
|
||||
|
@ -207,7 +207,7 @@ static const struct ata_port_operations piix_pata_ops = {
|
|||
.exec_command = ata_exec_command,
|
||||
.dev_select = ata_std_dev_select,
|
||||
|
||||
.phy_reset = piix_pata_phy_reset,
|
||||
.probe_reset = piix_pata_probe_reset,
|
||||
|
||||
.bmdma_setup = ata_bmdma_setup,
|
||||
.bmdma_start = ata_bmdma_start,
|
||||
|
@ -258,8 +258,7 @@ static struct ata_port_info piix_port_info[] = {
|
|||
/* ich5_pata */
|
||||
{
|
||||
.sht = &piix_sht,
|
||||
.host_flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST |
|
||||
PIIX_FLAG_CHECKINTR,
|
||||
.host_flags = ATA_FLAG_SLAVE_POSS | PIIX_FLAG_CHECKINTR,
|
||||
.pio_mask = 0x1f, /* pio0-4 */
|
||||
#if 0
|
||||
.mwdma_mask = 0x06, /* mwdma1-2 */
|
||||
|
@ -284,7 +283,7 @@ static struct ata_port_info piix_port_info[] = {
|
|||
/* piix4_pata */
|
||||
{
|
||||
.sht = &piix_sht,
|
||||
.host_flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST,
|
||||
.host_flags = ATA_FLAG_SLAVE_POSS,
|
||||
.pio_mask = 0x1f, /* pio0-4 */
|
||||
#if 0
|
||||
.mwdma_mask = 0x06, /* mwdma1-2 */
|
||||
|
@ -366,30 +365,42 @@ cbl40:
|
|||
}
|
||||
|
||||
/**
|
||||
* piix_pata_phy_reset - Probe specified port on PATA host controller
|
||||
* @ap: Port to probe
|
||||
* piix_pata_probeinit - probeinit for PATA host controller
|
||||
* @ap: Target port
|
||||
*
|
||||
* Probe PATA phy.
|
||||
* Probeinit including cable detection.
|
||||
*
|
||||
* LOCKING:
|
||||
* None (inherited from caller).
|
||||
*/
|
||||
static void piix_pata_probeinit(struct ata_port *ap)
|
||||
{
|
||||
piix_pata_cbl_detect(ap);
|
||||
ata_std_probeinit(ap);
|
||||
}
|
||||
|
||||
static void piix_pata_phy_reset(struct ata_port *ap)
|
||||
/**
|
||||
* piix_pata_probe_reset - Perform reset on PATA port and classify
|
||||
* @ap: Port to reset
|
||||
* @classes: Resulting classes of attached devices
|
||||
*
|
||||
* Reset PATA phy and classify attached devices.
|
||||
*
|
||||
* LOCKING:
|
||||
* None (inherited from caller).
|
||||
*/
|
||||
static int piix_pata_probe_reset(struct ata_port *ap, unsigned int *classes)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
|
||||
|
||||
if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->hard_port_no])) {
|
||||
ata_port_disable(ap);
|
||||
printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
|
||||
piix_pata_cbl_detect(ap);
|
||||
|
||||
ata_port_probe(ap);
|
||||
|
||||
ata_bus_reset(ap);
|
||||
return ata_drive_probe_reset(ap, piix_pata_probeinit,
|
||||
ata_std_softreset, NULL,
|
||||
ata_std_postreset, classes);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue