Loading Documentation/ABI/testing/sysfs-firmware-acpi +8 −8 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ Description: error - an interrupt that can't be accounted for above. invalid: it's either a wakeup GPE or a GPE/Fixed Event that invalid: it's either a GPE or a Fixed Event that doesn't have an event handler. disable: the GPE/Fixed Event is valid but disabled. Loading Loading @@ -117,30 +117,30 @@ Description: and other user space applications so that the machine won't shutdown when pressing the power button. # cat ff_pwr_btn 0 0 enabled # press the power button for 3 times; # cat ff_pwr_btn 3 3 enabled # echo disable > ff_pwr_btn # cat ff_pwr_btn disable 3 disabled # press the power button for 3 times; # cat ff_pwr_btn disable 3 disabled # echo enable > ff_pwr_btn # cat ff_pwr_btn 4 4 enabled /* * this is because the status bit is set even if the enable bit is cleared, * and it triggers an ACPI fixed event when the enable bit is set again */ # press the power button for 3 times; # cat ff_pwr_btn 7 7 enabled # echo disable > ff_pwr_btn # press the power button for 3 times; # echo clear > ff_pwr_btn /* clear the status bit */ # echo disable > ff_pwr_btn # cat ff_pwr_btn 7 7 enabled drivers/acpi/events/evxfevnt.c +6 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,9 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status) if (value) *event_status |= ACPI_EVENT_FLAG_SET; if (acpi_gbl_fixed_event_handlers[event].handler) *event_status |= ACPI_EVENT_FLAG_HANDLE; return_ACPI_STATUS(status); } Loading Loading @@ -571,6 +574,9 @@ acpi_get_gpe_status(acpi_handle gpe_device, status = acpi_hw_get_gpe_status(gpe_event_info, event_status); if (gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) *event_status |= ACPI_EVENT_FLAG_HANDLE; unlock_and_exit: if (flags & ACPI_NOT_ISR) { (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS); Loading drivers/acpi/system.c +7 −12 Original line number Diff line number Diff line Loading @@ -167,7 +167,6 @@ static int acpi_system_sysfs_init(void) #define COUNT_ERROR 2 /* other */ #define NUM_COUNTERS_EXTRA 3 #define ACPI_EVENT_VALID 0x01 struct event_counter { u32 count; u32 flags; Loading Loading @@ -312,12 +311,6 @@ static int get_status(u32 index, acpi_event_status *status, acpi_handle *handle) } else if (index < (num_gpes + ACPI_NUM_FIXED_EVENTS)) result = acpi_get_event_status(index - num_gpes, status); /* * sleep/power button GPE/Fixed Event is enabled after acpi_system_init, * check the status at runtime and mark it as valid once it's enabled */ if (!result && (*status & ACPI_EVENT_FLAG_ENABLED)) all_counters[index].flags |= ACPI_EVENT_VALID; end: return result; } Loading Loading @@ -346,12 +339,14 @@ static ssize_t counter_show(struct kobject *kobj, if (result) goto end; if (!(all_counters[index].flags & ACPI_EVENT_VALID)) if (!(status & ACPI_EVENT_FLAG_HANDLE)) size += sprintf(buf + size, " invalid"); else if (status & ACPI_EVENT_FLAG_ENABLED) size += sprintf(buf + size, " enable"); size += sprintf(buf + size, " enabled"); else if (status & ACPI_EVENT_FLAG_WAKE_ENABLED) size += sprintf(buf + size, " wake_enabled"); else size += sprintf(buf + size, " disable"); size += sprintf(buf + size, " disabled"); end: size += sprintf(buf + size, "\n"); Loading Loading @@ -385,7 +380,7 @@ static ssize_t counter_set(struct kobject *kobj, if (result) goto end; if (!(all_counters[index].flags & ACPI_EVENT_VALID)) { if (!(status & ACPI_EVENT_FLAG_HANDLE)) { printk(KERN_WARNING PREFIX "Can not change Invalid GPE/Fixed Event status\n"); return -EINVAL; Loading include/acpi/actypes.h +1 −0 Original line number Diff line number Diff line Loading @@ -525,6 +525,7 @@ typedef u32 acpi_event_status; #define ACPI_EVENT_FLAG_ENABLED (acpi_event_status) 0x01 #define ACPI_EVENT_FLAG_WAKE_ENABLED (acpi_event_status) 0x02 #define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04 #define ACPI_EVENT_FLAG_HANDLE (acpi_event_status) 0x08 /* * General Purpose Events (GPE) Loading Loading
Documentation/ABI/testing/sysfs-firmware-acpi +8 −8 Original line number Diff line number Diff line Loading @@ -89,7 +89,7 @@ Description: error - an interrupt that can't be accounted for above. invalid: it's either a wakeup GPE or a GPE/Fixed Event that invalid: it's either a GPE or a Fixed Event that doesn't have an event handler. disable: the GPE/Fixed Event is valid but disabled. Loading Loading @@ -117,30 +117,30 @@ Description: and other user space applications so that the machine won't shutdown when pressing the power button. # cat ff_pwr_btn 0 0 enabled # press the power button for 3 times; # cat ff_pwr_btn 3 3 enabled # echo disable > ff_pwr_btn # cat ff_pwr_btn disable 3 disabled # press the power button for 3 times; # cat ff_pwr_btn disable 3 disabled # echo enable > ff_pwr_btn # cat ff_pwr_btn 4 4 enabled /* * this is because the status bit is set even if the enable bit is cleared, * and it triggers an ACPI fixed event when the enable bit is set again */ # press the power button for 3 times; # cat ff_pwr_btn 7 7 enabled # echo disable > ff_pwr_btn # press the power button for 3 times; # echo clear > ff_pwr_btn /* clear the status bit */ # echo disable > ff_pwr_btn # cat ff_pwr_btn 7 7 enabled
drivers/acpi/events/evxfevnt.c +6 −0 Original line number Diff line number Diff line Loading @@ -521,6 +521,9 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status) if (value) *event_status |= ACPI_EVENT_FLAG_SET; if (acpi_gbl_fixed_event_handlers[event].handler) *event_status |= ACPI_EVENT_FLAG_HANDLE; return_ACPI_STATUS(status); } Loading Loading @@ -571,6 +574,9 @@ acpi_get_gpe_status(acpi_handle gpe_device, status = acpi_hw_get_gpe_status(gpe_event_info, event_status); if (gpe_event_info->flags & ACPI_GPE_DISPATCH_MASK) *event_status |= ACPI_EVENT_FLAG_HANDLE; unlock_and_exit: if (flags & ACPI_NOT_ISR) { (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS); Loading
drivers/acpi/system.c +7 −12 Original line number Diff line number Diff line Loading @@ -167,7 +167,6 @@ static int acpi_system_sysfs_init(void) #define COUNT_ERROR 2 /* other */ #define NUM_COUNTERS_EXTRA 3 #define ACPI_EVENT_VALID 0x01 struct event_counter { u32 count; u32 flags; Loading Loading @@ -312,12 +311,6 @@ static int get_status(u32 index, acpi_event_status *status, acpi_handle *handle) } else if (index < (num_gpes + ACPI_NUM_FIXED_EVENTS)) result = acpi_get_event_status(index - num_gpes, status); /* * sleep/power button GPE/Fixed Event is enabled after acpi_system_init, * check the status at runtime and mark it as valid once it's enabled */ if (!result && (*status & ACPI_EVENT_FLAG_ENABLED)) all_counters[index].flags |= ACPI_EVENT_VALID; end: return result; } Loading Loading @@ -346,12 +339,14 @@ static ssize_t counter_show(struct kobject *kobj, if (result) goto end; if (!(all_counters[index].flags & ACPI_EVENT_VALID)) if (!(status & ACPI_EVENT_FLAG_HANDLE)) size += sprintf(buf + size, " invalid"); else if (status & ACPI_EVENT_FLAG_ENABLED) size += sprintf(buf + size, " enable"); size += sprintf(buf + size, " enabled"); else if (status & ACPI_EVENT_FLAG_WAKE_ENABLED) size += sprintf(buf + size, " wake_enabled"); else size += sprintf(buf + size, " disable"); size += sprintf(buf + size, " disabled"); end: size += sprintf(buf + size, "\n"); Loading Loading @@ -385,7 +380,7 @@ static ssize_t counter_set(struct kobject *kobj, if (result) goto end; if (!(all_counters[index].flags & ACPI_EVENT_VALID)) { if (!(status & ACPI_EVENT_FLAG_HANDLE)) { printk(KERN_WARNING PREFIX "Can not change Invalid GPE/Fixed Event status\n"); return -EINVAL; Loading
include/acpi/actypes.h +1 −0 Original line number Diff line number Diff line Loading @@ -525,6 +525,7 @@ typedef u32 acpi_event_status; #define ACPI_EVENT_FLAG_ENABLED (acpi_event_status) 0x01 #define ACPI_EVENT_FLAG_WAKE_ENABLED (acpi_event_status) 0x02 #define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04 #define ACPI_EVENT_FLAG_HANDLE (acpi_event_status) 0x08 /* * General Purpose Events (GPE) Loading