# SPDX-License-Identifier: GPL-2.0-only
ifneq ($(CONFIG_ARCH_LEMANS), y)
KBUILD_CPPFLAGS += -DCONFIG_MSM_MMRM=1
endif

ifeq ($(CONFIG_ARCH_CHORA),y)
KBUILD_CPPFLAGS += -DCONFIG_MSM_MMRM=0
endif

ifeq ($(CONFIG_QCOM_MINIDUMP), y)
KBUILD_CPPFLAGS += -DCONFIG_MSM_VIDC_MINIDUMP=1
endif

KBUILD_CPPFLAGS += -DCONFIG_MSM_VIDC_ANDROID=1

VIDEO_DRIVER_ABS_PATH := $(VIDEO_ROOT)/msm_video/driver
VIDEO_DRIVER_REL_PATH := ../msm_video/driver

ifeq ($(CONFIG_ARCH_X1E80100), y)
include $(VIDEO_ROOT)/config/hamoa_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/hamoa_video.h
endif

ifeq ($(CONFIG_ARCH_NIOBE), y)
include $(VIDEO_ROOT)/config/niobe_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/niobe_video.h
endif

ifeq ($(CONFIG_ARCH_PINEAPPLE), y)
include $(VIDEO_ROOT)/config/pineapple_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/pineapple_video.h
endif

