diff --git a/drivers/input/touchscreen/synaptics_tcm_mmi/Android.mk b/drivers/input/touchscreen/synaptics_tcm_mmi/Android.mk index ed57fd794dee..7ebc9fbc739b 100644 --- a/drivers/input/touchscreen/synaptics_tcm_mmi/Android.mk +++ b/drivers/input/touchscreen/synaptics_tcm_mmi/Android.mk @@ -39,10 +39,37 @@ LOCAL_MODULE_TAGS := optional LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) include $(DLKM_DIR)/AndroidKernelModule.mk +include $(CLEAR_VARS) + FIRMWARE_FILES := $(shell cd $(LOCAL_PATH) ; find -L -maxdepth 1 -name "*.img") + +# Destination folder in O is different +ifeq ($(call is-platform-version-at-least,O),true) +FIRMWARE_DEST_PATH = $(TARGET_OUT_VENDOR)/firmware/synaptics +else +FIRMWARE_DEST_PATH = $(TARGET_OUT_ETC)/firmware/synaptics +endif + +define install-firmware-file +$(eval $(install-to-destination)) +endef + +define install-to-destination + include $$(CLEAR_VARS) + LOCAL_MODULE_TAGS := optional + LOCAL_MODULE := $(1) + LOCAL_MODULE_PATH := $$(FIRMWARE_DEST_PATH) + LOCAL_MODULE_CLASS := ETC + LOCAL_SRC_FILES := $$(LOCAL_MODULE) + include $$(BUILD_PREBUILT) +endef + + $(foreach f,$(FIRMWARE_FILES),$(call install-firmware-file,$(f))) + include $(CLEAR_VARS) LOCAL_MODULE := synaptics_tcm_reflash.ko LOCAL_MODULE_TAGS := optional LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT) +LOCAL_REQUIRED_MODULES := $(FIRMWARE_FILES) include $(DLKM_DIR)/AndroidKernelModule.mk include $(CLEAR_VARS) diff --git a/drivers/input/touchscreen/synaptics_tcm_mmi/firmware.img b/drivers/input/touchscreen/synaptics_tcm_mmi/firmware.img new file mode 100644 index 000000000000..27010439945a Binary files /dev/null and b/drivers/input/touchscreen/synaptics_tcm_mmi/firmware.img differ