# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2010 - 2018, Intel Corporation.

# Vendored Intel CSS firmware-interface code (lib2600) redefines kernel macros
# (MIN/MAX/ARRAY_SIZE, now provided by the kernel) and carries other benign
# warnings; don't let CONFIG_WERROR turn those into build failures.
subdir-ccflags-y += -Wno-error
ccflags-y += -Wno-error

ifneq ($(EXTERNAL_BUILD), 1)
srcpath := $(srctree)
endif

ifdef CONFIG_VIDEO_INTEL_IPU4
ccflags-y += -DHAS_DUAL_CMD_CTX_SUPPORT=0 -DIPU_VC_SUPPORT -DIPU_HAS_ISA -DIPU_PSYS_LEGACY
ccflags-y += -DIPU_META_DATA_SUPPORT -DI2C_WA

intel-ipu4-objs				+= ../ipu.o \
					   ../ipu-bus.o \
					   ../ipu-dma.o \
					   ../ipu-mmu.o \
					   ../ipu-buttress.o \
					   ../ipu-trace.o \
					   ../ipu-cpd.o \
					   ../ipu-fw-com.o \
					   ipu4.o

obj-$(CONFIG_VIDEO_INTEL_IPU)		+= intel-ipu4.o

intel-ipu4-isys-objs			+= ../ipu-isys.o \
					   ../ipu-isys-csi2.o \
					   ipu4-isys.o \
					   ipu4-isys-csi2.o \
					   ../ipu-isys-csi2-be-soc.o \
					   ../ipu-isys-csi2-be.o \
					   ../ipu-fw-isys.o \
					   ipu4-isys-isa.o \
					   ../ipu-isys-video.o \
					   ../ipu-isys-queue.o \
					   ../ipu-isys-subdev.o \
					   ../ipu-isys-tpg.o

obj-$(CONFIG_VIDEO_INTEL_IPU)		+= intel-ipu4-isys.o

intel-ipu4-psys-objs			+= ../ipu-psys.o \
					   ipu4-psys.o \
					   ipu4-resources.o \

ifndef CONFIG_VIDEO_INTEL_IPU_FW_LIB
intel-ipu4-psys-objs			+= ipu4-fw-resources.o \
					   ../ipu-fw-psys.o
endif

ifeq ($(CONFIG_COMPAT),y)
intel-ipu4-psys-objs			+= ../ipu-psys-compat32.o
endif

obj-$(CONFIG_VIDEO_INTEL_IPU)		+= intel-ipu4-psys.o

ifdef CONFIG_VIDEO_INTEL_IPU_FW_LIB
include $(src)/ipu4-css/Makefile.isyslib
include $(src)/ipu4-css/Makefile.psyslib
endif

ccflags-y += -I$(src)/../../../../../include/
ccflags-y += -I$(src)/../
ccflags-y += -I$(src)/
ifdef CONFIG_VIDEO_INTEL_IPU_FW_LIB
ccflags-y += -I$(src)/ipu4-css
endif

ccflags-y += -DPARAMETER_INTERFACE_V2
endif

ifdef CONFIG_VIDEO_INTEL_IPU4P
ccflags-y += -DHAS_DUAL_CMD_CTX_SUPPORT=0 -DIPU_VC_SUPPORT -DIPU_PSYS_LEGACY -DIPU_HAS_ISA
ccflags-y += -DIPU_META_DATA_SUPPORT

intel-ipu4p-objs			+= ../ipu.o \
					   ../ipu-bus.o \
					   ../ipu-dma.o \
					   ../ipu-mmu.o \
					   ../ipu-buttress.o \
					   ../ipu-trace.o \
					   ../ipu-cpd.o \
					   ../ipu-fw-com.o \
					   ipu4.o

obj-$(CONFIG_VIDEO_INTEL_IPU)		+= intel-ipu4p.o

intel-ipu4p-isys-objs			+= ../ipu-isys.o \
					   ../ipu-isys-csi2.o \
					   ipu4-isys.o \
					   ipu4p-isys-csi2.o \
					   ../ipu-isys-csi2-be-soc.o \
					   ../ipu-isys-csi2-be.o \
					   ../ipu-fw-isys.o \
                                           ipu4-isys-isa.o \
					   ../ipu-isys-video.o \
					   ../ipu-isys-queue.o \
					   ../ipu-isys-subdev.o \
					   ../ipu-isys-tpg.o
obj-$(CONFIG_VIDEO_INTEL_IPU)		+= intel-ipu4p-isys.o

intel-ipu4p-psys-objs			+= ../ipu-psys.o \
					   ipu4-psys.o \
					   ipu4-resources.o \

ifndef CONFIG_VIDEO_INTEL_IPU_FW_LIB
intel-ipu4p-psys-objs			+= ipu4-fw-resources.o \
					   ../ipu-fw-psys.o
endif

ifeq ($(CONFIG_COMPAT),y)
intel-ipu4p-psys-objs			+= ../ipu-psys-compat32.o
endif

obj-$(CONFIG_VIDEO_INTEL_IPU)		+= intel-ipu4p-psys.o

ifdef CONFIG_VIDEO_INTEL_IPU_FW_LIB
include $(src)/ipu4p-css/Makefile.isyslib
include $(src)/ipu4p-css/Makefile.psyslib
endif

ccflags-y += -I$(src)/../../../../../include/
ccflags-y += -I$(src)/../
ccflags-y += -I$(src)/
ifdef CONFIG_VIDEO_INTEL_IPU_FW_LIB
ccflags-y += -I$(src)/ipu4p-css
endif

ccflags-y += -DPARAMETER_INTERFACE_V2
endif

# ignore IPU FW Lib marco redefined warning if using clang
ifeq ($(CONFIG_CC_IS_CLANG),y)
ifdef CONFIG_VIDEO_INTEL_IPU_FW_LIB
ccflags-y += -Wno-error=macro-redefined
endif
endif
