Lines Matching full:input
16 #include <linux/input/mt.h>
112 * @input: Input device through which we report events.
118 * @tracking_ids: Mapping of current touch input data to @touches.
121 struct input_dev *input; member
170 int last_state = test_bit(BTN_LEFT, msc->input->key) << 0 | in magicmouse_emit_buttons()
171 test_bit(BTN_RIGHT, msc->input->key) << 1 | in magicmouse_emit_buttons()
172 test_bit(BTN_MIDDLE, msc->input->key) << 2; in magicmouse_emit_buttons()
195 input_report_key(msc->input, BTN_MIDDLE, state & 4); in magicmouse_emit_buttons()
198 input_report_key(msc->input, BTN_LEFT, state & 1); in magicmouse_emit_buttons()
199 input_report_key(msc->input, BTN_RIGHT, state & 2); in magicmouse_emit_buttons()
207 struct input_dev *input = msc->input; in magicmouse_emit_touch() local
211 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_emit_touch()
212 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_emit_touch()
222 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) { in magicmouse_emit_touch()
254 if (emulate_scroll_wheel && (input->id.product != in magicmouse_emit_touch()
289 input_report_rel(input, REL_HWHEEL, -step_x); in magicmouse_emit_touch()
297 input_report_rel(input, REL_WHEEL, step_y); in magicmouse_emit_touch()
312 input_report_rel(input, in magicmouse_emit_touch()
329 input_report_rel(input, in magicmouse_emit_touch()
340 input_mt_slot(input, id); in magicmouse_emit_touch()
341 input_mt_report_slot_state(input, MT_TOOL_FINGER, down); in magicmouse_emit_touch()
343 /* Generate the input events for this touch. */ in magicmouse_emit_touch()
345 input_report_abs(input, ABS_MT_TOUCH_MAJOR, touch_major << 2); in magicmouse_emit_touch()
346 input_report_abs(input, ABS_MT_TOUCH_MINOR, touch_minor << 2); in magicmouse_emit_touch()
347 input_report_abs(input, ABS_MT_ORIENTATION, -orientation); in magicmouse_emit_touch()
348 input_report_abs(input, ABS_MT_POSITION_X, x); in magicmouse_emit_touch()
349 input_report_abs(input, ABS_MT_POSITION_Y, y); in magicmouse_emit_touch()
351 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) in magicmouse_emit_touch()
352 input_report_abs(input, ABS_MT_PRESSURE, pressure); in magicmouse_emit_touch()
355 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_emit_touch()
356 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) in magicmouse_emit_touch()
357 input_event(input, EV_MSC, MSC_RAW, tdata[7]); in magicmouse_emit_touch()
358 else if (input->id.product != in magicmouse_emit_touch()
360 input_event(input, EV_MSC, MSC_RAW, tdata[8]); in magicmouse_emit_touch()
369 struct input_dev *input = msc->input; in magicmouse_raw_event() local
480 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_raw_event()
481 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_raw_event()
483 input_report_rel(input, REL_X, x); in magicmouse_raw_event()
484 input_report_rel(input, REL_Y, y); in magicmouse_raw_event()
485 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) { in magicmouse_raw_event()
486 input_mt_sync_frame(input); in magicmouse_raw_event()
487 input_report_key(input, BTN_MOUSE, clicks & 1); in magicmouse_raw_event()
489 input_report_key(input, BTN_MOUSE, clicks & 1); in magicmouse_raw_event()
490 input_mt_report_pointer_emulation(input, true); in magicmouse_raw_event()
493 input_sync(input); in magicmouse_raw_event()
501 if (msc->input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 && in magicmouse_event()
514 static int magicmouse_setup_input(struct input_dev *input, struct hid_device *hdev) in magicmouse_setup_input() argument
519 __set_bit(EV_KEY, input->evbit); in magicmouse_setup_input()
521 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_setup_input()
522 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_setup_input()
523 __set_bit(BTN_LEFT, input->keybit); in magicmouse_setup_input()
524 __set_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
526 __set_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
528 __set_bit(EV_REL, input->evbit); in magicmouse_setup_input()
529 __set_bit(REL_X, input->relbit); in magicmouse_setup_input()
530 __set_bit(REL_Y, input->relbit); in magicmouse_setup_input()
532 __set_bit(REL_WHEEL, input->relbit); in magicmouse_setup_input()
533 __set_bit(REL_HWHEEL, input->relbit); in magicmouse_setup_input()
534 __set_bit(REL_WHEEL_HI_RES, input->relbit); in magicmouse_setup_input()
535 __set_bit(REL_HWHEEL_HI_RES, input->relbit); in magicmouse_setup_input()
537 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) { in magicmouse_setup_input()
541 input->name = "Apple Inc. Magic Trackpad 2"; in magicmouse_setup_input()
543 __clear_bit(EV_MSC, input->evbit); in magicmouse_setup_input()
544 __clear_bit(BTN_0, input->keybit); in magicmouse_setup_input()
545 __clear_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
546 __clear_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
547 __set_bit(BTN_MOUSE, input->keybit); in magicmouse_setup_input()
548 __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); in magicmouse_setup_input()
549 __set_bit(BTN_TOOL_FINGER, input->keybit); in magicmouse_setup_input()
554 /* input->keybit is initialized with incorrect button info in magicmouse_setup_input()
559 __clear_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
560 __clear_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
561 __set_bit(BTN_MOUSE, input->keybit); in magicmouse_setup_input()
562 __set_bit(BTN_TOOL_FINGER, input->keybit); in magicmouse_setup_input()
563 __set_bit(BTN_TOOL_DOUBLETAP, input->keybit); in magicmouse_setup_input()
564 __set_bit(BTN_TOOL_TRIPLETAP, input->keybit); in magicmouse_setup_input()
565 __set_bit(BTN_TOOL_QUADTAP, input->keybit); in magicmouse_setup_input()
566 __set_bit(BTN_TOOL_QUINTTAP, input->keybit); in magicmouse_setup_input()
567 __set_bit(BTN_TOUCH, input->keybit); in magicmouse_setup_input()
568 __set_bit(INPUT_PROP_POINTER, input->propbit); in magicmouse_setup_input()
569 __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); in magicmouse_setup_input()
573 __set_bit(EV_ABS, input->evbit); in magicmouse_setup_input()
575 error = input_mt_init_slots(input, 16, mt_flags); in magicmouse_setup_input()
578 input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2, in magicmouse_setup_input()
580 input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2, in magicmouse_setup_input()
589 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_setup_input()
590 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_setup_input()
591 input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0); in magicmouse_setup_input()
592 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
594 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
597 input_abs_set_res(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
599 input_abs_set_res(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
601 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) { in magicmouse_setup_input()
602 input_set_abs_params(input, ABS_MT_PRESSURE, 0, 253, 0, 0); in magicmouse_setup_input()
603 input_set_abs_params(input, ABS_PRESSURE, 0, 253, 0, 0); in magicmouse_setup_input()
604 input_set_abs_params(input, ABS_MT_ORIENTATION, -3, 4, 0, 0); in magicmouse_setup_input()
605 input_set_abs_params(input, ABS_X, TRACKPAD2_MIN_X, in magicmouse_setup_input()
607 input_set_abs_params(input, ABS_Y, TRACKPAD2_MIN_Y, in magicmouse_setup_input()
609 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
611 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
614 input_abs_set_res(input, ABS_X, TRACKPAD2_RES_X); in magicmouse_setup_input()
615 input_abs_set_res(input, ABS_Y, TRACKPAD2_RES_Y); in magicmouse_setup_input()
616 input_abs_set_res(input, ABS_MT_POSITION_X, TRACKPAD2_RES_X); in magicmouse_setup_input()
617 input_abs_set_res(input, ABS_MT_POSITION_Y, TRACKPAD2_RES_Y); in magicmouse_setup_input()
619 input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0); in magicmouse_setup_input()
620 input_set_abs_params(input, ABS_X, TRACKPAD_MIN_X, in magicmouse_setup_input()
622 input_set_abs_params(input, ABS_Y, TRACKPAD_MIN_Y, in magicmouse_setup_input()
624 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
626 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
629 input_abs_set_res(input, ABS_X, TRACKPAD_RES_X); in magicmouse_setup_input()
630 input_abs_set_res(input, ABS_Y, TRACKPAD_RES_Y); in magicmouse_setup_input()
631 input_abs_set_res(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
633 input_abs_set_res(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
637 input_set_events_per_packet(input, 60); in magicmouse_setup_input()
640 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) { in magicmouse_setup_input()
641 __set_bit(EV_MSC, input->evbit); in magicmouse_setup_input()
642 __set_bit(MSC_RAW, input->mscbit); in magicmouse_setup_input()
646 * hid-input may mark device as using autorepeat, but neither in magicmouse_setup_input()
649 __clear_bit(EV_REP, input->evbit); in magicmouse_setup_input()
660 if (!msc->input) in magicmouse_input_mapping()
661 msc->input = hi->input; in magicmouse_input_mapping()
664 if ((hi->input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD || in magicmouse_input_mapping()
665 hi->input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2) && in magicmouse_input_mapping()
679 ret = magicmouse_setup_input(msc->input, hdev); in magicmouse_input_configured()
681 hid_err(hdev, "magicmouse setup input failed (%d)\n", ret); in magicmouse_input_configured()
682 /* clean msc->input to notify probe() of the failure */ in magicmouse_input_configured()
683 msc->input = NULL; in magicmouse_input_configured()
775 if (!msc->input) { in magicmouse_probe()
776 hid_err(hdev, "magicmouse input not registered\n"); in magicmouse_probe()