diff options
author | Joey Lin <linjoey@google.com> | 2023-01-03 09:09:43 +0000 |
---|---|---|
committer | Joey Lin <linjoey@google.com> | 2023-01-03 09:09:43 +0000 |
commit | 287ec4db6c97597b11ff55f85d771ea521899e8b (patch) | |
tree | 9ca7c17bc37db3540af448d97380e3c09a8915c0 | |
parent | 5625cd5bf57bdfc02480aecaeb6212fc6804e31d (diff) | |
parent | f87fd67fd0ee94a30507b9dde02d29c504e50dbc (diff) | |
download | fts_touch-android-gs-bluejay-5.10-u-beta4.tar.gz |
Merge android13-gs-pixel-5.10-tm-qpr3 into android13-gs-pixel-5.10-udcandroid-u-qpr2-beta-1_r0.6android-u-qpr2-beta-1_r0.5android-u-qpr2-beta-1_r0.4android-u-qpr2-beta-1_r0.3android-u-qpr2-beta-1_r0.2android-u-qpr2-beta-1_r0.1android-u-qpr1-beta-2_r0.7android-u-qpr1-beta-2_r0.5android-u-qpr1-beta-2_r0.4android-u-qpr1-beta-2_r0.3android-u-qpr1-beta-2_r0.2android-u-qpr1-beta-2_r0.1android-u-qpr1-beta-2.2_r0.6android-u-qpr1-beta-2.2_r0.5android-u-qpr1-beta-2.2_r0.4android-u-qpr1-beta-2.2_r0.3android-u-qpr1-beta-2.2_r0.2android-u-qpr1-beta-2.2_r0.1android-u-qpr1-beta-2.1_r0.7android-u-qpr1-beta-2.1_r0.5android-u-qpr1-beta-2.1_r0.4android-u-qpr1-beta-2.1_r0.3android-u-qpr1-beta-2.1_r0.2android-u-qpr1-beta-2.1_r0.1android-u-qpr1-beta-1_r0.7android-u-qpr1-beta-1_r0.5android-u-qpr1-beta-1_r0.4android-u-qpr1-beta-1_r0.3android-u-qpr1-beta-1_r0.2android-u-qpr1-beta-1_r0.1android-u-preview-2_r0.4android-u-preview-2_r0.3android-u-preview-2_r0.2android-u-preview-1_r0.3android-u-beta-5.3_r0.7android-u-beta-5.3_r0.5android-u-beta-5.3_r0.4android-u-beta-5.3_r0.2android-u-beta-5.3_r0.1android-u-beta-4_r0.7android-u-beta-4_r0.5android-u-beta-4_r0.4android-u-beta-4_r0.3android-u-beta-4_r0.2android-u-beta-4_r0.1android-u-beta-3_r0.3android-u-beta-3_r0.2android-u-beta-2_r0.4android-u-beta-2_r0.3android-u-beta-2_r0.2android-u-beta-2.1_r0.4android-u-beta-2.1_r0.3android-u-beta-2.1_r0.2android-u-beta-1_r0.5android-u-beta-1_r0.4android-u-beta-1_r0.3android-14.0.0_r0.7android-14.0.0_r0.6android-14.0.0_r0.5android-14.0.0_r0.44android-14.0.0_r0.43android-14.0.0_r0.42android-14.0.0_r0.41android-14.0.0_r0.40android-14.0.0_r0.4android-14.0.0_r0.39android-14.0.0_r0.37android-14.0.0_r0.36android-14.0.0_r0.35android-14.0.0_r0.34android-14.0.0_r0.33android-14.0.0_r0.31android-14.0.0_r0.3android-14.0.0_r0.25android-14.0.0_r0.23android-14.0.0_r0.22android-14.0.0_r0.21android-14.0.0_r0.2android-14.0.0_r0.19android-14.0.0_r0.17android-14.0.0_r0.16android-14.0.0_r0.15android-14.0.0_r0.14android-14.0.0_r0.13android-14.0.0_r0.11android-gs-tangorpro-android14-releaseandroid-gs-tangorpro-5.10-u-qpr1-beta2android-gs-tangorpro-5.10-u-beta5.3android-gs-tangorpro-5.10-u-beta4android-gs-tangorpro-5.10-android14-qpr1-betaandroid-gs-tangorpro-5.10-android14-qpr1android-gs-tangorpro-5.10-android14android-gs-raviole-android14-releaseandroid-gs-raviole-5.10-u-qpr1-beta2android-gs-raviole-5.10-u-preview-2android-gs-raviole-5.10-u-beta5.3android-gs-raviole-5.10-u-beta4android-gs-raviole-5.10-u-beta3android-gs-raviole-5.10-u-beta2android-gs-raviole-5.10-u-beta1android-gs-raviole-5.10-android14-qpr1-betaandroid-gs-raviole-5.10-android14-qpr1android-gs-raviole-5.10-android14android-gs-pantah-android14-releaseandroid-gs-pantah-5.10-u-qpr1-beta2android-gs-pantah-5.10-u-preview-2android-gs-pantah-5.10-u-beta5.3android-gs-pantah-5.10-u-beta4android-gs-pantah-5.10-u-beta2android-gs-pantah-5.10-u-beta1android-gs-pantah-5.10-android14-qpr1-betaandroid-gs-pantah-5.10-android14-qpr1android-gs-pantah-5.10-android14android-gs-lynx-android14-releaseandroid-gs-lynx-5.10-u-qpr1-beta2android-gs-lynx-5.10-u-beta4android-gs-lynx-5.10-android14-qpr1-betaandroid-gs-lynx-5.10-android14-qpr1android-gs-lynx-5.10-android14android-gs-felix-android14-releaseandroid-gs-felix-5.10-u-qpr1-beta2android-gs-felix-5.10-u-beta5.3android-gs-felix-5.10-u-beta4android-gs-felix-5.10-android14-qpr1-betaandroid-gs-felix-5.10-android14-qpr1android-gs-felix-5.10-android14android-gs-bluejay-android14-releaseandroid-gs-bluejay-5.10-u-qpr1-beta2android-gs-bluejay-5.10-u-preview-2android-gs-bluejay-5.10-u-preview-1android-gs-bluejay-5.10-u-beta5.3android-gs-bluejay-5.10-u-beta4android-gs-bluejay-5.10-u-beta3android-gs-bluejay-5.10-u-beta2android-gs-bluejay-5.10-u-beta1android-gs-bluejay-5.10-android14-qpr1-betaandroid-gs-bluejay-5.10-android14-qpr1android-gs-bluejay-5.10-android14
Bug: 255246572
Change-Id: I77ff5e5f754e9377465705452841a65f0532ea14
Signed-off-by: Joey Lin <linjoey@google.com>
-rw-r--r-- | ftm5/fts.c | 45 | ||||
-rw-r--r-- | ftm5/fts.h | 6 |
2 files changed, 45 insertions, 6 deletions
@@ -5906,7 +5906,7 @@ int fts_set_bus_ref(struct fts_ts_info *info, u16 ref, bool enable) if ((enable && (info->bus_refmask & ref)) || (!enable && !(info->bus_refmask & ref))) { - dev_dbg(info->dev, "%s: reference is unexpectedly set: mask=0x%04X, ref=0x%04X, enable=%d.\n", + dev_warn(info->dev, "%s: reference is unexpectedly set: mask=0x%04X, ref=0x%04X, enable=%d.\n", __func__, info->bus_refmask, ref, enable); mutex_unlock(&info->bus_mutex); return ERROR_OP_NOT_ALLOW; @@ -5941,6 +5941,30 @@ int fts_set_bus_ref(struct fts_ts_info *info, u16 ref, bool enable) return result; } +static void fts_set_display_state(struct fts_ts_info *info, + enum fts_display_state display_state) +{ + if (info->display_state == display_state) + return; + + switch (display_state) { + case FTS_DISPLAY_STATE_OFF: + dev_info(info->dev, "%s: screen-off.\n", __func__); + fts_set_bus_ref(info, FTS_BUS_REF_SCREEN_ON, false); + break; + case FTS_DISPLAY_STATE_ON: + dev_info(info->dev, "%s: screen-on.\n", __func__); + fts_set_bus_ref(info, FTS_BUS_REF_SCREEN_ON, true); + break; + default: + dev_err(info->dev, + "%s: Unexpected value(0x%X) of display state parameter.\n", + __func__, display_state); + return; + } + info->display_state = display_state; +} + struct drm_connector *get_bridge_connector(struct drm_bridge *bridge) { struct drm_connector *connector; @@ -5972,7 +5996,7 @@ static void panel_bridge_enable(struct drm_bridge *bridge) dev_dbg(info->dev, "%s\n", __func__); if (!info->is_panel_lp_mode) - fts_set_bus_ref(info, FTS_BUS_REF_SCREEN_ON, true); + fts_set_display_state(info, FTS_DISPLAY_STATE_ON); } static void panel_bridge_disable(struct drm_bridge *bridge) @@ -5980,6 +6004,7 @@ static void panel_bridge_disable(struct drm_bridge *bridge) struct fts_ts_info *info = container_of(bridge, struct fts_ts_info, panel_bridge); + dev_dbg(info->dev, "%s\n", __func__); if (bridge->encoder && bridge->encoder->crtc) { const struct drm_crtc_state *crtc_state = bridge->encoder->crtc->state; @@ -5987,8 +6012,7 @@ static void panel_bridge_disable(struct drm_bridge *bridge) return; } - dev_dbg(info->dev, "%s\n", __func__); - fts_set_bus_ref(info, FTS_BUS_REF_SCREEN_ON, false); + fts_set_display_state(info, FTS_DISPLAY_STATE_OFF); } static void panel_bridge_mode_set(struct drm_bridge *bridge, @@ -5997,6 +6021,7 @@ static void panel_bridge_mode_set(struct drm_bridge *bridge, { struct fts_ts_info *info = container_of(bridge, struct fts_ts_info, panel_bridge); + bool panel_is_lp_mode; dev_dbg(info->dev, "%s\n", __func__); @@ -6005,8 +6030,14 @@ static void panel_bridge_mode_set(struct drm_bridge *bridge, info->connector = get_bridge_connector(bridge); } - info->is_panel_lp_mode = bridge_is_lp_mode(info->connector); - fts_set_bus_ref(info, FTS_BUS_REF_SCREEN_ON, !info->is_panel_lp_mode); + panel_is_lp_mode = bridge_is_lp_mode(info->connector); + if (info->is_panel_lp_mode != panel_is_lp_mode) { + dev_info(info->dev, "panel_is_lp_mode changed from %d to %d.\n", + info->is_panel_lp_mode, panel_is_lp_mode); + info->is_panel_lp_mode = panel_is_lp_mode; + fts_set_display_state(info, info->is_panel_lp_mode ? + FTS_DISPLAY_STATE_OFF : FTS_DISPLAY_STATE_ON); + } #ifdef DYNAMIC_REFRESH_RATE if (adjusted_mode && @@ -7125,6 +7156,8 @@ static int fts_pm_suspend(struct device *dev) if (info->resume_bit == 1 || info->sensor_sleep == false) { dev_warn(info->dev, "%s: can't suspend because touch bus is in use!\n", __func__); + dev_warn(info->dev, "%s: display_state: %d, sensor_sleep: %d\n", + __func__, info->display_state, info->sensor_sleep); if (info->bus_refmask == FTS_BUS_REF_BUGREPORT) { fts_set_bus_ref(info, FTS_BUS_REF_BUGREPORT, false); __pm_relax(info->wakesrc); @@ -341,6 +341,11 @@ enum { FTS_BUS_REF_BUGREPORT = 0x20, }; +enum fts_display_state : u32 { + FTS_DISPLAY_STATE_OFF = 0, + FTS_DISPLAY_STATE_ON, +}; + /* Motion filter finite state machine (FSM) states * FTS_MF_FILTERED - default coordinate filtering * FTS_MF_UNFILTERED - unfiltered single-touch coordinates @@ -886,6 +891,7 @@ struct fts_ts_info { #ifdef DYNAMIC_REFRESH_RATE int display_refresh_rate; /* Display rate in Hz */ #endif + enum fts_display_state display_state; /* Display state */ bool sensor_sleep; /* True if suspend called */ struct wakeup_source *wakesrc; /* Wake Lock struct */ |