Lines Matching +full:input +full:- +full:value

1 // SPDX-License-Identifier: GPL-2.0-or-later
13 #include <linux/input.h>
37 * Generic input device code.
50 return -ENOMEM; in cmpc_add_acpi_notify_device()
51 inputdev->name = name; in cmpc_add_acpi_notify_device()
52 inputdev->dev.parent = &acpi->dev; in cmpc_add_acpi_notify_device()
59 dev_set_drvdata(&acpi->dev, inputdev); in cmpc_add_acpi_notify_device()
65 struct input_dev *inputdev = dev_get_drvdata(&acpi->dev); in cmpc_remove_acpi_notify_device()
76 struct acpi_object_list input; in cmpc_start_accel_v4() local
80 param[0].integer.value = 0x3; in cmpc_start_accel_v4()
82 param[1].integer.value = 0; in cmpc_start_accel_v4()
84 param[2].integer.value = 0; in cmpc_start_accel_v4()
86 param[3].integer.value = 0; in cmpc_start_accel_v4()
87 input.count = 4; in cmpc_start_accel_v4()
88 input.pointer = param; in cmpc_start_accel_v4()
89 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_start_accel_v4()
96 struct acpi_object_list input; in cmpc_stop_accel_v4() local
100 param[0].integer.value = 0x4; in cmpc_stop_accel_v4()
102 param[1].integer.value = 0; in cmpc_stop_accel_v4()
104 param[2].integer.value = 0; in cmpc_stop_accel_v4()
106 param[3].integer.value = 0; in cmpc_stop_accel_v4()
107 input.count = 4; in cmpc_stop_accel_v4()
108 input.pointer = param; in cmpc_stop_accel_v4()
109 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_stop_accel_v4()
116 struct acpi_object_list input; in cmpc_accel_set_sensitivity_v4() local
119 param[0].integer.value = 0x02; in cmpc_accel_set_sensitivity_v4()
121 param[1].integer.value = val; in cmpc_accel_set_sensitivity_v4()
123 param[2].integer.value = 0; in cmpc_accel_set_sensitivity_v4()
125 param[3].integer.value = 0; in cmpc_accel_set_sensitivity_v4()
126 input.count = 4; in cmpc_accel_set_sensitivity_v4()
127 input.pointer = param; in cmpc_accel_set_sensitivity_v4()
128 return acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_accel_set_sensitivity_v4()
134 struct acpi_object_list input; in cmpc_accel_set_g_select_v4() local
137 param[0].integer.value = 0x05; in cmpc_accel_set_g_select_v4()
139 param[1].integer.value = val; in cmpc_accel_set_g_select_v4()
141 param[2].integer.value = 0; in cmpc_accel_set_g_select_v4()
143 param[3].integer.value = 0; in cmpc_accel_set_g_select_v4()
144 input.count = 4; in cmpc_accel_set_g_select_v4()
145 input.pointer = param; in cmpc_accel_set_g_select_v4()
146 return acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_accel_set_g_select_v4()
155 struct acpi_object_list input; in cmpc_get_accel_v4() local
161 param[0].integer.value = 0x01; in cmpc_get_accel_v4()
163 param[1].integer.value = 0; in cmpc_get_accel_v4()
165 param[2].integer.value = 0; in cmpc_get_accel_v4()
167 param[3].integer.value = 0; in cmpc_get_accel_v4()
168 input.count = 4; in cmpc_get_accel_v4()
169 input.pointer = param; in cmpc_get_accel_v4()
170 status = acpi_evaluate_object(handle, "ACMD", &input, &output); in cmpc_get_accel_v4()
174 locs = (int16_t *) obj->buffer.pointer; in cmpc_get_accel_v4()
189 status = cmpc_get_accel_v4(dev->handle, &x, &y, &z); in cmpc_accel_handler_v4()
191 struct input_dev *inputdev = dev_get_drvdata(&dev->dev); in cmpc_accel_handler_v4()
210 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_show_v4()
211 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_show_v4()
213 return sprintf(buf, "%d\n", accel->sensitivity); in cmpc_accel_sensitivity_show_v4()
227 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_store_v4()
228 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_store_v4()
236 return -EINVAL; in cmpc_accel_sensitivity_store_v4()
238 accel->sensitivity = sensitivity; in cmpc_accel_sensitivity_store_v4()
239 cmpc_accel_set_sensitivity_v4(acpi->handle, sensitivity); in cmpc_accel_sensitivity_store_v4()
259 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_g_select_show_v4()
260 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_g_select_show_v4()
262 return sprintf(buf, "%d\n", accel->g_select); in cmpc_accel_g_select_show_v4()
276 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_g_select_store_v4()
277 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_g_select_store_v4()
285 return -EINVAL; in cmpc_accel_g_select_store_v4()
287 accel->g_select = g_select; in cmpc_accel_g_select_store_v4()
288 cmpc_accel_set_g_select_v4(acpi->handle, g_select); in cmpc_accel_g_select_store_v4()
299 static int cmpc_accel_open_v4(struct input_dev *input) in cmpc_accel_open_v4() argument
304 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_open_v4()
305 accel = dev_get_drvdata(&input->dev); in cmpc_accel_open_v4()
307 cmpc_accel_set_sensitivity_v4(acpi->handle, accel->sensitivity); in cmpc_accel_open_v4()
308 cmpc_accel_set_g_select_v4(acpi->handle, accel->g_select); in cmpc_accel_open_v4()
310 if (ACPI_SUCCESS(cmpc_start_accel_v4(acpi->handle))) { in cmpc_accel_open_v4()
311 accel->inputdev_state = CMPC_ACCEL_DEV_STATE_OPEN; in cmpc_accel_open_v4()
314 return -EIO; in cmpc_accel_open_v4()
317 static void cmpc_accel_close_v4(struct input_dev *input) in cmpc_accel_close_v4() argument
322 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_close_v4()
323 accel = dev_get_drvdata(&input->dev); in cmpc_accel_close_v4()
325 cmpc_stop_accel_v4(acpi->handle); in cmpc_accel_close_v4()
326 accel->inputdev_state = CMPC_ACCEL_DEV_STATE_CLOSED; in cmpc_accel_close_v4()
331 set_bit(EV_ABS, inputdev->evbit); in cmpc_accel_idev_init_v4()
332 input_set_abs_params(inputdev, ABS_X, -255, 255, 16, 0); in cmpc_accel_idev_init_v4()
333 input_set_abs_params(inputdev, ABS_Y, -255, 255, 16, 0); in cmpc_accel_idev_init_v4()
334 input_set_abs_params(inputdev, ABS_Z, -255, 255, 16, 0); in cmpc_accel_idev_init_v4()
335 inputdev->open = cmpc_accel_open_v4; in cmpc_accel_idev_init_v4()
336 inputdev->close = cmpc_accel_close_v4; in cmpc_accel_idev_init_v4()
346 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_suspend_v4()
348 if (accel->inputdev_state == CMPC_ACCEL_DEV_STATE_OPEN) in cmpc_accel_suspend_v4()
349 return cmpc_stop_accel_v4(to_acpi_device(dev)->handle); in cmpc_accel_suspend_v4()
360 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_resume_v4()
362 if (accel->inputdev_state == CMPC_ACCEL_DEV_STATE_OPEN) { in cmpc_accel_resume_v4()
363 cmpc_accel_set_sensitivity_v4(to_acpi_device(dev)->handle, in cmpc_accel_resume_v4()
364 accel->sensitivity); in cmpc_accel_resume_v4()
365 cmpc_accel_set_g_select_v4(to_acpi_device(dev)->handle, in cmpc_accel_resume_v4()
366 accel->g_select); in cmpc_accel_resume_v4()
368 if (ACPI_FAILURE(cmpc_start_accel_v4(to_acpi_device(dev)->handle))) in cmpc_accel_resume_v4()
369 return -EIO; in cmpc_accel_resume_v4()
384 return -ENOMEM; in cmpc_accel_add_v4()
386 accel->inputdev_state = CMPC_ACCEL_DEV_STATE_CLOSED; in cmpc_accel_add_v4()
388 accel->sensitivity = CMPC_ACCEL_SENSITIVITY_DEFAULT; in cmpc_accel_add_v4()
389 cmpc_accel_set_sensitivity_v4(acpi->handle, accel->sensitivity); in cmpc_accel_add_v4()
391 error = device_create_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); in cmpc_accel_add_v4()
395 accel->g_select = CMPC_ACCEL_G_SELECT_DEFAULT; in cmpc_accel_add_v4()
396 cmpc_accel_set_g_select_v4(acpi->handle, accel->g_select); in cmpc_accel_add_v4()
398 error = device_create_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); in cmpc_accel_add_v4()
407 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_add_v4()
408 dev_set_drvdata(&inputdev->dev, accel); in cmpc_accel_add_v4()
413 device_remove_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); in cmpc_accel_add_v4()
415 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); in cmpc_accel_add_v4()
423 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr_v4); in cmpc_accel_remove_v4()
424 device_remove_file(&acpi->dev, &cmpc_accel_g_select_attr_v4); in cmpc_accel_remove_v4()
456 struct acpi_object_list input; in cmpc_start_accel() local
460 param[0].integer.value = 0x3; in cmpc_start_accel()
462 input.count = 2; in cmpc_start_accel()
463 input.pointer = param; in cmpc_start_accel()
464 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_start_accel()
471 struct acpi_object_list input; in cmpc_stop_accel() local
475 param[0].integer.value = 0x4; in cmpc_stop_accel()
477 input.count = 2; in cmpc_stop_accel()
478 input.pointer = param; in cmpc_stop_accel()
479 status = acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_stop_accel()
486 struct acpi_object_list input; in cmpc_accel_set_sensitivity() local
489 param[0].integer.value = 0x02; in cmpc_accel_set_sensitivity()
491 param[1].integer.value = val; in cmpc_accel_set_sensitivity()
492 input.count = 2; in cmpc_accel_set_sensitivity()
493 input.pointer = param; in cmpc_accel_set_sensitivity()
494 return acpi_evaluate_object(handle, "ACMD", &input, NULL); in cmpc_accel_set_sensitivity()
503 struct acpi_object_list input; in cmpc_get_accel() local
509 param[0].integer.value = 0x01; in cmpc_get_accel()
511 input.count = 2; in cmpc_get_accel()
512 input.pointer = param; in cmpc_get_accel()
513 status = acpi_evaluate_object(handle, "ACMD", &input, &output); in cmpc_get_accel()
517 locs = obj->buffer.pointer; in cmpc_get_accel()
532 status = cmpc_get_accel(dev->handle, &x, &y, &z); in cmpc_accel_handler()
534 struct input_dev *inputdev = dev_get_drvdata(&dev->dev); in cmpc_accel_handler()
553 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_show()
554 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_show()
556 return sprintf(buf, "%d\n", accel->sensitivity); in cmpc_accel_sensitivity_show()
570 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_sensitivity_store()
571 accel = dev_get_drvdata(&inputdev->dev); in cmpc_accel_sensitivity_store()
577 accel->sensitivity = sensitivity; in cmpc_accel_sensitivity_store()
578 cmpc_accel_set_sensitivity(acpi->handle, sensitivity); in cmpc_accel_sensitivity_store()
589 static int cmpc_accel_open(struct input_dev *input) in cmpc_accel_open() argument
593 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_open()
594 if (ACPI_SUCCESS(cmpc_start_accel(acpi->handle))) in cmpc_accel_open()
596 return -EIO; in cmpc_accel_open()
599 static void cmpc_accel_close(struct input_dev *input) in cmpc_accel_close() argument
603 acpi = to_acpi_device(input->dev.parent); in cmpc_accel_close()
604 cmpc_stop_accel(acpi->handle); in cmpc_accel_close()
609 set_bit(EV_ABS, inputdev->evbit); in cmpc_accel_idev_init()
613 inputdev->open = cmpc_accel_open; in cmpc_accel_idev_init()
614 inputdev->close = cmpc_accel_close; in cmpc_accel_idev_init()
625 return -ENOMEM; in cmpc_accel_add()
627 accel->sensitivity = CMPC_ACCEL_SENSITIVITY_DEFAULT; in cmpc_accel_add()
628 cmpc_accel_set_sensitivity(acpi->handle, accel->sensitivity); in cmpc_accel_add()
630 error = device_create_file(&acpi->dev, &cmpc_accel_sensitivity_attr); in cmpc_accel_add()
639 inputdev = dev_get_drvdata(&acpi->dev); in cmpc_accel_add()
640 dev_set_drvdata(&inputdev->dev, accel); in cmpc_accel_add()
645 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr); in cmpc_accel_add()
653 device_remove_file(&acpi->dev, &cmpc_accel_sensitivity_attr); in cmpc_accel_remove()
679 unsigned long long *value) in cmpc_get_tablet() argument
682 struct acpi_object_list input; in cmpc_get_tablet() local
687 param.integer.value = 0x01; in cmpc_get_tablet()
688 input.count = 1; in cmpc_get_tablet()
689 input.pointer = &param; in cmpc_get_tablet()
690 status = acpi_evaluate_integer(handle, "TCMD", &input, &output); in cmpc_get_tablet()
692 *value = output; in cmpc_get_tablet()
699 struct input_dev *inputdev = dev_get_drvdata(&dev->dev); in cmpc_tablet_handler()
702 if (ACPI_SUCCESS(cmpc_get_tablet(dev->handle, &val))) { in cmpc_tablet_handler()
714 set_bit(EV_SW, inputdev->evbit); in cmpc_tablet_idev_init()
715 set_bit(SW_TABLET_MODE, inputdev->swbit); in cmpc_tablet_idev_init()
717 acpi = to_acpi_device(inputdev->dev.parent); in cmpc_tablet_idev_init()
718 if (ACPI_SUCCESS(cmpc_get_tablet(acpi->handle, &val))) { in cmpc_tablet_idev_init()
741 if (ACPI_SUCCESS(cmpc_get_tablet(to_acpi_device(dev)->handle, &val))) { in cmpc_tablet_resume()
775 unsigned long long *value) in cmpc_get_brightness() argument
778 struct acpi_object_list input; in cmpc_get_brightness() local
783 param.integer.value = 0xC0; in cmpc_get_brightness()
784 input.count = 1; in cmpc_get_brightness()
785 input.pointer = &param; in cmpc_get_brightness()
786 status = acpi_evaluate_integer(handle, "GRDI", &input, &output); in cmpc_get_brightness()
788 *value = output; in cmpc_get_brightness()
793 unsigned long long value) in cmpc_set_brightness() argument
796 struct acpi_object_list input; in cmpc_set_brightness() local
801 param[0].integer.value = 0xC0; in cmpc_set_brightness()
803 param[1].integer.value = value; in cmpc_set_brightness()
804 input.count = 2; in cmpc_set_brightness()
805 input.pointer = param; in cmpc_set_brightness()
806 status = acpi_evaluate_integer(handle, "GWRI", &input, &output); in cmpc_set_brightness()
821 return -1; in cmpc_bl_get_brightness()
830 status = cmpc_set_brightness(handle, bd->props.brightness); in cmpc_bl_update_status()
834 return -1; in cmpc_bl_update_status()
847 unsigned long long *value) in cmpc_get_rfkill_wlan() argument
850 struct acpi_object_list input; in cmpc_get_rfkill_wlan() local
855 param.integer.value = 0xC1; in cmpc_get_rfkill_wlan()
856 input.count = 1; in cmpc_get_rfkill_wlan()
857 input.pointer = &param; in cmpc_get_rfkill_wlan()
858 status = acpi_evaluate_integer(handle, "GRDI", &input, &output); in cmpc_get_rfkill_wlan()
860 *value = output; in cmpc_get_rfkill_wlan()
865 unsigned long long value) in cmpc_set_rfkill_wlan() argument
868 struct acpi_object_list input; in cmpc_set_rfkill_wlan() local
873 param[0].integer.value = 0xC1; in cmpc_set_rfkill_wlan()
875 param[1].integer.value = value; in cmpc_set_rfkill_wlan()
876 input.count = 2; in cmpc_set_rfkill_wlan()
877 input.pointer = param; in cmpc_set_rfkill_wlan()
878 status = acpi_evaluate_integer(handle, "GWRI", &input, &output); in cmpc_set_rfkill_wlan()
907 return -ENODEV; in cmpc_rfkill_block()
914 return -ENODEV; in cmpc_rfkill_block()
941 return -ENOMEM; in cmpc_ipml_add()
946 ipml->bd = backlight_device_register("cmpc_bl", &acpi->dev, in cmpc_ipml_add()
947 acpi->handle, &cmpc_bl_ops, in cmpc_ipml_add()
949 if (IS_ERR(ipml->bd)) { in cmpc_ipml_add()
950 retval = PTR_ERR(ipml->bd); in cmpc_ipml_add()
954 ipml->rf = rfkill_alloc("cmpc_rfkill", &acpi->dev, RFKILL_TYPE_WLAN, in cmpc_ipml_add()
955 &cmpc_rfkill_ops, acpi->handle); in cmpc_ipml_add()
957 * If RFKILL is disabled, rfkill_alloc will return ERR_PTR(-ENODEV). in cmpc_ipml_add()
961 if (ipml->rf) { in cmpc_ipml_add()
962 retval = rfkill_register(ipml->rf); in cmpc_ipml_add()
964 rfkill_destroy(ipml->rf); in cmpc_ipml_add()
965 ipml->rf = NULL; in cmpc_ipml_add()
969 dev_set_drvdata(&acpi->dev, ipml); in cmpc_ipml_add()
981 ipml = dev_get_drvdata(&acpi->dev); in cmpc_ipml_remove()
983 backlight_device_unregister(ipml->bd); in cmpc_ipml_remove()
985 if (ipml->rf) { in cmpc_ipml_remove()
986 rfkill_unregister(ipml->rf); in cmpc_ipml_remove()
987 rfkill_destroy(ipml->rf); in cmpc_ipml_remove()
1036 inputdev = dev_get_drvdata(&dev->dev); in cmpc_keys_handler()
1045 set_bit(EV_KEY, inputdev->evbit); in cmpc_keys_idev_init()
1047 set_bit(cmpc_keys_codes[i], inputdev->keybit); in cmpc_keys_idev_init()