Module Name: src Committed By: jruoho Date: Thu Apr 15 07:02:24 UTC 2010
Modified Files: src/sys/dev/acpi: acpi.c acpi_acad.c acpi_bat.c acpi_button.c acpi_lid.c acpi_tz.c acpivar.h asus_acpi.c dalb_acpi.c smbus_acpi.c sony_acpi.c thinkpad_acpi.c vald_acpi.c valz_acpi.c src/sys/dev/acpi/wmi: wmi_acpi.c Log Message: As discussed with jmcneill@, install a global "bus notification handler" that receives all notifications and deliver notifications to drivers via it. Besides making the code more compact, this has several benefits: * Minimizes the direct interaction with ACPICA and provides a central place that easier to audit. * Drivers do not need to wonder what type of notification handler (ACPI_SYSTEM_NOTIFY or ACPI_DEVICE_NOTIFY) is appropriate. * As the "bus" handles the events, individual drivers do not need to guess that EBUSY is the right thing to do when removal of the notify handler fails upon detach. * This catches also "bus-specific" events. While these remain to be unhandled, these are required for things like PCI hotplug and docking. * Drivers can not go and claim handles they do not own. * This makes it easier to catch unhandled events. To generate a diff of this commit: cvs rdiff -u -r1.174 -r1.175 src/sys/dev/acpi/acpi.c cvs rdiff -u -r1.42 -r1.43 src/sys/dev/acpi/acpi_acad.c cvs rdiff -u -r1.99 -r1.100 src/sys/dev/acpi/acpi_bat.c cvs rdiff -u -r1.34 -r1.35 src/sys/dev/acpi/acpi_button.c cvs rdiff -u -r1.38 -r1.39 src/sys/dev/acpi/acpi_lid.c cvs rdiff -u -r1.64 -r1.65 src/sys/dev/acpi/acpi_tz.c cvs rdiff -u -r1.47 -r1.48 src/sys/dev/acpi/acpivar.h cvs rdiff -u -r1.19 -r1.20 src/sys/dev/acpi/asus_acpi.c cvs rdiff -u -r1.13 -r1.14 src/sys/dev/acpi/dalb_acpi.c cvs rdiff -u -r1.9 -r1.10 src/sys/dev/acpi/smbus_acpi.c cvs rdiff -u -r1.17 -r1.18 src/sys/dev/acpi/sony_acpi.c cvs rdiff -u -r1.29 -r1.30 src/sys/dev/acpi/thinkpad_acpi.c cvs rdiff -u -r1.3 -r1.4 src/sys/dev/acpi/vald_acpi.c cvs rdiff -u -r1.2 -r1.3 src/sys/dev/acpi/valz_acpi.c cvs rdiff -u -r1.3 -r1.4 src/sys/dev/acpi/wmi/wmi_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.