From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Len Brown <len.brown@intel.com>
Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: [PATCH 0/2] ACPI/EC: Improve EC driver's state machine to survive with firmware that refuses to respond QR_EC when SCI_EVT isn't set.
Date: Thu, 21 Aug 2014 14:40:52 +0800 [thread overview]
Message-ID: <cover.1408601898.git.lv.zheng@intel.com> (raw)
It is reported for Acer Aspire V5-573G that the EC firmware on this
platform refuses to respond QR_EC when SCI_EVT isn't set.
This is basically a firmware issue, such firmware is not completely
compliant with current ACPI specification where the 0x00 return value for
QR_EC is mentioned. Thus Linux EC driver doesn't handle this and expects
firmware can always respond something (for example, 0x00 to indicate "no
outstanding events") even when SCI_EVT isn't set.
We can see delay issue on such platform. This is because the work item that
has issued QR_EC has to wait until timeout in this case, and the _Qxx
method evaluation work item queued after QR_EC one is delayed.
A previous race fix makes the occurrence rate of this issue higher than
before:
Commit: c0d653412fc8450370167a3268b78fc772ff9c87
Subject: ACPI / EC: Fix race condition in ec_transaction_completed()
But this is a seperate bug for the particular buggy firmware, and we are
not able to improve the race fix to fix it, we need to add new support code
to enhance our state machine to survive this situation.
This patchset implements required enhancements to fix this issue.
PATCH 1 is the required fix for this issue and PATCH 2 is a useful
improvement.
Lv Zheng (2):
ACPI/EC: Add support to disallow QR_EC to be issued when SCI_EVT
isn't set.
ACPI/EC: Add support to disallow QR_EC to be issued before completing
the previous QR_EC.
drivers/acpi/ec.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
--
1.7.10
WARNING: multiple messages have this Message-ID (diff)
From: Lv Zheng <lv.zheng@intel.com>
To: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
Len Brown <len.brown@intel.com>
Cc: Lv Zheng <lv.zheng@intel.com>, Lv Zheng <zetalog@gmail.com>,
<linux-kernel@vger.kernel.org>,
linux-acpi@vger.kernel.org
Subject: [PATCH 0/2] ACPI/EC: Improve EC driver's state machine to survive with firmware that refuses to respond QR_EC when SCI_EVT isn't set.
Date: Thu, 21 Aug 2014 14:40:52 +0800 [thread overview]
Message-ID: <cover.1408601898.git.lv.zheng@intel.com> (raw)
It is reported for Acer Aspire V5-573G that the EC firmware on this
platform refuses to respond QR_EC when SCI_EVT isn't set.
This is basically a firmware issue, such firmware is not completely
compliant with current ACPI specification where the 0x00 return value for
QR_EC is mentioned. Thus Linux EC driver doesn't handle this and expects
firmware can always respond something (for example, 0x00 to indicate "no
outstanding events") even when SCI_EVT isn't set.
We can see delay issue on such platform. This is because the work item that
has issued QR_EC has to wait until timeout in this case, and the _Qxx
method evaluation work item queued after QR_EC one is delayed.
A previous race fix makes the occurrence rate of this issue higher than
before:
Commit: c0d653412fc8450370167a3268b78fc772ff9c87
Subject: ACPI / EC: Fix race condition in ec_transaction_completed()
But this is a seperate bug for the particular buggy firmware, and we are
not able to improve the race fix to fix it, we need to add new support code
to enhance our state machine to survive this situation.
This patchset implements required enhancements to fix this issue.
PATCH 1 is the required fix for this issue and PATCH 2 is a useful
improvement.
Lv Zheng (2):
ACPI/EC: Add support to disallow QR_EC to be issued when SCI_EVT
isn't set.
ACPI/EC: Add support to disallow QR_EC to be issued before completing
the previous QR_EC.
drivers/acpi/ec.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
--
1.7.10
next reply other threads:[~2014-08-21 6:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-21 6:40 Lv Zheng [this message]
2014-08-21 6:40 ` [PATCH 0/2] ACPI/EC: Improve EC driver's state machine to survive with firmware that refuses to respond QR_EC when SCI_EVT isn't set Lv Zheng
2014-08-21 6:41 ` [PATCH 1/2] ACPI/EC: Add support to disallow QR_EC to be issued " Lv Zheng
2014-08-21 6:41 ` Lv Zheng
2014-08-21 19:53 ` Wysocki, Rafael J
2014-08-21 6:41 ` [PATCH 2/2] ACPI/EC: Add support to disallow QR_EC to be issued before completing the previous QR_EC Lv Zheng
2014-08-21 6:41 ` Lv Zheng
2014-08-21 19:54 ` Wysocki, Rafael J
2014-08-22 1:06 ` Zheng, Lv
2014-08-22 1:06 ` Zheng, Lv
2014-08-22 17:39 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1408601898.git.lv.zheng@intel.com \
--to=lv.zheng@intel.com \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=zetalog@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.