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