Lines Matching refs:button
3 * button.c - ACPI Button Driver
9 #define pr_fmt(fmt) "ACPI: button: " fmt
22 #include <acpi/button.h>
24 #define ACPI_BUTTON_CLASS "button"
149 .name = "button",
195 struct acpi_button *button = acpi_driver_data(device);
207 button->last_state != !!state)
212 next_report = ktime_add(button->last_time,
214 if (button->last_state == !!state &&
256 input_report_switch(button->input,
258 input_sync(button->input);
266 input_report_switch(button->input, SW_LID, !state);
267 input_sync(button->input);
268 button->last_state = !!state;
269 button->last_time = ktime_get();
289 struct acpi_button *button = acpi_driver_data(device);
294 if (button->type != ACPI_BUTTON_TYPE_LID)
302 /* create /proc/acpi/button */
307 /* create /proc/acpi/button/lid */
314 /* create /proc/acpi/button/lid/LID/ */
321 /* create /proc/acpi/button/lid/LID/state */
348 struct acpi_button *button = acpi_driver_data(device);
350 if (button->type != ACPI_BUTTON_TYPE_LID)
393 struct acpi_button *button = acpi_driver_data(device);
407 button->lid_state_initialized = true;
413 struct acpi_button *button;
421 button = acpi_driver_data(device);
422 if (!button->lid_state_initialized)
431 struct acpi_button *button;
443 button = acpi_driver_data(device);
444 if (button->suspended)
447 input = button->input;
457 event, ++button->pushed);
475 struct acpi_button *button = acpi_driver_data(device);
477 button->suspended = true;
484 struct acpi_button *button = acpi_driver_data(device);
486 button->suspended = false;
487 if (button->type == ACPI_BUTTON_TYPE_LID) {
488 button->last_state = !!acpi_lid_evaluate_state(device);
489 button->last_time = ktime_get();
499 struct acpi_button *button = acpi_driver_data(device);
501 button->last_state = !!acpi_lid_evaluate_state(device);
502 button->last_time = ktime_get();
511 struct acpi_button *button;
522 button = kzalloc(sizeof(struct acpi_button), GFP_KERNEL);
523 if (!button)
526 device->driver_data = button;
528 button->input = input = input_allocate_device();
539 button->type = ACPI_BUTTON_TYPE_POWER;
546 button->type = ACPI_BUTTON_TYPE_SLEEP;
552 button->type = ACPI_BUTTON_TYPE_LID;
571 snprintf(button->phys, sizeof(button->phys), "%s/button/input0", hid);
574 input->phys = button->phys;
576 input->id.product = button->type;
579 switch (button->type) {
620 if (button->type == ACPI_BUTTON_TYPE_LID) {
637 kfree(button);
643 struct acpi_button *button = acpi_driver_data(device);
656 button->type == ACPI_BUTTON_TYPE_LID ?
664 input_unregister_device(button->input);
665 kfree(button);