Home | History | Annotate | Download | only in gralloc960
      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