Re: [linux-pm] [PATCH] make pm_suspend_disk suspend/resume sysdev and dpm_off_irq

From: Pavel Machek
Date: Fri Nov 26 2004 - 15:03:10 EST


Hi!

> >> This patch makes the new swsusp code ( pm_suspend_disk since
> >> 2.6.9-rc3) call suspend/resume functions for sysdev and devices in
> >> dpm_off_irq list. Otherwise, PCI link device in the system won't
> >> provide correct interrupt for PCI devices during resume.
> >
> > I do not think this is right approach; you enable interrupts
> > then disable that again, potentially without interrupt controller
> > being initialized.
> >
> > This should be better patch:
>
> Agreed. Your patch solves the bug. But do you plan to deal with the
> devices in dpm_off_irq list?

Okay, this should be better patch. It works here.

Pavel

--- clean/kernel/power/swsusp.c 2004-10-19 14:16:29.000000000 +0200
+++ linux/kernel/power/swsusp.c 2004-11-25 12:27:35.000000000 +0100
@@ -854,11 +840,13 @@
if ((error = arch_prepare_suspend()))
return error;
local_irq_disable();
+ device_power_down(3);
save_processor_state();
error = swsusp_arch_suspend();
/* Restore control flow magically appears here */
restore_processor_state();
restore_highmem();
+ device_power_up();
local_irq_enable();
return error;
}
@@ -878,6 +866,7 @@
{
int error;
local_irq_disable();
+ device_power_down(3);
/* We'll ignore saved state, but this gets preempt count (etc) right */
save_processor_state();
error = swsusp_arch_resume();
@@ -887,6 +876,7 @@
BUG_ON(!error);
restore_processor_state();
restore_highmem();
+ device_power_up();
local_irq_enable();
return error;
}

--
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/