ifeq ($(CONFIG_SOCT_COMMON_KERNEL),y)
COMPILE_PQ := n
COMPILE_VO := n
TVOS_SET := y
else
ifeq ($(CONFIG_SOCT_OH_KERNEL),y)
COMPILE_PQ := n
COMPILE_VO := n
TVOS_SET := y
else
COMPILE_PQ := y
COMPILE_VO := y
TVOS_SET := n
endif
endif
COMPILE_FB := y
COMPILE_DRM := y

##########################################################
##                     PQ                               ##
##                                                      ##
##########################################################

###############################################################################
# export variables
###############################################################################

ifeq ($(COMPILE_PQ),y)
#===============================================================================
# local variables
#===============================================================================
TARGET := pq
VERSION := pq_master
module :=  comm file ifmd hsharp csc acm gamma dci dim scaler gfxscaler sharpen sr hdr gfxhdr dmmz coco cle gfxcsc cgm es
HAL_VERSION := shaolingun

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun"),)
	COMM_VERSION := shaolingun
ifneq ($(findstring $(CONFIG_SOCT_CHIP_REVERSION), "wudangstick_c" "wudangstick_d"),)
	BOARD_VERSION := cs
    ccflags-y += -I$(srctree)/drivers/drv/vpss/hal/include/reg_v2
    $(warning "We will build vpss driver version with cs")
else
	BOARD_VERSION := es
    ccflags-y += -I$(srctree)/drivers/drv/vpss/hal/include/reg_v1
    $(warning "We will build vpss driver version with es")
endif
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinaxe"),)
    ccflags-y += -I$(srctree)/drivers/drv/vpss/hal/include/reg_v3
    COMM_VERSION := shaolinaxe
endif

VPSS_REG_DIR := drivers/drv/vpss/reg_inc
VO_REG_DIR := drivers/drv/drm/vo/include

$(warning  CONFIG_SOCT_CHIP_TYPE $(CONFIG_SOCT_CHIP_TYPE))
$(warning  COMM_VERSION $(COMM_VERSION))
$(warning  BOARD_VERSION $(BOARD_VERSION))
$(warning  CONFIG_SOCT_KMOD_CFLAGS $(CONFIG_SOCT_KMOD_CFLAGS))

