--- /tmp/i8k.c 2006-01-09 10:45:41.000000000 +0100 +++ /usr/src/linux/drivers/char/i8k.c 2006-01-07 14:05:25.000000000 +0100 @@ -76,6 +76,10 @@ static int power_status; module_param(power_status, bool, 0600); MODULE_PARM_DESC(power_status, "Report power status in /proc/i8k"); +static int disable_keys; +module_param(disable_keys, bool, I8K_FN_MASK); +MODULE_PARM_DESC(disable_keys, "Ignore keys for newer Notebooks"); + static int i8k_open_fs(struct inode *inode, struct file *file); static int i8k_ioctl(struct inode *, struct file *, unsigned int, unsigned long); @@ -163,7 +169,7 @@ static int i8k_get_fn_status(void) if ((rc = i8k_smm(®s)) < 0) return rc; - switch ((regs.eax >> I8K_FN_SHIFT) & I8K_FN_MASK) { + switch (((regs.eax >> I8K_FN_SHIFT) & I8K_FN_MASK) & !disable_keys) { case I8K_FN_UP: return I8K_VOL_UP; case I8K_FN_DOWN: