summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorwdenk <wdenk>2004-01-21 20:46:28 +0000
committerwdenk <wdenk>2004-01-21 20:46:28 +0000
commitef978730dcb3e7e398fe9b57633f3f67260c1bbc (patch)
treeb48984c960bf12a153efad246cd6d520951aa2a4 /drivers
parentc837dcb1a316745092567bfe4fb266d0941884ff (diff)
downloadbarebox-ef978730dcb3e7e398fe9b57633f3f67260c1bbc.tar.gz
barebox-ef978730dcb3e7e398fe9b57633f3f67260c1bbc.tar.xz
* 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.c2
-rw-r--r--drivers/ps2ser.c11
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/keyboard.c b/drivers/keyboard.c
index 738ff9f15b..a42468f0c6 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 71658d7ca0..52f1db9ad9 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
*/