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()
222 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2_USBC) { in magicmouse_emit_touch()
232 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_emit_touch()
233 input->id.product == in magicmouse_emit_touch()
267 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 && in magicmouse_emit_touch()
268 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2_USBC) { in magicmouse_emit_touch()
305 input_report_rel(input, REL_HWHEEL, -step_x); in magicmouse_emit_touch()
313 input_report_rel(input, REL_WHEEL, step_y); in magicmouse_emit_touch()
328 input_report_rel(input, in magicmouse_emit_touch()
345 input_report_rel(input, in magicmouse_emit_touch()
356 input_mt_slot(input, id); in magicmouse_emit_touch()
357 input_mt_report_slot_state(input, MT_TOOL_FINGER, down); in magicmouse_emit_touch()
359 /* Generate the input events for this touch. */ in magicmouse_emit_touch()
361 input_report_abs(input, ABS_MT_TOUCH_MAJOR, touch_major << 2); in magicmouse_emit_touch()
362 input_report_abs(input, ABS_MT_TOUCH_MINOR, touch_minor << 2); in magicmouse_emit_touch()
363 input_report_abs(input, ABS_MT_ORIENTATION, -orientation); in magicmouse_emit_touch()
364 input_report_abs(input, ABS_MT_POSITION_X, x); in magicmouse_emit_touch()
365 input_report_abs(input, ABS_MT_POSITION_Y, y); in magicmouse_emit_touch()
367 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_emit_touch()
368 input->id.product == in magicmouse_emit_touch()
370 input_report_abs(input, ABS_MT_PRESSURE, pressure); in magicmouse_emit_touch()
373 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_emit_touch()
374 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 || in magicmouse_emit_touch()
375 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2_USBC) in magicmouse_emit_touch()
376 input_event(input, EV_MSC, MSC_RAW, tdata[7]); in magicmouse_emit_touch()
377 else if (input->id.product != in magicmouse_emit_touch()
379 input->id.product != in magicmouse_emit_touch()
381 input_event(input, EV_MSC, MSC_RAW, tdata[8]); in magicmouse_emit_touch()
390 struct input_dev *input = msc->input; in magicmouse_raw_event() local
501 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_raw_event()
502 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 || in magicmouse_raw_event()
503 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2_USBC) { in magicmouse_raw_event()
505 input_report_rel(input, REL_X, x); in magicmouse_raw_event()
506 input_report_rel(input, REL_Y, y); in magicmouse_raw_event()
507 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_raw_event()
508 input->id.product == in magicmouse_raw_event()
510 input_mt_sync_frame(input); in magicmouse_raw_event()
511 input_report_key(input, BTN_MOUSE, clicks & 1); in magicmouse_raw_event()
513 input_report_key(input, BTN_MOUSE, clicks & 1); in magicmouse_raw_event()
514 input_mt_report_pointer_emulation(input, true); in magicmouse_raw_event()
517 input_sync(input); in magicmouse_raw_event()
525 if ((msc->input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 || in magicmouse_event()
526 msc->input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2_USBC) && in magicmouse_event()
539 static int magicmouse_setup_input(struct input_dev *input, struct hid_device *hdev) in magicmouse_setup_input() argument
544 __set_bit(EV_KEY, input->evbit); in magicmouse_setup_input()
546 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_setup_input()
547 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 || in magicmouse_setup_input()
548 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2_USBC) { in magicmouse_setup_input()
549 __set_bit(BTN_LEFT, input->keybit); in magicmouse_setup_input()
550 __set_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
552 __set_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
554 __set_bit(EV_REL, input->evbit); in magicmouse_setup_input()
555 __set_bit(REL_X, input->relbit); in magicmouse_setup_input()
556 __set_bit(REL_Y, input->relbit); in magicmouse_setup_input()
558 __set_bit(REL_WHEEL, input->relbit); in magicmouse_setup_input()
559 __set_bit(REL_HWHEEL, input->relbit); in magicmouse_setup_input()
560 __set_bit(REL_WHEEL_HI_RES, input->relbit); in magicmouse_setup_input()
561 __set_bit(REL_HWHEEL_HI_RES, input->relbit); in magicmouse_setup_input()
563 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_setup_input()
564 input->id.product == in magicmouse_setup_input()
575 if (input->id.version == TRACKPAD2_2021_BT_VERSION) in magicmouse_setup_input()
576 input->name = "Apple Inc. Magic Trackpad 2021"; in magicmouse_setup_input()
577 else if (input->id.version == TRACKPAD_2024_BT_VERSION) { in magicmouse_setup_input()
578 input->name = "Apple Inc. Magic Trackpad USB-C"; in magicmouse_setup_input()
580 input->name = "Apple Inc. Magic Trackpad"; in magicmouse_setup_input()
583 input->name = hdev->name; in magicmouse_setup_input()
586 __clear_bit(EV_MSC, input->evbit); in magicmouse_setup_input()
587 __clear_bit(BTN_0, input->keybit); in magicmouse_setup_input()
588 __clear_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
589 __clear_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
590 __set_bit(BTN_MOUSE, input->keybit); in magicmouse_setup_input()
591 __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); in magicmouse_setup_input()
592 __set_bit(BTN_TOOL_FINGER, input->keybit); in magicmouse_setup_input()
597 /* input->keybit is initialized with incorrect button info in magicmouse_setup_input()
602 __clear_bit(BTN_RIGHT, input->keybit); in magicmouse_setup_input()
603 __clear_bit(BTN_MIDDLE, input->keybit); in magicmouse_setup_input()
604 __set_bit(BTN_MOUSE, input->keybit); in magicmouse_setup_input()
605 __set_bit(BTN_TOOL_FINGER, input->keybit); in magicmouse_setup_input()
606 __set_bit(BTN_TOOL_DOUBLETAP, input->keybit); in magicmouse_setup_input()
607 __set_bit(BTN_TOOL_TRIPLETAP, input->keybit); in magicmouse_setup_input()
608 __set_bit(BTN_TOOL_QUADTAP, input->keybit); in magicmouse_setup_input()
609 __set_bit(BTN_TOOL_QUINTTAP, input->keybit); in magicmouse_setup_input()
610 __set_bit(BTN_TOUCH, input->keybit); in magicmouse_setup_input()
611 __set_bit(INPUT_PROP_POINTER, input->propbit); in magicmouse_setup_input()
612 __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); in magicmouse_setup_input()
616 __set_bit(EV_ABS, input->evbit); in magicmouse_setup_input()
618 error = input_mt_init_slots(input, 16, mt_flags); in magicmouse_setup_input()
621 input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 255 << 2, in magicmouse_setup_input()
623 input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 255 << 2, in magicmouse_setup_input()
632 if (input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE || in magicmouse_setup_input()
633 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2 || in magicmouse_setup_input()
634 input->id.product == USB_DEVICE_ID_APPLE_MAGICMOUSE2_USBC) { in magicmouse_setup_input()
635 input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0); in magicmouse_setup_input()
636 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
638 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
641 input_abs_set_res(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
643 input_abs_set_res(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
645 } else if (input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_setup_input()
646 input->id.product == in magicmouse_setup_input()
648 input_set_abs_params(input, ABS_MT_PRESSURE, 0, 253, 0, 0); in magicmouse_setup_input()
649 input_set_abs_params(input, ABS_PRESSURE, 0, 253, 0, 0); in magicmouse_setup_input()
650 input_set_abs_params(input, ABS_MT_ORIENTATION, -3, 4, 0, 0); in magicmouse_setup_input()
651 input_set_abs_params(input, ABS_X, TRACKPAD2_MIN_X, in magicmouse_setup_input()
653 input_set_abs_params(input, ABS_Y, TRACKPAD2_MIN_Y, in magicmouse_setup_input()
655 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
657 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
660 input_abs_set_res(input, ABS_X, TRACKPAD2_RES_X); in magicmouse_setup_input()
661 input_abs_set_res(input, ABS_Y, TRACKPAD2_RES_Y); in magicmouse_setup_input()
662 input_abs_set_res(input, ABS_MT_POSITION_X, TRACKPAD2_RES_X); in magicmouse_setup_input()
663 input_abs_set_res(input, ABS_MT_POSITION_Y, TRACKPAD2_RES_Y); in magicmouse_setup_input()
665 input_set_abs_params(input, ABS_MT_ORIENTATION, -31, 32, 1, 0); in magicmouse_setup_input()
666 input_set_abs_params(input, ABS_X, TRACKPAD_MIN_X, in magicmouse_setup_input()
668 input_set_abs_params(input, ABS_Y, TRACKPAD_MIN_Y, in magicmouse_setup_input()
670 input_set_abs_params(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
672 input_set_abs_params(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
675 input_abs_set_res(input, ABS_X, TRACKPAD_RES_X); in magicmouse_setup_input()
676 input_abs_set_res(input, ABS_Y, TRACKPAD_RES_Y); in magicmouse_setup_input()
677 input_abs_set_res(input, ABS_MT_POSITION_X, in magicmouse_setup_input()
679 input_abs_set_res(input, ABS_MT_POSITION_Y, in magicmouse_setup_input()
683 input_set_events_per_packet(input, 60); in magicmouse_setup_input()
686 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 && in magicmouse_setup_input()
687 input->id.product != USB_DEVICE_ID_APPLE_MAGICTRACKPAD2_USBC) { in magicmouse_setup_input()
688 __set_bit(EV_MSC, input->evbit); in magicmouse_setup_input()
689 __set_bit(MSC_RAW, input->mscbit); in magicmouse_setup_input()
693 * hid-input may mark device as using autorepeat, but neither in magicmouse_setup_input()
696 __clear_bit(EV_REP, input->evbit); in magicmouse_setup_input()
707 if (!msc->input) in magicmouse_input_mapping()
708 msc->input = hi->input; in magicmouse_input_mapping()
711 if ((hi->input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD || in magicmouse_input_mapping()
712 hi->input->id.product == USB_DEVICE_ID_APPLE_MAGICTRACKPAD2 || in magicmouse_input_mapping()
713 hi->input->id.product == in magicmouse_input_mapping()
728 ret = magicmouse_setup_input(msc->input, hdev); in magicmouse_input_configured()
730 hid_err(hdev, "magicmouse setup input failed (%d)\n", ret); in magicmouse_input_configured()
731 /* clean msc->input to notify probe() of the failure */ in magicmouse_input_configured()
732 msc->input = NULL; in magicmouse_input_configured()
879 if (!msc->input) { in magicmouse_probe()
880 hid_err(hdev, "magicmouse input not registered\n"); in magicmouse_probe()