drivers/ide/pci/sc1200.c: fix suspend/resume buglets and warnings
* We shouldn't bother with dev->current_state, the PCI API functions we call manage this for us (and do a far better job at it too). * Remove pci_set_power_state(dev, PCI_D0) call in resume, as pci_enable_device() does the same thing. * Check pci_enable_device() return value. If it failed, fail the entire resume and avoid programming timings into the [potentially dead/asleep] chip. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
d5271be6b5
commit
9d43481364
@ -324,17 +324,18 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state)
|
|||||||
|
|
||||||
pci_disable_device(dev);
|
pci_disable_device(dev);
|
||||||
pci_set_power_state(dev, pci_choose_state(dev, state));
|
pci_set_power_state(dev, pci_choose_state(dev, state));
|
||||||
dev->current_state = state.event;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sc1200_resume (struct pci_dev *dev)
|
static int sc1200_resume (struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
ide_hwif_t *hwif = NULL;
|
ide_hwif_t *hwif = NULL;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
i = pci_enable_device(dev);
|
||||||
|
if (i)
|
||||||
|
return i;
|
||||||
|
|
||||||
pci_set_power_state(dev, PCI_D0); // bring chip back from sleep state
|
|
||||||
dev->current_state = PM_EVENT_ON;
|
|
||||||
pci_enable_device(dev);
|
|
||||||
//
|
//
|
||||||
// loop over all interfaces that are part of this pci device:
|
// loop over all interfaces that are part of this pci device:
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user