Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a809c687 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz Committed by Jeff Garzik
Browse files

pata_ns87415: Power Management fix



Fix ->resume method to do chipset specific setup.

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 2a2beac9
Loading
Loading
Loading
Loading
+27 −5
Original line number Original line Diff line number Diff line
@@ -325,6 +325,13 @@ static struct scsi_host_template ns87415_sht = {
	ATA_BMDMA_SHT(DRV_NAME),
	ATA_BMDMA_SHT(DRV_NAME),
};
};


static void ns87415_fixup(struct pci_dev *pdev)
{
	/* Select 512 byte sectors */
	pci_write_config_byte(pdev, 0x55, 0xEE);
	/* Select PIO0 8bit clocking */
	pci_write_config_byte(pdev, 0x54, 0xB7);
}


/**
/**
 *	ns87415_init_one - Register 87415 ATA PCI device with kernel services
 *	ns87415_init_one - Register 87415 ATA PCI device with kernel services
@@ -371,10 +378,8 @@ static int ns87415_init_one (struct pci_dev *pdev, const struct pci_device_id *e
	if (rc)
	if (rc)
		return rc;
		return rc;


	/* Select 512 byte sectors */
	ns87415_fixup(pdev);
	pci_write_config_byte(pdev, 0x55, 0xEE);

	/* Select PIO0 8bit clocking */
	pci_write_config_byte(pdev, 0x54, 0xB7);
	return ata_pci_sff_init_one(pdev, ppi, &ns87415_sht, NULL);
	return ata_pci_sff_init_one(pdev, ppi, &ns87415_sht, NULL);
}
}


@@ -384,6 +389,23 @@ static const struct pci_device_id ns87415_pci_tbl[] = {
	{ }	/* terminate list */
	{ }	/* terminate list */
};
};


#ifdef CONFIG_PM
static int ns87415_reinit_one(struct pci_dev *pdev)
{
	struct ata_host *host = dev_get_drvdata(&pdev->dev);
	int rc;

	rc = ata_pci_device_do_resume(pdev);
	if (rc)
		return rc;

	ns87415_fixup(pdev);

	ata_host_resume(host);
	return 0;
}
#endif

static struct pci_driver ns87415_pci_driver = {
static struct pci_driver ns87415_pci_driver = {
	.name			= DRV_NAME,
	.name			= DRV_NAME,
	.id_table		= ns87415_pci_tbl,
	.id_table		= ns87415_pci_tbl,
@@ -391,7 +413,7 @@ static struct pci_driver ns87415_pci_driver = {
	.remove			= ata_pci_remove_one,
	.remove			= ata_pci_remove_one,
#ifdef CONFIG_PM
#ifdef CONFIG_PM
	.suspend		= ata_pci_device_suspend,
	.suspend		= ata_pci_device_suspend,
	.resume			= ata_pci_device_resume,
	.resume			= ns87415_reinit_one,
#endif
#endif
};
};