[Q] reset the irq 0 timer after APM suspend

Dong Chen (dc40@columbia.edu)
Sun, 22 Jun 1997 10:35:08 -0400 (EDT)


Hello,

On my AST J50 (P133) notebook, the timer on irq 0 resets itself from
interrupting at 100 Hz to 18.3 Hz (DOS default) after a suspend/resume.

What is the right way to re-initialize it back to 100 Hz without a reboot?
Thanks,

Dong Chen
chen@ctp.mit.edu
---------------------------------------------------------------------
BTW, I tried to modify

linux/drivers/char/apm_bios.c

in function suspend() at line 639 (kernel 2.0.30) from

err = apm_set_power_state(APM_STATE_SUSPEND);
if (err)
apm_error("suspend", err);
set_time();

to

err = apm_set_power_state(APM_STATE_SUSPEND);
if (err)
apm_error("suspend", err);

save_flags(flags);
cli();
/* set the clock to 100 Hz */
outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */
outb_p(LATCH & 0xff , 0x40); /* LSB */
outb(LATCH >> 8 , 0x40); /* MSB */
restore_flags(flags);

set_time();

But this does not work. All programs crash after suspend() is called.