The HyperNews Linux KHG Discussion Pages

Question: reset the irq 0 timer after APM suspend

Forum: The Linux Kernel Hackers' Guide
Keywords: timer, APM
Date: Fri, 20 Jun 1997 21:34:04 GMT
From: Dong Chen <chen@ctp.mit.edu>

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.