Linux 内核:从驱动程序中删除输入处理程序

Linux kernel : Remove input handler from a driver

当我看到 cat /proc/bus/input/devices 的输出时,我看到了这个:

I: Bus=0010 Vendor=0001 Product=0001 Version=0100
N: Name="aml_keypad"
P: Phys=keypad/input0
S: Sysfs=/devices/c8100580.rc/input/input0
U: Uniq=
H: Handlers=kbd mouse0 event0 
B: PROP=0
B: EV=7
B: KEY=7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff fffffffffffffffe
B: REL=103

如何从驱动程序中删除处理程序。 (我自己编译内核)

例如,我想从处理程序中删除 mouse0

为了删除处理程序,在驱动程序源代码中注释相关的 _set_bit 就足够了。就我而言:

// __set_bit(BTN_MOUSE, dev->input_device->keybit);
// __set_bit(BTN_LEFT, dev->input_device->keybit);
// __set_bit(BTN_RIGHT, dev->input_device->keybit);
// __set_bit(BTN_MIDDLE, dev->input_device->keybit);
//
// __set_bit(EV_REL, dev->input_device->evbit);
// __set_bit(REL_X, dev->input_device->relbit);
// __set_bit(REL_Y, dev->input_device->relbit);
// __set_bit(REL_WHEEL, dev->input_device->relbit);

上面的片段是 file 的一部分。