Re: can't get linux to perform a bios suspend (was: Re: [FIX, please test] Re: 2.5.70-bk16 - nfs interferes with s4bios suspend)

Pavel Machek (pavel@suse.cz)
Mon, 23 Jun 2003 11:50:58 +0200


Hi!

> > > To me this appears to indicate that it's treating a request for a
> > > sleep state of 4 (s/w suspend) and 4b (bios suspend) as the same thing
> > > as simple_strtoul will stop at the b and return 4 and there are no
> > > further checks being done. In a small experiment I added a test of
> > > state_string[1] == 'b', recompiled and tried it again. It did not go
> > > into s/w suspend as expected but it failed to do a suspend alltogether.
> >
> > If you have 2.4.X, get 2.5.72. That should have
> > do_suspend_lowlevel_s4bios in wakeup.S. Look around and fix it so that
> > it is called when user does echo 4b. It may well be broken.
>
> Been using 2.5.x all this time. Just did the following mod on 2.5.72-bk3:
>
> #ifdef CONFIG_SOFTWARE_SUSPEND
> if (state == 4) {
> if (state_string[1] == 'b') {
> do_suspend_lowlevel_s4bios(0);
> } else {
> software_suspend();
> }
> goto Done;
> }
> #endif
>
> And it activated bios suspend just fine. It didn't resume properly though.
> The bios resume screen was left behind and the whole setup hung. I've
> been using the suspend2disk functionality of this laptop under apm and 2.4.x
> just fine (for months really - I rarely 'rebooted' my laptop) so I don't
> think it's the bios that's b0rked.

And did you use S4bios with 2.4.X? apm and acpi are really different.

Modification you did is wrong; I'd try

#ifdef CONFIG_SOFTWARE_SUSPEND
if ((state == 4) && (state_string[1] != 'b')) {
software_suspend();
goto Done;
}
#endif

Does s3 work for you? s3 and s4bios should be really similar.

Pavel

-- 
Horseback riding is like software...
...vgf orggre jura vgf serr.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/