修改:
--- a/kernel/drivers/hid/hid-input.c
+++ b/kernel/drivers/hid/hid-input.c
@@ -620,7 +620,11 @@ static void hidinput_configure_usage(struct hid_input *hidi
case 0x289: map_key_clear(KEY_REPLY); break;
case 0x28b: map_key_clear(KEY_FORWARDMAIL); break;
case 0x28c: map_key_clear(KEY_SEND); break;
-
+//Roger add for blue tooth keyboard
+ case 0x1b1: map_key_clear(KEY_SCREEN); break;
+ case 0x30a: map_key_clear(KEY_BRIGHTNESSDOWN); break;
+ case 0x30b: map_key_clear(KEY_BRIGHTNESSUP); break;
+//End of Roger add
default: goto ignore;
}
break;
Backtrace:
[
r9:e350f400 r8:00000001 r7:e3658000 r6:00000001 r5:e2c78400
r4:e3658094
[
[
r9:e350f400 r8:e2ff9f00 r7:00000000 r6:00000000 r5:e3b25000
r4:e3658000
[
[
[
[
r7:00000013 r6:c0056fa0 r5:c006e060 r4:e3a41ce8
Code: 03a03000 e1a04001 e1a08000 e59f009c (05833000)
---[ end trace 3a88c581571cea3b ]---
type=3,code=0,value=8
type=3,code=1,value=836
type=3,code=2,value=-576
type=0,code=0,value=0
Kernel panic - not syncing: Fatal exception
Hid-a4tech.c (kernel\drivers\hid): input_event(input, EV_REL, value ? REL_HWHEEL :
Hid-a4tech.c (kernel\drivers\hid): input_event(input, usage->type, REL_HWHEEL, value);
Hid-apple.c (kernel\drivers\hid): input_event(input, usage->type, usage->code, value);
Hid-apple.c (kernel\drivers\hid): input_event(input, usage->type, trans->to,
Hid-apple.c (kernel\drivers\hid): input_event(input, usage->type, trans->to,
Hid-apple.c (kernel\drivers\hid): input_event(input, usage->type, trans->to, value);
Hid-apple.c (kernel\drivers\hid): input_event(field->hidinput->input, usage->type, usage->code,
Hid-input.c (kernel\drivers\hid): input_event(input, usage->type, usage->code , hid_hat_to_axis[hat_dir].x);
Hid-input.c (kernel\drivers\hid): input_event(input, usage->type, usage->code + 1, hid_hat_to_axis[hat_dir].y);
Hid-input.c (kernel\drivers\hid): input_event(input, usage->type, (*quirks & HID_QUIRK_INVERT) ? BTN_TOOL_RUBBER : usage->code, 1);
Hid-input.c (kernel\drivers\hid): input_event(input, usage->type, usage->code, 0);
Hid-input.c (kernel\drivers\hid): input_event(input, usage->type, BTN_TOOL_RUBBER, 0);
Hid-input.c (kernel\drivers\hid): input_event(input, EV_KEY, BTN_TOUCH, value > a + ((b - a) >> 3));
Hid-input.c (kernel\drivers\hid): input_event(input, EV_KEY, direction, 1);
Hid-input.c (kernel\drivers\hid): input_event(input, EV_KEY, direction, 0);
Hid-input.c (kernel\drivers\hid): input_event(input, EV_MSC, MSC_SCAN, usage->hid);
Hid-core.c (kernel\drivers\hid): hidinput_hid_event(hid, field, usage, value);
Hid-input.c (kernel\drivers\hid): * in hidinput_hid_event()
Hid-input.c (kernel\drivers\hid):void hidinput_hid_event(struct hid_device *hid, struct hid_field *field, struct hid_usage *usage, __s32 value)
Hid.h (kernel\include\linux):extern void hidinput_hid_event(struct hid_device *, struct hid_field *, struct hid_usa
Hid-core.c (kernel\drivers\hid):static void hid_process_event(struct hid_device *hid, struct hid_field *field,
Hid-core.c (kernel\drivers\hid): hid_process_event(hid, field, &field->usage[n], value[n], interrupt);
Hid-core.c (kernel\drivers\hid): hid_process_event(hid, field, &field->usage[field->value[n] - min], 0, interrupt);
Hid-core.c (kernel\drivers\hid): hid_process_event(hid, field, &field->usage[value[n] - min], 1, interrupt)
Hid-core.c (kernel\drivers\hid):void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
Hid-core.c (kernel\drivers\hid):EXPORT_SYMBOL_GPL(hid_report_raw_event);
Hid-core.c (kernel\drivers\hid): hid_report_raw_event(hid, type, data, size, interrupt);
Hid.h (kernel\include\linux):void hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size,
Core.c (kernel\net\bluetooth\hidp): hid_input_report(session->hid, HID_INPUT_REPORT, skb->data, skb->len, 0);
Core.c (kernel\net\bluetooth\hidp): hid_input_report(session->hid, HID_INPUT_REPORT, skb->data, skb->len, 1);
Core.c (kernel\net\bluetooth\hidp):static struct hidp_session *__hidp_get_session(bdaddr_t *bdaddr)
Hidp.h (kernel\net\bluetooth\hidp):struct hidp_session {
Hidp.h (kernel\net\bluetooth\hidp):static inline void hidp_schedule(struct hidp_session *session)