From 36db95c010409f5a24111fab6db3f8d39f3bf57d Mon Sep 17 00:00:00 2001 From: HyunKyung Kim Date: Tue, 19 Mar 2019 17:42:24 +0900 Subject: libhwc2.1: Change data structure to manage window configuration info Window conifuguration for DPU can be delivered to DPU driver using different interface. ExynosDisplay manages window configuration with the data structure that is independent from interface. Each interface class converts configuration data according to used interface. Change-Id: If1f35eacc44843fb69204cab0a70d92ed3dda3e9 Signed-off-by: HyunKyung Kim --- .../ExynosExternalDisplayModule.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'libhwc2.1/libexternaldisplay') diff --git a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp index 6063b1f..bf14c6d 100644 --- a/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp +++ b/libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp @@ -58,29 +58,28 @@ ExynosMPP* ExynosExternalDisplayModule::getExynosMPPForDma(decon_idma_type idma) int32_t ExynosExternalDisplayModule::validateWinConfigData() { - struct decon_win_config *config = mWinConfigData->config; bool flagValidConfig = true; if (ExynosDisplay::validateWinConfigData() != NO_ERROR) flagValidConfig = false; - for (size_t i = 0; i < MAX_DECON_WIN; i++) { - if (config[i].state == config[i].DECON_WIN_STATE_BUFFER) { + for (size_t i = 0; i < mDpuData.configs.size(); i++) { + struct exynos_win_config_data &config = mDpuData.configs[i]; + if (config.state == config.WIN_STATE_BUFFER) { bool configInvalid = false; - mpp_phycal_type_t mppType = getMPPTypeFromDPPChannel((uint32_t)config[i].idma_type); - if ((config[i].src.w != config[i].dst.w) || - (config[i].src.h != config[i].dst.h)) { + uint32_t mppType = config.assignedMPP->mPhysicalType; + if ((config.src.w != config.dst.w) || + (config.src.h != config.dst.h)) { if ((mppType == MPP_DPP_GF) || (mppType == MPP_DPP_VG) || (mppType == MPP_DPP_VGF)) { - DISPLAY_LOGE("WIN_CONFIG error: invalid assign id : %zu, s_w : %d, d_w : %d, s_h : %d, d_h : %d, channel : %d, mppType : %d", - i, config[i].src.w, config[i].dst.w, config[i].src.h, config[i].dst.h, - config[i].idma_type, mppType); + DISPLAY_LOGE("WIN_CONFIG error: invalid assign id : %zu, s_w : %d, d_w : %d, s_h : %d, d_h : %d, mppType : %d", + i, config.src.w, config.dst.w, config.src.h, config.dst.h, mppType); configInvalid = true; } } if (configInvalid) { - config[i].state = config[i].DECON_WIN_STATE_DISABLED; + config.state = config.WIN_STATE_DISABLED; flagValidConfig = false; } } -- cgit v1.2.3