This is a patch for "drivers/char/apm_bios.c", it fixes the following
problems:
- On some notebooks (AST J series, for example), the timer on interrupt 0
is reset to DOS default: 18 Hz. This patch re-initialize it to 100 Hz.
Thanks to Pavel (pavel@Elf.mj.gts.cz) for pointing out to me that I should
add some delays after the outb_p() and outb() calls.
- The clock is not correctly restored after a standby().
There are still some problems with not getting the correct time after APM
suspend or standby, namely before the first suspend() or standby()
call, if the clock is already slowed by CPU_IDLE call, then the estimate
time zone "clock_cmos_diff" would be wrong. Ideally, "clock_cmos_diff"
should be setup at boot time after the time zone is set. But that
will require changing code other than "apm_bios.c". Also, APM will not
correct for the change between daylight savings time and normal time.