-
由 Kieran Clancy 提交于
Address a regression caused by commit ad332c8a: (ACPI / EC: Clear stale EC events on Samsung systems) After the earlier patch, there was found to be a race condition on some earlier Samsung systems (N150/N210/N220). The function acpi_ec_clear was sometimes discarding a new EC event before its GPE was triggered by the system. In the case of these systems, this meant that the "lid open" event was not registered on resume if that was the cause of the wake, leading to problems when attempting to close the lid to suspend again. After testing on a number of Samsung systems, both those affected by the previous EC bug and those affected by the race condition, it seemed that the best course of action was to process rather than discard the events. On Samsung systems which accumulate stale EC events, there does not seem to be any adverse side-effects of running the associated _Q methods. This patch adds an argument to the static function acpi_ec_sync_query so that it may be used within the acpi_ec_clear loop in place of acpi_ec_query_unlocked which was used previously. With thanks to Stefan Biereigel for reporting the issue, and for all the people who helped test the new patch on affected systems. Fixes: ad332c8a (ACPI / EC: Clear stale EC events on Samsung systems) References: https://lkml.kernel.org/r/532FE3B2.9060808@biereigel-wb.de References: https://bugzilla.kernel.org/show_bug.cgi?id=44161#c173Reported-by: NStefan Biereigel <stefan@biereigel.de> Signed-off-by: NKieran Clancy <clancy.kieran@gmail.com> Tested-by: NStefan Biereigel <stefan@biereigel.de> Tested-by: NDennis Jansen <dennis.jansen@web.de> Tested-by: NNicolas Porcel <nicolasporcel06@gmail.com> Tested-by: NMaurizio D'Addona <mauritiusdadd@gmail.com> Tested-by: NJuan Manuel Cabo <juanmanuel.cabo@gmail.com> Tested-by: NGiannis Koutsou <giannis.koutsou@gmail.com> Tested-by: NKieran Clancy <clancy.kieran@gmail.com> Cc: 3.14+ <stable@vger.kernel.org> # 3.14+ Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
3eba563e