aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2007-10-26 20:31:15 +0200
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2007-10-26 20:31:15 +0200
commit9d434813641abb5d619224e165f391bf352b202b (patch)
tree1a1f01279cba8ab1b947769a217fe084f6eb9f34
parentdrivers/ide/pci/generic: fix build for CONFIG_HOTPLUG=n (diff)
downloadlinux-dev-9d434813641abb5d619224e165f391bf352b202b.tar.xz
linux-dev-9d434813641abb5d619224e165f391bf352b202b.zip
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>
-rw-r--r--drivers/ide/pci/sc1200.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c
index d2c8b5524f28..0a7b3202066d 100644
--- a/drivers/ide/pci/sc1200.c
+++ b/drivers/ide/pci/sc1200.c
@@ -324,17 +324,18 @@ static int sc1200_suspend (struct pci_dev *dev, pm_message_t state)
pci_disable_device(dev);
pci_set_power_state(dev, pci_choose_state(dev, state));
- dev->current_state = state.event;
return 0;
}
static int sc1200_resume (struct pci_dev *dev)
{
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:
//