ifeq ($(CONFIG_MSM_VIDC_NIOBE), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/niobe/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris3/inc
endif

ifeq ($(CONFIG_ARCH_CHORA), y)
include $(VIDEO_ROOT)/config/chora_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/chora_video.h
endif

ifeq ($(CONFIG_ARCH_SUN), y)
include $(VIDEO_ROOT)/config/sun_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/sun_video.h
endif

ifeq ($(CONFIG_ARCH_CANOE), y)
include $(VIDEO_ROOT)/config/canoe_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/canoe_video.h
endif

ifeq ($(CONFIG_ARCH_SERAPH), y)
include $(VIDEO_ROOT)/config/seraph_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/seraph_video.h
endif

ifeq ($(CONFIG_ARCH_LEMANS), y)
ifeq ($(TARGET_BOARD_PLATFORM), gen5)
KBUILD_CPPFLAGS += -DMSM_VIDC_HW_VIRT
include $(VIDEO_ROOT)/config/nordau_video.conf
LINUXINCLUDE   += -include $(VIDEO_ROOT)/config/nordau_video.h
endif
endif

ifeq ($(CONFIG_MSM_VIDC_HAMOA), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/hamoa/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris3/inc
endif

ifeq ($(CONFIG_MSM_VIDC_PINEAPPLE), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/pineapple/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris33/inc
endif

ifeq ($(CONFIG_MSM_VIDC_CHORA), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/chora/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris2/inc
endif

ifeq ($(CONFIG_MSM_VIDC_SUN), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/sun/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris35/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/platform/tuna/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/platform/kera/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris33/inc
endif

ifeq ($(CONFIG_MSM_VIDC_CANOE), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/canoe/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/platform/alor/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris4/inc
endif

ifeq ($(CONFIG_MSM_VIDC_SERAPH), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/seraph/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris4/inc
endif

ifeq ($(CONFIG_MSM_VIDC_NORDAU), y)
LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/nordau/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/iris36/inc
endif

LINUXINCLUDE   += -I$(VIDEO_DRIVER_ABS_PATH)/platform/common/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/variant/common/inc \
                  -I$(VIDEO_DRIVER_ABS_PATH)/vidc/inc \
                  -I$(VIDEO_ROOT)/include/uapi/vidc \
                  -I$(VIDEO_ROOT)/../mm-drivers/hw_fence/include/ \
                  -I$(VIDEO_ROOT)/../synx-kernel/msm/synx/ \
                  -I$(VIDEO_ROOT)/../synx-kernel/include/uapi/synx/media/

USERINCLUDE    += -I$(VIDEO_ROOT)/include/uapi/vidc/media \
                  -I$(VIDEO_ROOT)/include/uapi/vidc

ccflags-y += ${ccflags-m}
ccflags-y += -Wmissing-prototypes
ccflags-y += -Werror
ccflags-y += -Wno-enum-conversion
obj-m += msm_video.o

ifeq ($(CONFIG_MSM_VIDC_HAMOA), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/hamoa/src/msm_vidc_hamoa.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_buffer_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_power_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_bus_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_clock_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_iris3.o
endif

ifeq ($(CONFIG_MSM_VIDC_NIOBE), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/niobe/src/msm_vidc_niobe.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_buffer_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_power_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_bus_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_clock_iris3.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris3/src/msm_vidc_iris3.o
endif
ifeq ($(CONFIG_MSM_VIDC_CHORA), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/chora/src/msm_vidc_chora.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris2/src/msm_vidc_buffer_iris2.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris2/src/msm_vidc_power_iris2.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris2/src/msm_vidc_iris2.o
endif
ifeq ($(CONFIG_MSM_VIDC_PINEAPPLE), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/pineapple/src/msm_vidc_pineapple.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_buffer_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_power_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_bus_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_clock_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_iris33.o
endif
ifeq ($(CONFIG_MSM_VIDC_SUN), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/sun/src/msm_vidc_sun.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris35/src/msm_vidc_buffer_iris35.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris35/src/msm_vidc_power_iris35.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris35/src/msm_vidc_bus_iris35.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris35/src/msm_vidc_clock_iris35.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris35/src/msm_vidc_iris35.o \
                  $(VIDEO_DRIVER_REL_PATH)/platform/tuna/src/msm_vidc_tuna.o \
                  $(VIDEO_DRIVER_REL_PATH)/platform/kera/src/msm_vidc_kera.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_buffer_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_power_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_bus_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_clock_iris33.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris33/src/msm_vidc_iris33.o
endif
ifeq ($(CONFIG_MSM_VIDC_CANOE), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/canoe/src/msm_vidc_canoe.o \
                  $(VIDEO_DRIVER_REL_PATH)/platform/alor/src/msm_vidc_alor.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_buffer_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_power_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_bus_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_clock_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_iris4.o
endif
ifeq ($(CONFIG_MSM_VIDC_SERAPH), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/seraph/src/msm_vidc_seraph.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_buffer_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_power_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_bus_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_clock_iris4.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris4/src/msm_vidc_iris4.o
endif

ifeq ($(CONFIG_MSM_VIDC_NORDAU), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/nordau/src/msm_vidc_nordau.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris36/src/msm_vidc_buffer_iris36.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris36/src/msm_vidc_power_iris36.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris36/src/msm_vidc_bus_iris36.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris36/src/msm_vidc_clock_iris36.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/iris36/src/msm_vidc_iris36.o
endif

msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/platform/common/src/msm_vidc_platform.o \
                  $(VIDEO_DRIVER_REL_PATH)/platform/common/src/msm_vidc_ubwc.o \
                  $(VIDEO_DRIVER_REL_PATH)/platform/common/src/msm_vidc_platform_ext.o \
                  $(VIDEO_DRIVER_REL_PATH)/variant/common/src/msm_vidc_variant.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_v4l2.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_vb2.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vdec.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_venc.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_driver.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_state.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_control.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_buffer.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_power.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_probe.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/resources.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/resources_ext.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/firmware.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_debug.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_memory.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_memory_ext.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_fence.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/venus_hfi.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/venus_hfi_queue.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/hfi_packet.o \
                  $(VIDEO_DRIVER_REL_PATH)/vidc/src/venus_hfi_response.o

ifneq ($(CONFIG_MSM_VIDC_NORDAU), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_synx.o
endif

ifeq ($(CONFIG_MSM_VIDC_MINIDUMP), y)
msm_video-objs += $(VIDEO_DRIVER_REL_PATH)/vidc/src/msm_vidc_md.o
endif
