[PATCH] This makes APM_NOINTS configurable in 2.0.36

Jesper Juhl (jesper.juhl@dif.dk)
Fri, 11 Dec 1998 12:12:54 +0100


Since I got no responce to my first post of this, I'll post it again.
Please send me comments on the patch bellow.

What it does is this; It makes APM_NOINTS (in drivers/char/apm_bios.c)
configurable from "make config" and "make menuconfig". This is becourse
that option causes problems with the IBM ThinkPad 600 (and others), and
many users will find a config option easier than editing the .c source
themselves.

<PATCH START>

diff -u -r linux-2.0.36.orig/Documentation/Configure.help
linux-2.0.36/Documentation/Configure.help
--- linux-2.0.36.orig/Documentation/Configure.help Tue Dec 8
21:55:00 1998
+++ linux-2.0.36/Documentation/Configure.help Tue Dec 8 21:48:47 1998
@@ -4179,6 +4179,17 @@
events while one is already being processed they will be ignored.
Without this the Thinkpad 560 has troubles with apmd, and pcmcia-cs.

+Enable interrupts in APM BIOS calls
+CONFIG_APM_INTS
+ This option will enable interrupts in APM BIOS calls (normally
+ disabled; the CPU Idle BIOS call should turn interrupts on before
+ it does a 'hlt').
+ This option will cause hibernation mode to work properly on the IBM
+ ThinkPad 600 (and possibly on other ThinkPads as well).
+ Only turn this on if you experience problems with sleep and/or
+ hibernation mode.
+ Most people say N.
+
Watchdog Timer Support
CONFIG_WATCHDOG
If you enable this option and create a character special file
diff -u -r linux-2.0.36.orig/drivers/char/ChangeLog
linux-2.0.36/drivers/char/ChangeLog
--- linux-2.0.36.orig/drivers/char/ChangeLog Tue Dec 8 21:54:36 1998
+++ linux-2.0.36/drivers/char/ChangeLog Tue Dec 8 22:11:23 1998
@@ -1,3 +1,10 @@
+Tue Dec 8 22:04:45 1998 Jesper Juhl <jesper.juhl@dif.dk>
+
+ * apm_bios.c (APM_NOINTS):
+ Changed this option to be configurable from 'make
config'
+ etc. This was done, since some IBM ThinkPad's (notably
+ the ThinkPad 600) lockup if you have APM_NOINTS defined.

+
Wed Jun 5 18:52:04 1996 Theodore Ts'o <tytso@rsts-11.mit.edu>

* tty_io.c (do_tty_hangup):
Only in linux-2.0.36/drivers/char: ChangeLog~
diff -u -r linux-2.0.36.orig/drivers/char/Config.in
linux-2.0.36/drivers/char/Config.in
--- linux-2.0.36.orig/drivers/char/Config.in Tue Dec 8 22:00:24 1998
+++ linux-2.0.36/drivers/char/Config.in Tue Dec 8 21:43:26 1998
@@ -61,6 +61,7 @@
bool ' Enable console blanking using APM' CONFIG_APM_DISPLAY_BLANK
bool ' Power off on shutdown' CONFIG_APM_POWER_OFF
bool ' Ignore multiple suspend' CONFIG_APM_IGNORE_MULTIPLE_SUSPEND
+ bool ' Enable interrupts in APM BIOS calls' CONFIG_APM_INTS
fi
if [ "$CONFIG_ALPHA_BOOK1" = "y" ]; then
bool 'Tadpole ANA H8 Support' CONFIG_H8
diff -u -r linux-2.0.36.orig/drivers/char/apm_bios.c
linux-2.0.36/drivers/char/apm_bios.c
--- linux-2.0.36.orig/drivers/char/apm_bios.c Tue Dec 8 21:54:38 1998
+++ linux-2.0.36/drivers/char/apm_bios.c Tue Dec 8 21:44:04 1998
@@ -26,6 +26,9 @@
* April 1996, Stephen Rothwell (Stephen.Rothwell@canb.auug.org.au)
* Version 1.0 and 1.1
* May 1996, Version 1.2
+ * December 1998, Jesper Juhl (jesper.juhl@dif.dk):
+ * Made APM_NOINTS configurable from 'make config' etc. as this
often
+ * causes problems with IBM ThinkPad's.
*
* History:
* 0.6b: first version in official kernel, Linux 1.3.46
@@ -164,7 +167,11 @@
* Define to disable interrupts in APM BIOS calls (the CPU Idle BIOS
call
* should turn interrupts on before it does a 'hlt').
*/
-#define APM_NOINTS
+#ifdef CONFIG_APM_INTS
+# undef APM_NOINTS
+#else
+# define APM_NOINTS
+#endif

/*
* Define to make the APM BIOS calls zero all data segment registers
(do
@@ -207,6 +214,7 @@
#else
# define APM_DO_CLI
#endif
+
#ifdef APM_ZERO_SEGS
# define APM_DO_ZERO_SEGS \
"pushl %%ds\n\t" \

<PATCH STOP>

Best regards
Jesper Juhl

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/