# SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2020 MediaTek Inc. MKFILE_PATH := $(lastword $(MAKEFILE_LIST)) IMGSENSOR_DRIVER_PATH := $(patsubst %/,%,$(dir $(realpath $(MKFILE_PATH)))) MTK_DRIVER_PATH := $(srctree)/drivers/misc/mediatek MTK_ISP_DRIVER_PATH := $(srctree)/drivers/media/platform/mtk-isp MTK_CAMSYS_DRIVER_PATH := $(srctree)/drivers/media/platform/mtk-isp/camsys/isp7_1/cam IMGSENSOR_PROJECT := $(subst ",,$(CONFIG_MTK_IMGSENSOR_PROJECT)) FRAME_SYNC := frame-sync VIRT_SENSOR := virt-sensor subdir-ccflags-y += \ -I$(MTK_DRIVER_PATH)/imgsensor/inc \ -I$(IMGSENSOR_DRIVER_PATH)/ \ -I$(MTK_ISP_DRIVER_PATH)/ \ -I$(MTK_CAMSYS_DRIVER_PATH)/ \ obj-y += imgsensor-glue/ obj-$(CONFIG_MTK_V4L2_IMGSENSOR) += imgsensor.o imgsensor-objs := imgsensor-objs += \ adaptor-hw.o \ adaptor-drv.o \ adaptor-i2c.o \ adaptor-ctrls.o \ adaptor-ioctl.o \ adaptor-command.o \ adaptor-common-ctrl.o \ adaptor-subdrv-ctrl.o \ adaptor-fsync-ctrls.o \ adaptor-trace.o \ define FILTER_DRV ifeq ($(wildcard $(IMGSENSOR_DRIVER_PATH)/camera_project/$(IMGSENSOR_PROJECT)/$(1)),) ifeq ($(wildcard $(IMGSENSOR_DRIVER_PATH)/common/$(1)),) unknown_drv += $(1) else common_drv += $(1) total_subdrvs += $(1) endif else project_drv += $(1) total_subdrvs += $(1) endif ifneq ($(wildcard $(IMGSENSOR_DRIVER_PATH)/camera_project/k6983v1_64_alpha/$(1)),) alpha_drv += $(1) total_subdrvs += $(1) unknown_drv := endif ifneq ($(wildcard $(IMGSENSOR_DRIVER_PATH)/camera_project/k6985v1_64_alpha/$(1)),) alpha_drv_k6985 += $(1) total_subdrvs += $(1) unknown_drv := endif endef $(foreach drv,$(subst $\",,$(CONFIG_CUSTOM_KERNEL_IMGSENSOR)),$(eval $(call FILTER_DRV,$(drv)))) ifneq ($(wildcard $(IMGSENSOR_DRIVER_PATH)/$(FRAME_SYNC)/frame_sync_drv.mk),) $(info framesync_drv: $(FRAME_SYNC)) include $(IMGSENSOR_DRIVER_PATH)/$(FRAME_SYNC)/frame_sync_drv.mk else $(info framesync_drv: NOT FOUND) endif ifneq ($(wildcard $(IMGSENSOR_DRIVER_PATH)/$(VIRT_SENSOR)/virt-sensor.mk),) $(info virt-sensor: $(VIRT_SENSOR)) include $(IMGSENSOR_DRIVER_PATH)/$(VIRT_SENSOR)/virt-sensor.mk else $(info virt-sensor: NOT FOUND) endif define add_subdrv $(eval subdrv-rpath = $1) $(eval include $(src)/$1/subdrv.mk) endef ifneq ($(unknown_drv),) $(info unknown_drv: $(unknown_drv)) endif ifneq ($(common_drv),) $(info common_drv : $(common_drv)) $(foreach drv,$(common_drv),$(eval $(call add_subdrv,common/$(drv)))) endif ifneq ($(project_drv),) $(info project_drv : $(project_drv)) $(foreach drv,$(project_drv),$(eval $(call add_subdrv,camera_project/$(IMGSENSOR_PROJECT)/$(drv)))) endif ifneq ($(alpha_drv),) $(info alpha_drv : $(alpha_drv)) $(foreach drv,$(alpha_drv),$(eval $(call add_subdrv,camera_project/k6983v1_64_alpha/$(drv)))) endif ifneq ($(alpha_drv_k6985),) $(info alpha_drv_k6985 : $(alpha_drv_k6985)) $(foreach drv,$(alpha_drv_k6985),$(eval $(call add_subdrv,camera_project/k6985v1_64_alpha/$(drv)))) endif comma := , empty := space := $(empty) $(empty) IMGSENSOR_SUBDRVS := $(subst $(space),$(comma),$(foreach e,$(total_subdrvs),E($(e)))) ifneq ($(IMGSENSOR_SUBDRVS),) subdir-ccflags-y += -D'IMGSENSOR_SUBDRVS=$(IMGSENSOR_SUBDRVS)' endif $(info imgsensor-objs : $(imgsensor-objs)) $(info imgsensor subdir-ccflags-y : $(subdir-ccflags-y))