mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-26 21:10:52 +07:00
ACPI: Remove the old /proc/acpi/event interface
It is quite some time that this one has been deprecated. Get rid of it. Should some really important user be overseen, it may be reverted and the userspace program worked on first, but it is time to do something to get rid of this old stuff... Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: Matthew Garrett <matthew.garrett@nebula.com> Acked-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
ad81f0545e
commit
1696d9dc57
@ -8,8 +8,8 @@ http://acpi4asus.sf.net/
|
|||||||
|
|
||||||
This driver provides support for extra features of ACPI-compatible ASUS laptops.
|
This driver provides support for extra features of ACPI-compatible ASUS laptops.
|
||||||
It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or
|
It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or
|
||||||
VICTOR XP7210 for example). It makes all the extra buttons generate standard
|
VICTOR XP7210 for example). It makes all the extra buttons generate input
|
||||||
ACPI events that go through /proc/acpi/events and input events (like keyboards).
|
events (like keyboards).
|
||||||
On some models adds support for changing the display brightness and output,
|
On some models adds support for changing the display brightness and output,
|
||||||
switching the LCD backlight on and off, and most importantly, allows you to
|
switching the LCD backlight on and off, and most importantly, allows you to
|
||||||
blink those fancy LEDs intended for reporting mail and wireless status.
|
blink those fancy LEDs intended for reporting mail and wireless status.
|
||||||
@ -55,8 +55,8 @@ Usage
|
|||||||
DSDT) to me.
|
DSDT) to me.
|
||||||
|
|
||||||
That's all, now, all the events generated by the hotkeys of your laptop
|
That's all, now, all the events generated by the hotkeys of your laptop
|
||||||
should be reported in your /proc/acpi/event entry. You can check with
|
should be reported via netlink events. You can check with
|
||||||
"acpi_listen".
|
"acpi_genl monitor" (part of the acpica project).
|
||||||
|
|
||||||
Hotkeys are also reported as input keys (like keyboards) you can check
|
Hotkeys are also reported as input keys (like keyboards) you can check
|
||||||
which key are supported using "xev" under X11.
|
which key are supported using "xev" under X11.
|
||||||
|
@ -12,10 +12,10 @@ Fn keys (hotkeys):
|
|||||||
------------------
|
------------------
|
||||||
Some models report hotkeys through the SNC or SPIC devices, such events are
|
Some models report hotkeys through the SNC or SPIC devices, such events are
|
||||||
reported both through the ACPI subsystem as acpi events and through the INPUT
|
reported both through the ACPI subsystem as acpi events and through the INPUT
|
||||||
subsystem. See the logs of acpid or /proc/acpi/event and
|
subsystem. See the logs of /proc/bus/input/devices to find out what those
|
||||||
/proc/bus/input/devices to find out what those events are and which input
|
events are and which input devices are created by the driver.
|
||||||
devices are created by the driver. Additionally, loading the driver with the
|
Additionally, loading the driver with the debug option will report all events
|
||||||
debug option will report all events in the kernel log.
|
in the kernel log.
|
||||||
|
|
||||||
The "scancodes" passed to the input system (that can be remapped with udev)
|
The "scancodes" passed to the input system (that can be remapped with udev)
|
||||||
are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c
|
are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c
|
||||||
|
@ -91,24 +91,6 @@ config ACPI_EC_DEBUGFS
|
|||||||
Thus this option is a debug option that helps to write ACPI drivers
|
Thus this option is a debug option that helps to write ACPI drivers
|
||||||
and can be used to identify ACPI code or EC firmware bugs.
|
and can be used to identify ACPI code or EC firmware bugs.
|
||||||
|
|
||||||
config ACPI_PROC_EVENT
|
|
||||||
bool "Deprecated /proc/acpi/event support"
|
|
||||||
depends on PROC_FS
|
|
||||||
default y
|
|
||||||
help
|
|
||||||
A user-space daemon, acpid, typically reads /proc/acpi/event
|
|
||||||
and handles all ACPI-generated events.
|
|
||||||
|
|
||||||
These events are now delivered to user-space either
|
|
||||||
via the input layer or as netlink events.
|
|
||||||
|
|
||||||
This build option enables the old code for legacy
|
|
||||||
user-space implementation. After some time, this will
|
|
||||||
be moved under CONFIG_ACPI_PROCFS, and then deleted.
|
|
||||||
|
|
||||||
Say Y here to retain the old behaviour. Say N if your
|
|
||||||
user-space is newer than kernel 2.6.23 (September 2007).
|
|
||||||
|
|
||||||
config ACPI_AC
|
config ACPI_AC
|
||||||
tristate "AC Adapter"
|
tristate "AC Adapter"
|
||||||
depends on X86
|
depends on X86
|
||||||
|
@ -267,7 +267,6 @@ static void acpi_ac_notify(struct acpi_device *device, u32 event)
|
|||||||
msleep(ac_sleep_before_get_state_ms);
|
msleep(ac_sleep_before_get_state_ms);
|
||||||
|
|
||||||
acpi_ac_get_state(ac);
|
acpi_ac_get_state(ac);
|
||||||
acpi_bus_generate_proc_event(device, event, (u32) ac->state);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event,
|
dev_name(&device->dev), event,
|
||||||
(u32) ac->state);
|
(u32) ac->state);
|
||||||
|
@ -452,7 +452,6 @@ static void acpi_pad_notify(acpi_handle handle, u32 event,
|
|||||||
switch (event) {
|
switch (event) {
|
||||||
case ACPI_PROCESSOR_AGGREGATOR_NOTIFY:
|
case ACPI_PROCESSOR_AGGREGATOR_NOTIFY:
|
||||||
acpi_pad_handle_notify(handle);
|
acpi_pad_handle_notify(handle);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event, 0);
|
dev_name(&device->dev), event, 0);
|
||||||
break;
|
break;
|
||||||
|
@ -1034,8 +1034,6 @@ static void acpi_battery_notify(struct acpi_device *device, u32 event)
|
|||||||
if (event == ACPI_BATTERY_NOTIFY_INFO)
|
if (event == ACPI_BATTERY_NOTIFY_INFO)
|
||||||
acpi_battery_refresh(battery);
|
acpi_battery_refresh(battery);
|
||||||
acpi_battery_update(battery);
|
acpi_battery_update(battery);
|
||||||
acpi_bus_generate_proc_event(device, event,
|
|
||||||
acpi_battery_present(battery));
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event,
|
dev_name(&device->dev), event,
|
||||||
acpi_battery_present(battery));
|
acpi_battery_present(battery));
|
||||||
|
@ -345,104 +345,6 @@ static void acpi_bus_osc_support(void)
|
|||||||
/* do we need to check other returned cap? Sounds no */
|
/* do we need to check other returned cap? Sounds no */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------
|
|
||||||
Event Management
|
|
||||||
-------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_PROC_EVENT
|
|
||||||
static DEFINE_SPINLOCK(acpi_bus_event_lock);
|
|
||||||
|
|
||||||
LIST_HEAD(acpi_bus_event_list);
|
|
||||||
DECLARE_WAIT_QUEUE_HEAD(acpi_bus_event_queue);
|
|
||||||
|
|
||||||
extern int event_is_open;
|
|
||||||
|
|
||||||
int acpi_bus_generate_proc_event4(const char *device_class, const char *bus_id, u8 type, int data)
|
|
||||||
{
|
|
||||||
struct acpi_bus_event *event;
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
/* drop event on the floor if no one's listening */
|
|
||||||
if (!event_is_open)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
event = kzalloc(sizeof(struct acpi_bus_event), GFP_ATOMIC);
|
|
||||||
if (!event)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
strcpy(event->device_class, device_class);
|
|
||||||
strcpy(event->bus_id, bus_id);
|
|
||||||
event->type = type;
|
|
||||||
event->data = data;
|
|
||||||
|
|
||||||
spin_lock_irqsave(&acpi_bus_event_lock, flags);
|
|
||||||
list_add_tail(&event->node, &acpi_bus_event_list);
|
|
||||||
spin_unlock_irqrestore(&acpi_bus_event_lock, flags);
|
|
||||||
|
|
||||||
wake_up_interruptible(&acpi_bus_event_queue);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL_GPL(acpi_bus_generate_proc_event4);
|
|
||||||
|
|
||||||
int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data)
|
|
||||||
{
|
|
||||||
if (!device)
|
|
||||||
return -EINVAL;
|
|
||||||
return acpi_bus_generate_proc_event4(device->pnp.device_class,
|
|
||||||
device->pnp.bus_id, type, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(acpi_bus_generate_proc_event);
|
|
||||||
|
|
||||||
int acpi_bus_receive_event(struct acpi_bus_event *event)
|
|
||||||
{
|
|
||||||
unsigned long flags;
|
|
||||||
struct acpi_bus_event *entry = NULL;
|
|
||||||
|
|
||||||
DECLARE_WAITQUEUE(wait, current);
|
|
||||||
|
|
||||||
|
|
||||||
if (!event)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if (list_empty(&acpi_bus_event_list)) {
|
|
||||||
|
|
||||||
set_current_state(TASK_INTERRUPTIBLE);
|
|
||||||
add_wait_queue(&acpi_bus_event_queue, &wait);
|
|
||||||
|
|
||||||
if (list_empty(&acpi_bus_event_list))
|
|
||||||
schedule();
|
|
||||||
|
|
||||||
remove_wait_queue(&acpi_bus_event_queue, &wait);
|
|
||||||
set_current_state(TASK_RUNNING);
|
|
||||||
|
|
||||||
if (signal_pending(current))
|
|
||||||
return -ERESTARTSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
spin_lock_irqsave(&acpi_bus_event_lock, flags);
|
|
||||||
if (!list_empty(&acpi_bus_event_list)) {
|
|
||||||
entry = list_entry(acpi_bus_event_list.next,
|
|
||||||
struct acpi_bus_event, node);
|
|
||||||
list_del(&entry->node);
|
|
||||||
}
|
|
||||||
spin_unlock_irqrestore(&acpi_bus_event_lock, flags);
|
|
||||||
|
|
||||||
if (!entry)
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
memcpy(event, entry, sizeof(struct acpi_bus_event));
|
|
||||||
|
|
||||||
kfree(entry);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_ACPI_PROC_EVENT */
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------
|
||||||
Notification Handling
|
Notification Handling
|
||||||
-------------------------------------------------------------------------- */
|
-------------------------------------------------------------------------- */
|
||||||
|
@ -303,8 +303,6 @@ static void acpi_button_notify(struct acpi_device *device, u32 event)
|
|||||||
|
|
||||||
pm_wakeup_event(&device->dev, 0);
|
pm_wakeup_event(&device->dev, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
acpi_bus_generate_proc_event(device, event, ++button->pushed);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||||
|
@ -21,100 +21,6 @@
|
|||||||
#define _COMPONENT ACPI_SYSTEM_COMPONENT
|
#define _COMPONENT ACPI_SYSTEM_COMPONENT
|
||||||
ACPI_MODULE_NAME("event");
|
ACPI_MODULE_NAME("event");
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_PROC_EVENT
|
|
||||||
/* Global vars for handling event proc entry */
|
|
||||||
static DEFINE_SPINLOCK(acpi_system_event_lock);
|
|
||||||
int event_is_open = 0;
|
|
||||||
extern struct list_head acpi_bus_event_list;
|
|
||||||
extern wait_queue_head_t acpi_bus_event_queue;
|
|
||||||
|
|
||||||
static int acpi_system_open_event(struct inode *inode, struct file *file)
|
|
||||||
{
|
|
||||||
spin_lock_irq(&acpi_system_event_lock);
|
|
||||||
|
|
||||||
if (event_is_open)
|
|
||||||
goto out_busy;
|
|
||||||
|
|
||||||
event_is_open = 1;
|
|
||||||
|
|
||||||
spin_unlock_irq(&acpi_system_event_lock);
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
out_busy:
|
|
||||||
spin_unlock_irq(&acpi_system_event_lock);
|
|
||||||
return -EBUSY;
|
|
||||||
}
|
|
||||||
|
|
||||||
static ssize_t
|
|
||||||
acpi_system_read_event(struct file *file, char __user * buffer, size_t count,
|
|
||||||
loff_t * ppos)
|
|
||||||
{
|
|
||||||
int result = 0;
|
|
||||||
struct acpi_bus_event event;
|
|
||||||
static char str[ACPI_MAX_STRING];
|
|
||||||
static int chars_remaining = 0;
|
|
||||||
static char *ptr;
|
|
||||||
|
|
||||||
if (!chars_remaining) {
|
|
||||||
memset(&event, 0, sizeof(struct acpi_bus_event));
|
|
||||||
|
|
||||||
if ((file->f_flags & O_NONBLOCK)
|
|
||||||
&& (list_empty(&acpi_bus_event_list)))
|
|
||||||
return -EAGAIN;
|
|
||||||
|
|
||||||
result = acpi_bus_receive_event(&event);
|
|
||||||
if (result)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
chars_remaining = sprintf(str, "%s %s %08x %08x\n",
|
|
||||||
event.device_class ? event.
|
|
||||||
device_class : "<unknown>",
|
|
||||||
event.bus_id ? event.
|
|
||||||
bus_id : "<unknown>", event.type,
|
|
||||||
event.data);
|
|
||||||
ptr = str;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chars_remaining < count) {
|
|
||||||
count = chars_remaining;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (copy_to_user(buffer, ptr, count))
|
|
||||||
return -EFAULT;
|
|
||||||
|
|
||||||
*ppos += count;
|
|
||||||
chars_remaining -= count;
|
|
||||||
ptr += count;
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int acpi_system_close_event(struct inode *inode, struct file *file)
|
|
||||||
{
|
|
||||||
spin_lock_irq(&acpi_system_event_lock);
|
|
||||||
event_is_open = 0;
|
|
||||||
spin_unlock_irq(&acpi_system_event_lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static unsigned int acpi_system_poll_event(struct file *file, poll_table * wait)
|
|
||||||
{
|
|
||||||
poll_wait(file, &acpi_bus_event_queue, wait);
|
|
||||||
if (!list_empty(&acpi_bus_event_list))
|
|
||||||
return POLLIN | POLLRDNORM;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const struct file_operations acpi_system_event_ops = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
.open = acpi_system_open_event,
|
|
||||||
.read = acpi_system_read_event,
|
|
||||||
.release = acpi_system_close_event,
|
|
||||||
.poll = acpi_system_poll_event,
|
|
||||||
.llseek = default_llseek,
|
|
||||||
};
|
|
||||||
#endif /* CONFIG_ACPI_PROC_EVENT */
|
|
||||||
|
|
||||||
/* ACPI notifier chain */
|
/* ACPI notifier chain */
|
||||||
static BLOCKING_NOTIFIER_HEAD(acpi_chain_head);
|
static BLOCKING_NOTIFIER_HEAD(acpi_chain_head);
|
||||||
|
|
||||||
@ -280,9 +186,6 @@ static int acpi_event_genetlink_init(void)
|
|||||||
|
|
||||||
static int __init acpi_event_init(void)
|
static int __init acpi_event_init(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_ACPI_PROC_EVENT
|
|
||||||
struct proc_dir_entry *entry;
|
|
||||||
#endif
|
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
if (acpi_disabled)
|
if (acpi_disabled)
|
||||||
@ -293,15 +196,6 @@ static int __init acpi_event_init(void)
|
|||||||
if (error)
|
if (error)
|
||||||
printk(KERN_WARNING PREFIX
|
printk(KERN_WARNING PREFIX
|
||||||
"Failed to create genetlink family for ACPI event\n");
|
"Failed to create genetlink family for ACPI event\n");
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_PROC_EVENT
|
|
||||||
/* 'event' [R] */
|
|
||||||
entry = proc_create("event", S_IRUSR, acpi_root_dir,
|
|
||||||
&acpi_system_event_ops);
|
|
||||||
if (!entry)
|
|
||||||
return -ENODEV;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,21 +91,17 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
|
|||||||
acpi_processor_ppc_has_changed(pr, 1);
|
acpi_processor_ppc_has_changed(pr, 1);
|
||||||
if (saved == pr->performance_platform_limit)
|
if (saved == pr->performance_platform_limit)
|
||||||
break;
|
break;
|
||||||
acpi_bus_generate_proc_event(device, event,
|
|
||||||
pr->performance_platform_limit);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event,
|
dev_name(&device->dev), event,
|
||||||
pr->performance_platform_limit);
|
pr->performance_platform_limit);
|
||||||
break;
|
break;
|
||||||
case ACPI_PROCESSOR_NOTIFY_POWER:
|
case ACPI_PROCESSOR_NOTIFY_POWER:
|
||||||
acpi_processor_cst_has_changed(pr);
|
acpi_processor_cst_has_changed(pr);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event, 0);
|
dev_name(&device->dev), event, 0);
|
||||||
break;
|
break;
|
||||||
case ACPI_PROCESSOR_NOTIFY_THROTTLING:
|
case ACPI_PROCESSOR_NOTIFY_THROTTLING:
|
||||||
acpi_processor_tstate_has_changed(pr);
|
acpi_processor_tstate_has_changed(pr);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event, 0);
|
dev_name(&device->dev), event, 0);
|
||||||
break;
|
break;
|
||||||
|
@ -873,14 +873,9 @@ static void acpi_sbs_callback(void *context)
|
|||||||
u8 saved_charger_state = sbs->charger_present;
|
u8 saved_charger_state = sbs->charger_present;
|
||||||
u8 saved_battery_state;
|
u8 saved_battery_state;
|
||||||
acpi_ac_get_present(sbs);
|
acpi_ac_get_present(sbs);
|
||||||
if (sbs->charger_present != saved_charger_state) {
|
if (sbs->charger_present != saved_charger_state)
|
||||||
#ifdef CONFIG_ACPI_PROC_EVENT
|
|
||||||
acpi_bus_generate_proc_event4(ACPI_AC_CLASS, ACPI_AC_DIR_NAME,
|
|
||||||
ACPI_SBS_NOTIFY_STATUS,
|
|
||||||
sbs->charger_present);
|
|
||||||
#endif
|
|
||||||
kobject_uevent(&sbs->charger.dev->kobj, KOBJ_CHANGE);
|
kobject_uevent(&sbs->charger.dev->kobj, KOBJ_CHANGE);
|
||||||
}
|
|
||||||
if (sbs->manager_present) {
|
if (sbs->manager_present) {
|
||||||
for (id = 0; id < MAX_SBS_BAT; ++id) {
|
for (id = 0; id < MAX_SBS_BAT; ++id) {
|
||||||
if (!(sbs->batteries_supported & (1 << id)))
|
if (!(sbs->batteries_supported & (1 << id)))
|
||||||
@ -890,12 +885,6 @@ static void acpi_sbs_callback(void *context)
|
|||||||
acpi_battery_read(bat);
|
acpi_battery_read(bat);
|
||||||
if (saved_battery_state == bat->present)
|
if (saved_battery_state == bat->present)
|
||||||
continue;
|
continue;
|
||||||
#ifdef CONFIG_ACPI_PROC_EVENT
|
|
||||||
acpi_bus_generate_proc_event4(ACPI_BATTERY_CLASS,
|
|
||||||
bat->name,
|
|
||||||
ACPI_SBS_NOTIFY_STATUS,
|
|
||||||
bat->present);
|
|
||||||
#endif
|
|
||||||
kobject_uevent(&bat->bat.dev->kobj, KOBJ_CHANGE);
|
kobject_uevent(&bat->bat.dev->kobj, KOBJ_CHANGE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -769,7 +769,6 @@ static int thermal_notify(struct thermal_zone_device *thermal, int trip,
|
|||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
acpi_bus_generate_proc_event(tz->device, type, 1);
|
|
||||||
acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
|
acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
|
||||||
dev_name(&tz->device->dev), type, 1);
|
dev_name(&tz->device->dev), type, 1);
|
||||||
|
|
||||||
@ -980,14 +979,12 @@ static void acpi_thermal_notify(struct acpi_device *device, u32 event)
|
|||||||
case ACPI_THERMAL_NOTIFY_THRESHOLDS:
|
case ACPI_THERMAL_NOTIFY_THRESHOLDS:
|
||||||
acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_THRESHOLDS);
|
acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_THRESHOLDS);
|
||||||
acpi_thermal_check(tz);
|
acpi_thermal_check(tz);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event, 0);
|
dev_name(&device->dev), event, 0);
|
||||||
break;
|
break;
|
||||||
case ACPI_THERMAL_NOTIFY_DEVICES:
|
case ACPI_THERMAL_NOTIFY_DEVICES:
|
||||||
acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES);
|
acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES);
|
||||||
acpi_thermal_check(tz);
|
acpi_thermal_check(tz);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event, 0);
|
dev_name(&device->dev), event, 0);
|
||||||
break;
|
break;
|
||||||
|
@ -1556,7 +1556,6 @@ static void acpi_video_bus_notify(struct acpi_device *device, u32 event)
|
|||||||
switch (event) {
|
switch (event) {
|
||||||
case ACPI_VIDEO_NOTIFY_SWITCH: /* User requested a switch,
|
case ACPI_VIDEO_NOTIFY_SWITCH: /* User requested a switch,
|
||||||
* most likely via hotkey. */
|
* most likely via hotkey. */
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_SWITCHVIDEOMODE;
|
keycode = KEY_SWITCHVIDEOMODE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1564,20 +1563,16 @@ static void acpi_video_bus_notify(struct acpi_device *device, u32 event)
|
|||||||
* connector. */
|
* connector. */
|
||||||
acpi_video_device_enumerate(video);
|
acpi_video_device_enumerate(video);
|
||||||
acpi_video_device_rebind(video);
|
acpi_video_device_rebind(video);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_SWITCHVIDEOMODE;
|
keycode = KEY_SWITCHVIDEOMODE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ACPI_VIDEO_NOTIFY_CYCLE: /* Cycle Display output hotkey pressed. */
|
case ACPI_VIDEO_NOTIFY_CYCLE: /* Cycle Display output hotkey pressed. */
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_SWITCHVIDEOMODE;
|
keycode = KEY_SWITCHVIDEOMODE;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: /* Next Display output hotkey pressed. */
|
case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: /* Next Display output hotkey pressed. */
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_VIDEO_NEXT;
|
keycode = KEY_VIDEO_NEXT;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: /* previous Display output hotkey pressed. */
|
case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: /* previous Display output hotkey pressed. */
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_VIDEO_PREV;
|
keycode = KEY_VIDEO_PREV;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1620,31 +1615,26 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
|
|||||||
case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */
|
case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */
|
||||||
if (brightness_switch_enabled)
|
if (brightness_switch_enabled)
|
||||||
acpi_video_switch_brightness(video_device, event);
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_BRIGHTNESS_CYCLE;
|
keycode = KEY_BRIGHTNESS_CYCLE;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */
|
case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */
|
||||||
if (brightness_switch_enabled)
|
if (brightness_switch_enabled)
|
||||||
acpi_video_switch_brightness(video_device, event);
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_BRIGHTNESSUP;
|
keycode = KEY_BRIGHTNESSUP;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */
|
case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */
|
||||||
if (brightness_switch_enabled)
|
if (brightness_switch_enabled)
|
||||||
acpi_video_switch_brightness(video_device, event);
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_BRIGHTNESSDOWN;
|
keycode = KEY_BRIGHTNESSDOWN;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightness */
|
case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightness */
|
||||||
if (brightness_switch_enabled)
|
if (brightness_switch_enabled)
|
||||||
acpi_video_switch_brightness(video_device, event);
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_BRIGHTNESS_ZERO;
|
keycode = KEY_BRIGHTNESS_ZERO;
|
||||||
break;
|
break;
|
||||||
case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */
|
case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */
|
||||||
if (brightness_switch_enabled)
|
if (brightness_switch_enabled)
|
||||||
acpi_video_switch_brightness(video_device, event);
|
acpi_video_switch_brightness(video_device, event);
|
||||||
acpi_bus_generate_proc_event(device, event, 0);
|
|
||||||
keycode = KEY_DISPLAY_OFF;
|
keycode = KEY_DISPLAY_OFF;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -876,11 +876,6 @@ static irqreturn_t sonypi_irq(int irq, void *dev_id)
|
|||||||
if (useinput)
|
if (useinput)
|
||||||
sonypi_report_input_event(event);
|
sonypi_report_input_event(event);
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI
|
|
||||||
if (sonypi_acpi_device)
|
|
||||||
acpi_bus_generate_proc_event(sonypi_acpi_device, 1, event);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
kfifo_in_locked(&sonypi_device.fifo, (unsigned char *)&event,
|
kfifo_in_locked(&sonypi_device.fifo, (unsigned char *)&event,
|
||||||
sizeof(event), &sonypi_device.fifo_lock);
|
sizeof(event), &sonypi_device.fifo_lock);
|
||||||
kill_fasync(&sonypi_device.fifo_async, SIGIO, POLL_IN);
|
kill_fasync(&sonypi_device.fifo_async, SIGIO, POLL_IN);
|
||||||
|
@ -270,7 +270,6 @@ static void ibm_handle_events(acpi_handle handle, u32 event, void *context)
|
|||||||
|
|
||||||
if (subevent == 0x80) {
|
if (subevent == 0x80) {
|
||||||
dbg("%s: generationg bus event\n", __func__);
|
dbg("%s: generationg bus event\n", __func__);
|
||||||
acpi_bus_generate_proc_event(note->device, note->event, detail);
|
|
||||||
acpi_bus_generate_netlink_event(note->device->pnp.device_class,
|
acpi_bus_generate_netlink_event(note->device->pnp.device_class,
|
||||||
dev_name(¬e->device->dev),
|
dev_name(¬e->device->dev),
|
||||||
note->event, detail);
|
note->event, detail);
|
||||||
|
@ -1543,7 +1543,6 @@ static void asus_acpi_notify(struct acpi_device *device, u32 event)
|
|||||||
|
|
||||||
/* TODO Find a better way to handle events count. */
|
/* TODO Find a better way to handle events count. */
|
||||||
count = asus->event_count[event % 128]++;
|
count = asus->event_count[event % 128]++;
|
||||||
acpi_bus_generate_proc_event(asus->device, event, count);
|
|
||||||
acpi_bus_generate_netlink_event(asus->device->pnp.device_class,
|
acpi_bus_generate_netlink_event(asus->device->pnp.device_class,
|
||||||
dev_name(&asus->device->dev), event,
|
dev_name(&asus->device->dev), event,
|
||||||
count);
|
count);
|
||||||
|
@ -1269,7 +1269,6 @@ static void eeepc_acpi_notify(struct acpi_device *device, u32 event)
|
|||||||
if (event > ACPI_MAX_SYS_NOTIFY)
|
if (event > ACPI_MAX_SYS_NOTIFY)
|
||||||
return;
|
return;
|
||||||
count = eeepc->event_count[event % 128]++;
|
count = eeepc->event_count[event % 128]++;
|
||||||
acpi_bus_generate_proc_event(device, event, count);
|
|
||||||
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
acpi_bus_generate_netlink_event(device->pnp.device_class,
|
||||||
dev_name(&device->dev), event,
|
dev_name(&device->dev), event,
|
||||||
count);
|
count);
|
||||||
|
@ -773,8 +773,6 @@ static void acpi_fujitsu_notify(struct acpi_device *device, u32 event)
|
|||||||
else
|
else
|
||||||
set_lcd_level(newb);
|
set_lcd_level(newb);
|
||||||
}
|
}
|
||||||
acpi_bus_generate_proc_event(fujitsu->dev,
|
|
||||||
ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS, 0);
|
|
||||||
keycode = KEY_BRIGHTNESSUP;
|
keycode = KEY_BRIGHTNESSUP;
|
||||||
} else if (oldb > newb) {
|
} else if (oldb > newb) {
|
||||||
if (disable_brightness_adjust != 1) {
|
if (disable_brightness_adjust != 1) {
|
||||||
@ -783,8 +781,6 @@ static void acpi_fujitsu_notify(struct acpi_device *device, u32 event)
|
|||||||
else
|
else
|
||||||
set_lcd_level(newb);
|
set_lcd_level(newb);
|
||||||
}
|
}
|
||||||
acpi_bus_generate_proc_event(fujitsu->dev,
|
|
||||||
ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS, 0);
|
|
||||||
keycode = KEY_BRIGHTNESSDOWN;
|
keycode = KEY_BRIGHTNESSDOWN;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -464,9 +464,6 @@ static void acpi_pcc_generate_keyinput(struct pcc_acpi *pcc)
|
|||||||
"error getting hotkey status\n"));
|
"error getting hotkey status\n"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
acpi_bus_generate_proc_event(pcc->device, HKEY_NOTIFY, result);
|
|
||||||
|
|
||||||
if (!sparse_keymap_report_event(hotk_input_dev,
|
if (!sparse_keymap_report_event(hotk_input_dev,
|
||||||
result & 0xf, result & 0x80, false))
|
result & 0xf, result & 0x80, false))
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
|
ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
|
||||||
|
@ -1275,9 +1275,6 @@ static void sony_nc_notify(struct acpi_device *device, u32 event)
|
|||||||
ev_type = HOTKEY;
|
ev_type = HOTKEY;
|
||||||
sony_laptop_report_input_event(real_ev);
|
sony_laptop_report_input_event(real_ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
acpi_bus_generate_proc_event(sony_nc_acpi_device, ev_type, real_ev);
|
|
||||||
|
|
||||||
acpi_bus_generate_netlink_event(sony_nc_acpi_device->pnp.device_class,
|
acpi_bus_generate_netlink_event(sony_nc_acpi_device->pnp.device_class,
|
||||||
dev_name(&sony_nc_acpi_device->dev), ev_type, real_ev);
|
dev_name(&sony_nc_acpi_device->dev), ev_type, real_ev);
|
||||||
}
|
}
|
||||||
@ -4243,7 +4240,6 @@ static irqreturn_t sony_pic_irq(int irq, void *dev_id)
|
|||||||
|
|
||||||
found:
|
found:
|
||||||
sony_laptop_report_input_event(device_event);
|
sony_laptop_report_input_event(device_event);
|
||||||
acpi_bus_generate_proc_event(dev->acpi_dev, 1, device_event);
|
|
||||||
sonypi_compat_report_event(device_event);
|
sonypi_compat_report_event(device_event);
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
@ -2282,10 +2282,6 @@ static struct tp_acpi_drv_struct ibm_hotkey_acpidriver;
|
|||||||
static void tpacpi_hotkey_send_key(unsigned int scancode)
|
static void tpacpi_hotkey_send_key(unsigned int scancode)
|
||||||
{
|
{
|
||||||
tpacpi_input_send_key_masked(scancode);
|
tpacpi_input_send_key_masked(scancode);
|
||||||
if (hotkey_report_mode < 2) {
|
|
||||||
acpi_bus_generate_proc_event(ibm_hotkey_acpidriver.device,
|
|
||||||
0x80, TP_HKEY_EV_HOTKEY_BASE + scancode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m)
|
static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m)
|
||||||
@ -3737,13 +3733,6 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
|
|||||||
"event happened to %s\n", TPACPI_MAIL);
|
"event happened to %s\n", TPACPI_MAIL);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Legacy events */
|
|
||||||
if (!ignore_acpi_ev &&
|
|
||||||
(send_acpi_ev || hotkey_report_mode < 2)) {
|
|
||||||
acpi_bus_generate_proc_event(ibm->acpi->device,
|
|
||||||
event, hkey);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* netlink events */
|
/* netlink events */
|
||||||
if (!ignore_acpi_ev && send_acpi_ev) {
|
if (!ignore_acpi_ev && send_acpi_ev) {
|
||||||
acpi_bus_generate_netlink_event(
|
acpi_bus_generate_netlink_event(
|
||||||
|
@ -383,15 +383,6 @@ bool acpi_bus_can_wakeup(acpi_handle handle);
|
|||||||
static inline bool acpi_bus_can_wakeup(acpi_handle handle) { return false; }
|
static inline bool acpi_bus_can_wakeup(acpi_handle handle) { return false; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI_PROC_EVENT
|
|
||||||
int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data);
|
|
||||||
int acpi_bus_generate_proc_event4(const char *class, const char *bid, u8 type, int data);
|
|
||||||
int acpi_bus_receive_event(struct acpi_bus_event *event);
|
|
||||||
#else
|
|
||||||
static inline int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data)
|
|
||||||
{ return 0; }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void acpi_scan_lock_acquire(void);
|
void acpi_scan_lock_acquire(void);
|
||||||
void acpi_scan_lock_release(void);
|
void acpi_scan_lock_release(void);
|
||||||
int acpi_scan_add_handler(struct acpi_scan_handler *handler);
|
int acpi_scan_add_handler(struct acpi_scan_handler *handler);
|
||||||
|
Loading…
Reference in New Issue
Block a user