Bug 42945 - EC Errors in dmesg - Dell Precision M6600/04YY4M
EC Errors in dmesg - Dell Precision M6600/04YY4M
Status: CLOSED DUPLICATE of bug 14733
Product: ACPI
Classification: Unclassified
Component: EC
All Linux
: P1 normal
Assigned To: Lan Tianyu
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-16 22:50 UTC by tblanchard.bug
Modified: 2013-04-12 01:57 UTC (History)
3 users (show)

See Also:
Kernel Version:
Tree: Mainline
Regression: No


Attachments
dmesg (55.87 KB, text/plain)
2012-03-16 22:50 UTC, tblanchard.bug
Details
dmicode (28.66 KB, text/plain)
2012-03-16 22:51 UTC, tblanchard.bug
Details
acpidump (197.67 KB, application/octet-stream)
2012-03-16 22:51 UTC, tblanchard.bug
Details

Description tblanchard.bug 2012-03-16 22:50:34 UTC
Created attachment 72614 [details]
dmesg

I have some ACPI EC errors in my dmesg, the computer works fine but I'm reporting them just in case.
Comment 1 tblanchard.bug 2012-03-16 22:51:06 UTC
Created attachment 72615 [details]
dmicode
Comment 2 tblanchard.bug 2012-03-16 22:51:32 UTC
Created attachment 72616 [details]
acpidump
Comment 3 Len Brown 2012-03-20 02:19:14 UTC
[   10.618817] ACPI Exception: AE_TIME, Returned by Handler for [EmbeddedControl] (20110623/evregion-478)
[   10.618843] ACPI Error: Method parse/execution failed [\_SB_.PCI0.LPCB.ECDV.ECR1] (Node ffff880126a515a0), AE_TIME (20110623/psparse-536)
[   10.618853] ACPI Error: Method parse/execution failed [\ECRB] (Node ffff880126a51708), AE_TIME (20110623/psparse-536)
[   10.618857] ACPI Error: Method parse/execution failed [\ECG5] (Node ffff880126a51820), AE_TIME (20110623/psparse-536)
[   10.618860] ACPI Error: Method parse/execution failed [\_SB_.AC__._PSR] (Node ffff880126a51f00), AE_TIME (20110623/psparse-536)
[   10.618879] ACPI Exception: AE_TIME, Error reading AC Adapter state (20110623/ac-118)
[   11.474280] ACPI: EC: input buffer is not empty, aborting transaction


FYI _PSR failing means that your AC vs DC status may get confused.
Comment 4 Lan Tianyu 2013-04-09 09:42:52 UTC
Please attach the output of dmesg with the following patch.
https://bugzilla.kernel.org/attachment.cgi?id=96101

Debug
(1) Try with kernel parameter "ec.ec_delay=5000"

(2) Try the following patch.
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 57c676a..12aea77 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -124,7 +124,7 @@ struct transaction {
 struct acpi_ec *boot_ec, *first_ec;
 EXPORT_SYMBOL(first_ec);

-static int EC_FLAGS_MSI; /* Out-of-spec MSI controller */
+static int EC_FLAGS_MSI = 1; /* Out-of-spec MSI controller */
 static int EC_FLAGS_VALIDATE_ECDT; /* ASUStec ECDTs need to be validated */
 static int EC_FLAGS_SKIP_DSDT_SCAN; /* Not all BIOS survive early DSDT scan */
Comment 5 Lan Tianyu 2013-04-12 01:57:13 UTC
Hi, this bug is as same as bug 14733 and bug 48221. This issue can be resolved by following patch. So mark this duplicate. If the patch can't resolve your problem. Please feel free to reopen the bug.

diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index d45b287..6376fd2 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -223,7 +223,7 @@ static int ec_check_sci_sync(struct acpi_ec *ec, u8 state)
 static int ec_poll(struct acpi_ec *ec)
 {
        unsigned long flags;
-       int repeat = 2; /* number of command restarts */
+       int repeat = 4; /* number of command restarts */
        while (repeat--) {
                unsigned long delay = jiffies +
                        msecs_to_jiffies(ec_delay);
@@ -241,8 +241,10 @@ static int ec_poll(struct acpi_ec *ec)
                        }
                        advance_transaction(ec, acpi_ec_read_status(ec));
                } while (time_before(jiffies, delay));
-               if (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF)
-                       break;
+
+               //if (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF)
+               //      break;
+               pr_info(PREFIX "%s: repeat %d \n", __func__, 4 - repeat);
                pr_debug(PREFIX "controller reset, restart transaction\n");
                spin_lock_irqsave(&ec->lock, flags);
                start_transaction(ec);

*** This bug has been marked as a duplicate of bug 14733 ***

Note You need to log in before you can comment on or make changes to this bug.