summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSurya Teja Kudiri <quic_skudiri@quicinc.com>2023-02-10 11:33:29 +0530
committerSurya Teja Kudiri <quic_skudiri@quicinc.com>2023-02-10 11:36:18 +0530
commit2521a158df6253ace108d88cdb8cef71a234376f (patch)
tree37b3f5e20eb6e9ea05347ab10dfcbb9d4b3d7d68
parent4ca379016d886f33a1a22ca84e75e5521726803e (diff)
downloadtouch-2521a158df6253ace108d88cdb8cef71a234376f.tar.gz
touch: raydium: Unregister of Panel_notifier
Implementation of Panel notifier callbacks and unregistration of callback during touch probing. Change-Id: I1706d01b99302125e37dd04c94597cf37e004cd0 Signed-off-by: Surya Teja Kudiri <quic_skudiri@quicinc.com>
-rw-r--r--raydium/raydium_driver.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/raydium/raydium_driver.c b/raydium/raydium_driver.c
index c40489b..d20bacb 100644
--- a/raydium/raydium_driver.c
+++ b/raydium/raydium_driver.c
@@ -1765,6 +1765,12 @@ exit:
return 0;
}
+static void raydium_setup_drm_unregister_notifier(void)
+{
+ if (active_panel && drm_panel_notifier_unregister(active_panel,
+ &g_raydium_ts->fb_notif) < 0)
+ LOGD(LOG_ERR, "[touch]%s: DRM UnRegister notifier failed!\n", __func__);
+}
/*******************************************************************************
* FUNCTION: raydium_setup_drm_notifier
*
@@ -2452,7 +2458,12 @@ static int raydium_ts_probe(struct i2c_client *client,
exit_irq_request_failed:
#if defined(CONFIG_FB)
raydium_unregister_notifier();
-#endif/*end of CONFIG_FB*/
+#elif defined(CONFIG_PANEL_NOTIFIER)
+ if (active_panel)
+ panel_event_notifier_unregister(&g_raydium_ts->fb_notif);
+#elif defined(CONFIG_DRM)
+ raydium_setup_drm_unregister_notifier();
+#endif
cancel_work_sync(&g_raydium_ts->work);
input_unregister_device(input_dev);