Changes in kernel/genarch/src/drivers/i8042/i8042.c [24abb85d:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/genarch/src/drivers/i8042/i8042.c
r24abb85d ra35b458 59 59 i8042_instance_t *i8042_instance = irq->instance; 60 60 i8042_t *dev = i8042_instance->i8042; 61 61 62 62 if (pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK) 63 63 return IRQ_ACCEPT; … … 70 70 i8042_instance_t *instance = irq->instance; 71 71 i8042_t *dev = instance->i8042; 72 72 73 73 if (pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK) { 74 74 uint8_t data = pio_read_8(&dev->data); … … 83 83 if ((pio_read_8(&dev->status) & i8042_BUFFER_FULL_MASK) == 0) 84 84 break; 85 85 86 86 (void) pio_read_8(&dev->data); 87 87 delay(50); /* 50 us think time */ … … 94 94 if ((pio_read_8(&dev->status) & i8042_WAIT_MASK) == 0) 95 95 break; 96 96 97 97 delay(50); /* 50 us think time */ 98 98 } 99 99 100 100 pio_write_8(&dev->status, cmd); 101 101 delay(10000); /* 10 ms think time */ … … 110 110 instance->i8042 = dev; 111 111 instance->kbrdin = NULL; 112 112 113 113 irq_initialize(&instance->irq); 114 114 instance->irq.inr = inr; … … 117 117 instance->irq.instance = instance; 118 118 } 119 119 120 120 return instance; 121 121 } … … 125 125 assert(instance); 126 126 assert(kbrdin); 127 127 128 128 i8042_clear_buffer(instance->i8042); 129 129 130 130 instance->kbrdin = kbrdin; 131 131 irq_register(&instance->irq);
Note:
See TracChangeset
for help on using the changeset viewer.