* Re: [PATCH] ACPI: don't send netlink events for those that go into input layer
2007-08-22 17:24 [PATCH] ACPI: don't send netlink events for those that go into input layer Zhang Rui
@ 2007-08-23 18:30 ` Len Brown
2007-08-23 21:22 ` Henrique de Moraes Holschuh
2007-08-23 19:13 ` [PATCH] ACPI: Schedule /proc/acpi/event for removal Len Brown
1 sibling, 1 reply; 6+ messages in thread
From: Len Brown @ 2007-08-23 18:30 UTC (permalink / raw)
To: Zhang Rui; +Cc: linux-acpi, astarikovskiy
I like it, Rui.
I think that upon this patch, we can start to deprecate acpi_bus_generate_event,
as every user of it is now handled by the input layer or netlink.
applied.
thanks,
-Len
On Wednesday 22 August 2007 13:24, Zhang Rui wrote:
> As a replacement of /prco/acpi/event, all ACPI events are exported to user
> space either via netlink or via input layer.
> Events that go into input layer should not be sent to netlink at the same time.
>
> This patch introduces a new interface acpi_bus_generate_netlink_event which is
> called by devices that want to export events via netlink rather than input layer.
>
> events that are sent via netlink:
> ac/battery/sbs events
> thermal events
> processor events
> thinkpad_acpi dock/bay events
>
> events that are sent via input layer:
> video hotkey events
> thinkpad_acpi hotkey events
> button events
> asus_acpi/asus-laptop hotkey events
> sonypi/sonylaptop events
>
> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> ---
> drivers/acpi/ac.c | 3 +++
> drivers/acpi/battery.c | 3 +++
> drivers/acpi/bus.c | 4 ----
> drivers/acpi/event.c | 13 +++++++++----
> drivers/acpi/processor_core.c | 7 +++++++
> drivers/acpi/sbs.c | 1 +
> drivers/acpi/thermal.c | 12 ++++++++++++
> drivers/misc/thinkpad_acpi.c | 20 ++++++++++++++------
> drivers/pci/hotplug/acpiphp_ibm.c | 3 +++
> include/acpi/acpi_bus.h | 3 +--
> 10 files changed, 53 insertions(+), 16 deletions(-)
>
> Index: linux-2.6.23-rc3/drivers/acpi/bus.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/acpi/bus.c
> +++ linux-2.6.23-rc3/drivers/acpi/bus.c
> @@ -292,10 +292,6 @@ int acpi_bus_generate_event(struct acpi_
> if (!device)
> return -EINVAL;
>
> - if (acpi_bus_generate_genetlink_event(device, type, data))
> - printk(KERN_WARNING PREFIX
> - "Failed to generate an ACPI event via genetlink!\n");
> -
> /* drop event on the floor if no one's listening */
> if (!event_is_open)
> return 0;
> Index: linux-2.6.23-rc3/drivers/acpi/event.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/acpi/event.c
> +++ linux-2.6.23-rc3/drivers/acpi/event.c
> @@ -147,7 +147,8 @@ static struct genl_multicast_group acpi_
> .name = ACPI_GENL_MCAST_GROUP_NAME,
> };
>
> -int acpi_bus_generate_genetlink_event(struct acpi_device *device,
> +int acpi_bus_generate_netlink_event(const char *device_class,
> + const char *bus_id,
> u8 type, int data)
> {
> struct sk_buff *skb;
> @@ -191,8 +192,8 @@ int acpi_bus_generate_genetlink_event(st
>
> memset(event, 0, sizeof(struct acpi_genl_event));
>
> - strcpy(event->device_class, device->pnp.device_class);
> - strcpy(event->bus_id, device->dev.bus_id);
> + strcpy(event->device_class, device_class);
> + strcpy(event->bus_id, bus_id);
> event->type = type;
> event->data = data;
>
> @@ -211,6 +212,8 @@ int acpi_bus_generate_genetlink_event(st
> return 0;
> }
>
> +EXPORT_SYMBOL(acpi_bus_generate_netlink_event);
> +
> static int acpi_event_genetlink_init(void)
> {
> int result;
> @@ -228,12 +231,14 @@ static int acpi_event_genetlink_init(voi
> }
>
> #else
> -int acpi_bus_generate_genetlink_event(struct acpi_device *device, u8 type,
> +int acpi_bus_generate_netlink_event(struct acpi_device *device, u8 type,
> int data)
> {
> return 0;
> }
>
> +EXPORT_SYMBOL(acpi_generate_netlink_event);
> +
> static int acpi_event_genetlink_init(void)
> {
> return -ENODEV;
> Index: linux-2.6.23-rc3/drivers/acpi/ac.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/acpi/ac.c
> +++ linux-2.6.23-rc3/drivers/acpi/ac.c
> @@ -205,6 +205,9 @@ static void acpi_ac_notify(acpi_handle h
> case ACPI_NOTIFY_DEVICE_CHECK:
> acpi_ac_get_state(ac);
> acpi_bus_generate_event(device, event, (u32) ac->state);
> + acpi_bus_generate_netlink_event(device->pnp.device_class,
> + device->dev.bus_id, event,
> + (u32) ac->state);
> break;
> default:
> ACPI_DEBUG_PRINT((ACPI_DB_INFO,
> Index: linux-2.6.23-rc3/include/acpi/acpi_bus.h
> ===================================================================
> --- linux-2.6.23-rc3.orig/include/acpi/acpi_bus.h
> +++ linux-2.6.23-rc3/include/acpi/acpi_bus.h
> @@ -321,8 +321,7 @@ struct acpi_bus_event {
> };
>
> extern struct kset acpi_subsys;
> -extern int acpi_bus_generate_genetlink_event(struct acpi_device *device,
> - u8 type, int data);
> +extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int);
> /*
> * External Functions
> */
> Index: linux-2.6.23-rc3/drivers/acpi/battery.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/acpi/battery.c
> +++ linux-2.6.23-rc3/drivers/acpi/battery.c
> @@ -869,6 +869,9 @@ static void acpi_battery_notify(acpi_han
> acpi_battery_notify_update(battery);
> acpi_bus_generate_event(device, event,
> acpi_battery_present(battery));
> + acpi_bus_generate_netlink_event(device->pnp.device_class,
> + device->dev.bus_id, event,
> + acpi_battery_present(battery));
> break;
> default:
> ACPI_DEBUG_PRINT((ACPI_DB_INFO,
> Index: linux-2.6.23-rc3/drivers/acpi/processor_core.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/acpi/processor_core.c
> +++ linux-2.6.23-rc3/drivers/acpi/processor_core.c
> @@ -700,14 +700,21 @@ static void acpi_processor_notify(acpi_h
> acpi_processor_ppc_has_changed(pr);
> acpi_bus_generate_event(device, event,
> pr->performance_platform_limit);
> + acpi_bus_generate_netlink_event(device->pnp.device_class,
> + device->dev.bus_id, event,
> + pr->performance_platform_limit);
> break;
> case ACPI_PROCESSOR_NOTIFY_POWER:
> acpi_processor_cst_has_changed(pr);
> acpi_bus_generate_event(device, event, 0);
> + acpi_bus_generate_netlink_event(device->pnp.device_class,
> + device->dev.bus_id, event, 0);
> break;
> case ACPI_PROCESSOR_NOTIFY_THROTTLING:
> acpi_processor_tstate_has_changed(pr);
> acpi_bus_generate_event(device, event, 0);
> + acpi_bus_generate_netlink_event(device->pnp.device_class,
> + device->dev.bus_id, event, 0);
> default:
> ACPI_DEBUG_PRINT((ACPI_DB_INFO,
> "Unsupported event [0x%x]\n", event));
> Index: linux-2.6.23-rc3/drivers/acpi/thermal.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/acpi/thermal.c
> +++ linux-2.6.23-rc3/drivers/acpi/thermal.c
> @@ -487,6 +487,10 @@ static int acpi_thermal_critical(struct
> KELVIN_TO_CELSIUS(tz->temperature));
> acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL,
> tz->trips.critical.flags.enabled);
> + acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
> + tz->device->dev.bus_id,
> + ACPI_THERMAL_NOTIFY_CRITICAL,
> + tz->trips.critical.flags.enabled);
>
> orderly_poweroff(true);
>
> @@ -506,6 +510,10 @@ static int acpi_thermal_hot(struct acpi_
>
> acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_HOT,
> tz->trips.hot.flags.enabled);
> + acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
> + tz->device->dev.bus_id,
> + ACPI_THERMAL_NOTIFY_HOT,
> + tz->trips.hot.flags.enabled);
>
> /* TBD: Call user-mode "sleep(S4)" function */
>
> @@ -1150,11 +1158,15 @@ static void acpi_thermal_notify(acpi_han
> acpi_thermal_get_trip_points(tz);
> acpi_thermal_check(tz);
> acpi_bus_generate_event(device, event, 0);
> + acpi_bus_generate_netlink_event(device->pnp.device_class,
> + device->dev.bus_id, event, 0);
> break;
> case ACPI_THERMAL_NOTIFY_DEVICES:
> if (tz->flags.devices)
> acpi_thermal_get_devices(tz);
> acpi_bus_generate_event(device, event, 0);
> + acpi_bus_generate_netlink_event(device->pnp.device_class,
> + device->dev.bus_id, event, 0);
> break;
> default:
> ACPI_DEBUG_PRINT((ACPI_DB_INFO,
> Index: linux-2.6.23-rc3/drivers/misc/thinkpad_acpi.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/misc/thinkpad_acpi.c
> +++ linux-2.6.23-rc3/drivers/misc/thinkpad_acpi.c
> @@ -2162,22 +2162,27 @@ static void dock_notify(struct ibm_struc
> int docked = dock_docked();
> int pci = ibm->acpi->hid && ibm->acpi->device &&
> acpi_match_device_ids(ibm->acpi->device, ibm_pci_device_ids);
> + int data;
>
> if (event == 1 && !pci) /* 570 */
> - acpi_bus_generate_event(ibm->acpi->device, event, 1); /* button */
> + data = 1; /* button */
> else if (event == 1 && pci) /* 570 */
> - acpi_bus_generate_event(ibm->acpi->device, event, 3); /* dock */
> + data = 3; /* dock */
> else if (event == 3 && docked)
> - acpi_bus_generate_event(ibm->acpi->device, event, 1); /* button */
> + data = 1; /* button */
> else if (event == 3 && !docked)
> - acpi_bus_generate_event(ibm->acpi->device, event, 2); /* undock */
> + data = 2; /* undock */
> else if (event == 0 && docked)
> - acpi_bus_generate_event(ibm->acpi->device, event, 3); /* dock */
> + data = 3; /* dock */
> else {
> printk(IBM_ERR "unknown dock event %d, status %d\n",
> event, _sta(dock_handle));
> - acpi_bus_generate_event(ibm->acpi->device, event, 0); /* unknown */
> + data = 0; /* unknown */
> }
> + acpi_bus_generate_event(ibm->acpi->device, event, data);
> + acpi_bus_generate_netlink_event(ibm->acpi->device->pnp.device_class,
> + ibm->acpi->device->dev.bus_id,
> + event, data);
> }
>
> static int dock_read(char *p)
> @@ -2276,6 +2281,9 @@ static int __init bay_init(struct ibm_in
> static void bay_notify(struct ibm_struct *ibm, u32 event)
> {
> acpi_bus_generate_event(ibm->acpi->device, event, 0);
> + acpi_bus_generate_netlink_event(ibm->acpi->device->pnp.device_class,
> + ibm->acpi->device->dev.bus_id,
> + event, 0);
> }
>
> #define bay_occupied(b) (_sta(b##_handle) & 1)
> Index: linux-2.6.23-rc3/drivers/pci/hotplug/acpiphp_ibm.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/pci/hotplug/acpiphp_ibm.c
> +++ linux-2.6.23-rc3/drivers/pci/hotplug/acpiphp_ibm.c
> @@ -268,6 +268,9 @@ static void ibm_handle_events(acpi_handl
> if (subevent == 0x80) {
> dbg("%s: generationg bus event\n", __FUNCTION__);
> acpi_bus_generate_event(note->device, note->event, detail);
> + acpi_bus_generate_netlink_event(note->device->pnp.device_class,
> + note->device->dev.bus_id,
> + note->event, detail);
> } else
> note->event = event;
> }
> Index: linux-2.6.23-rc3/drivers/acpi/sbs.c
> ===================================================================
> --- linux-2.6.23-rc3.orig/drivers/acpi/sbs.c
> +++ linux-2.6.23-rc3/drivers/acpi/sbs.c
> @@ -445,6 +445,7 @@ static int acpi_sbs_generate_event(struc
> strcpy(acpi_device_bid(device), bid_saved);
> strcpy(acpi_device_class(device), class_saved);
>
> + acpi_bus_generate_netlink_event(class, bid, event, state);
> return result;
> }
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH] ACPI: Schedule /proc/acpi/event for removal
2007-08-22 17:24 [PATCH] ACPI: don't send netlink events for those that go into input layer Zhang Rui
2007-08-23 18:30 ` Len Brown
@ 2007-08-23 19:13 ` Len Brown
1 sibling, 0 replies; 6+ messages in thread
From: Len Brown @ 2007-08-23 19:13 UTC (permalink / raw)
To: Zhang Rui; +Cc: linux-acpi, astarikovskiy
From: Len Brown <len.brown@intel.com>
Schedule /proc/acpi/event for removal in 6 months.
Re-name acpi_bus_generate_event() to acpi_bus_generate_proc_event()
to make sure there is no confusion that it is for /proc/acpi/event only.
Add CONFIG_ACPI_PROC_EVENT to allow removal of /proc/acpi/event.
There is no functional change if CONFIG_ACPI_PROC_EVENT=y
Signed-off-by: Len Brown <len.brown@intel.com>
---
Documentation/feature-removal-schedule.txt | 8 +++++
drivers/acpi/Kconfig | 14 ++++++++++
drivers/acpi/ac.c | 2 -
drivers/acpi/asus_acpi.c | 2 -
drivers/acpi/battery.c | 2 -
drivers/acpi/bus.c | 6 ++--
drivers/acpi/button.c | 2 -
drivers/acpi/event.c | 6 ++++
drivers/acpi/processor_core.c | 6 ++--
drivers/acpi/sbs.c | 2 -
drivers/acpi/thermal.c | 8 ++---
drivers/acpi/video.c | 10 +++----
drivers/char/sonypi.c | 2 -
drivers/misc/asus-laptop.c | 2 -
drivers/misc/sony-laptop.c | 4 +-
drivers/misc/thinkpad_acpi.c | 8 ++---
drivers/pci/hotplug/acpiphp_ibm.c | 2 -
include/acpi/acpi_bus.h | 7 ++++-
18 files changed, 64 insertions(+), 29 deletions(-)
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index a43d287..b9a3fdc 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -197,6 +197,14 @@ Who: Len Brown <len.brown@intel.com>
---------------------------
+What: /proc/acpi/event
+When: February 2008
+Why: /proc/acpi/event has been replaced by events via the input layer
+ and netlink since 2.6.23.
+Who: Len Brown <len.brown@intel.com>
+
+---------------------------
+
What: Compaq touchscreen device emulation
When: Oct 2007
Files: drivers/input/tsdev.c
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index f1372de..5742594 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -68,6 +68,20 @@ config ACPI_PROCFS
Say N to delete /proc/acpi/ files that have moved to /sys/
+config ACPI_PROC_EVENT
+ bool "Deprecated /proc/acpi/event support"
+ depends on PROC_FS
+ ---help---
+ A user-space daemon, acpi, typically read /proc/acpi/event
+ and handled all ACPI sub-system generated events.
+
+ These events are now delivered to user-space via
+ either the input layer, or as netlink events.
+
+ This build option enables the old code for for legacy
+ user-space implementation. After some time, this will
+ be moved under CONFIG_ACPI_PROCFS, and then deleted.
+
config ACPI_AC
tristate "AC Adapter"
depends on X86
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
index b53c2cf..26d7070 100644
--- a/drivers/acpi/ac.c
+++ b/drivers/acpi/ac.c
@@ -204,7 +204,7 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data)
case ACPI_NOTIFY_BUS_CHECK:
case ACPI_NOTIFY_DEVICE_CHECK:
acpi_ac_get_state(ac);
- acpi_bus_generate_event(device, event, (u32) ac->state);
+ acpi_bus_generate_proc_event(device, event, (u32) ac->state);
acpi_bus_generate_netlink_event(device->pnp.device_class,
device->dev.bus_id, event,
(u32) ac->state);
diff --git a/drivers/acpi/asus_acpi.c b/drivers/acpi/asus_acpi.c
index 86fd142..d915fec 100644
--- a/drivers/acpi/asus_acpi.c
+++ b/drivers/acpi/asus_acpi.c
@@ -1069,7 +1069,7 @@ static void asus_hotk_notify(acpi_handle handle, u32 event, void *data)
hotk->brightness = (event & ~((u32) BR_DOWN));
}
- acpi_bus_generate_event(hotk->device, event,
+ acpi_bus_generate_proc_event(hotk->device, event,
hotk->event_count[event % 128]++);
return;
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 9f0bf90..91dc4b3 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -867,7 +867,7 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data)
case ACPI_NOTIFY_DEVICE_CHECK:
device = battery->device;
acpi_battery_notify_update(battery);
- acpi_bus_generate_event(device, event,
+ acpi_bus_generate_proc_event(device, event,
acpi_battery_present(battery));
acpi_bus_generate_netlink_event(device->pnp.device_class,
device->dev.bus_id, event,
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index e5084ec..9ba778a 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -276,6 +276,7 @@ EXPORT_SYMBOL(acpi_bus_set_power);
Event Management
-------------------------------------------------------------------------- */
+#ifdef CONFIG_ACPI_PROC_EVENT
static DEFINE_SPINLOCK(acpi_bus_event_lock);
LIST_HEAD(acpi_bus_event_list);
@@ -283,7 +284,7 @@ DECLARE_WAIT_QUEUE_HEAD(acpi_bus_event_queue);
extern int event_is_open;
-int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data)
+int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data)
{
struct acpi_bus_event *event = NULL;
unsigned long flags = 0;
@@ -314,7 +315,7 @@ int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data)
return 0;
}
-EXPORT_SYMBOL(acpi_bus_generate_event);
+EXPORT_SYMBOL(acpi_bus_generate_proc_event);
int acpi_bus_receive_event(struct acpi_bus_event *event)
{
@@ -360,6 +361,7 @@ int acpi_bus_receive_event(struct acpi_bus_event *event)
}
EXPORT_SYMBOL(acpi_bus_receive_event);
+#endif /* CONFIG_ACPI_PROC_EVENT */
/* --------------------------------------------------------------------------
Notification Handling
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c
index 5405813..2e79a33 100644
--- a/drivers/acpi/button.c
+++ b/drivers/acpi/button.c
@@ -284,7 +284,7 @@ static void acpi_button_notify(acpi_handle handle, u32 event, void *data)
}
input_sync(input);
- acpi_bus_generate_event(button->device, event,
+ acpi_bus_generate_proc_event(button->device, event,
++button->pushed);
break;
default:
diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c
index b7b1432..cf6d516 100644
--- a/drivers/acpi/event.c
+++ b/drivers/acpi/event.c
@@ -17,6 +17,7 @@
#define _COMPONENT ACPI_SYSTEM_COMPONENT
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;
@@ -106,6 +107,7 @@ static const struct file_operations acpi_system_event_ops = {
.release = acpi_system_close_event,
.poll = acpi_system_poll_event,
};
+#endif /* CONFIG_ACPI_PROC_EVENT */
#ifdef CONFIG_NET
static unsigned int acpi_event_seqnum;
@@ -247,7 +249,9 @@ static int acpi_event_genetlink_init(void)
static int __init acpi_event_init(void)
{
+#ifdef CONFIG_ACPI_PROC_EVENT
struct proc_dir_entry *entry;
+#endif
int error = 0;
if (acpi_disabled)
@@ -259,12 +263,14 @@ static int __init acpi_event_init(void)
printk(KERN_WARNING PREFIX
"Failed to create genetlink family for ACPI event\n");
+#ifdef CONFIG_ACPI_PROC_EVENT
/* 'event' [R] */
entry = create_proc_entry("event", S_IRUSR, acpi_root_dir);
if (entry)
entry->proc_fops = &acpi_system_event_ops;
else
return -ENODEV;
+#endif
return 0;
}
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index dbc2e5d..e944aae 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -698,7 +698,7 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
switch (event) {
case ACPI_PROCESSOR_NOTIFY_PERFORMANCE:
acpi_processor_ppc_has_changed(pr);
- acpi_bus_generate_event(device, event,
+ acpi_bus_generate_proc_event(device, event,
pr->performance_platform_limit);
acpi_bus_generate_netlink_event(device->pnp.device_class,
device->dev.bus_id, event,
@@ -706,13 +706,13 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data)
break;
case ACPI_PROCESSOR_NOTIFY_POWER:
acpi_processor_cst_has_changed(pr);
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
acpi_bus_generate_netlink_event(device->pnp.device_class,
device->dev.bus_id, event, 0);
break;
case ACPI_PROCESSOR_NOTIFY_THROTTLING:
acpi_processor_tstate_has_changed(pr);
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
acpi_bus_generate_netlink_event(device->pnp.device_class,
device->dev.bus_id, event, 0);
default:
diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c
index 2d67e92..a578986 100644
--- a/drivers/acpi/sbs.c
+++ b/drivers/acpi/sbs.c
@@ -440,7 +440,7 @@ static int acpi_sbs_generate_event(struct acpi_device *device,
strcpy(acpi_device_bid(device), bid);
strcpy(acpi_device_class(device), class);
- result = acpi_bus_generate_event(device, event, state);
+ result = acpi_bus_generate_proc_event(device, event, state);
strcpy(acpi_device_bid(device), bid_saved);
strcpy(acpi_device_class(device), class_saved);
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 291758c..2c9cfe2 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -485,7 +485,7 @@ static int acpi_thermal_critical(struct acpi_thermal *tz)
printk(KERN_EMERG
"Critical temperature reached (%ld C), shutting down.\n",
KELVIN_TO_CELSIUS(tz->temperature));
- acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL,
+ acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL,
tz->trips.critical.flags.enabled);
acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
tz->device->dev.bus_id,
@@ -508,7 +508,7 @@ static int acpi_thermal_hot(struct acpi_thermal *tz)
} else if (tz->trips.hot.flags.enabled)
tz->trips.hot.flags.enabled = 0;
- acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_HOT,
+ acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_HOT,
tz->trips.hot.flags.enabled);
acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
tz->device->dev.bus_id,
@@ -1157,14 +1157,14 @@ static void acpi_thermal_notify(acpi_handle handle, u32 event, void *data)
case ACPI_THERMAL_NOTIFY_THRESHOLDS:
acpi_thermal_get_trip_points(tz);
acpi_thermal_check(tz);
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
acpi_bus_generate_netlink_event(device->pnp.device_class,
device->dev.bus_id, event, 0);
break;
case ACPI_THERMAL_NOTIFY_DEVICES:
if (tz->flags.devices)
acpi_thermal_get_devices(tz);
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
acpi_bus_generate_netlink_event(device->pnp.device_class,
device->dev.bus_id, event, 0);
break;
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index d987019..9a5cfcf 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1775,7 +1775,7 @@ static void acpi_video_bus_notify(acpi_handle handle, u32 event, void *data)
switch (event) {
case ACPI_VIDEO_NOTIFY_SWITCH: /* User requested a switch,
* most likely via hotkey. */
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
break;
case ACPI_VIDEO_NOTIFY_PROBE: /* User plugged in or removed a video
@@ -1783,14 +1783,14 @@ static void acpi_video_bus_notify(acpi_handle handle, u32 event, void *data)
acpi_video_device_enumerate(video);
acpi_video_device_rebind(video);
acpi_video_switch_output(video, event);
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
break;
case ACPI_VIDEO_NOTIFY_CYCLE: /* Cycle Display output hotkey pressed. */
case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: /* Next Display output hotkey pressed. */
case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: /* previous Display output hotkey pressed. */
acpi_video_switch_output(video, event);
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
break;
default:
@@ -1815,7 +1815,7 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
switch (event) {
case ACPI_VIDEO_NOTIFY_SWITCH: /* change in status (cycle output device) */
case ACPI_VIDEO_NOTIFY_PROBE: /* change in status (output device status) */
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
break;
case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */
case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */
@@ -1823,7 +1823,7 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data)
case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightnesss */
case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */
acpi_video_switch_brightness(video_device, event);
- acpi_bus_generate_event(device, event, 0);
+ acpi_bus_generate_proc_event(device, event, 0);
break;
default:
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
index aeec67e..8598585 100644
--- a/drivers/char/sonypi.c
+++ b/drivers/char/sonypi.c
@@ -875,7 +875,7 @@ found:
#ifdef CONFIG_ACPI
if (sonypi_acpi_device)
- acpi_bus_generate_event(sonypi_acpi_device, 1, event);
+ acpi_bus_generate_proc_event(sonypi_acpi_device, 1, event);
#endif
kfifo_put(sonypi_device.fifo, (unsigned char *)&event, sizeof(event));
diff --git a/drivers/misc/asus-laptop.c b/drivers/misc/asus-laptop.c
index d0fc4fd..f8ae58f 100644
--- a/drivers/misc/asus-laptop.c
+++ b/drivers/misc/asus-laptop.c
@@ -732,7 +732,7 @@ static void asus_hotk_notify(acpi_handle handle, u32 event, void *data)
lcd_blank(FB_BLANK_POWERDOWN);
}
- acpi_bus_generate_event(hotk->device, event,
+ acpi_bus_generate_proc_event(hotk->device, event,
hotk->event_count[event % 128]++);
return;
diff --git a/drivers/misc/sony-laptop.c b/drivers/misc/sony-laptop.c
index 91da688..743bd49 100644
--- a/drivers/misc/sony-laptop.c
+++ b/drivers/misc/sony-laptop.c
@@ -904,7 +904,7 @@ static void sony_acpi_notify(acpi_handle handle, u32 event, void *data)
dprintk("sony_acpi_notify, event: 0x%.2x\n", ev);
sony_laptop_report_input_event(ev);
- acpi_bus_generate_event(sony_nc_acpi_device, 1, ev);
+ acpi_bus_generate_proc_event(sony_nc_acpi_device, 1, ev);
}
static acpi_status sony_walk_callback(acpi_handle handle, u32 level,
@@ -2292,7 +2292,7 @@ static irqreturn_t sony_pic_irq(int irq, void *dev_id)
found:
sony_laptop_report_input_event(device_event);
- acpi_bus_generate_event(spic_dev.acpi_dev, 1, device_event);
+ acpi_bus_generate_proc_event(spic_dev.acpi_dev, 1, device_event);
sonypi_compat_report_event(device_event);
return IRQ_HANDLED;
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index d0825a3..bb8956d 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -1190,10 +1190,10 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event)
}
if (sendacpi)
- acpi_bus_generate_event(ibm->acpi->device, event, hkey);
+ acpi_bus_generate_proc_event(ibm->acpi->device, event, hkey);
} else {
printk(IBM_ERR "unknown hotkey notification event %d\n", event);
- acpi_bus_generate_event(ibm->acpi->device, event, 0);
+ acpi_bus_generate_proc_event(ibm->acpi->device, event, 0);
}
}
@@ -2179,7 +2179,7 @@ static void dock_notify(struct ibm_struct *ibm, u32 event)
event, _sta(dock_handle));
data = 0; /* unknown */
}
- acpi_bus_generate_event(ibm->acpi->device, event, data);
+ acpi_bus_generate_proc_event(ibm->acpi->device, event, data);
acpi_bus_generate_netlink_event(ibm->acpi->device->pnp.device_class,
ibm->acpi->device->dev.bus_id,
event, data);
@@ -2280,7 +2280,7 @@ static int __init bay_init(struct ibm_init_struct *iibm)
static void bay_notify(struct ibm_struct *ibm, u32 event)
{
- acpi_bus_generate_event(ibm->acpi->device, event, 0);
+ acpi_bus_generate_proc_event(ibm->acpi->device, event, 0);
acpi_bus_generate_netlink_event(ibm->acpi->device->pnp.device_class,
ibm->acpi->device->dev.bus_id,
event, 0);
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
index 3609024..d2c410c 100644
--- a/drivers/pci/hotplug/acpiphp_ibm.c
+++ b/drivers/pci/hotplug/acpiphp_ibm.c
@@ -267,7 +267,7 @@ static void ibm_handle_events(acpi_handle handle, u32 event, void *context)
if (subevent == 0x80) {
dbg("%s: generationg bus event\n", __FUNCTION__);
- acpi_bus_generate_event(note->device, note->event, detail);
+ acpi_bus_generate_proc_event(note->device, note->event, detail);
acpi_bus_generate_netlink_event(note->device->pnp.device_class,
note->device->dev.bus_id,
note->event, detail);
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h
index 8203cdd..86aea44 100644
--- a/include/acpi/acpi_bus.h
+++ b/include/acpi/acpi_bus.h
@@ -331,8 +331,13 @@ void acpi_bus_data_handler(acpi_handle handle, u32 function, void *context);
int acpi_bus_get_status(struct acpi_device *device);
int acpi_bus_get_power(acpi_handle handle, int *state);
int acpi_bus_set_power(acpi_handle handle, int state);
-int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data);
+#ifdef CONFIG_ACPI_PROC_EVENT
+int acpi_bus_generate_proc_event(struct acpi_device *device, 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
int acpi_bus_register_driver(struct acpi_driver *driver);
void acpi_bus_unregister_driver(struct acpi_driver *driver);
int acpi_bus_add(struct acpi_device **child, struct acpi_device *parent,
^ permalink raw reply related [flat|nested] 6+ messages in thread