mirror of https://gitee.com/openkylin/linux.git
platform/chrome: Don't treat RTC events as wakeup sources
The EC sends an RTC host event when the RTC fires, but we don't need to treat that as a wakeup event here. The RTC class already properly handles activating and deactivating a wakeup source in rtc_update_irq() by calling pm_stay_awake() at the start of processing and pm_relax() once all expired RTC timers have been processed. This reduces one wakeup increment but not much else. I noticed this while debugging RTC wakeups and how they always incremented the wakeup count by two instead of one because this is duplicated. Signed-off-by: Stephen Boyd <swboyd@chromium.org> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Cc: Guenter Roeck <groeck@chromium.org> Cc: Alessandro Zummo <a.zummo@towertech.it> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com> Cc: <linux-rtc@vger.kernel.org> Link: https://lore.kernel.org/r/20201030232523.2654478-1-swboyd@chromium.org
This commit is contained in:
parent
3650b228f8
commit
853c1a789f
|
@ -742,12 +742,16 @@ int cros_ec_get_next_event(struct cros_ec_device *ec_dev,
|
|||
* Sensor events need to be parsed by the sensor sub-device.
|
||||
* Defer them, and don't report the wakeup here.
|
||||
*/
|
||||
if (event_type == EC_MKBP_EVENT_SENSOR_FIFO)
|
||||
*wake_event = false;
|
||||
/* Masked host-events should not count as wake events. */
|
||||
else if (host_event &&
|
||||
!(host_event & ec_dev->host_event_wake_mask))
|
||||
if (event_type == EC_MKBP_EVENT_SENSOR_FIFO) {
|
||||
*wake_event = false;
|
||||
} else if (host_event) {
|
||||
/* rtc_update_irq() already handles wakeup events. */
|
||||
if (host_event & EC_HOST_EVENT_MASK(EC_HOST_EVENT_RTC))
|
||||
*wake_event = false;
|
||||
/* Masked host-events should not count as wake events. */
|
||||
if (!(host_event & ec_dev->host_event_wake_mask))
|
||||
*wake_event = false;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
|
Loading…
Reference in New Issue