OBJ_DIR := $(srctree)/$(src)
OBJS := $(subst .o.hex,.o, $(wildcard objs/arm64/*.o.hex))

obj-$(CONFIG_GPU_MOORE_THREADS) += mtgpu.o

mtgpu-y := src/allocmem.o                                  \
src/event.o                                                   \
src/fwload.o                                                  \
src/handle_idr.o                                              \
src/interrupt_support.o                                       \
src/km_apphint.o                                              \
src/module_common.o                                           \
src/osconnection_server.o                                     \
src/osfunc.o                                                  \
src/osfunc_arm64.o                                            \
src/osmmap_stub.o                                             \
src/pci_support.o                                             \
src/physmem_dmabuf.o                                          \
src/physmem_osmem_linux.o                                     \
src/physmem_test.o                                            \
src/pmr_os.o                                                  \
src/pvr_bridge_k.o                                            \
src/pvr_buffer_sync.o                                         \
src/pvr_counting_timeline.o                                   \
src/pvr_debug.o                                               \
src/pvr_debugfs.o                                             \
src/pvr_drm.o                                                 \
src/pvr_fence.o                                               \
src/pvr_gputrace.o                                            \
src/pvr_platform_drv.o                                        \
src/pvr_sw_fence.o                                            \
src/pvr_sync_file.o                                           \
src/pvr_sync_ioctl_common.o                                   \
src/pvr_sync_ioctl_drm.o                                      \
objs/arm64/mtgpu_core.o

mtgpu-$(CONFIG_EVENT_TRACING) += src/trace_events.o

ccflags-y += -DSUPPORT_DMA_TRANSFER -DPVRSRV_FULL_SYNC_TRACKING_HISTORY_LEN=256 -DRGX_NUM_OS_SUPPORTED=1 -DPVR_LINUX_KMALLOC_ALLOCATION_THRESHOLD=16384 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_TQ3D=14 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_TQ3D=17 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_TQ2D=14 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_TQ2D=17 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_CDM=13 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_CDM=15 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_TA=15 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_TA=16 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_3D=16 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_3D=17 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_KICKSYNC=13 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_KICKSYNC=13 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_TDM=14 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_TDM=17 -DPVRSRV_RGX_LOG2_CLIENT_CCB_SIZE_RDM=13 -DPVRSRV_RGX_LOG2_CLIENT_CCB_MAX_SIZE_RDM=15 -DPVR_ANNOTATION_MAX_LEN=63  -DPVRSRV_APPHINT_ENABLETRUSTEDDEVICEACECONFIG=IMG_FALSE -DPVRSRV_APPHINT_CLEANUPTHREADPRIORITY=5 -DPVRSRV_APPHINT_HWPERFCLIENTBUFFERSIZE=786432 -DPVRSRV_APPHINT_GENERALNON4KHEAPPAGESIZE=0x4000 -DPVRSRV_APPHINT_CACHEOPTHREADPRIORITY=1 -DPVRSRV_APPHINT_WATCHDOGTHREADPRIORITY=0 -DPVRSRV_APPHINT_ENABLESIGNATURECHECKS=APPHNT_BLDVAR_ENABLESIGNATURECHECKS -DPVRSRV_APPHINT_SIGNATURECHECKSBUFSIZE=RGXFW_SIG_BUFFER_SIZE_MIN -DPVRSRV_APPHINT_DISABLECLOCKGATING=0 -DPVRSRV_APPHINT_DISABLEDMOVERLAP=0 -DPVRSRV_APPHINT_ENABLERANDOMCONTEXTSWITCH=0 -DPVRSRV_APPHINT_ENABLESOFTRESETCNTEXTSWITCH=0  -DPVRSRV_APPHINT_ENABLEFWCONTEXTSWITCH=RGXFWIF_INICFG_OS_CTXSWITCH_DM_ONLY  -DPVRSRV_APPHINT_FWCONTEXTSWITCHPROFILE=RGXFWIF_CTXSWITCH_PROFILE_MEDIUM_EN -DPVRSRV_APPHINT_ENABLERDPOWERISLAND=RGX_RD_POWER_ISLAND_DEFAULT -DPVRSRV_APPHINT_DRIVERMODE=0x7FFFFFFF -DPVRSRV_APPHINT_FIRMWAREPERF=FW_PERF_CONF_NONE -DPVRSRV_APPHINT_HWPERFFWBUFSIZEINKB=2048 -DPVRSRV_APPHINT_HWPERFHOSTBUFSIZEINKB=2048 -DPVRSRV_APPHINT_HWPERFHOSTTHREADTIMEOUTINMS=50 -DPVRSRV_APPHINT_JONESDISABLEMASK=0 -DPVRSRV_APPHINT_NEWFILTERINGMODE=IMG_FALSE -DPVRSRV_APPHINT_TRUNCATEMODE=0 -DPVRSRV_APPHINT_EMUMAXFREQ=0 -DPVRSRV_APPHINT_GPIOVALIDATIONMODE=0 -DPVRSRV_APPHINT_VALIDATEIRQ=0 -DPVRSRV_APPHINT_HTBUFFERSIZE=64 -DPVRSRV_APPHINT_FWTRACEBUFSIZEINDWORDS=RGXFW_TRACE_BUF_DEFAULT_SIZE_IN_DWORDS -DPVRSRV_APPHINT_ENABLEPAGEFAULTDEBUG=APPHNT_BLDVAR_ENABLEPAGEFAULTDEBUG -DPVRSRV_APPHINT_ENABLEFULLSYNCTRACKING=IMG_FALSE -DPVRSRV_APPHINT_IGNOREHWREPORTEDBVNC=IMG_FALSE -DPVRSRV_APPHINT_PHYSMEMTESTPASSES=APPHNT_PHYSMEMTEST_ENABLE -DPVRSRV_APPHINT_FBCDCVERSIONOVERRIDE=0 -DPVRSRV_APPHINT_TESTSLRINTERVAL=0 -DPVRSRV_APPHINT_RISCVDMITEST=0 -DPVRSRV_APPHINT_FIRMWARE_HEAP_POLICY=5  -DPVRSRV_APPHINT_ENABLEAPM=RGX_ACTIVEPM_DEFAULT -DPVRSRV_APPHINT_KCCB_SIZE_LOG2=7 -DPVRSRV_APPHINT_ENABLEHTBLOGGROUP=0 -DPVRSRV_APPHINT_HTBOPERATIONMODE=HTB_OPMODE_DROPOLDEST -DPVRSRV_APPHINT_ENABLEFTRACEGPU=IMG_FALSE -DPVRSRV_APPHINT_HWPERFCLIENTFILTER_SERVICES=0 -DPVRSRV_APPHINT_HWPERFCLIENTFILTER_EGL=0 -DPVRSRV_APPHINT_HWPERFCLIENTFILTER_OPENGLES=0 -DPVRSRV_APPHINT_HWPERFCLIENTFILTER_OPENCL=0 -DPVRSRV_APPHINT_HWPERFCLIENTFILTER_VULKAN=0 -DPVRSRV_APPHINT_HWPERFCLIENTFILTER_OPENGL=0 -DPVRSRV_APPHINT_CACHEOPCONFIG=0 -DPVRSRV_APPHINT_CACHEOPUMKMHRESHOLDSIZE=0 -DPVRSRV_APPHINT_ASSERTOUTOFMEMORY=IMG_FALSE -DPVRSRV_APPHINT_CHECKMLIST=APPHNT_BLDVAR_DEBUG -DPVRSRV_APPHINT_ENABLELOGGROUP=RGXFWIF_LOG_TYPE_NONE -DPVRSRV_APPHINT_FIRMWARELOGTYPE=0 -DPVRSRV_APPHINT_HWRDEBUGDUMPLIMIT=APPHNT_BLDVAR_DBGDUMPLIMIT -DPVRSRV_APPHINT_TIMECORRCLOCK=0 -DPVRSRV_APPHINT_HWPERFFWFILTER=0 -DPVRSRV_APPHINT_DISABLEFEDLOGGING=IMG_FALSE -DPVRSRV_APPHINT_ZEROFREELIST=IMG_FALSE -DPVRSRV_APPHINT_DISABLEPDUMPPANIC=IMG_FALSE -DPVRSRV_APPHINT_ENABLEFWPOISONONFREE=IMG_FALSE -DPVRSRV_APPHINT_GPUUNITSPOWERCHANGE=IMG_FALSE -DPVRSRV_APPHINT_HWPERFHOSTFILTER=0 -DPVRSRV_APPHINT_FABRICCOHERENCYOVERRIDE=2 -DPVRSRV_APPHINT_ENABLEDMKILLINGRANDMODE=0 -DPVRSRV_APPHINT_KILLINGCTL=0 -DPVRSRV_APPHINT_CDMTDM_KILLINGCTL=0 -DPVRSRV_APPHINT_HWVALENABLESPUPOWERMASKCHANGE=0 -DPVRSRV_APPHINT_HWVALAVAILABLESPUMASK=0xFFFFFFFF -DPVRSRV_APPHINT_HWPERFDISABLECOUNTERFILTER=0 -DPVRSRV_APPHINT_ISPSCHEDULINGLATENCYMODE=1 -DPVRSRV_APPHINT_VALIDATESOCUSCTIMERS=0 -DPVRSRV_APPHINT_CDMARBITRATIONOVERRIDE=0x0 -DPVRSRV_APPHINT_RCEDISABLEMASK=0x0 -DSUPPORT_NATIVE_FENCE_SYNC -DPVRSRV_POISON_ON_FREE_VALUE=0x63 -DPVRSRV_POISON_ON_ALLOC_VALUE=0xd9 -DPVR_LINUX_PHYSMEM_MAX_ALLOC_ORDER_NUM=2 -DPVR_LINUX_HIGHORDER_ALLOCATION_THRESHOLD=256 -DSUPPORT_RGX=1 -DPVRSRV_NEED_PVR_DPF


ccflags-y += -I$(OBJ_DIR)/inc -I$(OBJ_DIR)/inc/include -I$(OBJ_DIR)/inc/server -I$(OBJ_DIR)/inc/shared -I$(OBJ_DIR)/inc/services -I$(OBJ_DIR)/src -I$(OBJ_DIR)/inc/include/volcanic -I$(OBJ_DIR)/inc/hwdefs_volcanic -I$(OBJ_DIR)/inc/hwdefs_volcanic/km  -I$(OBJ_DIR)/inc/rgx_linux_mtgpu -I$(OBJ_DIR)/inc/mtgpu -I$(OBJ_DIR)/inc/imgtec -I$(OBJ_DIR)/inc/mm_bridge -I$(OBJ_DIR)/inc/system -I$(OBJ_DIR)/inc/devices -I$(OBJ_DIR)/inc/services/volcanic -I$(OBJ_DIR)/inc/include/drm -I$(OBJ_DIR)/inc/bridge


%.o: %.o.hex
	xxd -r $< $@

