int acpi_lid_open(void) { if (!lid_device) return -ENODEV; return acpi_lid_evaluate_state(lid_device); }
static int acpi_lid_update_state(struct acpi_device *device) { int state; state = acpi_lid_evaluate_state(device); if (state < 0) return state; return acpi_lid_notify_state(device, state); }
static int acpi_button_state_seq_show(struct seq_file *seq, void *offset) { struct acpi_device *device = seq->private; int state; state = acpi_lid_evaluate_state(device); seq_printf(seq, "state: %s\n", state < 0 ? "unsupported" : (state ? "open" : "closed")); return 0; }
static int acpi_lid_input_open(struct input_dev *input) { struct acpi_device *device = input_get_drvdata(input); struct acpi_button *button = acpi_driver_data(device); button->last_state = !!acpi_lid_evaluate_state(device); button->last_time = ktime_get(); acpi_lid_initialize_state(device); return 0; }
static int acpi_button_resume(struct device *dev) { struct acpi_device *device = to_acpi_device(dev); struct acpi_button *button = acpi_driver_data(device); button->suspended = false; if (button->type == ACPI_BUTTON_TYPE_LID && button->input->users) { button->last_state = !!acpi_lid_evaluate_state(device); button->last_time = ktime_get(); acpi_lid_initialize_state(device); } return 0; }
static int acpi_lid_update_state(struct acpi_device *device, bool signal_wakeup) { int state; state = acpi_lid_evaluate_state(device); if (state < 0) return state; if (state && signal_wakeup) acpi_pm_wakeup_event(&device->dev); return acpi_lid_notify_state(device, state); }