summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Salido <salidoa@google.com>2021-03-18 20:38:21 -0700
committerAdrian Salido <salidoa@google.com>2021-05-04 20:02:21 +0000
commitb4d215eeb5c60a2cd10960370c626ec78904647b (patch)
treeb8ae69dfd757cfe91d9024634dc0343404ef9a0e
parent6f16577fb9b0664dc71131d40aeb91fbf6e62d10 (diff)
downloadsec_touch-b4d215eeb5c60a2cd10960370c626ec78904647b.tar.gz
touch/sec: look at display effectively active state
This adds support to check if display is in self refresh mode. In that case touch should still be active. Bug: 180539030 Signed-off-by: Adrian Salido <salidoa@google.com> Change-Id: Iee1465ff014daf1e9d7edc7ee59e83cd38ed4272
-rw-r--r--sec_ts.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sec_ts.c b/sec_ts.c
index f1a1479..4759f25 100644
--- a/sec_ts.c
+++ b/sec_ts.c
@@ -5456,6 +5456,13 @@ static void panel_bridge_disable(struct drm_bridge *bridge)
struct sec_ts_data *ts =
container_of(bridge, struct sec_ts_data, panel_bridge);
+ if (bridge->encoder && bridge->encoder->crtc) {
+ const struct drm_crtc_state *crtc_state = bridge->encoder->crtc->state;
+
+ if (drm_atomic_crtc_effectively_active(crtc_state))
+ return;
+ }
+
pr_debug("%s\n", __func__);
sec_ts_set_bus_ref(ts, SEC_TS_BUS_REF_SCREEN_ON, false);
}