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

Reply via email to