On Wednesday 16 February 2011, Guan Xuetao wrote: > +/* > + * Register numbers. > + */ > +#define I8042_COMMAND_REG ((unsigned long)&PS2_COMMAND) > +#define I8042_STATUS_REG ((unsigned long)&PS2_STATUS) > +#define I8042_DATA_REG ((unsigned long)&PS2_DATA) > + > +static inline int i8042_read_data(void) > +{ > + return inb(I8042_DATA_REG); > +} > + > +static inline int i8042_read_status(void) > +{ > + return inb(I8042_STATUS_REG); > +} > + This is not a correct way to use inb()/outb(), as far as I can tell: PS2_COMMAND is an mmio pointer (or should be, see my other message). inb() however is only defined on PCI/ISA PIO port numbers, which are in the range between 0 and 65535, and typically get mapped into the memory from the PCI driver. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html