1 # 2 # Copyright (C) 2016 ARM Limited. All rights reserved. 3 # 4 # Copyright (C) 2008 The Android Open Source Project 5 # 6 # Licensed under the Apache License, Version 2.0 (the "License"); 7 # you may not use this file except in compliance with the License. 8 # You may obtain a copy of the License at 9 # 10 # http://www.apache.org/licenses/LICENSE-2.0 11 # 12 # Unless required by applicable law or agreed to in writing, software 13 # distributed under the License is distributed on an "AS IS" BASIS, 14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 # See the License for the specific language governing permissions and 16 # limitations under the License. 17 18 LOCAL_PATH := $(call my-dir) 19 20 # Include platform specific makefiles 21 include $(if $(wildcard $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk), $(LOCAL_PATH)/Android.$(TARGET_BOARD_PLATFORM).mk,) 22 23 # 24 # Static hardware defines 25 # 26 # These defines are used in case runtime detection does not find the 27 # user-space driver to read out hardware capabilities 28 29 # GPU support for AFBC 1.0 30 MALI_GPU_SUPPORT_AFBC_BASIC?=0 31 # GPU support for AFBC 1.1 block split 32 MALI_GPU_SUPPORT_AFBC_SPLITBLK?=0 33 # GPU support for AFBC 1.1 wide block 34 MALI_GPU_SUPPORT_AFBC_WIDEBLK?=0 35 # GPU support for AFBC 1.2 tiled headers 36 MALI_GPU_SUPPORT_AFBC_TILED_HEADERS?=0 37 # GPU support YUV AFBC formats in wide block 38 MALI_GPU_USE_YUV_AFBC_WIDEBLK?=0 39 40 # VPU version we support 41 MALI_VIDEO_VERSION?=0 42 # DPU version we support 43 MALI_DISPLAY_VERSION?=0 44 45 # 46 # Software behaviour defines 47 # 48 49 # Use ION DMA heap for all allocations. Default is system heap. 50 GRALLOC_USE_ION_DMA_HEAP?=0 51 # Use ION Compound heap for all allocations. Default is system heap. 52 GRALLOC_USE_ION_COMPOUND_PAGE_HEAP?=0 53 # Properly initializes an empty AFBC buffer 54 GRALLOC_INIT_AFBC?=0 55 # fbdev bitdepth to use 56 GRALLOC_DEPTH?=GRALLOC_32_BITS 57 # When enabled, forces display framebuffer format to BGRA_8888 58 GRALLOC_FB_SWAP_RED_BLUE?=1 59 # Disables the framebuffer HAL device. When a hwc impl is available. 60 GRALLOC_DISABLE_FRAMEBUFFER_HAL?=0 61 # When enabled, buffers will never be allocated with AFBC 62 GRALLOC_ARM_NO_EXTERNAL_AFBC?=0 63 # Minimum buffer dimensions in pixels when buffer will use AFBC 64 GRALLOC_DISP_W?=0 65 GRALLOC_DISP_H?=0 66 # Vsync backend(not used) 67 GRALLOC_VSYNC_BACKEND?=default 68 69 # HAL module implemenation, not prelinked and stored in 70 # hw/<OVERLAY_HARDWARE_MODULE_ID>.<ro.product.board>.so 71 include $(CLEAR_VARS) 72 73 ifeq ($(TARGET_BOARD_PLATFORM), juno) 74 ifeq ($(MALI_MMSS), 1) 75 76 # Use latest default MMSS build configuration if not already defined 77 ifeq ($(MALI_DISPLAY_VERSION), 0) 78 MALI_DISPLAY_VERSION = 650 79 endif 80 ifeq ($(MALI_VIDEO_VERSION), 0) 81 MALI_VIDEO_VERSION = 550 82 endif 83 84 GRALLOC_FB_SWAP_RED_BLUE = 0 85 GRALLOC_USE_ION_DMA_HEAP = 1 86 endif 87 endif 88 89 ifeq ($(TARGET_BOARD_PLATFORM), armboard_v7a) 90 ifeq ($(GRALLOC_MALI_DP),true) 91 GRALLOC_FB_SWAP_RED_BLUE = 0 92 GRALLOC_DISABLE_FRAMEBUFFER_HAL=1 93 MALI_DISPLAY_VERSION = 550 94 GRALLOC_USE_ION_DMA_HEAP=1 95 endif 96 endif 97 98 ifneq ($(MALI_DISPLAY_VERSION), 0) 99 #if Mali display is available, should disable framebuffer HAL 100 GRALLOC_DISABLE_FRAMEBUFFER_HAL := 1 101 #if Mali display is available, AFBC buffers should be initialised after allocation 102 GRALLOC_INIT_AFBC := 1 103 endif 104 105 ifeq ($(GRALLOC_USE_ION_DMA_HEAP), 1) 106 ifeq ($(GRALLOC_USE_ION_COMPOUND_PAGE_HEAP), 1) 107 $(error GRALLOC_USE_ION_DMA_HEAP and GRALLOC_USE_ION_COMPOUND_PAGE_HEAP can't be enabled at the same time) 108 endif 109 endif 110 111 LOCAL_C_INCLUDES := $(MALI_LOCAL_PATH) $(MALI_DDK_INCLUDES) 112 113 # General compilation flags 114 LOCAL_CFLAGS := -Werror -DLOG_TAG=\"gralloc\" -DPLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) 115 116 # Static hw flags 117 LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_BASIC=$(MALI_GPU_SUPPORT_AFBC_BASIC) 118 LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_SPLITBLK=$(MALI_GPU_SUPPORT_AFBC_SPLITBLK) 119 LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_WIDEBLK=$(MALI_GPU_SUPPORT_AFBC_WIDEBLK) 120 LOCAL_CFLAGS += -DMALI_GPU_USE_YUV_AFBC_WIDEBLK=$(MALI_GPU_USE_YUV_AFBC_WIDEBLK) 121 LOCAL_CFLAGS += -DMALI_GPU_SUPPORT_AFBC_TILED_HEADERS=$(MALI_GPU_SUPPORT_AFBC_TILED_HEADERS) 122 123 LOCAL_CFLAGS += -DMALI_DISPLAY_VERSION=$(MALI_DISPLAY_VERSION) 124 LOCAL_CFLAGS += -DMALI_VIDEO_VERSION=$(MALI_VIDEO_VERSION) 125 126 # Software behaviour flags 127 LOCAL_CFLAGS += -DGRALLOC_DISP_W=$(GRALLOC_DISP_W) 128 LOCAL_CFLAGS += -DGRALLOC_DISP_H=$(GRALLOC_DISP_H) 129 LOCAL_CFLAGS += -DDISABLE_FRAMEBUFFER_HAL=$(GRALLOC_DISABLE_FRAMEBUFFER_HAL) 130 LOCAL_CFLAGS += -DGRALLOC_USE_ION_DMA_HEAP=$(GRALLOC_USE_ION_DMA_HEAP) 131 LOCAL_CFLAGS += -DGRALLOC_USE_ION_COMPOUND_PAGE_HEAP=$(GRALLOC_USE_ION_COMPOUND_PAGE_HEAP) 132 LOCAL_CFLAGS += -DGRALLOC_INIT_AFBC=$(GRALLOC_INIT_AFBC) 133 LOCAL_CFLAGS += -D$(GRALLOC_DEPTH) 134 LOCAL_CFLAGS += -DGRALLOC_FB_SWAP_RED_BLUE=$(GRALLOC_FB_SWAP_RED_BLUE) 135 LOCAL_CFLAGS += -DGRALLOC_ARM_NO_EXTERNAL_AFBC=$(GRALLOC_ARM_NO_EXTERNAL_AFBC) 136 137 LOCAL_SHARED_LIBRARIES := libhardware liblog libcutils libGLESv1_CM libion 138 139 LOCAL_PRELINK_MODULE := false 140 LOCAL_MODULE_RELATIVE_PATH := hw 141 LOCAL_MODULE_PATH_32 := $(TARGET_OUT_VENDOR)/lib 142 LOCAL_MODULE_PATH_64 := $(TARGET_OUT_VENDOR)/lib64 143 144 LOCAL_MODULE := gralloc.hikey960 145 146 LOCAL_MODULE_TAGS := optional 147 LOCAL_MULTILIB := both 148 149 LOCAL_SRC_FILES := \ 150 gralloc_module.cpp \ 151 alloc_device.cpp \ 152 alloc_ion.cpp \ 153 gralloc_module_ion.cpp \ 154 framebuffer_device.cpp \ 155 gralloc_buffer_priv.cpp \ 156 gralloc_vsync_${GRALLOC_VSYNC_BACKEND}.cpp \ 157 mali_gralloc_formats.cpp 158 159 LOCAL_MODULE_OWNER := arm 160 161 include $(BUILD_SHARED_LIBRARY) 162