Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1938 → Rev 1939

/trunk/uspace/kbd/arch/ia32/include/kbd.h
42,9 → 42,6
#include <ddi.h>
#include <libarch/ddi.h>
 
#define KBD_IRQ 1
#define MOUSE_IRQ 12
 
#define i8042_DATA 0x60
#define i8042_STATUS 0X64
 
/trunk/uspace/kbd/arch/ia32/src/kbd.c
42,6 → 42,7
#include <kbd.h>
#include <keys.h>
#include <genarch/kbd.h>
#include <sysinfo.h>
 
/* Interesting bits for status register */
#define i8042_OUTPUT_FULL 0x1
69,8 → 70,8
static volatile int lockflags; /**< Tracking of multiple keys lockings. */
 
irq_cmd_t i8042_cmds[2] = {
{ CMD_PORT_READ_1, (void *)0x64, 0, 1 },
{ CMD_PORT_READ_1, (void *)0x60, 0, 2 }
{ CMD_PORT_READ_1, (void *) 0x64, 0, 1 },
{ CMD_PORT_READ_1, (void *) 0x60, 0, 2 }
};
 
irq_code_t i8042_kbd = {
91,7 → 92,7
int i;
int mouseenabled = 0;
 
iospace_enable(task_get_id(),(void *)i8042_DATA, 5);
iospace_enable(task_get_id(), (void *) i8042_DATA, 5);
/* Disable kbd, enable mouse */
i8042_command_write(i8042_CMD_KBD);
wait_ready();
124,13 → 125,11
if (mouseanswer == MOUSE_ACK) {
/* enable mouse */
mouseenabled = 1;
 
ipc_register_irq(MOUSE_IRQ, &i8042_kbd);
ipc_register_irq(sysinfo_value("mouse.inr"), sysinfo_value("mouse.devno"), 0, &i8042_kbd);
}
/* Enable kbd */
ipc_register_irq(KBD_IRQ, &i8042_kbd);
/* Register for irq restart */
ipc_register_irq(IPC_IRQ_KBDRESTART, NULL);
ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"), 0, &i8042_kbd);
 
int newcontrol = i8042_KBD_IE | i8042_KBD_TRANSLATE;
if (mouseenabled)
149,11 → 148,6
{
int status = IPC_GET_ARG1(*call);
 
if (IPC_GET_METHOD(*call) == IPC_IRQ_KBDRESTART) {
kbd_arch_init();
return 1;
}
 
if ((status & i8042_MOUSE_DATA))
return 0;