linux/drivers/acpi
Lennart Poettering d7a76e4cb3 ACPI: consolidate functions in acpi ec driver
Unify the following functions:

    acpi_ec_poll_read()
    acpi_ec_poll_write()
    acpi_ec_poll_query()
    acpi_ec_intr_read()
    acpi_ec_intr_write()
    acpi_ec_intr_query()

into:

    acpi_ec_poll_transaction()
    acpi_ec_intr_transaction()

These new functions take as arguments an ACPI EC command, a few bytes
to write to the EC data register and a buffer for a few bytes to read
from the EC data register. The old _read(), _write(), _query() are
just special cases of these functions.

Then unified the code in acpi_ec_poll_transaction() and
acpi_ec_intr_transaction() a little more. Both functions are now just
wrappers around the new acpi_ec_transaction_unlocked() function. The
latter contains the EC access logic, the two original
function now just do their special way of locking and call the the
new function for the actual work.

This saves a lot of very similar code. The primary reason for doing
this, however, is that my driver for MSI 270 laptops needs to issue
some non-standard EC commands in a safe way. Due to this I added a new
exported function similar to ec_write()/ec_write() which is called
ec_transaction() and is essentially just a wrapper around
acpi_ec_{poll,intr}_transaction().

Signed-off-by: Lennart Poettering <mzxreary@0pointer.de>
Acked-by: Luming Yu <luming.yu@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
2006-10-14 00:49:52 -04:00
..
dispatcher ACPI: ACPICA 20060707 2006-07-09 15:15:40 -04:00
events ACPI: ACPICA 20060707 2006-07-09 15:15:40 -04:00
executer Pull acpica-20060707 into test branch 2006-07-10 02:39:41 -04:00
hardware ACPI: Allow setting SCI_EN bit in PM1_CONTROL register 2006-10-10 17:14:44 -07:00
namespace ACPI: ACPICA 20060707 2006-07-09 15:15:40 -04:00
parser ACPI: acpi_os_allocate() fixes 2006-07-10 02:37:22 -04:00
resources ACPI: ACPICA 20060526 2006-06-14 02:44:35 -04:00
sleep ACPI: add 'const' to several ACPI file_operations 2006-07-10 00:04:29 -04:00
tables ACPI: ACPICA 20060707 2006-07-09 15:15:40 -04:00
utilities Pull acpi_os_allocate into test branch 2006-07-10 02:39:47 -04:00
ac.c ACPI: fix boot with acpi=off 2006-08-15 23:16:43 -04:00
acpi_memhotplug.c [PATCH] hot-add-mem x86_64: memory_add_physaddr_to_nid node fixup 2006-10-01 00:39:18 -07:00
asus_acpi.c ACPI: asus_acpi: correct M6N/M6R display nodes 2006-07-01 16:20:10 -04:00
battery.c ACPI: fix boot with acpi=off 2006-08-15 23:16:43 -04:00
blacklist.c [PATCH] x86_64: Clean up and tweak ACPI blacklist year code 2006-03-25 09:10:54 -08:00
bus.c ACPI: add message if firmware_register() init fails 2006-08-15 23:27:38 -04:00
button.c ACPI: add 'const' to several ACPI file_operations 2006-07-10 00:04:29 -04:00
cm_sbs.c [PATCH] acpi NULL noise removal 2006-10-10 15:37:22 -07:00
container.c ACPI: delete acpi_os_free(), use kfree() directly 2006-06-30 03:19:10 -04:00
debug.c ACPI: delete tracing macros from drivers/acpi/*.c 2006-06-27 00:41:40 -04:00
dock.c PCI: docking station: remove dock uevents 2006-08-03 13:20:06 -07:00
ec.c ACPI: consolidate functions in acpi ec driver 2006-10-14 00:49:52 -04:00
event.c ACPI: add 'const' to several ACPI file_operations 2006-07-10 00:04:29 -04:00
fan.c ACPI: add 'const' to several ACPI file_operations 2006-07-10 00:04:29 -04:00
glue.c ACPI: delete acpi_os_free(), use kfree() directly 2006-06-30 03:19:10 -04:00
hotkey.c ACPI: hotkey.c fixes, fix for potential crash of hotkey.c 2006-08-16 18:08:06 -04:00
i2c_ec.c i2c: Constify i2c_algorithm declarations, part 2 2006-09-26 15:38:52 -07:00
i2c_ec.h ACPI: add support for Smart Battery 2006-07-01 16:36:14 -04:00
ibm_acpi.c ACPI: Allow a WAN module enable/disable on a Thinkpad X60. 2006-06-01 20:42:32 -04:00
Kconfig fix drivers/acpi/Kconfig typos 2006-10-03 22:24:43 +02:00
Makefile Revert "Revert "ACPI: dock driver"" 2006-07-09 17:22:28 -04:00
motherboard.c ACPI: delete tracing macros from drivers/acpi/*.c 2006-06-27 00:41:40 -04:00
numa.c ACPI: remove function tracing macros from drivers/acpi/*.c 2006-07-01 16:48:23 -04:00
osl.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
pci_bind.c ACPI: delete tracing macros from drivers/acpi/*.c 2006-06-27 00:41:40 -04:00
pci_irq.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-30 15:39:30 -07:00
pci_link.c ACPI: acpi_os_allocate() fixes 2006-07-10 02:37:22 -04:00
pci_root.c ACPI: pci_root: Remove unneeded acpi_handle from driver. 2006-06-30 02:51:34 -04:00
power.c ACPI: add 'const' to several ACPI file_operations 2006-07-10 00:04:29 -04:00
processor_core.c ACPI: add 'const' to several ACPI file_operations 2006-07-10 00:04:29 -04:00
processor_idle.c [PATCH] maximum latency tracking infrastructure 2006-10-01 00:39:19 -07:00
processor_perflib.c ACPI: delete acpi_os_free(), use kfree() directly 2006-06-30 03:19:10 -04:00
processor_thermal.c ACPI: delete tracing macros from drivers/acpi/*.c 2006-06-27 00:41:40 -04:00
processor_throttling.c ACPI: delete tracing macros from drivers/acpi/*.c 2006-06-27 00:41:40 -04:00
sbs.c ACPI: skip smart battery init when acpi=off 2006-08-15 23:21:37 -04:00
scan.c ACPI: verbose on kset/kobject_register errors 2006-08-15 23:32:24 -04:00
system.c ACPI: add 'const' to several ACPI file_operations 2006-07-10 00:04:29 -04:00
tables.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
thermal.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2006-07-10 15:14:38 -07:00
toshiba_acpi.c [ACPI] Lindent all ACPI files 2005-08-05 00:45:14 -04:00
utils.c ACPI: avoid irqrouter_resume might_sleep oops on resume from S4 2006-08-16 19:23:00 -04:00
video.c Pull acpi_device_handle_cleanup into release branch 2006-07-01 17:19:34 -04:00