Here is an extract from drivers/input/serio/i8042.c:
> 
> static int i8042_flush(void)
> {
>       unsigned long flags;
>       unsigned char data, str;
>       int i = 0;
> 
>       spin_lock_irqsave(&i8042_lock, flags);
> 
>       while (((str = i8042_read_status()) & I8042_STR_OBF) && (i < 
> I8042_BUFFER_SIZE)) {
>               udelay(50);
>               data = i8042_read_data();
>               i++;
>               dbg("%02x <- i8042 (flush, %s)\n",
>                   data, str & I8042_STR_AUXDATA ? "aux" : "kbd");
>       }
> 
>       spin_unlock_irqrestore(&i8042_lock, flags);
> 
>       return i;
> }
> 
> static int i8042_controller_check(void)
> {
>       if (i8042_flush() == I8042_BUFFER_SIZE) {
Doesn't it panic needlessly, while the buffer was initially full?
>               pr_err("No controller found\n");
>               return -ENODEV;
>       }
> 
>       return 0;
> }


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to