• Lennart Poettering's avatar
    ACPI: consolidate functions in acpi ec driver · d7a76e4c
    Lennart Poettering authored
    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: default avatarLennart Poettering <mzxreary@0pointer.de>
    Acked-by: default avatarLuming Yu <luming.yu@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    d7a76e4c
ec.c 35.6 KB