############################################################################## # # Copyright (C) 2005 - 2013 by Vivante Corp. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the license, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # ############################################################################## # # Linux build file for kernel HAL driver. # AQROOT := $(srctree)/drivers/mxc/gpu-viv AQARCH := $(AQROOT)/arch/XAQ2 AQVGARCH := $(AQROOT)/arch/GC350 include $(AQROOT)/config KERNEL_DIR ?= $(TOOL_DIR)/kernel OS_KERNEL_DIR := hal/os/linux/kernel ARCH_KERNEL_DIR := arch/$(notdir $(AQARCH))/hal/kernel ARCH_VG_KERNEL_DIR := arch/$(notdir $(AQVGARCH))/hal/kernel HAL_KERNEL_DIR := hal/kernel EXTRA_CFLAGS += -Werror OBJS := $(OS_KERNEL_DIR)/gc_hal_kernel_device.o \ $(OS_KERNEL_DIR)/gc_hal_kernel_driver.o \ $(OS_KERNEL_DIR)/gc_hal_kernel_linux.o \ $(OS_KERNEL_DIR)/gc_hal_kernel_math.o \ $(OS_KERNEL_DIR)/gc_hal_kernel_os.o \ $(OS_KERNEL_DIR)/gc_hal_kernel_debugfs.o OBJS += $(HAL_KERNEL_DIR)/gc_hal_kernel.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_command.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_db.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_debug.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_event.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_heap.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_mmu.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_video_memory.o \ $(HAL_KERNEL_DIR)/gc_hal_kernel_power.o OBJS += $(ARCH_KERNEL_DIR)/gc_hal_kernel_context.o \ $(ARCH_KERNEL_DIR)/gc_hal_kernel_hardware.o ifeq ($(VIVANTE_ENABLE_VG), 1) OBJS +=\ $(HAL_KERNEL_DIR)/gc_hal_kernel_vg.o\ $(HAL_KERNEL_DIR)/gc_hal_kernel_command_vg.o\ $(HAL_KERNEL_DIR)/gc_hal_kernel_interrupt_vg.o\ $(HAL_KERNEL_DIR)/gc_hal_kernel_mmu_vg.o\ $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_command_vg.o\ $(ARCH_VG_KERNEL_DIR)/gc_hal_kernel_hardware_vg.o endif ifneq ($(CONFIG_SYNC),) OBJS += $(OS_KERNEL_DIR)/gc_hal_kernel_sync.o endif ifeq ($(KERNELRELEASE), ) .PHONY: all clean install # Define targets. all: @make V=$(V) ARCH=$(ARCH_TYPE) -C $(KERNEL_DIR) SUBDIRS=`pwd` modules clean: @rm -rf $(OBJS) @rm -rf modules.order Module.symvers @find $(AQROOT) -name ".gc_*.cmd" | xargs rm -f install: all @mkdir -p $(SDK_DIR)/drivers else EXTRA_CFLAGS += -DLINUX -DDRIVER ifeq ($(ENUM_WORKAROUND), 1) EXTRA_CFLAGS += -DENUM_WORKAROUND=1 else EXTRA_CFLAGS += -DENUM_WORKAROUND=0 endif ifeq ($(FLAREON),1) EXTRA_CFLAGS += -DFLAREON endif ifeq ($(DEBUG), 1) EXTRA_CFLAGS += -DDBG=1 -DDEBUG -D_DEBUG else EXTRA_CFLAGS += -DDBG=0 endif ifeq ($(NO_DMA_COHERENT), 1) EXTRA_CFLAGS += -DNO_DMA_COHERENT endif ifeq ($(CONFIG_DOVE_GPU), 1) EXTRA_CFLAGS += -DCONFIG_DOVE_GPU=1 endif ifneq ($(USE_PLATFORM_DRIVER), 0) EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=1 else EXTRA_CFLAGS += -DUSE_PLATFORM_DRIVER=0 endif EXTRA_CFLAGS += -DVIVANTE_PROFILER=1 EXTRA_CFLAGS += -DVIVANTE_PROFILER_CONTEXT=1 ifeq ($(ANDROID), 1) EXTRA_CFLAGS += -DANDROID=1 endif ifeq ($(ENABLE_GPU_CLOCK_BY_DRIVER), 1) EXTRA_CFLAGS += -DENABLE_GPU_CLOCK_BY_DRIVER=1 else EXTRA_CFLAGS += -DENABLE_GPU_CLOCK_BY_DRIVER=0 endif ifeq ($(USE_NEW_LINUX_SIGNAL), 1) EXTRA_CFLAGS += -DUSE_NEW_LINUX_SIGNAL=1 else EXTRA_CFLAGS += -DUSE_NEW_LINUX_SIGNAL=0 endif ifeq ($(NO_USER_DIRECT_ACCESS_FROM_KERNEL), 1) EXTRA_CFLAGS += -DNO_USER_DIRECT_ACCESS_FROM_KERNEL=1 else EXTRA_CFLAGS += -DNO_USER_DIRECT_ACCESS_FROM_KERNEL=0 endif ifeq ($(FORCE_ALL_VIDEO_MEMORY_CACHED), 1) EXTRA_CFLAGS += -DgcdPAGED_MEMORY_CACHEABLE=1 else EXTRA_CFLAGS += -DgcdPAGED_MEMORY_CACHEABLE=0 endif ifeq ($(NONPAGED_MEMORY_CACHEABLE), 1) EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_CACHEABLE=1 else EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_CACHEABLE=0 endif ifeq ($(NONPAGED_MEMORY_BUFFERABLE), 1) EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_BUFFERABLE=1 else EXTRA_CFLAGS += -DgcdNONPAGED_MEMORY_BUFFERABLE=0 endif ifeq ($(CACHE_FUNCTION_UNIMPLEMENTED), 1) EXTRA_CFLAGS += -DgcdCACHE_FUNCTION_UNIMPLEMENTED=1 else EXTRA_CFLAGS += -DgcdCACHE_FUNCTION_UNIMPLEMENTED=0 endif ifeq ($(SUPPORT_SWAP_RECTANGLE), 1) EXTRA_CFLAGS += -DgcdSUPPORT_SWAP_RECTANGLE=1 else EXTRA_CFLAGS += -DgcdSUPPORT_SWAP_RECTANGLE=0 endif ifeq ($(VIVANTE_ENABLE_VG), 1) EXTRA_CFLAGS += -DgcdENABLE_VG=1 else EXTRA_CFLAGS += -DgcdENABLE_VG=0 endif ifeq ($(CONFIG_SMP), y) EXTRA_CFLAGS += -DgcdSMP=1 else EXTRA_CFLAGS += -DgcdSMP=0 endif ifeq ($(VIVANTE_NO_3D),1) EXTRA_CFLAGS += -DVIVANTE_NO_3D endif ifeq ($(ENABLE_OUTER_CACHE_PATCH), 1) EXTRA_CFLAGS += -DgcdENABLE_OUTER_CACHE_PATCH=1 else EXTRA_CFLAGS += -DgcdENABLE_OUTER_CACHE_PATCH=0 endif ifeq ($(USE_BANK_ALIGNMENT), 1) EXTRA_CFLAGS += -DgcdENABLE_BANK_ALIGNMENT=1 ifneq ($(BANK_BIT_START), 0) ifneq ($(BANK_BIT_END), 0) EXTRA_CFLAGS += -DgcdBANK_BIT_START=$(BANK_BIT_START) EXTRA_CFLAGS += -DgcdBANK_BIT_END=$(BANK_BIT_END) endif endif ifneq ($(BANK_CHANNEL_BIT), 0) EXTRA_CFLAGS += -DgcdBANK_CHANNEL_BIT=$(BANK_CHANNEL_BIT) endif endif ifneq ($(CONFIG_SYNC),) EXTRA_CFLAGS += -DgcdANDROID_NATIVE_FENCE_SYNC=1 endif EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel/inc EXTRA_CFLAGS += -I$(AQROOT)/hal/kernel EXTRA_CFLAGS += -I$(AQARCH)/hal/kernel EXTRA_CFLAGS += -I$(AQROOT)/hal/os/linux/kernel ifeq ($(VIVANTE_ENABLE_VG), 1) EXTRA_CFLAGS += -I$(AQVGARCH)/hal/kernel endif obj-$(CONFIG_MXC_GPU_VIV) += galcore.o galcore-objs := $(OBJS) endif