static int kbd_wait_for_input(void) { unsigned long timeout; int val; timeout = KBD_TIMEOUT; val=kbd_read_data(); while(val < 0) { if(timeout--==0) return -1; udelay(1000); val=kbd_read_data(); } return val; }
/* Memory mapped interface */ static uint32_t kbd_mm_readb (void *opaque, target_phys_addr_t addr) { KBDState *s = opaque; if (addr & s->mask) return kbd_read_status(s, 0) & 0xff; else return kbd_read_data(s, 0) & 0xff; }
static void __init kbd_clear_input(void) { int maxread = 100; /* Random number */ do { if (kbd_read_data() == KBD_NO_DATA) break; } while (--maxread); }
/* Memory mapped interface */ static uint32_t kbd_mm_readb (void *opaque, hwaddr addr) { KBDState *s = opaque; if (addr & s->mask) return kbd_read_status(s, 0, 1) & 0xff; else return kbd_read_data(s, 0, 1) & 0xff; }
static int __init kbd_wait_for_input(void) { long timeout = KBD_INIT_TIMEOUT; do { int retval = kbd_read_data(); if (retval >= 0) return retval; mdelay(1); } while (--timeout); return -1; }