Skip to content

Commit

Permalink
ATA: Don't powerdown Compaq Triflex IDE device on suspend
Browse files Browse the repository at this point in the history
Don't powerdown Compaq Triflex IDE device on suspend

This fixes APM suspend on Compaq Armada 7400.
APM BIOS doesn't suspend if IDE is powered down when suspending.
The Triflex controller is found only on old Compaq boards,
so this patch will hopefully have no side effects.

Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
  • Loading branch information
Mikulas Patocka authored and jgarzik committed May 20, 2011
1 parent 5f4e206 commit bfeec8c
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion drivers/ata/pata_triflex.c
Original file line number Diff line number Diff line change
Expand Up @@ -210,13 +210,34 @@ static const struct pci_device_id triflex[] = {
{ },
};

#ifdef CONFIG_PM
static int triflex_ata_pci_device_suspend(struct pci_dev *pdev, pm_message_t mesg)
{
struct ata_host *host = dev_get_drvdata(&pdev->dev);
int rc = 0;

rc = ata_host_suspend(host, mesg);
if (rc)
return rc;

/*
* We must not disable or powerdown the device.
* APM bios refuses to suspend if IDE is not accessible.
*/
pci_save_state(pdev);

return 0;
}

#endif

static struct pci_driver triflex_pci_driver = {
.name = DRV_NAME,
.id_table = triflex,
.probe = triflex_init_one,
.remove = ata_pci_remove_one,
#ifdef CONFIG_PM
.suspend = ata_pci_device_suspend,
.suspend = triflex_ata_pci_device_suspend,
.resume = ata_pci_device_resume,
#endif
};
Expand Down

0 comments on commit bfeec8c

Please sign in to comment.