Lines Matching +full:input +full:- +full:value
1 // SPDX-License-Identifier: GPL-2.0-or-later
13 #include <linux/input.h>
36 * Generic input device code.
49 return -ENOMEM; in cmpc_add_acpi_notify_device()
50 inputdev->name = name; in cmpc_add_acpi_notify_device()
51 inputdev->dev.parent = &acpi->dev; in cmpc_add_acpi_notify_device()
58 dev_set_drvdata(&acpi->dev, inputdev); in cmpc_add_acpi_notify_device()
64 struct input_dev *inputdev = dev_get_drvdata(&acpi->dev); in cmpc_remove_acpi_notify_device()
75 struct acpi_object_list input; in cmpc_start_accel_v4() local
79 param[0].integer.value = 0x3; in cmpc_start_accel_v4()
81 param[1].integer.value = 0; in cmpc_start_accel_v4()
83 param[2].integer.value = 0; in cmpc_start_accel_v4()
85 param[3].integer.value = 0; in cmpc_start_accel_v4()
86 input.count = 4; in cmpc_start_accel_v4()
87 input.pointer = param; in cmpc_start_accel_v4()
88 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_start_accel_v4()
95 struct acpi_object_list input; in cmpc_stop_accel_v4() local
99 param[0].integer.value = 0x4; in cmpc_stop_accel_v4()
101 param[1].integer.value = 0; in cmpc_stop_accel_v4()
103 param[2].integer.value = 0; in cmpc_stop_accel_v4()
105 param[3].integer.value = 0; in cmpc_stop_accel_v4()
106 input.count = 4; in cmpc_stop_accel_v4()
107 input.pointer = param; in cmpc_stop_accel_v4()
108 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_stop_accel_v4()
115 struct acpi_object_list input; in cmpc_accel_set_sensitivity_v4() local
118 param[0].integer.value = 0x02; in cmpc_accel_set_sensitivity_v4()
120 param[1].integer.value = val; in cmpc_accel_set_sensitivity_v4()
122 param[2].integer.value = 0; in cmpc_accel_set_sensitivity_v4()
124 param[3].integer.value = 0; in cmpc_accel_set_sensitivity_v4()
125 input.count = 4; in cmpc_accel_set_sensitivity_v4()
126 input.pointer = param; in cmpc_accel_set_sensitivity_v4()
127 return acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_accel_set_sensitivity_v4()
133 struct acpi_object_list input; in cmpc_accel_set_g_select_v4() local
136 param[0].integer.value = 0x05; in cmpc_accel_set_g_select_v4()
138 param[1].integer.value = val; in cmpc_accel_set_g_select_v4()
140 param[2].integer.value = 0; in cmpc_accel_set_g_select_v4()
142 param[3].integer.value = 0; in cmpc_accel_set_g_select_v4()
143 input.count = 4; in cmpc_accel_set_g_select_v4()
144 input.pointer = param; in cmpc_accel_set_g_select_v4()
145 return acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_accel_set_g_select_v4()
154 struct acpi_object_list input; in cmpc_get_accel_v4() local
160 param[0].integer.value = 0x01; in cmpc_get_accel_v4()
162 param[1].integer.value = 0; in cmpc_get_accel_v4()
164 param[2].integer.value = 0; in cmpc_get_accel_v4()
166 param[3].integer.value = 0; in cmpc_get_accel_v4()
167 input.count = 4; in cmpc_get_accel_v4()
168 input.pointer = param; in cmpc_get_accel_v4()
169 status = acpi_evaluate_object(handle, "ACMD", &input, &output); in cmpc_get_accel_v4()
173 locs = (int16_t *) obj->buffer.pointer; in cmpc_get_accel_v4()
188 status = cmpc_get_accel_v4(dev->handle, &x, &y, &z); in cmpc_accel_handler_v4()
190 struct input_dev *inputdev = dev_get_drvdata(&dev->dev); in cmpc_accel_handler_v4()
209 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_show_v4()
210 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_show_v4()
212 return sysfs_emit(buf, "%d\n", accel->sensitivity); in cmpc_accel_sensitivity_show_v4()
226 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_store_v4()
227 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_store_v4()
235 return -EINVAL; in cmpc_accel_sensitivity_store_v4()
237 accel->sensitivity = sensitivity; in cmpc_accel_sensitivity_store_v4()
238 cmpc_accel_set_sensitivity_v4(acpi->handle, sensitivity); in cmpc_accel_sensitivity_store_v4()
258 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_g_select_show_v4()
259 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_g_select_show_v4()
261 return sysfs_emit(buf, "%d\n", accel->g_select); in cmpc_accel_g_select_show_v4()
275 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_g_select_store_v4()
276 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_g_select_store_v4()
284 return -EINVAL; in cmpc_accel_g_select_store_v4()
286 accel->g_select = g_select; in cmpc_accel_g_select_store_v4()
287 cmpc_accel_set_g_select_v4(acpi->handle, g_select); in cmpc_accel_g_select_store_v4()
298 static int cmpc_accel_open_v4(struct input_dev *input) in cmpc_accel_open_v4() argument
303 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_open_v4()
304 accel = dev_get_drvdata(&input->dev); in cmpc_accel_open_v4()
306 cmpc_accel_set_sensitivity_v4(acpi->handle, accel->sensitivity); in cmpc_accel_open_v4()
307 cmpc_accel_set_g_select_v4(acpi->handle, accel->g_select); in cmpc_accel_open_v4()
309 if (ACPI_SUCCESS(cmpc_start_accel_v4(acpi->handle))) { in cmpc_accel_open_v4()
310 accel->inputdev_state = CMPC_ACCEL_DEV_STATE_OPEN; in cmpc_accel_open_v4()
313 return -EIO; in cmpc_accel_open_v4()
316 static void cmpc_accel_close_v4(struct input_dev *input) in cmpc_accel_close_v4() argument
321 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_close_v4()
322 accel = dev_get_drvdata(&input->dev); in cmpc_accel_close_v4()
324 cmpc_stop_accel_v4(acpi->handle); in cmpc_accel_close_v4()
325 accel->inputdev_state = CMPC_ACCEL_DEV_STATE_CLOSED; in cmpc_accel_close_v4()
330 set_bit(EV_ABS, inputdev->evbit); in cmpc_accel_idev_init_v4()
331 input_set_abs_params(inputdev, ABS_X, -255, 255, 16, 0); in cmpc_accel_idev_init_v4()
332 input_set_abs_params(inputdev, ABS_Y, -255, 255, 16, 0); in cmpc_accel_idev_init_v4()
333 input_set_abs_params(inputdev, ABS_Z, -255, 255, 16, 0); in cmpc_accel_idev_init_v4()
334 inputdev->open = cmpc_accel_open_v4; in cmpc_accel_idev_init_v4()
335 inputdev->close = cmpc_accel_close_v4; in cmpc_accel_idev_init_v4()
345 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_suspend_v4()
347 if (accel->inputdev_state == CMPC_ACCEL_DEV_STATE_OPEN) in cmpc_accel_suspend_v4()
348 return cmpc_stop_accel_v4(to_acpi_device(dev)->handle); in cmpc_accel_suspend_v4()
359 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_resume_v4()
361 if (accel->inputdev_state == CMPC_ACCEL_DEV_STATE_OPEN) { in cmpc_accel_resume_v4()
362 cmpc_accel_set_sensitivity_v4(to_acpi_device(dev)->handle, in cmpc_accel_resume_v4()
363 accel->sensitivity); in cmpc_accel_resume_v4()
364 cmpc_accel_set_g_select_v4(to_acpi_device(dev)->handle, in cmpc_accel_resume_v4()
365 accel->g_select); in cmpc_accel_resume_v4()
367 if (ACPI_FAILURE(cmpc_start_accel_v4(to_acpi_device(dev)->handle))) in cmpc_accel_resume_v4()
368 return -EIO; in cmpc_accel_resume_v4()
383 return -ENOMEM; in cmpc_accel_add_v4()
385 accel->inputdev_state = CMPC_ACCEL_DEV_STATE_CLOSED; in cmpc_accel_add_v4()
387 accel->sensitivity = CMPC_ACCEL_SENSITIVITY_DEFAULT; in cmpc_accel_add_v4()
388 cmpc_accel_set_sensitivity_v4(acpi->handle, accel->sensitivity); in cmpc_accel_add_v4()
390 error = device_create_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); in cmpc_accel_add_v4()
394 accel->g_select = CMPC_ACCEL_G_SELECT_DEFAULT; in cmpc_accel_add_v4()
395 cmpc_accel_set_g_select_v4(acpi->handle, accel->g_select); in cmpc_accel_add_v4()
397 error = device_create_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); in cmpc_accel_add_v4()
406 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_add_v4()
407 dev_set_drvdata(&inputdev->dev, accel); in cmpc_accel_add_v4()
412 device_remove_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); in cmpc_accel_add_v4()
414 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); in cmpc_accel_add_v4()
422 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); in cmpc_accel_remove_v4()
423 device_remove_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); in cmpc_accel_remove_v4()
454 struct acpi_object_list input; in cmpc_start_accel() local
458 param[0].integer.value = 0x3; in cmpc_start_accel()
460 input.count = 2; in cmpc_start_accel()
461 input.pointer = param; in cmpc_start_accel()
462 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_start_accel()
469 struct acpi_object_list input; in cmpc_stop_accel() local
473 param[0].integer.value = 0x4; in cmpc_stop_accel()
475 input.count = 2; in cmpc_stop_accel()
476 input.pointer = param; in cmpc_stop_accel()
477 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_stop_accel()
484 struct acpi_object_list input; in cmpc_accel_set_sensitivity() local
487 param[0].integer.value = 0x02; in cmpc_accel_set_sensitivity()
489 param[1].integer.value = val; in cmpc_accel_set_sensitivity()
490 input.count = 2; in cmpc_accel_set_sensitivity()
491 input.pointer = param; in cmpc_accel_set_sensitivity()
492 return acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_accel_set_sensitivity()
501 struct acpi_object_list input; in cmpc_get_accel() local
507 param[0].integer.value = 0x01; in cmpc_get_accel()
509 input.count = 2; in cmpc_get_accel()
510 input.pointer = param; in cmpc_get_accel()
511 status = acpi_evaluate_object(handle, "ACMD", &input, &output); in cmpc_get_accel()
515 locs = obj->buffer.pointer; in cmpc_get_accel()
530 status = cmpc_get_accel(dev->handle, &x, &y, &z); in cmpc_accel_handler()
532 struct input_dev *inputdev = dev_get_drvdata(&dev->dev); in cmpc_accel_handler()
551 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_show()
552 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_show()
554 return sysfs_emit(buf, "%d\n", accel->sensitivity); in cmpc_accel_sensitivity_show()
568 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_store()
569 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_store()
575 accel->sensitivity = sensitivity; in cmpc_accel_sensitivity_store()
576 cmpc_accel_set_sensitivity(acpi->handle, sensitivity); in cmpc_accel_sensitivity_store()
587 static int cmpc_accel_open(struct input_dev *input) in cmpc_accel_open() argument
591 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_open()
592 if (ACPI_SUCCESS(cmpc_start_accel(acpi->handle))) in cmpc_accel_open()
594 return -EIO; in cmpc_accel_open()
597 static void cmpc_accel_close(struct input_dev *input) in cmpc_accel_close() argument
601 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_close()
602 cmpc_stop_accel(acpi->handle); in cmpc_accel_close()
607 set_bit(EV_ABS, inputdev->evbit); in cmpc_accel_idev_init()
611 inputdev->open = cmpc_accel_open; in cmpc_accel_idev_init()
612 inputdev->close = cmpc_accel_close; in cmpc_accel_idev_init()
623 return -ENOMEM; in cmpc_accel_add()
625 accel->sensitivity = CMPC_ACCEL_SENSITIVITY_DEFAULT; in cmpc_accel_add()
626 cmpc_accel_set_sensitivity(acpi->handle, accel->sensitivity); in cmpc_accel_add()
628 error = device_create_file(&acpi->dev, &cmpc_accel_sensitivity_attr); in cmpc_accel_add()
637 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_add()
638 dev_set_drvdata(&inputdev->dev, accel); in cmpc_accel_add()
643 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr); in cmpc_accel_add()
651 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr); in cmpc_accel_remove()
676 unsigned long long *value) in cmpc_get_tablet() argument
679 struct acpi_object_list input; in cmpc_get_tablet() local
684 param.integer.value = 0x01; in cmpc_get_tablet()
685 input.count = 1; in cmpc_get_tablet()
686 input.pointer = ¶m; in cmpc_get_tablet()
687 status = acpi_evaluate_integer(handle, "TCMD", &input, &output); in cmpc_get_tablet()
689 *value = output; in cmpc_get_tablet()
696 struct input_dev *inputdev = dev_get_drvdata(&dev->dev); in cmpc_tablet_handler()
699 if (ACPI_SUCCESS(cmpc_get_tablet(dev->handle, &val))) { in cmpc_tablet_handler()
711 set_bit(EV_SW, inputdev->evbit); in cmpc_tablet_idev_init()
712 set_bit(SW_TABLET_MODE, inputdev->swbit); in cmpc_tablet_idev_init()
714 acpi = to_acpi_device(inputdev->dev.parent); in cmpc_tablet_idev_init()
715 if (ACPI_SUCCESS(cmpc_get_tablet(acpi->handle, &val))) { in cmpc_tablet_idev_init()
738 if (ACPI_SUCCESS(cmpc_get_tablet(to_acpi_device(dev)->handle, &val))) { in cmpc_tablet_resume()
771 unsigned long long *value) in cmpc_get_brightness() argument
774 struct acpi_object_list input; in cmpc_get_brightness() local
779 param.integer.value = 0xC0; in cmpc_get_brightness()
780 input.count = 1; in cmpc_get_brightness()
781 input.pointer = ¶m; in cmpc_get_brightness()
782 status = acpi_evaluate_integer(handle, "GRDI", &input, &output); in cmpc_get_brightness()
784 *value = output; in cmpc_get_brightness()
789 unsigned long long value) in cmpc_set_brightness() argument
792 struct acpi_object_list input; in cmpc_set_brightness() local
797 param[0].integer.value = 0xC0; in cmpc_set_brightness()
799 param[1].integer.value = value; in cmpc_set_brightness()
800 input.count = 2; in cmpc_set_brightness()
801 input.pointer = param; in cmpc_set_brightness()
802 status = acpi_evaluate_integer(handle, "GWRI", &input, &output); in cmpc_set_brightness()
817 return -1; in cmpc_bl_get_brightness()
826 status = cmpc_set_brightness(handle, bd->props.brightness); in cmpc_bl_update_status()
830 return -1; in cmpc_bl_update_status()
843 unsigned long long *value) in cmpc_get_rfkill_wlan() argument
846 struct acpi_object_list input; in cmpc_get_rfkill_wlan() local
851 param.integer.value = 0xC1; in cmpc_get_rfkill_wlan()
852 input.count = 1; in cmpc_get_rfkill_wlan()
853 input.pointer = ¶m; in cmpc_get_rfkill_wlan()
854 status = acpi_evaluate_integer(handle, "GRDI", &input, &output); in cmpc_get_rfkill_wlan()
856 *value = output; in cmpc_get_rfkill_wlan()
861 unsigned long long value) in cmpc_set_rfkill_wlan() argument
864 struct acpi_object_list input; in cmpc_set_rfkill_wlan() local
869 param[0].integer.value = 0xC1; in cmpc_set_rfkill_wlan()
871 param[1].integer.value = value; in cmpc_set_rfkill_wlan()
872 input.count = 2; in cmpc_set_rfkill_wlan()
873 input.pointer = param; in cmpc_set_rfkill_wlan()
874 status = acpi_evaluate_integer(handle, "GWRI", &input, &output); in cmpc_set_rfkill_wlan()
903 return -ENODEV; in cmpc_rfkill_block()
910 return -ENODEV; in cmpc_rfkill_block()
937 return -ENOMEM; in cmpc_ipml_add()
942 ipml->bd = backlight_device_register("cmpc_bl", &acpi->dev, in cmpc_ipml_add()
943 acpi->handle, &cmpc_bl_ops, in cmpc_ipml_add()
945 if (IS_ERR(ipml->bd)) { in cmpc_ipml_add()
946 retval = PTR_ERR(ipml->bd); in cmpc_ipml_add()
950 ipml->rf = rfkill_alloc("cmpc_rfkill", &acpi->dev, RFKILL_TYPE_WLAN, in cmpc_ipml_add()
951 &cmpc_rfkill_ops, acpi->handle); in cmpc_ipml_add()
953 * If RFKILL is disabled, rfkill_alloc will return ERR_PTR(-ENODEV). in cmpc_ipml_add()
957 if (ipml->rf) { in cmpc_ipml_add()
958 retval = rfkill_register(ipml->rf); in cmpc_ipml_add()
960 rfkill_destroy(ipml->rf); in cmpc_ipml_add()
961 ipml->rf = NULL; in cmpc_ipml_add()
965 dev_set_drvdata(&acpi->dev, ipml); in cmpc_ipml_add()
977 ipml = dev_get_drvdata(&acpi->dev); in cmpc_ipml_remove()
979 backlight_device_unregister(ipml->bd); in cmpc_ipml_remove()
981 if (ipml->rf) { in cmpc_ipml_remove()
982 rfkill_unregister(ipml->rf); in cmpc_ipml_remove()
983 rfkill_destroy(ipml->rf); in cmpc_ipml_remove()
1031 inputdev = dev_get_drvdata(&dev->dev); in cmpc_keys_handler()
1040 set_bit(EV_KEY, inputdev->evbit); in cmpc_keys_idev_init()
1042 set_bit(cmpc_keys_codes[i], inputdev->keybit); in cmpc_keys_idev_init()