diff options
author | Alexey Starikovskiy <astarikovskiy@suse.de> | 2008-01-11 02:42:57 +0300 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-01-10 20:50:12 -0500 |
commit | b3b233c7d948a5f55185fb5a1b248157b948a1e5 (patch) | |
tree | 4c2be8fc5bd0ade450852818827bc4b576b7c092 /drivers/acpi/ec.c | |
parent | 3e71a87d03055de0b8c8e42aba758ee6494af083 (diff) |
ACPI: EC: Some hardware requires burst mode to operate properly
Burst mode temporary (50 ms) locks EC to do only transactions with
driver, without it some hardware returns abstract garbage.
Reference: http://bugzilla.kernel.org/show_bug.cgi?id=9341
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/ec.c')
-rw-r--r-- | drivers/acpi/ec.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 63862dfe347..445ecbabbe7 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -575,6 +575,8 @@ acpi_ec_space_handler(u32 function, acpi_physical_address address, if (bits != 8 && acpi_strict) return AE_BAD_PARAMETER; + acpi_ec_burst_enable(ec); + if (function == ACPI_READ) { result = acpi_ec_read(ec, address, &temp); *value = temp; @@ -594,6 +596,8 @@ acpi_ec_space_handler(u32 function, acpi_physical_address address, } } + acpi_ec_burst_disable(ec); + switch (result) { case -EINVAL: return AE_BAD_PARAMETER; |