summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSurya Teja Kudiri <quic_skudiri@quicinc.com>2023-02-24 10:23:57 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2023-03-17 02:16:23 -0700
commit5d94c210a179a80a7c3e6e26af7f07bce9f72753 (patch)
tree419f1d1297ed4799a4c080de5943c6c7d83e95de
parent720072033b7015d8300133401bd7f732c345a22f (diff)
downloadtouch-5d94c210a179a80a7c3e6e26af7f07bce9f72753.tar.gz
touch : Stop panel notifier callbacks
stop panel notifier callbacks after probe failure. Change-Id: I2a00c6917e7671e7731e80d95530fe8bb41c9907 Signed-off-by: Surya Teja Kudiri <quic_skudiri@quicinc.com>
-rw-r--r--raydium/raydium_driver.c8
-rw-r--r--raydium/raydium_driver.h7
2 files changed, 9 insertions, 6 deletions
diff --git a/raydium/raydium_driver.c b/raydium/raydium_driver.c
index 41fda2e..2560869 100644
--- a/raydium/raydium_driver.c
+++ b/raydium/raydium_driver.c
@@ -1671,6 +1671,7 @@ static void raydium_setup_panel_notifier(struct raydium_ts_data *g_raydium_ts)
cookie = panel_event_notifier_register(PANEL_EVENT_NOTIFICATION_PRIMARY,
PANEL_EVENT_NOTIFIER_CLIENT_PRIMARY_TOUCH,
active_panel,&panel_event_notifier_callback, g_raydium_ts);
+ g_raydium_ts->entry = cookie;
}
#elif defined(CONFIG_DRM)
@@ -2461,8 +2462,7 @@ exit_irq_request_failed:
#if defined(CONFIG_FB)
raydium_unregister_notifier();
#elif defined(CONFIG_PANEL_NOTIFIER)
- if (active_panel)
- panel_event_notifier_unregister(&g_raydium_ts->fb_notif);
+ panel_event_notifier_unregister(g_raydium_ts->entry);
#elif defined(CONFIG_DRM)
raydium_setup_drm_unregister_notifier();
#endif
@@ -2527,7 +2527,7 @@ void raydium_ts_shutdown(struct i2c_client *client)
unregister_early_suspend(&g_raydium_ts->early_suspend);
#elif defined(CONFIG_PANEL_NOTIFIER)
if (active_panel)
- panel_event_notifier_unregister(&g_raydium_ts->fb_notif);
+ panel_event_notifier_unregister(g_raydium_ts->entry);
#elif defined(CONFIG_DRM)
if (active_panel)
drm_panel_notifier_unregister(active_panel, &g_raydium_ts->fb_notif);
@@ -2577,7 +2577,7 @@ static int raydium_ts_remove(struct i2c_client *client)
unregister_early_suspend(&g_raydium_ts->early_suspend);
#elif defined(CONFIG_PANEL_NOTIFIER)
if (active_panel)
- panel_event_notifier_unregister(&g_raydium_ts->fb_notif);
+ panel_event_notifier_unregister(g_raydium_ts->entry);
#elif defined(CONFIG_DRM)
if (active_panel)
drm_panel_notifier_unregister(active_panel, &g_raydium_ts->fb_notif);
diff --git a/raydium/raydium_driver.h b/raydium/raydium_driver.h
index f3428a3..9a9e98a 100644
--- a/raydium/raydium_driver.h
+++ b/raydium/raydium_driver.h
@@ -306,8 +306,11 @@ struct raydium_ts_data {
struct irq_desc *irq_desc;
bool irq_enabled;
bool irq_wake;
-
-#if defined(CONFIG_FB) || defined(CONFIG_DRM) || defined(CONFIG_PANEL_NOTIFIER)
+#if defined(CONFIG_PANEL_NOTIFIER)
+ struct panel_event_notifier_entry *entry;
+ int blank;
+ enum raydium_fb_state fb_state;
+#elif defined(CONFIG_FB) || defined(CONFIG_DRM) || defined(CONFIG_PANEL_NOTIFIER)
struct notifier_block fb_notif;
int blank;
enum raydium_fb_state fb_state;