diff options
author | wdenk <wdenk> | 2004-01-21 20:46:28 +0000 |
---|---|---|
committer | wdenk <wdenk> | 2004-01-21 20:46:28 +0000 |
commit | ef978730dcb3e7e398fe9b57633f3f67260c1bbc (patch) | |
tree | b48984c960bf12a153efad246cd6d520951aa2a4 /drivers | |
parent | c837dcb1a316745092567bfe4fb266d0941884ff (diff) |
* Fix PS/2 keyboard problem caused by statically initialized variable
pointing to a location in flash
* Fix INCA-IP clock calculation: 400/3 = 133.3 MHz, not 130.
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/keyboard.c | 2 | ||||
-rw-r--r-- | drivers/ps2ser.c | 11 |
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/keyboard.c b/drivers/keyboard.c index 738ff9f15..a42468f0c 100644 --- a/drivers/keyboard.c +++ b/drivers/keyboard.c @@ -194,7 +194,7 @@ void handle_scancode(unsigned char scancode) case 0xBA: /* caps lock released */ return; /* just swallow */ } -#if 0 +#if 1 if((scancode&0x80)==0x80) /* key released */ return; #else diff --git a/drivers/ps2ser.c b/drivers/ps2ser.c index 71658d7ca..52f1db9ad 100644 --- a/drivers/ps2ser.c +++ b/drivers/ps2ser.c @@ -29,7 +29,7 @@ static int ps2ser_getc_hw(void); static void ps2ser_interrupt(void *dev_id); extern struct serial_state rs_table[]; /* in serial.c */ -static struct serial_state *state = rs_table + CONFIG_PS2SERIAL; +static struct serial_state *state; static u_char ps2buf[PS2BUF_SIZE]; static atomic_t ps2buf_cnt; @@ -49,8 +49,13 @@ static inline void ps2ser_out(int offset, int value) int ps2ser_init(void) { - int quot = state->baud_base / PS2SER_BAUD; - unsigned cval = 0x3; /* 8N1 - 8 data bits, no parity bits, 1 stop bit */ + int quot; + unsigned cval; + + state = rs_table + CONFIG_PS2SERIAL; + + quot = state->baud_base / PS2SER_BAUD; + cval = 0x3; /* 8N1 - 8 data bits, no parity bits, 1 stop bit */ /* Set speed, enable interrupts, enable FIFO */ |