lkml.org 
[lkml]   [2000]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] partial fix for Thinkpads and suspend
Stephen,
I sent the attached patch to apm linuxcare that you seem to think has
already been applied to the kernel. I don't think so. I never sent it to
Linus or the list, and have not seen it in any test6prex.
The problem I addressed was that there was a cli() instead of an
APM_DO_CLI
in int suspend(void);

I've been running with the patch I submitted to fix this problem for
some time.
Your solution to do an sti() in APM_DO_CLI seems quite ugly. I grant
that we do not want to do a cli before suspending, but I could not find
anybody else doing that, so just not doing is probably sufficient.
Garst

Stephen Rothwell wrote:
>
> Hi Linus,
>
> One of the recent changes to the power management code was to disable
> interrupts from just before suspending until after the drivers have
> been notified of the resume. This broke the Thinkpads. They do not
> completely resume anymore. It turns out that I have just been presented
> with a Thinkpad (for work), so I need to fix this :-)
>
> Please apply the enclosed patch. It is not quite completely correct,
> but at least the Thinkpads (which are the only laptops that require
> the CONFIG_APM_ALLOW_INTS option) will resume. The window we open
> is small, but it may be that we will still get interrupts for devices
> that need to be reinitialised first.
>
> A more complete solution is for each device to disable its interrupt
> before the suspend (I think).
>
> Cheers,
> Stephen
> --
> Stephen Rothwell, Open Source Project Engineer, Linuxcare, Inc.
> +61-2-62628990 tel, +61-2-62628991 fax
> sfr@linuxcare.com, http://www.linuxcare.com/
> Linuxcare. Support for the revolution.
>
> --- 2.4.0-test6pre9/arch/i386/kernel/apm.c Wed Aug 2 15:20:17 2000
> +++ fixed/arch/i386/kernel/apm.c Wed Aug 9 12:00:47 2000
> @@ -410,7 +410,7 @@
> #ifndef CONFIG_APM_ALLOW_INTS
> # define APM_DO_CLI __cli()
> #else
> -# define APM_DO_CLI
> +# define APM_DO_CLI __sti()
> #endif
> #ifdef APM_ZERO_SEGS
> # define APM_DECL_SEGS \[unhandled content-type:application/x-gzip]
\
 
 \ /
  Last update: 2005-03-22 13:58    [W:0.073 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site