Lines Matching full:input
16 #include <linux/input/mt.h>
117 * @input: Input device through which we report events.
123 * @tracking_ids: Mapping of current touch input data to @touches.
129 struct input_dev *input; member
179 int last_state = test_bit(BTN_LEFT, msc->input->key) << 0 | in magicmouse_emit_buttons()
180 test_bit(BTN_RIGHT, msc->input->key) << 1 | in magicmouse_emit_buttons()
181 test_bit(BTN_MIDDLE, msc->input->key) << 2; in magicmouse_emit_buttons()
204 input_report_key(msc->input, BTN_MIDDLE, state & 4); in magicmouse_emit_buttons()
207 input_report_key(msc->input, BTN_LEFT, state & 1); in magicmouse_emit_buttons()
208 input_report_key(msc->input, BTN_RIGHT, state & 2); in magicmouse_emit_buttons()
216 struct input_dev *input = msc->input; in magicmouse_emit_touch() local
220 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_emit_touch()
221 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_emit_touch()
231 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_emit_touch()
232 input->id.product == in magicmouse_emit_touch()
266 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 && in magicmouse_emit_touch()
267 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2_USBC) { in magicmouse_emit_touch()
304 input_report_rel(input, REL_HWHEEL, -step_x); in magicmouse_emit_touch()
312 input_report_rel(input, REL_WHEEL, step_y); in magicmouse_emit_touch()
327 input_report_rel(input, in magicmouse_emit_touch()
344 input_report_rel(input, in magicmouse_emit_touch()
355 input_mt_slot(input, id); in magicmouse_emit_touch()
356 input_mt_report_slot_state(input, MT_TOOL_FINGER, down); in magicmouse_emit_touch()
358 /* Generate the input events for this touch. */ in magicmouse_emit_touch()
360 input_report_abs(input, ABS_MT_TOUCH_MAJOR, touch_major << 2); in magicmouse_emit_touch()
361 input_report_abs(input, ABS_MT_TOUCH_MINOR, touch_minor << 2); in magicmouse_emit_touch()
362 input_report_abs(input, ABS_MT_ORIENTATION, -orientation); in magicmouse_emit_touch()
363 input_report_abs(input, ABS_MT_POSITION_X, x); in magicmouse_emit_touch()
364 input_report_abs(input, ABS_MT_POSITION_Y, y); in magicmouse_emit_touch()
366 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_emit_touch()
367 input->id.product == in magicmouse_emit_touch()
369 input_report_abs(input, ABS_MT_PRESSURE, pressure); in magicmouse_emit_touch()
372 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_emit_touch()
373 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) in magicmouse_emit_touch()
374 input_event(input, EV_MSC, MSC_RAW, tdata[7]); in magicmouse_emit_touch()
375 else if (input->id.product != in magicmouse_emit_touch()
377 input->id.product != in magicmouse_emit_touch()
379 input_event(input, EV_MSC, MSC_RAW, tdata[8]); in magicmouse_emit_touch()
388 struct input_dev *input = msc->input; in magicmouse_raw_event() local
499 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_raw_event()
500 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_raw_event()
502 input_report_rel(input, REL_X, x); in magicmouse_raw_event()
503 input_report_rel(input, REL_Y, y); in magicmouse_raw_event()
504 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_raw_event()
505 input->id.product == in magicmouse_raw_event()
507 input_mt_sync_frame(input); in magicmouse_raw_event()
508 input_report_key(input, BTN_MOUSE, clicks & 1); in magicmouse_raw_event()
510 input_report_key(input, BTN_MOUSE, clicks & 1); in magicmouse_raw_event()
511 input_mt_report_pointer_emulation(input, true); in magicmouse_raw_event()
514 input_sync(input); in magicmouse_raw_event()
522 if (msc->input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 && in magicmouse_event()
535 static int magicmouse_setup_input(struct input_dev *input, struct hid_device *hdev) in magicmouse_setup_input() argument
540 __set_bit(EV_KEY, input->evbit); in magicmouse_setup_input()
542 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_setup_input()
543 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_setup_input()
544 __set_bit(BTN_LEFT, input->keybit); in magicmouse_setup_input()
545 __set_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
547 __set_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
549 __set_bit(EV_REL, input->evbit); in magicmouse_setup_input()
550 __set_bit(REL_X, input->relbit); in magicmouse_setup_input()
551 __set_bit(REL_Y, input->relbit); in magicmouse_setup_input()
553 __set_bit(REL_WHEEL, input->relbit); in magicmouse_setup_input()
554 __set_bit(REL_HWHEEL, input->relbit); in magicmouse_setup_input()
555 __set_bit(REL_WHEEL_HI_RES, input->relbit); in magicmouse_setup_input()
556 __set_bit(REL_HWHEEL_HI_RES, input->relbit); in magicmouse_setup_input()
558 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_setup_input()
559 input->id.product == in magicmouse_setup_input()
570 if (input->id.version == TRACKPAD2_2021_BT_VERSION) in magicmouse_setup_input()
571 input->name = "Apple Inc. Magic Trackpad 2021"; in magicmouse_setup_input()
572 else if (input->id.version == TRACKPAD_2024_BT_VERSION) { in magicmouse_setup_input()
573 input->name = "Apple Inc. Magic Trackpad USB-C"; in magicmouse_setup_input()
575 input->name = "Apple Inc. Magic Trackpad"; in magicmouse_setup_input()
578 input->name = hdev->name; in magicmouse_setup_input()
581 __clear_bit(EV_MSC, input->evbit); in magicmouse_setup_input()
582 __clear_bit(BTN_0, input->keybit); in magicmouse_setup_input()
583 __clear_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
584 __clear_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
585 __set_bit(BTN_MOUSE, input->keybit); in magicmouse_setup_input()
586 __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); in magicmouse_setup_input()
587 __set_bit(BTN_TOOL_FINGER, input->keybit); in magicmouse_setup_input()
592 /* input->keybit is initialized with incorrect button info in magicmouse_setup_input()
597 __clear_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
598 __clear_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
599 __set_bit(BTN_MOUSE, input->keybit); in magicmouse_setup_input()
600 __set_bit(BTN_TOOL_FINGER, input->keybit); in magicmouse_setup_input()
601 __set_bit(BTN_TOOL_DOUBLETAP, input->keybit); in magicmouse_setup_input()
602 __set_bit(BTN_TOOL_TRIPLETAP, input->keybit); in magicmouse_setup_input()
603 __set_bit(BTN_TOOL_QUADTAP, input->keybit); in magicmouse_setup_input()
604 __set_bit(BTN_TOOL_QUINTTAP, input->keybit); in magicmouse_setup_input()
605 __set_bit(BTN_TOUCH, input->keybit); in magicmouse_setup_input()
606 __set_bit(INPUT_PROP_POINTER, input->propbit); in magicmouse_setup_input()
607 __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); in magicmouse_setup_input()
611 __set_bit(EV_ABS, input->evbit); in magicmouse_setup_input()
613 error = input_mt_init_slots(input, 16, mt_flags); in magicmouse_setup_input()
616 input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2, in magicmouse_setup_input()
618 input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2, in magicmouse_setup_input()
627 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_setup_input()
628 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2) { in magicmouse_setup_input()
629 input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0); in magicmouse_setup_input()
630 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
632 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
635 input_abs_set_res(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
637 input_abs_set_res(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
639 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_setup_input()
640 input->id.product == in magicmouse_setup_input()
642 input_set_abs_params(input, ABS_MT_PRESSURE, 0, 253, 0, 0); in magicmouse_setup_input()
643 input_set_abs_params(input, ABS_PRESSURE, 0, 253, 0, 0); in magicmouse_setup_input()
644 input_set_abs_params(input, ABS_MT_ORIENTATION, -3, 4, 0, 0); in magicmouse_setup_input()
645 input_set_abs_params(input, ABS_X, TRACKPAD2_MIN_X, in magicmouse_setup_input()
647 input_set_abs_params(input, ABS_Y, TRACKPAD2_MIN_Y, in magicmouse_setup_input()
649 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
651 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
654 input_abs_set_res(input, ABS_X, TRACKPAD2_RES_X); in magicmouse_setup_input()
655 input_abs_set_res(input, ABS_Y, TRACKPAD2_RES_Y); in magicmouse_setup_input()
656 input_abs_set_res(input, ABS_MT_POSITION_X, TRACKPAD2_RES_X); in magicmouse_setup_input()
657 input_abs_set_res(input, ABS_MT_POSITION_Y, TRACKPAD2_RES_Y); in magicmouse_setup_input()
659 input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0); in magicmouse_setup_input()
660 input_set_abs_params(input, ABS_X, TRACKPAD_MIN_X, in magicmouse_setup_input()
662 input_set_abs_params(input, ABS_Y, TRACKPAD_MIN_Y, in magicmouse_setup_input()
664 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
666 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
669 input_abs_set_res(input, ABS_X, TRACKPAD_RES_X); in magicmouse_setup_input()
670 input_abs_set_res(input, ABS_Y, TRACKPAD_RES_Y); in magicmouse_setup_input()
671 input_abs_set_res(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
673 input_abs_set_res(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
677 input_set_events_per_packet(input, 60); in magicmouse_setup_input()
680 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 && in magicmouse_setup_input()
681 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2_USBC) { in magicmouse_setup_input()
682 __set_bit(EV_MSC, input->evbit); in magicmouse_setup_input()
683 __set_bit(MSC_RAW, input->mscbit); in magicmouse_setup_input()
687 * hid-input may mark device as using autorepeat, but neither in magicmouse_setup_input()
690 __clear_bit(EV_REP, input->evbit); in magicmouse_setup_input()
701 if (!msc->input) in magicmouse_input_mapping()
702 msc->input = hi->input; in magicmouse_input_mapping()
705 if ((hi->input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD || in magicmouse_input_mapping()
706 hi->input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_input_mapping()
707 hi->input->id.product == in magicmouse_input_mapping()
722 ret = magicmouse_setup_input(msc->input, hdev); in magicmouse_input_configured()
724 hid_err(hdev, "magicmouse setup input failed (%d)\n", ret); in magicmouse_input_configured()
725 /* clean msc->input to notify probe() of the failure */ in magicmouse_input_configured()
726 msc->input = NULL; in magicmouse_input_configured()
865 if (!msc->input) { in magicmouse_probe()
866 hid_err(hdev, "magicmouse input not registered\n"); in magicmouse_probe()