diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-08-14 17:22:45 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-08-14 17:22:45 -0400 |
commit | f3ce717e60572421f56d89c9a85ac42e634d16e7 (patch) | |
tree | 46b85329773c7908378f90e4e8e86205ebfd229f | |
parent | d4e4ab86bcba5a72779c43dc1459f71fea3d89c8 (diff) | |
parent | e73d3136355f511d3e1c2ef21acf02b19bd2b650 (diff) |
Merge back earlier 'acpi-assorted' material
32 files changed, 60 insertions, 450 deletions
diff --git a/Documentation/laptops/asus-laptop.txt b/Documentation/laptops/asus-laptop.txt index 69f9fb3701e0..79a1bc675a8d 100644 --- a/Documentation/laptops/asus-laptop.txt +++ b/Documentation/laptops/asus-laptop.txt | |||
@@ -8,8 +8,8 @@ http://acpi4asus.sf.net/ | |||
8 | 8 | ||
9 | This driver provides support for extra features of ACPI-compatible ASUS laptops. | 9 | This driver provides support for extra features of ACPI-compatible ASUS laptops. |
10 | It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or | 10 | It may also support some MEDION, JVC or VICTOR laptops (such as MEDION 9675 or |
11 | VICTOR XP7210 for example). It makes all the extra buttons generate standard | 11 | VICTOR XP7210 for example). It makes all the extra buttons generate input |
12 | ACPI events that go through /proc/acpi/events and input events (like keyboards). | 12 | events (like keyboards). |
13 | On some models adds support for changing the display brightness and output, | 13 | On some models adds support for changing the display brightness and output, |
14 | switching the LCD backlight on and off, and most importantly, allows you to | 14 | switching the LCD backlight on and off, and most importantly, allows you to |
15 | blink those fancy LEDs intended for reporting mail and wireless status. | 15 | blink those fancy LEDs intended for reporting mail and wireless status. |
@@ -55,8 +55,8 @@ Usage | |||
55 | DSDT) to me. | 55 | DSDT) to me. |
56 | 56 | ||
57 | That's all, now, all the events generated by the hotkeys of your laptop | 57 | That's all, now, all the events generated by the hotkeys of your laptop |
58 | should be reported in your /proc/acpi/event entry. You can check with | 58 | should be reported via netlink events. You can check with |
59 | "acpi_listen". | 59 | "acpi_genl monitor" (part of the acpica project). |
60 | 60 | ||
61 | Hotkeys are also reported as input keys (like keyboards) you can check | 61 | Hotkeys are also reported as input keys (like keyboards) you can check |
62 | which key are supported using "xev" under X11. | 62 | which key are supported using "xev" under X11. |
diff --git a/Documentation/laptops/sony-laptop.txt b/Documentation/laptops/sony-laptop.txt index 0d5ac7f5287e..978b1e615155 100644 --- a/Documentation/laptops/sony-laptop.txt +++ b/Documentation/laptops/sony-laptop.txt | |||
@@ -12,10 +12,10 @@ Fn keys (hotkeys): | |||
12 | ------------------ | 12 | ------------------ |
13 | Some models report hotkeys through the SNC or SPIC devices, such events are | 13 | Some models report hotkeys through the SNC or SPIC devices, such events are |
14 | reported both through the ACPI subsystem as acpi events and through the INPUT | 14 | reported both through the ACPI subsystem as acpi events and through the INPUT |
15 | subsystem. See the logs of acpid or /proc/acpi/event and | 15 | subsystem. See the logs of /proc/bus/input/devices to find out what those |
16 | /proc/bus/input/devices to find out what those events are and which input | 16 | events are and which input devices are created by the driver. |
17 | devices are created by the driver. Additionally, loading the driver with the | 17 | Additionally, loading the driver with the debug option will report all events |
18 | debug option will report all events in the kernel log. | 18 | in the kernel log. |
19 | 19 | ||
20 | The "scancodes" passed to the input system (that can be remapped with udev) | 20 | The "scancodes" passed to the input system (that can be remapped with udev) |
21 | are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c | 21 | are indexes to the table "sony_laptop_input_keycode_map" in the sony-laptop.c |
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index cf7bc6cb9719..86c52360ffe7 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -329,20 +329,6 @@ sysfs notes: | |||
329 | 329 | ||
330 | This attribute has poll()/select() support. | 330 | This attribute has poll()/select() support. |
331 | 331 | ||
332 | hotkey_report_mode: | ||
333 | Returns the state of the procfs ACPI event report mode | ||
334 | filter for hot keys. If it is set to 1 (the default), | ||
335 | all hot key presses are reported both through the input | ||
336 | layer and also as ACPI events through procfs (but not | ||
337 | through netlink). If it is set to 2, hot key presses | ||
338 | are reported only through the input layer. | ||
339 | |||
340 | This attribute is read-only in kernels 2.6.23 or later, | ||
341 | and read-write on earlier kernels. | ||
342 | |||
343 | May return -EPERM (write access locked out by module | ||
344 | parameter) or -EACCES (read-only). | ||
345 | |||
346 | wakeup_reason: | 332 | wakeup_reason: |
347 | Set to 1 if the system is waking up because the user | 333 | Set to 1 if the system is waking up because the user |
348 | requested a bay ejection. Set to 2 if the system is | 334 | requested a bay ejection. Set to 2 if the system is |
@@ -518,24 +504,21 @@ SW_TABLET_MODE Tablet ThinkPads HKEY events 0x5009 and 0x500A | |||
518 | Non hotkey ACPI HKEY event map: | 504 | Non hotkey ACPI HKEY event map: |
519 | ------------------------------- | 505 | ------------------------------- |
520 | 506 | ||
521 | Events that are not propagated by the driver, except for legacy | ||
522 | compatibility purposes when hotkey_report_mode is set to 1: | ||
523 | |||
524 | 0x5001 Lid closed | ||
525 | 0x5002 Lid opened | ||
526 | 0x5009 Tablet swivel: switched to tablet mode | ||
527 | 0x500A Tablet swivel: switched to normal mode | ||
528 | 0x7000 Radio Switch may have changed state | ||
529 | |||
530 | Events that are never propagated by the driver: | 507 | Events that are never propagated by the driver: |
531 | 508 | ||
532 | 0x2304 System is waking up from suspend to undock | 509 | 0x2304 System is waking up from suspend to undock |
533 | 0x2305 System is waking up from suspend to eject bay | 510 | 0x2305 System is waking up from suspend to eject bay |
534 | 0x2404 System is waking up from hibernation to undock | 511 | 0x2404 System is waking up from hibernation to undock |
535 | 0x2405 System is waking up from hibernation to eject bay | 512 | 0x2405 System is waking up from hibernation to eject bay |
513 | 0x5001 Lid closed | ||
514 | 0x5002 Lid opened | ||
515 | 0x5009 Tablet swivel: switched to tablet mode | ||
516 | 0x500A Tablet swivel: switched to normal mode | ||
536 | 0x5010 Brightness level changed/control event | 517 | 0x5010 Brightness level changed/control event |
537 | 0x6000 KEYBOARD: Numlock key pressed | 518 | 0x6000 KEYBOARD: Numlock key pressed |
538 | 0x6005 KEYBOARD: Fn key pressed (TO BE VERIFIED) | 519 | 0x6005 KEYBOARD: Fn key pressed (TO BE VERIFIED) |
520 | 0x7000 Radio Switch may have changed state | ||
521 | |||
539 | 522 | ||
540 | Events that are propagated by the driver to userspace: | 523 | Events that are propagated by the driver to userspace: |
541 | 524 | ||
@@ -574,50 +557,6 @@ operating system is to force either an immediate suspend or hibernate | |||
574 | cycle, or a system shutdown. Obviously, something is very wrong if this | 557 | cycle, or a system shutdown. Obviously, something is very wrong if this |
575 | happens. | 558 | happens. |
576 | 559 | ||
577 | Compatibility notes: | ||
578 | |||
579 | ibm-acpi and thinkpad-acpi 0.15 (mainline kernels before 2.6.23) never | ||
580 | supported the input layer, and sent events over the procfs ACPI event | ||
581 | interface. | ||
582 | |||
583 | To avoid sending duplicate events over the input layer and the ACPI | ||
584 | event interface, thinkpad-acpi 0.16 implements a module parameter | ||
585 | (hotkey_report_mode), and also a sysfs device attribute with the same | ||
586 | name. | ||
587 | |||
588 | Make no mistake here: userspace is expected to switch to using the input | ||
589 | layer interface of thinkpad-acpi, together with the ACPI netlink event | ||
590 | interface in kernels 2.6.23 and later, or with the ACPI procfs event | ||
591 | interface in kernels 2.6.22 and earlier. | ||
592 | |||
593 | If no hotkey_report_mode module parameter is specified (or it is set to | ||
594 | zero), the driver defaults to mode 1 (see below), and on kernels 2.6.22 | ||
595 | and earlier, also allows one to change the hotkey_report_mode through | ||
596 | sysfs. In kernels 2.6.23 and later, where the netlink ACPI event | ||
597 | interface is available, hotkey_report_mode cannot be changed through | ||
598 | sysfs (it is read-only). | ||
599 | |||
600 | If the hotkey_report_mode module parameter is set to 1 or 2, it cannot | ||
601 | be changed later through sysfs (any writes will return -EPERM to signal | ||
602 | that hotkey_report_mode was locked. On 2.6.23 and later, where | ||
603 | hotkey_report_mode cannot be changed at all, writes will return -EACCES). | ||
604 | |||
605 | hotkey_report_mode set to 1 makes the driver export through the procfs | ||
606 | ACPI event interface all hot key presses (which are *also* sent to the | ||
607 | input layer). This is a legacy compatibility behaviour, and it is also | ||
608 | the default mode of operation for the driver. | ||
609 | |||
610 | hotkey_report_mode set to 2 makes the driver filter out the hot key | ||
611 | presses from the procfs ACPI event interface, so these events will only | ||
612 | be sent through the input layer. Userspace that has been updated to use | ||
613 | the thinkpad-acpi input layer interface should set hotkey_report_mode to | ||
614 | 2. | ||
615 | |||
616 | Hot key press events are never sent to the ACPI netlink event interface. | ||
617 | Really up-to-date userspace under kernel 2.6.23 and later is to use the | ||
618 | netlink interface and the input layer interface, and don't bother at all | ||
619 | with hotkey_report_mode. | ||
620 | |||
621 | 560 | ||
622 | Brightness hotkey notes: | 561 | Brightness hotkey notes: |
623 | 562 | ||
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index 100bd724f648..3278a210c435 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig | |||
@@ -91,24 +91,6 @@ config ACPI_EC_DEBUGFS | |||
91 | Thus this option is a debug option that helps to write ACPI drivers | 91 | Thus this option is a debug option that helps to write ACPI drivers |
92 | and can be used to identify ACPI code or EC firmware bugs. | 92 | and can be used to identify ACPI code or EC firmware bugs. |
93 | 93 | ||
94 | config ACPI_PROC_EVENT | ||
95 | bool "Deprecated /proc/acpi/event support" | ||
96 | depends on PROC_FS | ||
97 | default y | ||
98 | help | ||
99 | A user-space daemon, acpid, typically reads /proc/acpi/event | ||
100 | and handles all ACPI-generated events. | ||
101 | |||
102 | These events are now delivered to user-space either | ||
103 | via the input layer or as netlink events. | ||
104 | |||
105 | This build option enables the old code for legacy | ||
106 | user-space implementation. After some time, this will | ||
107 | be moved under CONFIG_ACPI_PROCFS, and then deleted. | ||
108 | |||
109 | Say Y here to retain the old behaviour. Say N if your | ||
110 | user-space is newer than kernel 2.6.23 (September 2007). | ||
111 | |||
112 | config ACPI_AC | 94 | config ACPI_AC |
113 | tristate "AC Adapter" | 95 | tristate "AC Adapter" |
114 | depends on X86 | 96 | depends on X86 |
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c index 4f4e741d34b2..f37beaa32750 100644 --- a/drivers/acpi/ac.c +++ b/drivers/acpi/ac.c | |||
@@ -267,7 +267,6 @@ static void acpi_ac_notify(struct acpi_device *device, u32 event) | |||
267 | msleep(ac_sleep_before_get_state_ms); | 267 | msleep(ac_sleep_before_get_state_ms); |
268 | 268 | ||
269 | acpi_ac_get_state(ac); | 269 | acpi_ac_get_state(ac); |
270 | acpi_bus_generate_proc_event(device, event, (u32) ac->state); | ||
271 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 270 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
272 | dev_name(&device->dev), event, | 271 | dev_name(&device->dev), event, |
273 | (u32) ac->state); | 272 | (u32) ac->state); |
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c index 27bb6a91de5f..6230637054c6 100644 --- a/drivers/acpi/acpi_pad.c +++ b/drivers/acpi/acpi_pad.c | |||
@@ -452,7 +452,6 @@ static void acpi_pad_notify(acpi_handle handle, u32 event, | |||
452 | switch (event) { | 452 | switch (event) { |
453 | case ACPI_PROCESSOR_AGGREGATOR_NOTIFY: | 453 | case ACPI_PROCESSOR_AGGREGATOR_NOTIFY: |
454 | acpi_pad_handle_notify(handle); | 454 | acpi_pad_handle_notify(handle); |
455 | acpi_bus_generate_proc_event(device, event, 0); | ||
456 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 455 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
457 | dev_name(&device->dev), event, 0); | 456 | dev_name(&device->dev), event, 0); |
458 | break; | 457 | break; |
diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c index fafec5ddf17f..1bde12708f9e 100644 --- a/drivers/acpi/acpi_platform.c +++ b/drivers/acpi/acpi_platform.c | |||
@@ -52,7 +52,7 @@ int acpi_create_platform_device(struct acpi_device *adev, | |||
52 | struct platform_device_info pdevinfo; | 52 | struct platform_device_info pdevinfo; |
53 | struct resource_list_entry *rentry; | 53 | struct resource_list_entry *rentry; |
54 | struct list_head resource_list; | 54 | struct list_head resource_list; |
55 | struct resource *resources; | 55 | struct resource *resources = NULL; |
56 | int count; | 56 | int count; |
57 | 57 | ||
58 | /* If the ACPI node already has a physical device attached, skip it. */ | 58 | /* If the ACPI node already has a physical device attached, skip it. */ |
@@ -61,20 +61,22 @@ int acpi_create_platform_device(struct acpi_device *adev, | |||
61 | 61 | ||
62 | INIT_LIST_HEAD(&resource_list); | 62 | INIT_LIST_HEAD(&resource_list); |
63 | count = acpi_dev_get_resources(adev, &resource_list, NULL, NULL); | 63 | count = acpi_dev_get_resources(adev, &resource_list, NULL, NULL); |
64 | if (count <= 0) | 64 | if (count < 0) { |
65 | return 0; | 65 | return 0; |
66 | } else if (count > 0) { | ||
67 | resources = kmalloc(count * sizeof(struct resource), | ||
68 | GFP_KERNEL); | ||
69 | if (!resources) { | ||
70 | dev_err(&adev->dev, "No memory for resources\n"); | ||
71 | acpi_dev_free_resource_list(&resource_list); | ||
72 | return -ENOMEM; | ||
73 | } | ||
74 | count = 0; | ||
75 | list_for_each_entry(rentry, &resource_list, node) | ||
76 | resources[count++] = rentry->res; | ||
66 | 77 | ||
67 | resources = kmalloc(count * sizeof(struct resource), GFP_KERNEL); | ||
68 | if (!resources) { | ||
69 | dev_err(&adev->dev, "No memory for resources\n"); | ||
70 | acpi_dev_free_resource_list(&resource_list); | 78 | acpi_dev_free_resource_list(&resource_list); |
71 | return -ENOMEM; | ||
72 | } | 79 | } |
73 | count = 0; | ||
74 | list_for_each_entry(rentry, &resource_list, node) | ||
75 | resources[count++] = rentry->res; | ||
76 | |||
77 | acpi_dev_free_resource_list(&resource_list); | ||
78 | 80 | ||
79 | memset(&pdevinfo, 0, sizeof(pdevinfo)); | 81 | memset(&pdevinfo, 0, sizeof(pdevinfo)); |
80 | /* | 82 | /* |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index d405fbad406a..85332872da45 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -1036,8 +1036,6 @@ static void acpi_battery_notify(struct acpi_device *device, u32 event) | |||
1036 | if (event == ACPI_BATTERY_NOTIFY_INFO) | 1036 | if (event == ACPI_BATTERY_NOTIFY_INFO) |
1037 | acpi_battery_refresh(battery); | 1037 | acpi_battery_refresh(battery); |
1038 | acpi_battery_update(battery); | 1038 | acpi_battery_update(battery); |
1039 | acpi_bus_generate_proc_event(device, event, | ||
1040 | acpi_battery_present(battery)); | ||
1041 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 1039 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
1042 | dev_name(&device->dev), event, | 1040 | dev_name(&device->dev), event, |
1043 | acpi_battery_present(battery)); | 1041 | acpi_battery_present(battery)); |
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index a5bb33bab448..7df97d277545 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -89,27 +89,6 @@ static struct dmi_system_id dsdt_dmi_table[] __initdata = { | |||
89 | Device Management | 89 | Device Management |
90 | -------------------------------------------------------------------------- */ | 90 | -------------------------------------------------------------------------- */ |
91 | 91 | ||
92 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device) | ||
93 | { | ||
94 | acpi_status status; | ||
95 | |||
96 | if (!device) | ||
97 | return -EINVAL; | ||
98 | |||
99 | /* TBD: Support fixed-feature devices */ | ||
100 | |||
101 | status = acpi_get_data(handle, acpi_bus_data_handler, (void **)device); | ||
102 | if (ACPI_FAILURE(status) || !*device) { | ||
103 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No context for object [%p]\n", | ||
104 | handle)); | ||
105 | return -ENODEV; | ||
106 | } | ||
107 | |||
108 | return 0; | ||
109 | } | ||
110 | |||
111 | EXPORT_SYMBOL(acpi_bus_get_device); | ||
112 | |||
113 | acpi_status acpi_bus_get_status_handle(acpi_handle handle, | 92 | acpi_status acpi_bus_get_status_handle(acpi_handle handle, |
114 | unsigned long long *sta) | 93 | unsigned long long *sta) |
115 | { | 94 | { |
@@ -346,104 +325,6 @@ static void acpi_bus_osc_support(void) | |||
346 | } | 325 | } |
347 | 326 | ||
348 | /* -------------------------------------------------------------------------- | 327 | /* -------------------------------------------------------------------------- |
349 | Event Management | ||
350 | -------------------------------------------------------------------------- */ | ||
351 | |||
352 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
353 | static DEFINE_SPINLOCK(acpi_bus_event_lock); | ||
354 | |||
355 | LIST_HEAD(acpi_bus_event_list); | ||
356 | DECLARE_WAIT_QUEUE_HEAD(acpi_bus_event_queue); | ||
357 | |||
358 | extern int event_is_open; | ||
359 | |||
360 | int acpi_bus_generate_proc_event4(const char *device_class, const char *bus_id, u8 type, int data) | ||
361 | { | ||
362 | struct acpi_bus_event *event; | ||
363 | unsigned long flags; | ||
364 | |||
365 | /* drop event on the floor if no one's listening */ | ||
366 | if (!event_is_open) | ||
367 | return 0; | ||
368 | |||
369 | event = kzalloc(sizeof(struct acpi_bus_event), GFP_ATOMIC); | ||
370 | if (!event) | ||
371 | return -ENOMEM; | ||
372 | |||
373 | strcpy(event->device_class, device_class); | ||
374 | strcpy(event->bus_id, bus_id); | ||
375 | event->type = type; | ||
376 | event->data = data; | ||
377 | |||
378 | spin_lock_irqsave(&acpi_bus_event_lock, flags); | ||
379 | list_add_tail(&event->node, &acpi_bus_event_list); | ||
380 | spin_unlock_irqrestore(&acpi_bus_event_lock, flags); | ||
381 | |||
382 | wake_up_interruptible(&acpi_bus_event_queue); | ||
383 | |||
384 | return 0; | ||
385 | |||
386 | } | ||
387 | |||
388 | EXPORT_SYMBOL_GPL(acpi_bus_generate_proc_event4); | ||
389 | |||
390 | int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data) | ||
391 | { | ||
392 | if (!device) | ||
393 | return -EINVAL; | ||
394 | return acpi_bus_generate_proc_event4(device->pnp.device_class, | ||
395 | device->pnp.bus_id, type, data); | ||
396 | } | ||
397 | |||
398 | EXPORT_SYMBOL(acpi_bus_generate_proc_event); | ||
399 | |||
400 | int acpi_bus_receive_event(struct acpi_bus_event *event) | ||
401 | { | ||
402 | unsigned long flags; | ||
403 | struct acpi_bus_event *entry = NULL; | ||
404 | |||
405 | DECLARE_WAITQUEUE(wait, current); | ||
406 | |||
407 | |||
408 | if (!event) | ||
409 | return -EINVAL; | ||
410 | |||
411 | if (list_empty(&acpi_bus_event_list)) { | ||
412 | |||
413 | set_current_state(TASK_INTERRUPTIBLE); | ||
414 | add_wait_queue(&acpi_bus_event_queue, &wait); | ||
415 | |||
416 | if (list_empty(&acpi_bus_event_list)) | ||
417 | schedule(); | ||
418 | |||
419 | remove_wait_queue(&acpi_bus_event_queue, &wait); | ||
420 | set_current_state(TASK_RUNNING); | ||
421 | |||
422 | if (signal_pending(current)) | ||
423 | return -ERESTARTSYS; | ||
424 | } | ||
425 | |||
426 | spin_lock_irqsave(&acpi_bus_event_lock, flags); | ||
427 | if (!list_empty(&acpi_bus_event_list)) { | ||
428 | entry = list_entry(acpi_bus_event_list.next, | ||
429 | struct acpi_bus_event, node); | ||
430 | list_del(&entry->node); | ||
431 | } | ||
432 | spin_unlock_irqrestore(&acpi_bus_event_lock, flags); | ||
433 | |||
434 | if (!entry) | ||
435 | return -ENODEV; | ||
436 | |||
437 | memcpy(event, entry, sizeof(struct acpi_bus_event)); | ||
438 | |||
439 | kfree(entry); | ||
440 | |||
441 | return 0; | ||
442 | } | ||
443 | |||
444 | #endif /* CONFIG_ACPI_PROC_EVENT */ | ||
445 | |||
446 | /* -------------------------------------------------------------------------- | ||
447 | Notification Handling | 328 | Notification Handling |
448 | -------------------------------------------------------------------------- */ | 329 | -------------------------------------------------------------------------- */ |
449 | 330 | ||
@@ -715,7 +596,6 @@ static int __init acpi_bus_init(void) | |||
715 | { | 596 | { |
716 | int result; | 597 | int result; |
717 | acpi_status status; | 598 | acpi_status status; |
718 | extern acpi_status acpi_os_initialize1(void); | ||
719 | 599 | ||
720 | acpi_os_initialize1(); | 600 | acpi_os_initialize1(); |
721 | 601 | ||
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index d2e617b5b3f6..a55773801c5f 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c | |||
@@ -303,8 +303,6 @@ static void acpi_button_notify(struct acpi_device *device, u32 event) | |||
303 | 303 | ||
304 | pm_wakeup_event(&device->dev, 0); | 304 | pm_wakeup_event(&device->dev, 0); |
305 | } | 305 | } |
306 | |||
307 | acpi_bus_generate_proc_event(device, event, ++button->pushed); | ||
308 | break; | 306 | break; |
309 | default: | 307 | default: |
310 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 308 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c index 826560753389..c90112ceb570 100644 --- a/drivers/acpi/dock.c +++ b/drivers/acpi/dock.c | |||
@@ -1055,7 +1055,7 @@ err_unregister: | |||
1055 | * | 1055 | * |
1056 | * This is called by acpi_walk_namespace to look for dock stations and bays. | 1056 | * This is called by acpi_walk_namespace to look for dock stations and bays. |
1057 | */ | 1057 | */ |
1058 | static __init acpi_status | 1058 | static acpi_status __init |
1059 | find_dock_and_bay(acpi_handle handle, u32 lvl, void *context, void **rv) | 1059 | find_dock_and_bay(acpi_handle handle, u32 lvl, void *context, void **rv) |
1060 | { | 1060 | { |
1061 | if (is_dock(handle) || is_ejectable_bay(handle)) | 1061 | if (is_dock(handle) || is_ejectable_bay(handle)) |
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 80403c1a89f8..34448038724b 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -948,7 +948,7 @@ static int ec_enlarge_storm_threshold(const struct dmi_system_id *id) | |||
948 | return 0; | 948 | return 0; |
949 | } | 949 | } |
950 | 950 | ||
951 | static struct dmi_system_id __initdata ec_dmi_table[] = { | 951 | static struct dmi_system_id ec_dmi_table[] __initdata = { |
952 | { | 952 | { |
953 | ec_skip_dsdt_scan, "Compal JFL92", { | 953 | ec_skip_dsdt_scan, "Compal JFL92", { |
954 | DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"), | 954 | DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"), |
diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c index 1442737cedec..8247fcdde079 100644 --- a/drivers/acpi/event.c +++ b/drivers/acpi/event.c | |||
@@ -21,100 +21,6 @@ | |||
21 | #define _COMPONENT ACPI_SYSTEM_COMPONENT | 21 | #define _COMPONENT ACPI_SYSTEM_COMPONENT |
22 | ACPI_MODULE_NAME("event"); | 22 | ACPI_MODULE_NAME("event"); |
23 | 23 | ||
24 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
25 | /* Global vars for handling event proc entry */ | ||
26 | static DEFINE_SPINLOCK(acpi_system_event_lock); | ||
27 | int event_is_open = 0; | ||
28 | extern struct list_head acpi_bus_event_list; | ||
29 | extern wait_queue_head_t acpi_bus_event_queue; | ||
30 | |||
31 | static int acpi_system_open_event(struct inode *inode, struct file *file) | ||
32 | { | ||
33 | spin_lock_irq(&acpi_system_event_lock); | ||
34 | |||
35 | if (event_is_open) | ||
36 | goto out_busy; | ||
37 | |||
38 | event_is_open = 1; | ||
39 | |||
40 | spin_unlock_irq(&acpi_system_event_lock); | ||
41 | return 0; | ||
42 | |||
43 | out_busy: | ||
44 | spin_unlock_irq(&acpi_system_event_lock); | ||
45 | return -EBUSY; | ||
46 | } | ||
47 | |||
48 | static ssize_t | ||
49 | acpi_system_read_event(struct file *file, char __user * buffer, size_t count, | ||
50 | loff_t * ppos) | ||
51 | { | ||
52 | int result = 0; | ||
53 | struct acpi_bus_event event; | ||
54 | static char str[ACPI_MAX_STRING]; | ||
55 | static int chars_remaining = 0; | ||
56 | static char *ptr; | ||
57 | |||
58 | if (!chars_remaining) { | ||
59 | memset(&event, 0, sizeof(struct acpi_bus_event)); | ||
60 | |||
61 | if ((file->f_flags & O_NONBLOCK) | ||
62 | && (list_empty(&acpi_bus_event_list))) | ||
63 | return -EAGAIN; | ||
64 | |||
65 | result = acpi_bus_receive_event(&event); | ||
66 | if (result) | ||
67 | return result; | ||
68 | |||
69 | chars_remaining = sprintf(str, "%s %s %08x %08x\n", | ||
70 | event.device_class ? event. | ||
71 | device_class : "<unknown>", | ||
72 | event.bus_id ? event. | ||
73 | bus_id : "<unknown>", event.type, | ||
74 | event.data); | ||
75 | ptr = str; | ||
76 | } | ||
77 | |||
78 | if (chars_remaining < count) { | ||
79 | count = chars_remaining; | ||
80 | } | ||
81 | |||
82 | if (copy_to_user(buffer, ptr, count)) | ||
83 | return -EFAULT; | ||
84 | |||
85 | *ppos += count; | ||
86 | chars_remaining -= count; | ||
87 | ptr += count; | ||
88 | |||
89 | return count; | ||
90 | } | ||
91 | |||
92 | static int acpi_system_close_event(struct inode *inode, struct file *file) | ||
93 | { | ||
94 | spin_lock_irq(&acpi_system_event_lock); | ||
95 | event_is_open = 0; | ||
96 | spin_unlock_irq(&acpi_system_event_lock); | ||
97 | return 0; | ||
98 | } | ||
99 | |||
100 | static unsigned int acpi_system_poll_event(struct file *file, poll_table * wait) | ||
101 | { | ||
102 | poll_wait(file, &acpi_bus_event_queue, wait); | ||
103 | if (!list_empty(&acpi_bus_event_list)) | ||
104 | return POLLIN | POLLRDNORM; | ||
105 | return 0; | ||
106 | } | ||
107 | |||
108 | static const struct file_operations acpi_system_event_ops = { | ||
109 | .owner = THIS_MODULE, | ||
110 | .open = acpi_system_open_event, | ||
111 | .read = acpi_system_read_event, | ||
112 | .release = acpi_system_close_event, | ||
113 | .poll = acpi_system_poll_event, | ||
114 | .llseek = default_llseek, | ||
115 | }; | ||
116 | #endif /* CONFIG_ACPI_PROC_EVENT */ | ||
117 | |||
118 | /* ACPI notifier chain */ | 24 | /* ACPI notifier chain */ |
119 | static BLOCKING_NOTIFIER_HEAD(acpi_chain_head); | 25 | static BLOCKING_NOTIFIER_HEAD(acpi_chain_head); |
120 | 26 | ||
@@ -280,9 +186,6 @@ static int acpi_event_genetlink_init(void) | |||
280 | 186 | ||
281 | static int __init acpi_event_init(void) | 187 | static int __init acpi_event_init(void) |
282 | { | 188 | { |
283 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
284 | struct proc_dir_entry *entry; | ||
285 | #endif | ||
286 | int error = 0; | 189 | int error = 0; |
287 | 190 | ||
288 | if (acpi_disabled) | 191 | if (acpi_disabled) |
@@ -293,15 +196,6 @@ static int __init acpi_event_init(void) | |||
293 | if (error) | 196 | if (error) |
294 | printk(KERN_WARNING PREFIX | 197 | printk(KERN_WARNING PREFIX |
295 | "Failed to create genetlink family for ACPI event\n"); | 198 | "Failed to create genetlink family for ACPI event\n"); |
296 | |||
297 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
298 | /* 'event' [R] */ | ||
299 | entry = proc_create("event", S_IRUSR, acpi_root_dir, | ||
300 | &acpi_system_event_ops); | ||
301 | if (!entry) | ||
302 | return -ENODEV; | ||
303 | #endif | ||
304 | |||
305 | return 0; | 199 | return 0; |
306 | } | 200 | } |
307 | 201 | ||
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h index 5da44e81dd4d..20f423337e1f 100644 --- a/drivers/acpi/internal.h +++ b/drivers/acpi/internal.h | |||
@@ -23,6 +23,7 @@ | |||
23 | 23 | ||
24 | #define PREFIX "ACPI: " | 24 | #define PREFIX "ACPI: " |
25 | 25 | ||
26 | acpi_status acpi_os_initialize1(void); | ||
26 | int init_acpi_device_notify(void); | 27 | int init_acpi_device_notify(void); |
27 | int acpi_scan_init(void); | 28 | int acpi_scan_init(void); |
28 | #ifdef CONFIG_ACPI_PCI_SLOT | 29 | #ifdef CONFIG_ACPI_PCI_SLOT |
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index 33e609f63585..2e82e5d76930 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c | |||
@@ -159,7 +159,7 @@ acpi_table_print_srat_entry(struct acpi_subtable_header *header) | |||
159 | * distance than the others. | 159 | * distance than the others. |
160 | * Do some quick checks here and only use the SLIT if it passes. | 160 | * Do some quick checks here and only use the SLIT if it passes. |
161 | */ | 161 | */ |
162 | static __init int slit_valid(struct acpi_table_slit *slit) | 162 | static int __init slit_valid(struct acpi_table_slit *slit) |
163 | { | 163 | { |
164 | int i, j; | 164 | int i, j; |
165 | int d = slit->locality_count; | 165 | int d = slit->locality_count; |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 6ab2c3505520..eb95978854a3 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -52,6 +52,7 @@ | |||
52 | #include <acpi/acpi.h> | 52 | #include <acpi/acpi.h> |
53 | #include <acpi/acpi_bus.h> | 53 | #include <acpi/acpi_bus.h> |
54 | #include <acpi/processor.h> | 54 | #include <acpi/processor.h> |
55 | #include "internal.h" | ||
55 | 56 | ||
56 | #define _COMPONENT ACPI_OS_SERVICES | 57 | #define _COMPONENT ACPI_OS_SERVICES |
57 | ACPI_MODULE_NAME("osl"); | 58 | ACPI_MODULE_NAME("osl"); |
@@ -1351,8 +1352,8 @@ struct osi_setup_entry { | |||
1351 | bool enable; | 1352 | bool enable; |
1352 | }; | 1353 | }; |
1353 | 1354 | ||
1354 | static struct osi_setup_entry __initdata | 1355 | static struct osi_setup_entry |
1355 | osi_setup_entries[OSI_STRING_ENTRIES_MAX] = { | 1356 | osi_setup_entries[OSI_STRING_ENTRIES_MAX] __initdata = { |
1356 | {"Module Device", true}, | 1357 | {"Module Device", true}, |
1357 | {"Processor Device", true}, | 1358 | {"Processor Device", true}, |
1358 | {"3.0 _SCP Extensions", true}, | 1359 | {"3.0 _SCP Extensions", true}, |
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index a5e9f4a5b281..cf34d903f4fb 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
@@ -28,7 +28,7 @@ static int __init set_no_mwait(const struct dmi_system_id *id) | |||
28 | return 0; | 28 | return 0; |
29 | } | 29 | } |
30 | 30 | ||
31 | static struct dmi_system_id __initdata processor_idle_dmi_table[] = { | 31 | static struct dmi_system_id processor_idle_dmi_table[] __initdata = { |
32 | { | 32 | { |
33 | set_no_mwait, "Extensa 5220", { | 33 | set_no_mwait, "Extensa 5220", { |
34 | DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), | 34 | DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), |
diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c index 870eaf5fa547..bd11ef93b0ce 100644 --- a/drivers/acpi/processor_driver.c +++ b/drivers/acpi/processor_driver.c | |||
@@ -91,21 +91,17 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data) | |||
91 | acpi_processor_ppc_has_changed(pr, 1); | 91 | acpi_processor_ppc_has_changed(pr, 1); |
92 | if (saved == pr->performance_platform_limit) | 92 | if (saved == pr->performance_platform_limit) |
93 | break; | 93 | break; |
94 | acpi_bus_generate_proc_event(device, event, | ||
95 | pr->performance_platform_limit); | ||
96 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 94 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
97 | dev_name(&device->dev), event, | 95 | dev_name(&device->dev), event, |
98 | pr->performance_platform_limit); | 96 | pr->performance_platform_limit); |
99 | break; | 97 | break; |
100 | case ACPI_PROCESSOR_NOTIFY_POWER: | 98 | case ACPI_PROCESSOR_NOTIFY_POWER: |
101 | acpi_processor_cst_has_changed(pr); | 99 | acpi_processor_cst_has_changed(pr); |
102 | acpi_bus_generate_proc_event(device, event, 0); | ||
103 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 100 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
104 | dev_name(&device->dev), event, 0); | 101 | dev_name(&device->dev), event, 0); |
105 | break; | 102 | break; |
106 | case ACPI_PROCESSOR_NOTIFY_THROTTLING: | 103 | case ACPI_PROCESSOR_NOTIFY_THROTTLING: |
107 | acpi_processor_tstate_has_changed(pr); | 104 | acpi_processor_tstate_has_changed(pr); |
108 | acpi_bus_generate_proc_event(device, event, 0); | ||
109 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 105 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
110 | dev_name(&device->dev), event, 0); | 106 | dev_name(&device->dev), event, 0); |
111 | break; | 107 | break; |
diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index b6241eeb1132..aef7e1cd1e5d 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c | |||
@@ -873,14 +873,9 @@ static void acpi_sbs_callback(void *context) | |||
873 | u8 saved_charger_state = sbs->charger_present; | 873 | u8 saved_charger_state = sbs->charger_present; |
874 | u8 saved_battery_state; | 874 | u8 saved_battery_state; |
875 | acpi_ac_get_present(sbs); | 875 | acpi_ac_get_present(sbs); |
876 | if (sbs->charger_present != saved_charger_state) { | 876 | if (sbs->charger_present != saved_charger_state) |
877 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
878 | acpi_bus_generate_proc_event4(ACPI_AC_CLASS, ACPI_AC_DIR_NAME, | ||
879 | ACPI_SBS_NOTIFY_STATUS, | ||
880 | sbs->charger_present); | ||
881 | #endif | ||
882 | kobject_uevent(&sbs->charger.dev->kobj, KOBJ_CHANGE); | 877 | kobject_uevent(&sbs->charger.dev->kobj, KOBJ_CHANGE); |
883 | } | 878 | |
884 | if (sbs->manager_present) { | 879 | if (sbs->manager_present) { |
885 | for (id = 0; id < MAX_SBS_BAT; ++id) { | 880 | for (id = 0; id < MAX_SBS_BAT; ++id) { |
886 | if (!(sbs->batteries_supported & (1 << id))) | 881 | if (!(sbs->batteries_supported & (1 << id))) |
@@ -890,12 +885,6 @@ static void acpi_sbs_callback(void *context) | |||
890 | acpi_battery_read(bat); | 885 | acpi_battery_read(bat); |
891 | if (saved_battery_state == bat->present) | 886 | if (saved_battery_state == bat->present) |
892 | continue; | 887 | continue; |
893 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
894 | acpi_bus_generate_proc_event4(ACPI_BATTERY_CLASS, | ||
895 | bat->name, | ||
896 | ACPI_SBS_NOTIFY_STATUS, | ||
897 | bat->present); | ||
898 | #endif | ||
899 | kobject_uevent(&bat->bat.dev->kobj, KOBJ_CHANGE); | 888 | kobject_uevent(&bat->bat.dev->kobj, KOBJ_CHANGE); |
900 | } | 889 | } |
901 | } | 890 | } |
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index 8a46c924effd..7d9e285da452 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -999,6 +999,28 @@ struct bus_type acpi_bus_type = { | |||
999 | .uevent = acpi_device_uevent, | 999 | .uevent = acpi_device_uevent, |
1000 | }; | 1000 | }; |
1001 | 1001 | ||
1002 | static void acpi_bus_data_handler(acpi_handle handle, void *context) | ||
1003 | { | ||
1004 | /* Intentionally empty. */ | ||
1005 | } | ||
1006 | |||
1007 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device) | ||
1008 | { | ||
1009 | acpi_status status; | ||
1010 | |||
1011 | if (!device) | ||
1012 | return -EINVAL; | ||
1013 | |||
1014 | status = acpi_get_data(handle, acpi_bus_data_handler, (void **)device); | ||
1015 | if (ACPI_FAILURE(status) || !*device) { | ||
1016 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No context for object [%p]\n", | ||
1017 | handle)); | ||
1018 | return -ENODEV; | ||
1019 | } | ||
1020 | return 0; | ||
1021 | } | ||
1022 | EXPORT_SYMBOL_GPL(acpi_bus_get_device); | ||
1023 | |||
1002 | int acpi_device_add(struct acpi_device *device, | 1024 | int acpi_device_add(struct acpi_device *device, |
1003 | void (*release)(struct device *)) | 1025 | void (*release)(struct device *)) |
1004 | { | 1026 | { |
@@ -1210,14 +1232,6 @@ acpi_bus_get_ejd(acpi_handle handle, acpi_handle *ejd) | |||
1210 | } | 1232 | } |
1211 | EXPORT_SYMBOL_GPL(acpi_bus_get_ejd); | 1233 | EXPORT_SYMBOL_GPL(acpi_bus_get_ejd); |
1212 | 1234 | ||
1213 | void acpi_bus_data_handler(acpi_handle handle, void *context) | ||
1214 | { | ||
1215 | |||
1216 | /* TBD */ | ||
1217 | |||
1218 | return; | ||
1219 | } | ||
1220 | |||
1221 | static int acpi_bus_extract_wakeup_device_power_package(acpi_handle handle, | 1235 | static int acpi_bus_extract_wakeup_device_power_package(acpi_handle handle, |
1222 | struct acpi_device_wakeup *wakeup) | 1236 | struct acpi_device_wakeup *wakeup) |
1223 | { | 1237 | { |
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 187ab61889e6..72554fd31044 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
@@ -141,7 +141,7 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d) | |||
141 | return 0; | 141 | return 0; |
142 | } | 142 | } |
143 | 143 | ||
144 | static struct dmi_system_id __initdata acpisleep_dmi_table[] = { | 144 | static struct dmi_system_id acpisleep_dmi_table[] __initdata = { |
145 | { | 145 | { |
146 | .callback = init_old_suspend_ordering, | 146 | .callback = init_old_suspend_ordering, |
147 | .ident = "Abit KN9 (nForce4 variant)", | 147 | .ident = "Abit KN9 (nForce4 variant)", |
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index a33821ca3895..547a906a7662 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c | |||
@@ -769,7 +769,6 @@ static int thermal_notify(struct thermal_zone_device *thermal, int trip, | |||
769 | else | 769 | else |
770 | return 0; | 770 | return 0; |
771 | 771 | ||
772 | acpi_bus_generate_proc_event(tz->device, type, 1); | ||
773 | acpi_bus_generate_netlink_event(tz->device->pnp.device_class, | 772 | acpi_bus_generate_netlink_event(tz->device->pnp.device_class, |
774 | dev_name(&tz->device->dev), type, 1); | 773 | dev_name(&tz->device->dev), type, 1); |
775 | 774 | ||
@@ -980,14 +979,12 @@ static void acpi_thermal_notify(struct acpi_device *device, u32 event) | |||
980 | case ACPI_THERMAL_NOTIFY_THRESHOLDS: | 979 | case ACPI_THERMAL_NOTIFY_THRESHOLDS: |
981 | acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_THRESHOLDS); | 980 | acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_THRESHOLDS); |
982 | acpi_thermal_check(tz); | 981 | acpi_thermal_check(tz); |
983 | acpi_bus_generate_proc_event(device, event, 0); | ||
984 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 982 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
985 | dev_name(&device->dev), event, 0); | 983 | dev_name(&device->dev), event, 0); |
986 | break; | 984 | break; |
987 | case ACPI_THERMAL_NOTIFY_DEVICES: | 985 | case ACPI_THERMAL_NOTIFY_DEVICES: |
988 | acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES); | 986 | acpi_thermal_trips_update(tz, ACPI_TRIPS_REFRESH_DEVICES); |
989 | acpi_thermal_check(tz); | 987 | acpi_thermal_check(tz); |
990 | acpi_bus_generate_proc_event(device, event, 0); | ||
991 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 988 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
992 | dev_name(&device->dev), event, 0); | 989 | dev_name(&device->dev), event, 0); |
993 | break; | 990 | break; |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index e1284b8dc6ee..9c4ebfcbe865 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -1577,7 +1577,6 @@ static void acpi_video_bus_notify(struct acpi_device *device, u32 event) | |||
1577 | switch (event) { | 1577 | switch (event) { |
1578 | case ACPI_VIDEO_NOTIFY_SWITCH: /* User requested a switch, | 1578 | case ACPI_VIDEO_NOTIFY_SWITCH: /* User requested a switch, |
1579 | * most likely via hotkey. */ | 1579 | * most likely via hotkey. */ |
1580 | acpi_bus_generate_proc_event(device, event, 0); | ||
1581 | keycode = KEY_SWITCHVIDEOMODE; | 1580 | keycode = KEY_SWITCHVIDEOMODE; |
1582 | break; | 1581 | break; |
1583 | 1582 | ||
@@ -1585,20 +1584,16 @@ static void acpi_video_bus_notify(struct acpi_device *device, u32 event) | |||
1585 | * connector. */ | 1584 | * connector. */ |
1586 | acpi_video_device_enumerate(video); | 1585 | acpi_video_device_enumerate(video); |
1587 | acpi_video_device_rebind(video); | 1586 | acpi_video_device_rebind(video); |
1588 | acpi_bus_generate_proc_event(device, event, 0); | ||
1589 | keycode = KEY_SWITCHVIDEOMODE; | 1587 | keycode = KEY_SWITCHVIDEOMODE; |
1590 | break; | 1588 | break; |
1591 | 1589 | ||
1592 | case ACPI_VIDEO_NOTIFY_CYCLE: /* Cycle Display output hotkey pressed. */ | 1590 | case ACPI_VIDEO_NOTIFY_CYCLE: /* Cycle Display output hotkey pressed. */ |
1593 | acpi_bus_generate_proc_event(device, event, 0); | ||
1594 | keycode = KEY_SWITCHVIDEOMODE; | 1591 | keycode = KEY_SWITCHVIDEOMODE; |
1595 | break; | 1592 | break; |
1596 | case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: /* Next Display output hotkey pressed. */ | 1593 | case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: /* Next Display output hotkey pressed. */ |
1597 | acpi_bus_generate_proc_event(device, event, 0); | ||
1598 | keycode = KEY_VIDEO_NEXT; | 1594 | keycode = KEY_VIDEO_NEXT; |
1599 | break; | 1595 | break; |
1600 | case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: /* previous Display output hotkey pressed. */ | 1596 | case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: /* previous Display output hotkey pressed. */ |
1601 | acpi_bus_generate_proc_event(device, event, 0); | ||
1602 | keycode = KEY_VIDEO_PREV; | 1597 | keycode = KEY_VIDEO_PREV; |
1603 | break; | 1598 | break; |
1604 | 1599 | ||
@@ -1641,31 +1636,26 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data) | |||
1641 | case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */ | 1636 | case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */ |
1642 | if (brightness_switch_enabled) | 1637 | if (brightness_switch_enabled) |
1643 | acpi_video_switch_brightness(video_device, event); | 1638 | acpi_video_switch_brightness(video_device, event); |
1644 | acpi_bus_generate_proc_event(device, event, 0); | ||
1645 | keycode = KEY_BRIGHTNESS_CYCLE; | 1639 | keycode = KEY_BRIGHTNESS_CYCLE; |
1646 | break; | 1640 | break; |
1647 | case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */ | 1641 | case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */ |
1648 | if (brightness_switch_enabled) | 1642 | if (brightness_switch_enabled) |
1649 | acpi_video_switch_brightness(video_device, event); | 1643 | acpi_video_switch_brightness(video_device, event); |
1650 | acpi_bus_generate_proc_event(device, event, 0); | ||
1651 | keycode = KEY_BRIGHTNESSUP; | 1644 | keycode = KEY_BRIGHTNESSUP; |
1652 | break; | 1645 | break; |
1653 | case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */ | 1646 | case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */ |
1654 | if (brightness_switch_enabled) | 1647 | if (brightness_switch_enabled) |
1655 | acpi_video_switch_brightness(video_device, event); | 1648 | acpi_video_switch_brightness(video_device, event); |
1656 | acpi_bus_generate_proc_event(device, event, 0); | ||
1657 | keycode = KEY_BRIGHTNESSDOWN; | 1649 | keycode = KEY_BRIGHTNESSDOWN; |
1658 | break; | 1650 | break; |
1659 | case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightness */ | 1651 | case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightness */ |
1660 | if (brightness_switch_enabled) | 1652 | if (brightness_switch_enabled) |
1661 | acpi_video_switch_brightness(video_device, event); | 1653 | acpi_video_switch_brightness(video_device, event); |
1662 | acpi_bus_generate_proc_event(device, event, 0); | ||
1663 | keycode = KEY_BRIGHTNESS_ZERO; | 1654 | keycode = KEY_BRIGHTNESS_ZERO; |
1664 | break; | 1655 | break; |
1665 | case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */ | 1656 | case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */ |
1666 | if (brightness_switch_enabled) | 1657 | if (brightness_switch_enabled) |
1667 | acpi_video_switch_brightness(video_device, event); | 1658 | acpi_video_switch_brightness(video_device, event); |
1668 | acpi_bus_generate_proc_event(device, event, 0); | ||
1669 | keycode = KEY_DISPLAY_OFF; | 1659 | keycode = KEY_DISPLAY_OFF; |
1670 | break; | 1660 | break; |
1671 | default: | 1661 | default: |
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index bf2349dbbf7f..7cc1fe2241fd 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c | |||
@@ -876,11 +876,6 @@ found: | |||
876 | if (useinput) | 876 | if (useinput) |
877 | sonypi_report_input_event(event); | 877 | sonypi_report_input_event(event); |
878 | 878 | ||
879 | #ifdef CONFIG_ACPI | ||
880 | if (sonypi_acpi_device) | ||
881 | acpi_bus_generate_proc_event(sonypi_acpi_device, 1, event); | ||
882 | #endif | ||
883 | |||
884 | kfifo_in_locked(&sonypi_device.fifo, (unsigned char *)&event, | 879 | kfifo_in_locked(&sonypi_device.fifo, (unsigned char *)&event, |
885 | sizeof(event), &sonypi_device.fifo_lock); | 880 | sizeof(event), &sonypi_device.fifo_lock); |
886 | kill_fasync(&sonypi_device.fifo_async, SIGIO, POLL_IN); | 881 | kill_fasync(&sonypi_device.fifo_async, SIGIO, POLL_IN); |
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c index c35e8ad6db01..5394fffdf167 100644 --- a/drivers/pci/hotplug/acpiphp_ibm.c +++ b/drivers/pci/hotplug/acpiphp_ibm.c | |||
@@ -270,7 +270,6 @@ static void ibm_handle_events(acpi_handle handle, u32 event, void *context) | |||
270 | 270 | ||
271 | if (subevent == 0x80) { | 271 | if (subevent == 0x80) { |
272 | dbg("%s: generationg bus event\n", __func__); | 272 | dbg("%s: generationg bus event\n", __func__); |
273 | acpi_bus_generate_proc_event(note->device, note->event, detail); | ||
274 | acpi_bus_generate_netlink_event(note->device->pnp.device_class, | 273 | acpi_bus_generate_netlink_event(note->device->pnp.device_class, |
275 | dev_name(¬e->device->dev), | 274 | dev_name(¬e->device->dev), |
276 | note->event, detail); | 275 | note->event, detail); |
diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c index 8e268da6fdbd..0e9c169b42f8 100644 --- a/drivers/platform/x86/asus-laptop.c +++ b/drivers/platform/x86/asus-laptop.c | |||
@@ -1543,7 +1543,6 @@ static void asus_acpi_notify(struct acpi_device *device, u32 event) | |||
1543 | 1543 | ||
1544 | /* TODO Find a better way to handle events count. */ | 1544 | /* TODO Find a better way to handle events count. */ |
1545 | count = asus->event_count[event % 128]++; | 1545 | count = asus->event_count[event % 128]++; |
1546 | acpi_bus_generate_proc_event(asus->device, event, count); | ||
1547 | acpi_bus_generate_netlink_event(asus->device->pnp.device_class, | 1546 | acpi_bus_generate_netlink_event(asus->device->pnp.device_class, |
1548 | dev_name(&asus->device->dev), event, | 1547 | dev_name(&asus->device->dev), event, |
1549 | count); | 1548 | count); |
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c index 5d26e70bed6c..a6afd4108beb 100644 --- a/drivers/platform/x86/eeepc-laptop.c +++ b/drivers/platform/x86/eeepc-laptop.c | |||
@@ -1269,7 +1269,6 @@ static void eeepc_acpi_notify(struct acpi_device *device, u32 event) | |||
1269 | if (event > ACPI_MAX_SYS_NOTIFY) | 1269 | if (event > ACPI_MAX_SYS_NOTIFY) |
1270 | return; | 1270 | return; |
1271 | count = eeepc->event_count[event % 128]++; | 1271 | count = eeepc->event_count[event % 128]++; |
1272 | acpi_bus_generate_proc_event(device, event, count); | ||
1273 | acpi_bus_generate_netlink_event(device->pnp.device_class, | 1272 | acpi_bus_generate_netlink_event(device->pnp.device_class, |
1274 | dev_name(&device->dev), event, | 1273 | dev_name(&device->dev), event, |
1275 | count); | 1274 | count); |
diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c index 1c9386e7c58c..52b8a97efde1 100644 --- a/drivers/platform/x86/fujitsu-laptop.c +++ b/drivers/platform/x86/fujitsu-laptop.c | |||
@@ -773,8 +773,6 @@ static void acpi_fujitsu_notify(struct acpi_device *device, u32 event) | |||
773 | else | 773 | else |
774 | set_lcd_level(newb); | 774 | set_lcd_level(newb); |
775 | } | 775 | } |
776 | acpi_bus_generate_proc_event(fujitsu->dev, | ||
777 | ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS, 0); | ||
778 | keycode = KEY_BRIGHTNESSUP; | 776 | keycode = KEY_BRIGHTNESSUP; |
779 | } else if (oldb > newb) { | 777 | } else if (oldb > newb) { |
780 | if (disable_brightness_adjust != 1) { | 778 | if (disable_brightness_adjust != 1) { |
@@ -783,8 +781,6 @@ static void acpi_fujitsu_notify(struct acpi_device *device, u32 event) | |||
783 | else | 781 | else |
784 | set_lcd_level(newb); | 782 | set_lcd_level(newb); |
785 | } | 783 | } |
786 | acpi_bus_generate_proc_event(fujitsu->dev, | ||
787 | ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS, 0); | ||
788 | keycode = KEY_BRIGHTNESSDOWN; | 784 | keycode = KEY_BRIGHTNESSDOWN; |
789 | } | 785 | } |
790 | break; | 786 | break; |
diff --git a/drivers/platform/x86/panasonic-laptop.c b/drivers/platform/x86/panasonic-laptop.c index 4add9a31bf60..984253da365d 100644 --- a/drivers/platform/x86/panasonic-laptop.c +++ b/drivers/platform/x86/panasonic-laptop.c | |||
@@ -464,9 +464,6 @@ static void acpi_pcc_generate_keyinput(struct pcc_acpi *pcc) | |||
464 | "error getting hotkey status\n")); | 464 | "error getting hotkey status\n")); |
465 | return; | 465 | return; |
466 | } | 466 | } |
467 | |||
468 | acpi_bus_generate_proc_event(pcc->device, HKEY_NOTIFY, result); | ||
469 | |||
470 | if (!sparse_keymap_report_event(hotk_input_dev, | 467 | if (!sparse_keymap_report_event(hotk_input_dev, |
471 | result & 0xf, result & 0x80, false)) | 468 | result & 0xf, result & 0x80, false)) |
472 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 469 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, |
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index 2ac045f27f10..069821b1fc22 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c | |||
@@ -1275,9 +1275,6 @@ static void sony_nc_notify(struct acpi_device *device, u32 event) | |||
1275 | ev_type = HOTKEY; | 1275 | ev_type = HOTKEY; |
1276 | sony_laptop_report_input_event(real_ev); | 1276 | sony_laptop_report_input_event(real_ev); |
1277 | } | 1277 | } |
1278 | |||
1279 | acpi_bus_generate_proc_event(sony_nc_acpi_device, ev_type, real_ev); | ||
1280 | |||
1281 | acpi_bus_generate_netlink_event(sony_nc_acpi_device->pnp.device_class, | 1278 | acpi_bus_generate_netlink_event(sony_nc_acpi_device->pnp.device_class, |
1282 | dev_name(&sony_nc_acpi_device->dev), ev_type, real_ev); | 1279 | dev_name(&sony_nc_acpi_device->dev), ev_type, real_ev); |
1283 | } | 1280 | } |
@@ -4243,7 +4240,6 @@ static irqreturn_t sony_pic_irq(int irq, void *dev_id) | |||
4243 | 4240 | ||
4244 | found: | 4241 | found: |
4245 | sony_laptop_report_input_event(device_event); | 4242 | sony_laptop_report_input_event(device_event); |
4246 | acpi_bus_generate_proc_event(dev->acpi_dev, 1, device_event); | ||
4247 | sonypi_compat_report_event(device_event); | 4243 | sonypi_compat_report_event(device_event); |
4248 | return IRQ_HANDLED; | 4244 | return IRQ_HANDLED; |
4249 | } | 4245 | } |
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index 54d31c0a9840..be67e5e28d18 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c | |||
@@ -2022,8 +2022,6 @@ static u32 hotkey_driver_mask; /* events needed by the driver */ | |||
2022 | static u32 hotkey_user_mask; /* events visible to userspace */ | 2022 | static u32 hotkey_user_mask; /* events visible to userspace */ |
2023 | static u32 hotkey_acpi_mask; /* events enabled in firmware */ | 2023 | static u32 hotkey_acpi_mask; /* events enabled in firmware */ |
2024 | 2024 | ||
2025 | static unsigned int hotkey_report_mode; | ||
2026 | |||
2027 | static u16 *hotkey_keycode_map; | 2025 | static u16 *hotkey_keycode_map; |
2028 | 2026 | ||
2029 | static struct attribute_set *hotkey_dev_attributes; | 2027 | static struct attribute_set *hotkey_dev_attributes; |
@@ -2282,10 +2280,6 @@ static struct tp_acpi_drv_struct ibm_hotkey_acpidriver; | |||
2282 | static void tpacpi_hotkey_send_key(unsigned int scancode) | 2280 | static void tpacpi_hotkey_send_key(unsigned int scancode) |
2283 | { | 2281 | { |
2284 | tpacpi_input_send_key_masked(scancode); | 2282 | tpacpi_input_send_key_masked(scancode); |
2285 | if (hotkey_report_mode < 2) { | ||
2286 | acpi_bus_generate_proc_event(ibm_hotkey_acpidriver.device, | ||
2287 | 0x80, TP_HKEY_EV_HOTKEY_BASE + scancode); | ||
2288 | } | ||
2289 | } | 2283 | } |
2290 | 2284 | ||
2291 | static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m) | 2285 | static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m) |
@@ -2882,18 +2876,6 @@ static void hotkey_tablet_mode_notify_change(void) | |||
2882 | "hotkey_tablet_mode"); | 2876 | "hotkey_tablet_mode"); |
2883 | } | 2877 | } |
2884 | 2878 | ||
2885 | /* sysfs hotkey report_mode -------------------------------------------- */ | ||
2886 | static ssize_t hotkey_report_mode_show(struct device *dev, | ||
2887 | struct device_attribute *attr, | ||
2888 | char *buf) | ||
2889 | { | ||
2890 | return snprintf(buf, PAGE_SIZE, "%d\n", | ||
2891 | (hotkey_report_mode != 0) ? hotkey_report_mode : 1); | ||
2892 | } | ||
2893 | |||
2894 | static struct device_attribute dev_attr_hotkey_report_mode = | ||
2895 | __ATTR(hotkey_report_mode, S_IRUGO, hotkey_report_mode_show, NULL); | ||
2896 | |||
2897 | /* sysfs wakeup reason (pollable) -------------------------------------- */ | 2879 | /* sysfs wakeup reason (pollable) -------------------------------------- */ |
2898 | static ssize_t hotkey_wakeup_reason_show(struct device *dev, | 2880 | static ssize_t hotkey_wakeup_reason_show(struct device *dev, |
2899 | struct device_attribute *attr, | 2881 | struct device_attribute *attr, |
@@ -2935,7 +2917,6 @@ static struct attribute *hotkey_attributes[] __initdata = { | |||
2935 | &dev_attr_hotkey_enable.attr, | 2917 | &dev_attr_hotkey_enable.attr, |
2936 | &dev_attr_hotkey_bios_enabled.attr, | 2918 | &dev_attr_hotkey_bios_enabled.attr, |
2937 | &dev_attr_hotkey_bios_mask.attr, | 2919 | &dev_attr_hotkey_bios_mask.attr, |
2938 | &dev_attr_hotkey_report_mode.attr, | ||
2939 | &dev_attr_hotkey_wakeup_reason.attr, | 2920 | &dev_attr_hotkey_wakeup_reason.attr, |
2940 | &dev_attr_hotkey_wakeup_hotunplug_complete.attr, | 2921 | &dev_attr_hotkey_wakeup_hotunplug_complete.attr, |
2941 | &dev_attr_hotkey_mask.attr, | 2922 | &dev_attr_hotkey_mask.attr, |
@@ -3439,11 +3420,6 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) | |||
3439 | "initial masks: user=0x%08x, fw=0x%08x, poll=0x%08x\n", | 3420 | "initial masks: user=0x%08x, fw=0x%08x, poll=0x%08x\n", |
3440 | hotkey_user_mask, hotkey_acpi_mask, hotkey_source_mask); | 3421 | hotkey_user_mask, hotkey_acpi_mask, hotkey_source_mask); |
3441 | 3422 | ||
3442 | dbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_HKEY, | ||
3443 | "legacy ibm/hotkey event reporting over procfs %s\n", | ||
3444 | (hotkey_report_mode < 2) ? | ||
3445 | "enabled" : "disabled"); | ||
3446 | |||
3447 | tpacpi_inputdev->open = &hotkey_inputdev_open; | 3423 | tpacpi_inputdev->open = &hotkey_inputdev_open; |
3448 | tpacpi_inputdev->close = &hotkey_inputdev_close; | 3424 | tpacpi_inputdev->close = &hotkey_inputdev_close; |
3449 | 3425 | ||
@@ -3737,13 +3713,6 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event) | |||
3737 | "event happened to %s\n", TPACPI_MAIL); | 3713 | "event happened to %s\n", TPACPI_MAIL); |
3738 | } | 3714 | } |
3739 | 3715 | ||
3740 | /* Legacy events */ | ||
3741 | if (!ignore_acpi_ev && | ||
3742 | (send_acpi_ev || hotkey_report_mode < 2)) { | ||
3743 | acpi_bus_generate_proc_event(ibm->acpi->device, | ||
3744 | event, hkey); | ||
3745 | } | ||
3746 | |||
3747 | /* netlink events */ | 3716 | /* netlink events */ |
3748 | if (!ignore_acpi_ev && send_acpi_ev) { | 3717 | if (!ignore_acpi_ev && send_acpi_ev) { |
3749 | acpi_bus_generate_netlink_event( | 3718 | acpi_bus_generate_netlink_event( |
@@ -8840,11 +8809,6 @@ module_param(brightness_enable, uint, 0444); | |||
8840 | MODULE_PARM_DESC(brightness_enable, | 8809 | MODULE_PARM_DESC(brightness_enable, |
8841 | "Enables backlight control when 1, disables when 0"); | 8810 | "Enables backlight control when 1, disables when 0"); |
8842 | 8811 | ||
8843 | module_param(hotkey_report_mode, uint, 0444); | ||
8844 | MODULE_PARM_DESC(hotkey_report_mode, | ||
8845 | "used for backwards compatibility with userspace, " | ||
8846 | "see documentation"); | ||
8847 | |||
8848 | #ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT | 8812 | #ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT |
8849 | module_param_named(volume_mode, volume_mode, uint, 0444); | 8813 | module_param_named(volume_mode, volume_mode, uint, 0444); |
8850 | MODULE_PARM_DESC(volume_mode, | 8814 | MODULE_PARM_DESC(volume_mode, |
@@ -8975,10 +8939,6 @@ static int __init thinkpad_acpi_module_init(void) | |||
8975 | 8939 | ||
8976 | tpacpi_lifecycle = TPACPI_LIFE_INIT; | 8940 | tpacpi_lifecycle = TPACPI_LIFE_INIT; |
8977 | 8941 | ||
8978 | /* Parameter checking */ | ||
8979 | if (hotkey_report_mode > 2) | ||
8980 | return -EINVAL; | ||
8981 | |||
8982 | /* Driver-level probe */ | 8942 | /* Driver-level probe */ |
8983 | 8943 | ||
8984 | ret = get_thinkpad_model_data(&thinkpad_id); | 8944 | ret = get_thinkpad_model_data(&thinkpad_id); |
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 94383a70c1a3..a87eeda25627 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
@@ -359,7 +359,6 @@ extern void unregister_acpi_bus_notifier(struct notifier_block *nb); | |||
359 | */ | 359 | */ |
360 | 360 | ||
361 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device); | 361 | int acpi_bus_get_device(acpi_handle handle, struct acpi_device **device); |
362 | void acpi_bus_data_handler(acpi_handle handle, void *context); | ||
363 | acpi_status acpi_bus_get_status_handle(acpi_handle handle, | 362 | acpi_status acpi_bus_get_status_handle(acpi_handle handle, |
364 | unsigned long long *sta); | 363 | unsigned long long *sta); |
365 | int acpi_bus_get_status(struct acpi_device *device); | 364 | int acpi_bus_get_status(struct acpi_device *device); |
@@ -379,15 +378,6 @@ bool acpi_bus_can_wakeup(acpi_handle handle); | |||
379 | static inline bool acpi_bus_can_wakeup(acpi_handle handle) { return false; } | 378 | static inline bool acpi_bus_can_wakeup(acpi_handle handle) { return false; } |
380 | #endif | 379 | #endif |
381 | 380 | ||
382 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
383 | int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data); | ||
384 | int acpi_bus_generate_proc_event4(const char *class, const char *bid, u8 type, int data); | ||
385 | int acpi_bus_receive_event(struct acpi_bus_event *event); | ||
386 | #else | ||
387 | static inline int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data) | ||
388 | { return 0; } | ||
389 | #endif | ||
390 | |||
391 | void acpi_scan_lock_acquire(void); | 381 | void acpi_scan_lock_acquire(void); |
392 | void acpi_scan_lock_release(void); | 382 | void acpi_scan_lock_release(void); |
393 | int acpi_scan_add_handler(struct acpi_scan_handler *handler); | 383 | int acpi_scan_add_handler(struct acpi_scan_handler *handler); |