mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-26 06:33:19 -04:00
Register mmi_relay notification for touchscreen
TP: Register mmi_relay notify in touchscreen class to receive FOD status change events. Change-Id: I540b012e12551b949800436a65b0b0a0d9676a38 Reviewed-on: https://gerrit.mot.com/1770280 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Konstantin Makariev <kmakariev@motorola.com> Reviewed-by: Jianqi Yang <yangj@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
4e40cec475
commit
b1ff78b885
3 changed files with 20 additions and 24 deletions
|
|
@ -26,5 +26,6 @@ LOCAL_MODULE := touchscreen_mmi.ko
|
|||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
|
||||
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/sensors_class.ko
|
||||
LOCAL_ADDITIONAL_DEPENDENCIES += $(KERNEL_MODULES_OUT)/mmi_relay.ko
|
||||
KBUILD_OPTIONS_GKI += GKI_OBJ_MODULE_DIR=gki
|
||||
include $(DLKM_DIR)/AndroidKernelModule.mk
|
||||
|
|
|
|||
|
|
@ -25,3 +25,4 @@ obj-m := touchscreen_mmi.o
|
|||
touchscreen_mmi-objs := touchscreen_mmi_class.o touchscreen_mmi_panel.o touchscreen_mmi_notif.o touchscreen_mmi_gesture.o
|
||||
|
||||
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../../sensors/$(GKI_OBJ_MODULE_DIR)/Module.symvers
|
||||
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../../mmi_relay/$(GKI_OBJ_MODULE_DIR)/Module.symvers
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
#include <linux/usb.h>
|
||||
#include <linux/power_supply.h>
|
||||
#include <linux/touchscreen_mmi.h>
|
||||
#include <linux/fingerprint_mmi.h>
|
||||
#include <linux/mmi_relay.h>
|
||||
|
||||
#if defined(CONFIG_DRM_DYNAMIC_REFRESH_RATE)
|
||||
extern struct blocking_notifier_head dsi_freq_head;
|
||||
|
|
@ -376,34 +376,28 @@ static int ts_mmi_fps_cb(struct notifier_block *self,
|
|||
}
|
||||
|
||||
static int ts_mmi_fps_notifier_register(struct ts_mmi_dev *touch_cdev, bool enable) {
|
||||
int (*register_link)(struct notifier_block *nb, unsigned long stype, bool report);
|
||||
int (*unregister_link)(struct notifier_block *nb, unsigned long stype);
|
||||
int ret;
|
||||
|
||||
if (enable) {
|
||||
register_link = symbol_get(FPS_register_notifier);
|
||||
if (register_link) {
|
||||
touch_cdev->fps_notif.notifier_call = ts_mmi_fps_cb;
|
||||
ret = register_link(&touch_cdev->fps_notif, 0xBEEF, false);
|
||||
symbol_put(FPS_register_notifier);
|
||||
if (ret < 0) {
|
||||
dev_err(DEV_TS,
|
||||
"Failed to register fps_notifier: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
touch_cdev->is_fps_registered = true;
|
||||
dev_info(DEV_TS, "Register fps_notifier OK\n");
|
||||
} else
|
||||
dev_err(DEV_TS, "no FPS_register_notifier exported.\n");
|
||||
} else if (touch_cdev->is_fps_registered) {
|
||||
unregister_link = symbol_get(FPS_unregister_notifier);
|
||||
if (unregister_link)
|
||||
unregister_link(&touch_cdev->fps_notif, 0xBEEF);
|
||||
else
|
||||
dev_err(DEV_TS, "no FPS_unregister_notifier exported.\n");
|
||||
touch_cdev->fps_notif.notifier_call = ts_mmi_fps_cb;
|
||||
/*register a blocking notification to receive FPS events*/
|
||||
ret = relay_register_action(BLOCKING, FPS, &touch_cdev->fps_notif);
|
||||
if (ret < 0) {
|
||||
dev_err(DEV_TS,
|
||||
"Failed to register fps_notifier: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
touch_cdev->is_fps_registered = true;
|
||||
dev_info(DEV_TS, "Register fps_notifier OK\n");
|
||||
} else if (touch_cdev->is_fps_registered){
|
||||
ret = relay_unregister_action(BLOCKING, FPS, &touch_cdev->fps_notif);
|
||||
if (ret < 0) {
|
||||
dev_err(DEV_TS,
|
||||
"Failed to unregister fps_notifier: %d\n", ret);
|
||||
}
|
||||
touch_cdev->is_fps_registered = false;
|
||||
dev_info(DEV_TS, "Unregister fps_notifier OK\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue