ACPI / EC: Add PM operations for suspend/resume noirq stage
authorLv Zheng <lv.zheng@intel.com>
Wed, 3 Aug 2016 01:07:58 +0000 (09:07 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 17 Aug 2016 00:37:02 +0000 (02:37 +0200)
commitdf45db6177f8dde380d44149cca46ad800a00575
treecb42fc57f30847b2b38b19e3790e50ff140f5592
parent694d0d0bb2030d2e36df73e2d23d5770511dbc8d
ACPI / EC: Add PM operations for suspend/resume noirq stage

It is reported that on some platforms, resume speed is not fast. The cause
is: in noirq stage, EC driver is working in polling mode, and each state
machine advancement requires a context switch.

The context switch is not necessary to the EC driver's polling mode. This
patch implements PM hooks to automatically switch the driver to/from the
busy polling mode to eliminate the overhead caused by the context switch.

This finally contributes to the tuning result: acpi_pm_finish() execution
time is improved from 192ms to 6ms.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Reported-and-tested-by: Todd E Brandt <todd.e.brandt@linux.intel.com>
[ rjw: Subject ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/ec.c
drivers/acpi/internal.h