diff --git a/drivers/misc/ldo_vibrator_mmi/Android.mk b/drivers/misc/ldo_vibrator_mmi/Android.mk index be82a36b75ec..b064d3d252f4 100644 --- a/drivers/misc/ldo_vibrator_mmi/Android.mk +++ b/drivers/misc/ldo_vibrator_mmi/Android.mk @@ -1,6 +1,10 @@ DLKM_DIR := motorola/kernel/modules LOCAL_PATH := $(call my-dir) +ifeq ($(VIBRATOR_NOISE_CAMERA), true) + KBUILD_OPTIONS += CONFIG_VIBRATOR_NOISE_CAMERA=y +endif + include $(CLEAR_VARS) LOCAL_MODULE := ldo_vibrator_mmi.ko LOCAL_MODULE_TAGS := optional diff --git a/drivers/misc/ldo_vibrator_mmi/Kbuild b/drivers/misc/ldo_vibrator_mmi/Kbuild index cc51ef0b5c27..ef98f416cd93 100644 --- a/drivers/misc/ldo_vibrator_mmi/Kbuild +++ b/drivers/misc/ldo_vibrator_mmi/Kbuild @@ -2,6 +2,10 @@ EXTRA_CFLAGS += -Wall EXTRA_CFLAGS += -I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/include +ifneq ($(filter m y,$(CONFIG_VIBRATOR_NOISE_CAMERA)),) + EXTRA_CFLAGS += -DCONFIG_VIBRATOR_NOISE_CAMERA +endif + ldo_vibrator_mmi-y += moto_ldo_vibrator.o obj-m += ldo_vibrator_mmi.o diff --git a/drivers/misc/ldo_vibrator_mmi/moto_ldo_vibrator.c b/drivers/misc/ldo_vibrator_mmi/moto_ldo_vibrator.c index 9ea41b31c3d2..fda476615c0a 100644 --- a/drivers/misc/ldo_vibrator_mmi/moto_ldo_vibrator.c +++ b/drivers/misc/ldo_vibrator_mmi/moto_ldo_vibrator.c @@ -21,6 +21,11 @@ #define MOTO_VIB_PLAY_MS 5000 #define MOTO_VIB_MAX_PLAY_MS 15000 +#ifdef CONFIG_VIBRATOR_NOISE_CAMERA +extern int mot_actuator_on_vibrate_start(void); +extern int mot_actuator_on_vibrate_stop(void); +#endif + struct vib_ldo_chip { struct led_classdev cdev; struct mutex lock; @@ -38,9 +43,24 @@ static inline int moto_vib_ldo_enable(struct vib_ldo_chip *chip, bool enable) { int ret; +#ifdef CONFIG_VIBRATOR_NOISE_CAMERA + static int mot_actuator_started = 0; +#endif + if (chip->vib_enabled == enable) return 0; +#ifdef CONFIG_VIBRATOR_NOISE_CAMERA + if ((chip->vib_play_ms > 70) && (enable)) { + mot_actuator_on_vibrate_start(); + mot_actuator_started = 1; + } + if(!(enable) && (mot_actuator_started == 1 )) { + mot_actuator_on_vibrate_stop(); + mot_actuator_started = 0; + } +#endif + pr_debug("moto_vib_ldo_enable enable = %d\n", enable); if (enable) {