Rev 3947 | Rev 3963 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3947 | Rev 3958 | ||
---|---|---|---|
Line 47... | Line 47... | ||
47 | #include <arch.h> |
47 | #include <arch.h> |
48 | #include <console/chardev.h> |
48 | #include <console/chardev.h> |
49 | #include <console/console.h> |
49 | #include <console/console.h> |
50 | #include <interrupt.h> |
50 | #include <interrupt.h> |
51 | #include <sysinfo/sysinfo.h> |
51 | #include <sysinfo/sysinfo.h> |
52 | #include <ipc/irq.h> |
- | |
53 | 52 | ||
54 | i8042_instance_t lgcy_i8042_instance = { |
53 | i8042_instance_t lgcy_i8042_instance = { |
55 | .i8042 = (i8042_t *) I8042_BASE, |
54 | .i8042 = (i8042_t *) I8042_BASE, |
56 | }; |
55 | }; |
57 | 56 | ||
Line 154... | Line 153... | ||
154 | trap_virtual_enable_irqs(1 << kbd_inr); |
153 | trap_virtual_enable_irqs(1 << kbd_inr); |
155 | trap_virtual_enable_irqs(1 << mouse_inr); |
154 | trap_virtual_enable_irqs(1 << mouse_inr); |
156 | 155 | ||
157 | /* |
156 | /* |
158 | * Clear input buffer. |
157 | * Clear input buffer. |
159 | * Number of iterations is limited to prevent infinite looping. |
- | |
160 | */ |
158 | */ |
161 | int i; |
- | |
162 | for (i = 0; (pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK) && |
159 | while (pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK) |
163 | i < 100; i++) { |
- | |
164 | (void) pio_read_8(&dev->data); |
160 | (void) pio_read_8(&dev->data); |
165 | } |
- | |
166 | 161 | ||
- | 162 | /* |
|
- | 163 | * This is the necessary evil until the userspace driver is entirely |
|
- | 164 | * self-sufficient. |
|
- | 165 | */ |
|
167 | sysinfo_set_item_val("kbd", NULL, true); |
166 | sysinfo_set_item_val("kbd", NULL, true); |
168 | sysinfo_set_item_val("kbd.devno", NULL, kbd_devno); |
167 | sysinfo_set_item_val("kbd.devno", NULL, kbd_devno); |
169 | sysinfo_set_item_val("kbd.inr", NULL, kbd_inr); |
168 | sysinfo_set_item_val("kbd.inr", NULL, kbd_inr); |
170 | #ifdef KBD_LEGACY |
169 | #ifdef KBD_LEGACY |
171 | sysinfo_set_item_val("kbd.type", NULL, KBD_LEGACY); |
170 | sysinfo_set_item_val("kbd.type", NULL, KBD_LEGACY); |