http://bugzilla.kernel.org/show_bug.cgi?id=8459
------- Comment #50 from [EMAIL PROTECTED] 2007-10-07 22:49 ------- Created an attachment (id=13075) --> (http://bugzilla.kernel.org/attachment.cgi?id=13075&action=view) separate read/write irq Unfortunately the patch from comment #49 does not reach stable state on my computer. I tried to create a patch which separates the read and the write irq. In case only the read irq is missing and it is recognized, then switch only the following reads to polling mode. Although the patch seems to work, it is far from complete. It does not wait for the interrupt but first evaluates the condition parameter of the wait_event_timeout() two times (see <linux/wait.h>, wait_event_timeout and __wait_event_timeout), and in case of reading it is sometimes enough that the OBF=1. This means that the timeout is not waited for the interrupt, but ignored. Here is the log when the change finally happens: [ 148.669438] ACPI: EC: acpi_ec_transaction_unlocked(): ec->flags=0x1 [ 148.669442] ACPI: EC: <--- command=0x80 [ 148.669447] ACPI: EC: acpi_ec_wait_ibf_0(): enter, ec->flags=0x5, broken_write_irq=0 [ 148.669453] ACPI: EC: ---> status=0x0A [ 148.669458] ACPI: EC: ---> status=0x0A [ 148.669525] ACPI: EC: ~~~> interrupt [ 148.669533] ACPI: EC: ---> status=0x08 [ 148.670500] ACPI: EC: ---> status=0x08 [ 148.670506] ACPI: EC: <--- data=0x2E [ 148.670512] ACPI: EC: acpi_ec_transaction_unlocked(): after write: ec->flags=0x1 [ 148.670517] ACPI: EC: acpi_ec_transaction_unlocked(): after read: ec->flags=0x1 [ 148.670522] ACPI: EC: acpi_ec_wait_obf_1(): enter, ec->flags=0x1, broken_read_irq=0 [ 148.670529] ACPI: EC: ---> status=0x02 [ 148.670534] ACPI: EC: ---> status=0x02 [ 149.170008] ACPI: EC: acpi_ec_wait_obf_1(): timeout, ec->flags=0x1 [ 149.170023] ACPI: EC: ---> status=0x01 [ 149.170027] ACPI: EC: lost interrupt after read, switch to degraded mode [ 149.170033] ACPI: EC: ---> data=0x82 [ 149.170038] ACPI: EC: acpi_ec_transaction_unlocked(): leave: ec->flags=0x1 [ 149.170055] ACPI: EC: acpi_ec_wait_ibf_0(): enter, ec->flags=0x1, broken_write_irq=0 [ 149.170061] ACPI: EC: ---> status=0x00 [ 149.170065] ACPI: EC: acpi_ec_transaction_unlocked(): ec->flags=0x1 [ 149.170070] ACPI: EC: <--- command=0x80 [ 149.170075] ACPI: EC: acpi_ec_wait_ibf_0(): enter, ec->flags=0x5, broken_write_irq=0 [ 149.170081] ACPI: EC: ---> status=0x0A [ 149.170086] ACPI: EC: ---> status=0x0A [ 149.170162] ACPI: EC: ~~~> interrupt [ 149.170169] ACPI: EC: ---> status=0x08 [ 149.170518] ACPI: EC: ---> status=0x08 [ 149.170522] ACPI: EC: <--- data=0x2F [ 149.170527] ACPI: EC: acpi_ec_transaction_unlocked(): after write: ec->flags=0x1 [ 149.170532] ACPI: EC: acpi_ec_transaction_unlocked(): after read: ec->flags=0x1 [ 149.170538] ACPI: EC: acpi_ec_wait_obf_1(): enter, ec->flags=0x1, broken_read_irq=1 [ 149.170544] ACPI: EC: ---> status=0x01 [ 149.170548] ACPI: EC: ---> data=0x11 [ 149.170552] ACPI: EC: acpi_ec_transaction_unlocked(): leave: ec->flags=0x1 [ 149.170560] ACPI: EC: acpi_ec_wait_ibf_0(): enter, ec->flags=0x1, broken_write_irq=0 [ 149.170566] ACPI: EC: ---> status=0x00 [ 149.170570] ACPI: EC: acpi_ec_transaction_unlocked(): ec->flags=0x1 [ 149.170574] ACPI: EC: <--- command=0x80 [ 149.170579] ACPI: EC: acpi_ec_wait_ibf_0(): enter, ec->flags=0x5, broken_write_irq=0 [ 149.170585] ACPI: EC: ---> status=0x0A [ 149.170590] ACPI: EC: ---> status=0x0A [ 149.170798] ACPI: EC: ~~~> interrupt [ 149.170807] ACPI: EC: ---> status=0x08 [ 149.172900] ACPI: EC: ---> status=0x08 [ 149.172904] ACPI: EC: <--- data=0x30 [ 149.172909] ACPI: EC: acpi_ec_transaction_unlocked(): after write: ec->flags=0x1 [ 149.172915] ACPI: EC: acpi_ec_transaction_unlocked(): after read: ec->flags=0x1 [ 149.172920] ACPI: EC: acpi_ec_wait_obf_1(): enter, ec->flags=0x1, broken_read_irq=1 [ 149.172926] ACPI: EC: ---> status=0x02 [ 149.172932] ACPI: EC: ---> status=0x02 [ 149.172937] ACPI: EC: ---> status=0x02 [ 149.172943] ACPI: EC: ---> status=0x02 [ 149.172948] ACPI: EC: ---> status=0x01 [ 149.172953] ACPI: EC: ---> data=0x00 [ 149.172956] ACPI: EC: acpi_ec_transaction_unlocked(): leave: ec->flags=0x1 [ 149.172995] ACPI: EC: ~~~> interrupt [ 149.173000] ACPI: EC: ---> status=0x00 [ 149.173007] ACPI: EC: acpi_ec_wait_ibf_0(): enter, ec->flags=0x1, broken_write_irq=0 [ 149.173014] ACPI: EC: ---> status=0x00 [ 149.173017] ACPI: EC: acpi_ec_transaction_unlocked(): ec->flags=0x1 [ 149.173022] ACPI: EC: <--- command=0x80 [ 149.173027] ACPI: EC: acpi_ec_wait_ibf_0(): enter, ec->flags=0x5, broken_write_irq=0 [ 149.173033] ACPI: EC: ---> status=0x0A [ 149.173038] ACPI: EC: ---> status=0x0A [ 149.173206] ACPI: EC: ~~~> interrupt [ 149.173213] ACPI: EC: ---> status=0x08 [ 149.173567] ACPI: EC: ---> status=0x08 [ 149.173572] ACPI: EC: <--- data=0x31 [ 149.173577] ACPI: EC: acpi_ec_transaction_unlocked(): after write: ec->flags=0x1 [ 149.173582] ACPI: EC: acpi_ec_transaction_unlocked(): after read: ec->flags=0x1 [ 149.173587] ACPI: EC: acpi_ec_wait_obf_1(): enter, ec->flags=0x1, broken_read_irq=1 [ 149.173593] ACPI: EC: ---> status=0x01 [ 149.173597] ACPI: EC: ---> data=0x00 [ 149.173601] ACPI: EC: acpi_ec_transaction_unlocked(): leave: ec->flags=0x1 -- Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ acpi-bugzilla mailing list acpi-bugzilla@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla