diff options
author | Surya Teja Kudiri <quic_skudiri@quicinc.com> | 2023-02-24 10:23:57 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2023-03-17 02:16:23 -0700 |
commit | 5d94c210a179a80a7c3e6e26af7f07bce9f72753 (patch) | |
tree | 419f1d1297ed4799a4c080de5943c6c7d83e95de | |
parent | 720072033b7015d8300133401bd7f732c345a22f (diff) | |
download | touch-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.c | 8 | ||||
-rw-r--r-- | raydium/raydium_driver.h | 7 |
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; |