diff options
author | Will McVicker <willmcvicker@google.com> | 2024-04-15 10:55:04 -0700 |
---|---|---|
committer | Will McVicker <willmcvicker@google.com> | 2024-04-15 11:47:15 -0700 |
commit | 0a1f9eba5f2fde83d01de6ebae8ce747d58d24d7 (patch) | |
tree | eb5092520b234006613a03fdae6b5882120ac96e | |
parent | a473794ddb5016631d8e3e8c808b3e3f9e116e5e (diff) | |
parent | 186068eaaafebc2f569b1cdb0a60a1f3199a83b1 (diff) | |
download | fts_touch-android14-gs-pixel-6.1.tar.gz |
Merge aosp/android-gs-raviole-5.10-android14-qpr2 into aosp/android14-gs-pixel-6.1android14-gs-pixel-6.1
* aosp/android-gs-raviole-5.10-android14-qpr2:
touch/fts: Update logs tag
ftm5: add debugging messages for drm bridge
Change-Id: Ib07892a579cbcc81f5e9dfbca7d19a0583c15b31
Signed-off-by: Will McVicker <willmcvicker@google.com>
-rw-r--r-- | fst2/fts.h | 5 | ||||
-rw-r--r-- | fst2/fts_lib/fts_io.h | 5 | ||||
-rw-r--r-- | ftm5/fts.c | 45 | ||||
-rw-r--r-- | ftm5/fts.h | 12 |
4 files changed, 53 insertions, 14 deletions
@@ -23,6 +23,11 @@ #include "fts_lib/fts_io.h" #include <drm/drm_bridge.h> +#undef pr_fmt +#define pr_fmt(fmt) "gtd: fst2: " fmt +#undef dev_fmt +#define dev_fmt(fmt) "gtd: " fmt + #define FTS_TS_DRV_NAME "fst2" #define FTS_TS_DRV_VERSION "6.0.3" #define FTS_TS_DRV_VER 0x06000004 diff --git a/fst2/fts_lib/fts_io.h b/fst2/fts_lib/fts_io.h index 33c35c1..febdfa8 100644 --- a/fst2/fts_lib/fts_io.h +++ b/fst2/fts_lib/fts_io.h @@ -19,11 +19,6 @@ #ifndef _LINUX_FTS_IO_H_ #define _LINUX_FTS_IO_H_ -#ifdef pr_fmt -#undef pr_fmt -#define pr_fmt(fmt) "[ FTS ] " fmt -#endif - /*#define I2C_INTERFACE*/ #ifdef I2C_INTERFACE #define I2C_SAD 0x49 /* /< slave address of the IC */ @@ -5907,7 +5907,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; @@ -5942,6 +5942,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; @@ -5973,7 +5997,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) @@ -5981,6 +6005,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; @@ -5988,8 +6013,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, @@ -5998,6 +6022,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__); @@ -6006,8 +6031,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 && @@ -7124,6 +7155,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); @@ -69,10 +69,10 @@ /* #define DEBUG */ /* /< define to print more logs in the kernel log * and better follow the code flow */ -#ifdef pr_fmt #undef pr_fmt -#define pr_fmt(fmt) "[ FTS ] " fmt -#endif +#define pr_fmt(fmt) "gtd: fts: " fmt +#undef dev_fmt +#define dev_fmt(fmt) "gtd: " fmt #define PINCTRL_STATE_ACTIVE "pmx_ts_active" #define PINCTRL_STATE_SUSPEND "pmx_ts_suspend" @@ -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 */ |