$(warning  CONFIG_SOCT_PQ_SUPPORT $(CONFIG_SOCT_PQ_SUPPORT))
$(warning  CONFIG_SOCT_PROC_SUPPORT $(CONFIG_SOCT_PROC_SUPPORT))
$(warning  CONFIG_SOCT_PQ_PROC_SUPPORT $(CONFIG_SOCT_PQ_PROC_SUPPORT))
$(warning  CONFIG_SOCT_PQ_ZME_SUPPORT $(CONFIG_SOCT_PQ_ZME_SUPPORT))
$(warning  CONFIG_SOCT_PQ_VPSSZME_SUPPORT $(CONFIG_SOCT_PQ_VPSSZME_SUPPORT))
$(warning  CONFIG_SOCT_PQ_GFXCSC_SUPPORT $(CONFIG_SOCT_PQ_GFXCSC_SUPPORT))
$(warning  CONFIG_SOCT_PQ_GFXZME_SUPPORT $(CONFIG_SOCT_PQ_GFXZME_SUPPORT))
$(warning  CONFIG_SOCT_PQ_CSC_SUPPORT $(CONFIG_SOCT_PQ_CSC_SUPPORT))
$(warning  CONFIG_SOCT_PQ_GFXHDR_SUPPORT $(CONFIG_SOCT_PQ_GFXHDR_SUPPORT))
$(warning  CONFIG_SOCT_PQ_VPSSHDR_SUPPORT $(CONFIG_SOCT_PQ_VPSSHDR_SUPPORT))
$(warning  CONFIG_SOCT_PQ_HDR_SUPPORT $(CONFIG_SOCT_PQ_HDR_SUPPORT))
$(warning  CONFIG_SOCT_PQ_CLE_SUPPORT $(CONFIG_SOCT_PQ_CLE_SUPPORT))
$(warning  CONFIG_SOCT_PQ_TNR_SUPPORT $(CONFIG_SOCT_PQ_TNR_SUPPORT))
$(warning  CONFIG_SOCT_PQ_SNR_SUPPORT $(CONFIG_SOCT_PQ_SNR_SUPPORT))
$(warning  CONFIG_SOCT_PQ_SR_SUPPORT $(CONFIG_SOCT_PQ_SR_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DEI_SUPPORT $(CONFIG_SOCT_PQ_DEI_SUPPORT))
$(warning  CONFIG_SOCT_PQ_IFMD_SUPPORT $(CONFIG_SOCT_PQ_IFMD_SUPPORT))
$(warning  CONFIG_SOCT_PQ_ACM_SUPPORT $(CONFIG_SOCT_PQ_ACM_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DEBLOCKING_SUPPORT $(CONFIG_SOCT_PQ_DEBLOCKING_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DERING_SUPPORT $(CONFIG_SOCT_PQ_DERING_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DESHOOT_SUPPORT $(CONFIG_SOCT_PQ_DESHOOT_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DMMZ_SUPPORT $(CONFIG_SOCT_PQ_DMMZ_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DEMOSQUITO_SUPPORT $(CONFIG_SOCT_PQ_DEMOSQUITO_SUPPORT))
$(warning  CONFIG_SOCT_PQ_SHARPEN_SUPPORT $(CONFIG_SOCT_PQ_SHARPEN_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DCI_SUPPORT $(CONFIG_SOCT_PQ_DCI_SUPPORT))
$(warning  CONFIG_SOCT_PQ_COCO_SUPPORT $(CONFIG_SOCT_PQ_COCO_SUPPORT))
$(warning  CONFIG_SOCT_PQ_CCCL_SUPPORT $(CONFIG_SOCT_PQ_CCCL_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DECONTOUR_SUPPORT $(CONFIG_SOCT_PQ_DECONTOUR_SUPPORT))
$(warning  CONFIG_SOCT_PQ_HSHARPEN_SUPPORT $(CONFIG_SOCT_PQ_HSHARPEN_SUPPORT))
$(warning  CONFIG_SOCT_PQ_BLUESTRETCH_SUPPORT $(CONFIG_SOCT_PQ_BLUESTRETCH_SUPPORT))
$(warning  CONFIG_SOCT_PQ_SD_CTI_SUPPORT $(CONFIG_SOCT_PQ_SD_CTI_SUPPORT))
$(warning  CONFIG_SOCT_PQ_HD_CTI_SUPPORT $(CONFIG_SOCT_PQ_HD_CTI_SUPPORT))
$(warning  CONFIG_SOCT_PQ_FOD_SUPPORT $(CONFIG_SOCT_PQ_FOD_SUPPORT))
$(warning  CONFIG_SOCT_PQ_GAMMA_SUPPORT $(CONFIG_SOCT_PQ_GAMMA_SUPPORT))
$(warning  CONFIG_SOCT_PQ_CGM_SUPPORT $(CONFIG_SOCT_PQ_CGM_SUPPORT))
$(warning  CONFIG_SOCT_PQ_DIMMING_SUPPORT $(CONFIG_SOCT_PQ_DIMMING_SUPPORT))
$(warning  CONFIG_SOCT_DRM_SUPPORT $(CONFIG_SOCT_DRM_SUPPORT))
#===============================================================================
# local variables
#===============================================================================
ccflags-y += -I$(srctree)/$(VO_REG_DIR)												\
		-I$(srctree)/$(VPSS_REG_DIR)											    \
		-I$(srctree)/drivers/drv/drm/common                                         \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)							\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/comm						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/acm						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/csc						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cti						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dbms						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dci						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dei						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dim						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/fod						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/gamma					    \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/ifmd						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/nr                       \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/nr/hal                   \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/nr/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/scaler					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/scaler/scaler_vdp		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/scaler/scaler_vpss		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/scaler/scaler_gfx		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/scaler/scaler_comm		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_vdp				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_vdp/hal				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_vdp/hal/$(COMM_VERSION)				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_vdp/hal/$(COMM_VERSION)/hdr_cbb				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_vdp/hal/$(COMM_VERSION)/$(BOARD_VERSION)				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_vpss				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_vpss/$(BOARD_VERSION)				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_gfx				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_gfx/$(BOARD_VERSION)					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hdr/hdr_comm				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/sharpen					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/sr						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/file						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hsharpen					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cgm  					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dmmz			    		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/coco 					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cle						\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/comm/hal/$(COMM_VERSION)      \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/csc/csc_gfx				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/csc/csc_vo				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/csc/csc_vo/hal			\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/csc/csc_vo/hal/$(COMM_VERSION)			\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/scaler/scaler_vdp/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cti/hal        		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cti/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dim/hal					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dim/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/gamma/hal        		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/gamma/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/fod/hal                  \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/fod/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/ifmd/hal		            \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/ifmd/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/sr/hal/$(COMM_VERSION)	\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/sharpen/hal     	    	\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/sharpen/hal/$(COMM_VERSION)\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/sharpen/hal/$(COMM_VERSION)/$(BOARD_VERSION)				\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dci/hal					\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dci/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dci/hal/$(COMM_VERSION)/$(BOARD_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/hsharpen/$(HAL_VERSION)	\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/acm/hal        	    	\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/acm/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dbms/hal                 \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dbms/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dei/hal        		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dei/hal/$(COMM_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/nr/$(HAL_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cgm/$(HAL_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/dmmz/$(HAL_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/coco/$(HAL_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cle/$(HAL_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/cle/$(HAL_VERSION)/$(BOARD_VERSION)		\
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/thread                   \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/es                       \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/es/hal                   \
		-I$(srctree)/drivers/drv/drm/$(TARGET)/$(VERSION)/es/hal/$(HAL_VERSION) \
		-I$(srctree)/drivers/drv/ioctl_inc/generic \
		-I$(srctree)/drivers/drv/ioctl_inc/common/ \
		-I$(srctree)/drivers/drv/ioctl_inc/video/ \
		-I$(srctree)/drivers/drv/ioctl_inc/pdm/ \
		-I$(srctree)/drivers/drv/ioctl_inc/stat/ \
		-I$(srctree)/drivers/drv/ioctl_inc/ssm/ \
		-I$(srctree)/drivers/drv/ioctl_inc/pdm/ \
		-I$(srctree)/drivers/drv/ioctl_inc/memc/ \
		-I$(srctree)/drivers/drv/ext_inc/common/ \
		-I$(srctree)/drivers/drv/ext_inc/osal/ \
		-I$(srctree)/drivers/drv/ext_inc/pdm/ \
		-I$(srctree)/drivers/drv/ext_inc/stat/ \
		-I$(srctree)/drivers/drv/ext_inc/ssm/ \
		-I$(srctree)/drivers/drv/ext_inc/mailbox/ \
		-I$(srctree)/drivers/drv/ext_inc/base/ \
		-I$(srctree)/drivers/drv/drm/vo/include \
		-I$(srctree)/drivers/drv/drm/pq/include

ccflags-y += -DLOG_MODULE_ID=SOC_ID_PQ

#Add compile options for binscope
ccflags-y += -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all

ifeq ($(CONFIG_SOCT_DRM_SUPPORT), y)
ccflags-y += -DCONFIG_SOCT_DRM_SUPPORT
endif

ifeq ($(CONFIG_SOCT_DRM_SUPPORT), m)
ccflags-y += -DCONFIG_SOCT_DRM_SUPPORT
endif

MOD_NAME := soc_pq

ifeq ($(CONFIG_SOCT_DRV_BUILDIN),y)
obj-y	+= $(MOD_NAME).o
else
obj-m	+= $(MOD_NAME).o
endif

$(MOD_NAME)-objs-y += pq/$(VERSION)/drv_pq_intf.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/drv_pq.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/drv_pq_proc.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/thread/drv_pq_vpss_thread.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/thread/drv_pq_vdp_thread.o

ifneq ($(findstring comm, $(module)),)
$(MOD_NAME)-objs-y += pq/$(VERSION)/comm/pq_comm.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/comm/hal/$(COMM_VERSION)/hal_comm.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/comm/pq_comm_basic.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/comm/pq_comm_send_coef.o
endif

ifneq ($(findstring file, $(module)),)
$(MOD_NAME)-objs-y += pq/$(VERSION)/file/pq_pqfile.o
endif

ifeq ($(CONFIG_SOCT_PQ_ACM_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/acm/drv_pq_acm.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/acm/drv_acm_alg.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/acm/hal/$(COMM_VERSION)/hal_acm.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/acm/hal/$(COMM_VERSION)/hal_acm_param.o
endif

ifeq ($(CONFIG_SOCT_PQ_CSC_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_vo/drv_pq_csc.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_vo/hal/hal_csc_alg.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_vo/hal/hal_csc.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_vo/hal/hal_csc_param.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_vo/hal/$(COMM_VERSION)/hal_csc_sub.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_vo/hal/$(COMM_VERSION)/hal_ct.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_vo/hal/$(COMM_VERSION)/hal_ct_param.o
endif

ifeq ($(CONFIG_SOCT_PQ_GFXCSC_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/csc/csc_gfx/drv_pq_gfxcsc.o
endif

ifeq ($(CONFIG_SOCT_PQ_DCI_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/dci/drv_pq_dci.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dci/hal/hal_dci_alg.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dci/hal/$(COMM_VERSION)/hal_dci_param.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dci/hal/$(COMM_VERSION)/hal_dci.o
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun"),)
$(MOD_NAME)-objs-y += pq/$(VERSION)/dci/hal/$(COMM_VERSION)/hal_dci_regset.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dci/hal/$(COMM_VERSION)/$(BOARD_VERSION)/hal_dci_spec.o
endif
endif

ifeq ($(CONFIG_SOCT_PQ_DIMMING_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/dim/drv_pq_dim.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dim/hal/hal_dim_alg.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dim/hal/hal_dim_param.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dim/hal/hal_dim.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/dim/hal/$(COMM_VERSION)/hal_dim_sub.o
endif


ifeq ($(CONFIG_SOCT_PQ_GAMMA_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/gamma/drv_pq_gamma.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/gamma/hal/$(COMM_VERSION)/hal_gamma.o
endif

ifeq ($(CONFIG_SOCT_PQ_GFXHDR_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/hdr/hdr_gfx/pq_gfx_hdr.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/hdr/hdr_gfx/pq_gfx_hdr_hal.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/hdr/hdr_gfx/pq_gfx_hdr_regset_hal.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/hdr/hdr_comm/pq_hdr_regset_hal.o
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun"),)
$(MOD_NAME)-objs-y += pq/$(VERSION)/hdr/hdr_gfx/$(BOARD_VERSION)/drv_pq_gfx_hdr_regset_hal_spec.o
endif
endif

ifeq ($(CONFIG_SOCT_PQ_ZME_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/scaler/scaler_vdp/pq_vdp_scaler.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/scaler/scaler_vdp/pq_vdp_scaler_alg.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/scaler/scaler_vdp/hal/$(COMM_VERSION)/hal_scaler_vdp.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/scaler/scaler_vdp/hal/$(COMM_VERSION)/hal_scaler_vdp_param.o
endif

ifeq ($(CONFIG_SOCT_PQ_GFXZME_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/scaler/scaler_gfx/pq_gfx_scaler.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/scaler/scaler_gfx/pq_gfx_scaler_alg.o
endif

ifeq ($(CONFIG_SOCT_PQ_CGM_SUPPORT),y)
$(MOD_NAME)-objs-y += pq/$(VERSION)/cgm/pq_cgm.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/cgm/$(HAL_VERSION)/drv_pq_cgm_hal.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/cgm/$(HAL_VERSION)/drv_pq_cgm_param.o
endif

$(MOD_NAME)-objs-y += pq/$(VERSION)/es/drv_pq_es.o
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinaxe"),)
$(MOD_NAME)-objs-y += pq/$(VERSION)/es/hal/$(COMM_VERSION)/hal_es.o
endif
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun"),)
$(MOD_NAME)-objs-y += pq/$(VERSION)/es/hal/$(HAL_VERSION)/hal_es_param.o
$(MOD_NAME)-objs-y += pq/$(VERSION)/es/hal/$(COMM_VERSION)/$(BOARD_VERSION)/hal_es.o
endif


$(MOD_NAME)-objs := $($(MOD_NAME)-objs-y)


endif

##########################################################
##                     VDP                              ##
##                                                      ##
##########################################################

###############################################################################
# local variables
###############################################################################

ifeq ($(COMPILE_VO),y)
MODNAME := soc_vou
VO_VER := vdp_v6_0
HAL_TOP_DIR := drivers/drv/drm/vo/$(VO_VER)/hal
HAL_DIR := drivers/drv/drm/vo/$(VO_VER)/hal

$(warning  CONFIG_SOCT_VO_SUPPORT $(CONFIG_SOCT_VO_SUPPORT))
$(warning  CONFIG_SOCT_VO_SDK_PQ_SUPPORT $(CONFIG_SOCT_VO_SDK_PQ_SUPPORT))
$(warning  CONFIG_SOCT_TEE_SUPPORT $(CONFIG_SOCT_TEE_SUPPORT))
$(warning  CONFIG_SOCT_CONFIG_COMPAT $(CONFIG_SOCT_CONFIG_COMPAT))
$(warning  CONFIG_SOCT_VO_HAL_PROC_TEST_SUPPORT $(CONFIG_SOCT_VO_HAL_PROC_TEST_SUPPORT))
$(warning  CONFIG_SOCT_VO_HAL_TEST_SUPPORT $(CONFIG_SOCT_VO_HAL_TEST_SUPPORT))
$(warning  CONFIG_SOCT_VO_CS_SUPPORT $(CONFIG_SOCT_VO_CS_SUPPORT))
$(warning  CONFIG_COMPAT $(CONFIG_COMPAT))
$(warning  CONFIG_SOCT_FPGA_SUPPORT $(CONFIG_SOCT_FPGA_SUPPORT))
$(warning  MODULE $(MODULE))
$(warning  MODNAME $(MODNAME))
$(warning  CONFIG_LINUX_PRODUCT $(CONFIG_LINUX_PRODUCT))
$(warning  CONFIG_ANDROID_PRODUCT $(CONFIG_ANDROID_PRODUCT))
$(warning  CONFIG_SOCT_MEMC_SUPPORT $(CONFIG_SOCT_MEMC_SUPPORT))
$(warning  CONFIG_CHIP_SHAOLINKNIVE $(CONFIG_CHIP_SHAOLINKNIVE))
$(warning  srctree $(srctree))
$(warning  CONFIG_SOCT_CHIP_TYPE $(CONFIG_SOCT_CHIP_TYPE))
$(warning  CONFIG_SOCT_CHIP_REVERSION $(CONFIG_SOCT_CHIP_REVERSION))
$(warning  CONFIG_SOCT_DRM_SUPPORT $(CONFIG_SOCT_DRM_SUPPORT))

CONFIG_WUDANGSTICK=y
HAL_INTF_DIR := v1
$(warning  HAL_INTF_DIR $(HAL_INTF_DIR))

ifeq ($(CONFIG_SOCT_MEMC_SUPPORT),y)
ccflags-y += -DSOCT_MEMC_SUPPORT
endif

ifeq ($(CONFIG_SOCT_MEMC_SUPPORT),m)
ccflags-y += -DSOCT_MEMC_SUPPORT
endif

ifeq ($(CONFIG_SOCT_DRM_SUPPORT), y)
ccflags-y += -DCONFIG_SOCT_DRM_SUPPORT
endif

ifeq ($(CONFIG_SOCT_DRM_SUPPORT), m)
ccflags-y += -DCONFIG_SOCT_DRM_SUPPORT
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun"),)
ifneq ($(findstring $(CONFIG_SOCT_CHIP_REVERSION), "wudangstick_c" "wudangstick_d"),)
ccflags-y += -DSOCT_REG_REVISION_B
endif
endif

ccflags-y += -I$(srctree)/drivers/drv/drm/vo/include
ifeq ($(CONFIG_SOCT_VO_CS_SUPPORT),y)
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/v0f/v1
endif
ccflags-y += -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/include \
			 -I$(srctree)/drivers/drv/dip_inc/vo \
			 -I$(srctree)/drivers/drv/dip_inc/repeater \
			 -I$(srctree)/drivers/drv/ioctl_inc/generic \
			 -I$(srctree)/drivers/drv/ioctl_inc/common/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/video/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/panel/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/pdm/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/stat/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/gfbg/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/ssm/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/pdm/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/memc/ \
			 -I$(srctree)/drivers/drv/ext_inc/common/ \
			 -I$(srctree)/drivers/drv/ext_inc/osal/ \
			 -I$(srctree)/drivers/drv/ext_inc/dftevent/ \
			 -I$(srctree)/drivers/drv/ext_inc/hdmitx/ \
			 -I$(srctree)/drivers/drv/ext_inc/panel/ \
			 -I$(srctree)/drivers/drv/ext_inc/pdm/ \
			 -I$(srctree)/drivers/drv/ext_inc/stat/ \
			 -I$(srctree)/drivers/drv/ext_inc/gfbg/ \
			 -I$(srctree)/drivers/drv/ext_inc/ssm/ \
			 -I$(srctree)/drivers/drv/ext_inc/base/ \
			 -I$(srctree)/drivers/drv/ext_inc/mailbox/ \
			 -Iinclude/linux/huanglong/utils \
			 -I$(srctree)/drivers/drv/drm/common \
			 -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/disp \
			 -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/xdp_ctrl \
			 -I$(srctree)/drivers/drv/drm/vo/include \
			 -I$(srctree)/drivers/drv/drm/vo/common \
			 -I$(srctree)/drivers/drv/drm/pq/include

ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/hal_intf/$(HAL_INTF_DIR) \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/cfg \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/com \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/include

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick" "shaolingun" "shaolinaxe"),)
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/crop/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/v0f/v1

ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/cfg \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/com \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/include \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/hdr/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/vbi/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/include \

endif


ifeq ($(CONFIG_WUDANGSTICK),y)
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/para/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/disp/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/zme/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/wbc/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/crg/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/csc/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/master/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/vid/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/mmu/v1 \
             -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/ip/fdr/v1
endif

ccflags-y += -I$(srctree)/drivers/drv/drm/include \
		-I$(srctree)/drivers/drv/drm/include/vo

ifeq ($(CONFIG_SOCT_DRV_BUILDIN),y)
obj-y	+= $(MODNAME).o
else
obj-m	+= $(MODNAME).o
endif

ifeq ($(CONFIG_SOCT_VO_HAL_TEST_SUPPORT),y)
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/test
endif

ifeq ($(CONFIG_SOCT_VO_HAL_TEST_SUPPORT), y)
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/test/cle_v1
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/$(VO_VER)/hal/test/dc_v1
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/test/hal_vdp_test_csc.o
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/test/vdp_test_zme.o
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/test/hal_vdp_test_zme.o
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/test/cle_v1/hal_vdp_reg_cle.o
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/test/hal_vdp_test_dc.o
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/test/dc_v1/hal_vdp_reg_dc.o
endif

$(MODNAME)-objs-y += vo/$(VO_VER)/disp/drv_disp.o \
                     vo/$(VO_VER)/disp/drv_display.o \
                     vo/$(VO_VER)/disp/drv_disp_isr.o \
                     vo/$(VO_VER)/disp/drv_disp_timing.o \
                     vo/$(VO_VER)/disp/drv_disp_cast.o \
                     vo/$(VO_VER)/disp/drv_disp_cast_buf.o \
                     vo/$(VO_VER)/disp/drv_disp_interface.o \
                     vo/$(VO_VER)/disp/drv_disp_mcvn.o \
                     vo/$(VO_VER)/disp/drv_disp_cgms.o \
                     vo/$(VO_VER)/xdp_ctrl/xdp_ctrl.o \
                     vo/$(VO_VER)/xdp_ctrl/drv_layer_prepare.o \
                     vo/$(VO_VER)/drv_disp_intf.o


$(MODNAME)-objs-y += vo/$(VO_VER)/../common/drv_xdp_ion.o \
                     vo/$(VO_VER)/../common/drv_xdp_list.o \
                     vo/$(VO_VER)/../common/drv_xdp_osal.o \
                     vo/$(VO_VER)/../common/drv_xdp_ext_func.o \
                     vo/$(VO_VER)/../common/drv_xdp_proc_def.o \
                     vo/$(VO_VER)/../common/drv_xdp_fault_report.o \
                     vo/$(VO_VER)/../common/drv_xdp_comm.o

$(MODNAME)-objs-y += vo/$(VO_VER)/hal/hal_intf/$(HAL_INTF_DIR)/hal_disp_intf.o \
                     vo/$(VO_VER)/hal/hal_intf/$(HAL_INTF_DIR)/hal_layer_intf.o \
                     vo/$(VO_VER)/hal/hal_intf/$(HAL_INTF_DIR)/hal_debug_intf.o \
                     vo/$(VO_VER)/hal/hal_intf/$(HAL_INTF_DIR)/hal_wbc_intf.o \
                     vo/$(VO_VER)/hal/com/hal_vdp_comm.o \
                     vo/$(VO_VER)/hal/com/hal_vdp_chip_config.o \
                     vo/$(VO_VER)/hal/com/hal_vdp_ip_save.o \
                     vo/$(VO_VER)/hal/cfg/hal_layer_cfg.o \
                     vo/$(VO_VER)/hal/cfg/hal_disp_cfg.o


ifeq ($(CONFIG_WUDANGSTICK),y)
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_reg_pp_sr.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_reg_2dscale.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_reg_vzme.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_reg_cvfir.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_reg_hzme.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_reg_hfir.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_ip_zme.o \
                     vo/$(VO_VER)/hal/ip/fdr/v1/hal_vdp_ip_fdr.o \
                     vo/$(VO_VER)/hal/ip/fdr/v1/hal_vdp_ip_lowdelay.o \
                     vo/$(VO_VER)/hal/ip/fdr/v1/hal_vdp_reg_fdr.o \
                     vo/$(VO_VER)/hal/ip/fdr/v1/hal_vdp_reg_region.o \
                     vo/$(VO_VER)/hal/ip/csc/v1/hal_vdp_ip_csc.o \
                     vo/$(VO_VER)/hal/ip/csc/v1/hal_vdp_reg_pp_csc.o \
                     vo/$(VO_VER)/hal/ip/nxg/v1/hal_vdp_ip_nxg.o \
                     vo/$(VO_VER)/hal/ip/nxg/v1/hal_vdp_reg_nxg.o \
                     vo/$(VO_VER)/hal/ip/vid/v1/hal_vdp_reg_vid.o \
                     vo/$(VO_VER)/hal/ip/vid/v1/hal_vdp_ip_vid.o \
                     vo/$(VO_VER)/hal/ip/mmu/v1/hal_vdp_reg_mmu.o \
                     vo/$(VO_VER)/hal/ip/mmu/v1/hal_vdp_ip_mmu.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_reg_dsp.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_reg_cbm.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_reg_vrr.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_reg_mdata.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_reg_chn.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_ip_dispchn.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_ip_mdata.o \
                     vo/$(VO_VER)/hal/ip/master/v1/hal_vdp_ip_master.o \
                     vo/$(VO_VER)/hal/ip/master/v1/hal_vdp_reg_master.o \
                     vo/$(VO_VER)/hal/ip/vbi/v1/hal_vdp_ip_vbi.o \
                     vo/$(VO_VER)/hal/ip/vbi/v1/hal_vdp_reg_vbi.o \
                     vo/$(VO_VER)/hal/ip/hdr/v1/hal_vdp_reg_hdr_v2.o \
                     vo/$(VO_VER)/hal/ip/hdr/v1/hal_vdp_reg_composer.o \
                     vo/$(VO_VER)/hal/ip/hdr/v1/hal_vdp_ip_hdr.o \
                     vo/$(VO_VER)/hal/ip/hdr/v1/hal_vdp_reg_tmap_v2.o \
                     vo/$(VO_VER)/hal/ip/hdr/v1/hal_vdp_reg_tchdr.o \
                     vo/$(VO_VER)/hal/ip/hdr/v1/hal_vdp_reg_vhdr_cm.o \
                     vo/$(VO_VER)/hal/ip/para/v1/hal_vdp_ip_para.o \
                     vo/$(VO_VER)/hal/ip/para/v1/hal_vdp_reg_para.o \
                     vo/$(VO_VER)/hal/ip/crg/v1/hal_vdp_ip_crg.o \
                     vo/$(VO_VER)/hal/ip/crg/v1/hal_vdp_ip_vmin.o \
                     vo/$(VO_VER)/hal/cfg/hal_wbc_cfg.o

ifeq ($(CONFIG_SOCT_VO_CS_SUPPORT),y)
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/cfg/hal_v0f_cfg.o
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/ip/wbc/v1/hal_vdp_ip_wbc.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_gfx_reg_gp0_zme.o \
                     vo/$(VO_VER)/hal/ip/zme/v1/hal_vdp_reg_v0_dfir.o \
                     vo/$(VO_VER)/hal/ip/wbc/v1/hal_vdp_reg_cap.o \
                     vo/$(VO_VER)/hal/ip/wbc/v1/hal_vdp_reg_wbc.o \
                     vo/$(VO_VER)/hal/ip/crop/v1/hal_vdp_ip_crop.o \
                     vo/$(VO_VER)/hal/ip/crop/v1/hal_vdp_reg_crop.o \
                     vo/$(VO_VER)/hal/ip/crop/v1/hal_vdp_reg_crop_8ppc.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_ip_v0f.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_reg_v0f.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_reg_wchn.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_reg_lbd.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_ip_lbd.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_reg_pfmd.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_ip_pfmd.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_reg_ds_cmp.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_reg_fr_cmp.o \
                     vo/$(VO_VER)/hal/ip/v0f/v1/hal_vdp_reg_lc_cmp.o \
                     vo/$(VO_VER)/hal/ip/fdr/v1/hal_vdp_reg_pfmd_dcmp.o \
                     vo/$(VO_VER)/hal/ip/disp/v1/hal_vdp_reg_vmeta.o \
                     vo/$(VO_VER)/hal/ip/dcmp/v1/hal_vdp_ip_alg.o
else
$(MODNAME)-objs-y += vo/$(VO_VER)/hal/ip/wbc/empty/hal_vdp_ip_wbc.o \
                     vo/$(VO_VER)/hal/ip/crop/empty/hal_vdp_ip_crop.o
endif
endif

$(MODNAME)-objs := $($(MODNAME)-objs-y)
endif

##########################################################
##                     GFBG                             ##
##                                                      ##
##########################################################

ifeq ($(COMPILE_FB),y)
#===============================================================================
# hal dir
#===============================================================================
HAL_DIR := hal_v1_0
JPEG_HAL_DIR := hal_v1_0
#===============================================================================
# local variables
#===============================================================================
$(warning  CONFIG_CHIP_SHAOLINKNIVE $(CONFIG_CHIP_SHAOLINKNIVE))
$(warning  CONFIG_PLATFORM_HUANGLONG $(CONFIG_PLATFORM_HUANGLONG))
$(warning  CONFIG_SOCT_FB_DECOMPRESS_SUPPORT $(CONFIG_SOCT_FB_DECOMPRESS_SUPPORT))
$(warning  CONFIG_SOCT_FB_ANDROID_SUPPORT $(CONFIG_SOCT_FB_ANDROID_SUPPORT))
$(warning  CONFIG_SOCT_FB_CS_SUPPORT $(CONFIG_SOCT_FB_CS_SUPPORT))
$(warning  CONFIG_SOCT_DRM_SUPPORT $(CONFIG_SOCT_DRM_SUPPORT))

ccflags-y += -I$(srctree)/drivers/drv/drm/common \
			 -I$(srctree)/drivers/drv/drm/gfbg/include \
			 -I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/inc \
			 -I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/adp/inc \
			 -I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/adp/src \
			 -I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/adp/$(HAL_DIR) \
			 -I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/adp/alg \
			 -I$(srctree)/drivers/drv/drm/gfbg/grc_cmm_inc \
			 -I$(srctree)/drivers/drv/dip_inc/vo \
			 -I$(srctree)/drivers/drv/dip_inc/repeater \
			 -I$(srctree)/drivers/drv/ioctl_inc/generic \
			 -I$(srctree)/drivers/drv/ioctl_inc/common/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/video/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/panel/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/pdm/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/stat/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/gfbg/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/ssm/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/pdm/ \
			 -I$(srctree)/drivers/drv/ioctl_inc/memc/ \
			 -I$(srctree)/drivers/drv/ext_inc/common/ \
			 -I$(srctree)/drivers/drv/ext_inc/osal/ \
			 -I$(srctree)/drivers/drv/ext_inc/dftevent/ \
			 -I$(srctree)/drivers/drv/ext_inc/hdmitx/ \
			 -I$(srctree)/drivers/drv/ext_inc/panel/ \
			 -I$(srctree)/drivers/drv/ext_inc/pdm/ \
			 -I$(srctree)/drivers/drv/ext_inc/stat/ \
			 -I$(srctree)/drivers/drv/ext_inc/gfbg/ \
			 -I$(srctree)/drivers/drv/ext_inc/ssm/ \
			 -I$(srctree)/drivers/drv/ext_inc/base/ \
			 -I$(srctree)/drivers/drv/ext_inc/mailbox/ \
			 -I$(srctree)/drivers/drv/jpeg/grc_cmm_inc \
			 -I$(srctree)/drivers/drv/jpeg/$(JPEG_HAL_DIR) \
			 -I$(srctree)/drivers/drv/ext_inc/tde \
			 -I$(srctree)/drivers/drv/ioctl_inc/tde \

ifeq ($(COMPILE_VO),y)
ccflags-y += -I$(srctree)/drivers/drv/drm/vo/include
endif

ifeq ($(COMPILE_PQ),y)
ccflags-y += -I$(srctree)/drivers/drv/drm/pq/include
endif

ifeq ($(CFG_GFBG_DISP_WINDOW_SYNC_SUPPORT),y)
EXTRA_CFLAGS += -DCONFIG_DPUFB_DISP_WINDOW_SYNC_SUPPORT
endif

ifeq ($(CONFIG_SOCT_DRM_SUPPORT),y)
EXTRA_CFLAGS += -DCONFIG_SOCT_DRM_SUPPORT
endif
ifeq ($(CONFIG_SOCT_DRM_SUPPORT),m)
EXTRA_CFLAGS += -DCONFIG_SOCT_DRM_SUPPORT
endif

ifneq ($(CFG_SOCT_HD0_FB_VRAM_SIZE),)
EXTRA_CFLAGS += -DCFG_SOCT_HD0_FB_VRAM_SIZE=$(CFG_SOCT_HD0_FB_VRAM_SIZE)
endif
ifneq ($(CFG_SOCT_HD1_FB_VRAM_SIZE),)
EXTRA_CFLAGS += -DCFG_SOCT_HD1_FB_VRAM_SIZE=$(CFG_SOCT_HD1_FB_VRAM_SIZE)
endif
ifneq ($(CFG_SOCT_HD2_FB_VRAM_SIZE),)
EXTRA_CFLAGS += -DCFG_SOCT_HD2_FB_VRAM_SIZE=$(CFG_SOCT_HD2_FB_VRAM_SIZE)
endif
ifneq ($(CFG_SOCT_HD3_FB_VRAM_SIZE),)
EXTRA_CFLAGS += -DCFG_SOCT_HD3_FB_VRAM_SIZE=$(CFG_SOCT_HD3_FB_VRAM_SIZE)
endif

ifeq ($(CONFIG_SOCT_LOG_LEVEL_DEBUG),y)
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_DEBUG
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_INFO
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_ERR
endif

ifeq ($(CONFIG_SOCT_LOG_LEVEL_INFO),y)
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_INFO
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_ERR
endif

ifeq ($(CONFIG_SOCT_LOG_LEVEL_WARNING),y)
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_ERR
endif

ifeq ($(CONFIG_SOCT_LOG_LEVEL_ERROR),y)
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_ERR
endif

ifeq ($(CONFIG_SOCT_LOG_LEVEL_FATAL),y)
EXTRA_CFLAGS += -DCONFIG_GFX_DFX_ERR
endif

ifeq ($(CFG_SOCT_FB0_SMMU_SUPPORT),y)
EXTRA_CFLAGS += -DCONFIG_GFX_SOCT_FB0_SMMU_SUPPORT
endif

ifeq ($(CFG_SOCT_FB1_SMMU_SUPPORT),y)
EXTRA_CFLAGS += -DCONFIG_GFX_SOCT_FB1_SMMU_SUPPORT
endif

ifeq ($(CFG_SOCT_FB2_SMMU_SUPPORT),y)
EXTRA_CFLAGS += -DCONFIG_GFX_SOCT_FB2_SMMU_SUPPORT
endif

ifeq ($(CFG_SOCT_FB3_SMMU_SUPPORT),y)
EXTRA_CFLAGS += -DCONFIG_GFX_SOCT_FB3_SMMU_SUPPORT
endif

MODNAME := soc_fb

ifeq ($(CONFIG_SOCT_DRV_BUILDIN),y)
obj-y	+= $(MODNAME).o
else
obj-m	+= $(MODNAME).o
endif

$(MODNAME)-objs-y += gfbg/gfbg_v1_0/src/drv_gfbg_blit.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_debug.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_ioctl.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_logo.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_mem.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_osr.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_param_convert.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_proc.o \
					 gfbg/gfbg_v1_0/src/drv_gfbg_fence.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_refresh.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_snapshot.o \
                     gfbg/gfbg_v1_0/src/drv_gfbg_main_k.o \
                     gfbg/gfbg_v1_0/adp/alg/gfbg_alg_decmp.o \
                     gfbg/gfbg_v1_0/adp/$(HAL_DIR)/drv_gfbg_hal.o \
                     gfbg/gfbg_v1_0/adp/src/drv_gfbg_adp.o

EXTRA_CFLAGS += $(CFG_SOCT_KMOD_CFLAGS)

$(MODNAME)-objs := $($(MODNAME)-objs-y)
endif

##########################################################
##                     DRM                              ##
##                                                      ##
##########################################################

ifeq ($(COMPILE_DRM),y)
ifneq ($(CONFIG_SOCT_KMOD_CFLAGS),)
ccflags-y += $(CONFIG_SOCT_KMOD_CFLAGS)
endif
ccflags-y += -fstack-protector-all
EXTRA_CFLAGS += -I$(srctree)/drivers/drv/drm/gem \
		-I$(srctree)/drivers/drv/drm/plane \
		-I$(srctree)/drivers/drv/drm/crtc \
		-I$(srctree)/drivers/drv/drm/encoder \
		-I$(srctree)/drivers/drv/drm/bridge \
		-I$(srctree)/drivers/drv/drm/bridge/adp \
		-I$(srctree)/drivers/drv/drm/connector \
		-I$(srctree)/drivers/drv/drm/capability \
		-I$(srctree)/drivers/drv/drm/common \
		-I$(srctree)/drivers/drv/drm/common/pq \
		-I$(srctree)/drivers/drv/drm/crtc/adp \
		-I$(srctree)/drivers/drv/drm/plane/adp \
		-I$(srctree)/drivers/drv/drm/encoder/adp \
		-I$(srctree)/drivers/drv/drm/connector/adp \
		-I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/adp/inc \
		-I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/inc \
		-I$(srctree)/drivers/drv/drm/gfbg/include \
		-I$(srctree)/drivers/drv/drm/gfbg/gfbg_v1_0/adp/hal_v1_0 \
		-I$(srctree)/drivers/drv/dip_inc/vo \
		-I$(srctree)/drivers/drv/dip_inc/repeater \
		-I$(srctree)/drivers/drv/ioctl_inc/generic \
		-I$(srctree)/drivers/drv/ioctl_inc/common/ \
		-I$(srctree)/drivers/drv/ioctl_inc/video/ \
		-I$(srctree)/drivers/drv/ioctl_inc/panel/ \
		-I$(srctree)/drivers/drv/ioctl_inc/memc/ \
		-I$(srctree)/drivers/drv/ext_inc/common/ \
		-I$(srctree)/drivers/drv/ext_inc/osal/ \
		-I$(srctree)/drivers/drv/ext_inc/dftevent/ \
		-I$(srctree)/drivers/drv/ext_inc/hdmitx/ \
		-I$(srctree)/drivers/drv/ext_inc/panel/ \
		-I$(srctree)/drivers/drv/ext_inc/base/ \
		-I$(srctree)/drivers/drv/drm/fbdev \
		-I$(srctree)/drivers/drv/drm/writeback \
		-I$(srctree)/drivers/drv/drm \
		-I$(srctree)/drivers/gpu/drm/bridge/drm_bridge \
		-I$(srctree)/drivers/drv/drm/gfbg/grc_cmm_inc \
		-I$(srctree)/include/linux

ifeq ($(CONFIG_SOCT_COMMON_KERNEL),)
ifeq ($(CONFIG_SOCT_OH_KERNEL),)
EXTRA_CFLAGS += -I$(srctree)/drivers/drv/drm/backlight
endif
endif

ifeq ($(COMPILE_VO),y)
EXTRA_CFLAGS += -I$(srctree)/drivers/drv/drm/vo/include
else
EXTRA_CFLAGS += -I$(srctree)/drivers/drv/ioctl_inc/vo/ \
	        -I$(srctree)/drivers/drv/ext_inc/vo/ \
		-I$(srctree)/drivers/drv/ext_inc/xdp/vdp/
endif

ifeq ($(COMPILE_PQ),y)
EXTRA_CFLAGS += -I$(srctree)/drivers/drv/drm/pq/include
else
EXTRA_CFLAGS += -I$(srctree)/drivers/drv/ioctl_inc/pq/ \
		-I$(srctree)/drivers/drv/ext_inc/pq/
endif

ifeq ($(TVOS_SET),y)
EXTRA_CFLAGS += -DCONFIG_TVOS_SET
endif

MODNAME := soc_drm

ifeq ($(CONFIG_SOCT_DRV_BUILDIN),y)
obj-y	+= $(MODNAME).o
else
obj-m	+= $(MODNAME).o
endif

$(MODNAME)-objs-y := \
	soc_drm_driver.o \
	virtual_output_stub.o \
	transmitter.o \
	gem/soc_drm_gem.o \
	plane/soc_drm_plane.o \
	crtc/soc_drm_crtc.o \
	encoder/soc_drm_encoder.o \
	bridge/soc_drm_bridge.o \
	bridge/adp/soc_adp_bridge.o \
	connector/soc_drm_connector.o \
	fbdev/soc_drm_fbdev.o \
	plane/adp/soc_adp_plane.o \
	plane/adp/soc_adp_virtual_plane.o \
	crtc/adp/soc_adp_crtc.o \
	crtc/adp/soc_adp_virtual_crtc.o \
	encoder/adp/soc_adp_encoder.o \
	encoder/adp/soc_adp_mipi_encoder.o \
	encoder/adp/soc_adp_virtual_encoder.o \
	connector/adp/soc_adp_connector_common.o \
	connector/adp/soc_adp_hdmi_connector.o \
	connector/adp/soc_adp_mipi_connector.o \
	connector/adp/soc_adp_dp_connector.o \
	connector/adp/soc_adp_virtual_connector.o \
	common/fault_report.o \
	capability/soc_drm_capability.o \
	common/soc_drm_proc.o \
	common/pq/soc_drm_csc.o \
	common/soc_disp_timing.o \
	common/soc_drm_ext_func.o \
	common/soc_drm_cabc.o \
	common/soc_drm_reg.o \
	common/soc_drm_cabc_map_lut.o

ifeq ($(TVOS_SET), n)
$(MODNAME)-objs-y += backlight/soc_drm_backlight.o \
	writeback/soc_drm_writeback.o
endif

$(MODNAME)-objs := $($(MODNAME)-objs-y)

endif


