--- linux-2.6.2-rc2-mm1/arch/i386/kernel/apm.c.old Thu Jan 29 16:22:03 2004
+++ linux-2.6.2-rc2-mm1/arch/i386/kernel/apm.c Thu Jan 29 16:22:07 2004
@@ -1201,6 +1201,7 @@ static int suspend(int vetoable)
}
device_suspend(3);
+ device_power_down(3);
/* serialize with the timer interrupt */
write_seqlock_irq(&xtime_lock);
@@ -1234,6 +1235,7 @@ static int suspend(int vetoable)
if (err != APM_SUCCESS)
apm_error("suspend", err);
err = (err == APM_SUCCESS) ? 0 : -EIO;
+ device_power_up();
device_resume();
pm_send_all(PM_RESUME, (void *)0);
queue_event(APM_NORMAL_RESUME, NULL);
@@ -1252,6 +1254,7 @@ static void standby(void)
{
int err;
+ device_power_down(3);
/* serialize with the timer interrupt */
write_seqlock_irq(&xtime_lock);
/* If needed, notify drivers here */
@@ -1261,6 +1264,7 @@ static void standby(void)
err = set_system_power_state(APM_STATE_STANDBY);
if ((err != APM_SUCCESS) && (err != APM_NO_ERROR))
apm_error("standby", err);
+ device_power_up();
}
static apm_event_t get_event(void)
Hi!
> > > if you think that's okay like that, please submit that to the guy who is
> > > responsible for 2.6 (is it Linus or Andrew? did not follow lkml
> > > recently).
> >
> > Andrew.
>
> Thanks. BTW: I did not get any response from Stephen Rothwell (the guy
> who is listed as maintainer for APM in the MAINTAINERS file). How long
> should I wait for a response? Or should I simply submit the patch to
> Andrew?
I'd submit patch to andrew, Cc: stephen. -mm series should get enough
testing, and this is not to big patch.
[The patch looks good to me, btw.]
Pavel
> Michael
> --- linux-2.6.2-rc2-mm1/arch/i386/kernel/apm.c.old Thu Jan 29 16:22:03 2004
> +++ linux-2.6.2-rc2-mm1/arch/i386/kernel/apm.c Thu Jan 29 16:22:07 2004
> @@ -1201,6 +1201,7 @@ static int suspend(int vetoable)
> }
>
> device_suspend(3);
> + device_power_down(3);
>
> /* serialize with the timer interrupt */
> write_seqlock_irq(&xtime_lock);
> @@ -1234,6 +1235,7 @@ static int suspend(int vetoable)
> if (err != APM_SUCCESS)
> apm_error("suspend", err);
> err = (err == APM_SUCCESS) ? 0 : -EIO;
> + device_power_up();
> device_resume();
> pm_send_all(PM_RESUME, (void *)0);
> queue_event(APM_NORMAL_RESUME, NULL);
> @@ -1252,6 +1254,7 @@ static void standby(void)
> {
> int err;
>
> + device_power_down(3);
> /* serialize with the timer interrupt */
> write_seqlock_irq(&xtime_lock);
> /* If needed, notify drivers here */
> @@ -1261,6 +1264,7 @@ static void standby(void)
> err = set_system_power_state(APM_STATE_STANDBY);
> if ((err != APM_SUCCESS) && (err != APM_NO_ERROR))
> apm_error("standby", err);
> + device_power_up();
> }
>
> static apm_event_t get_event(void)
--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]