summaryrefslogtreecommitdiff
path: root/libhwc2.1/libexternaldisplay
diff options
context:
space:
mode:
authorHyunKyung Kim <hk310.kim@samsung.com>2019-03-19 17:42:24 +0900
committerHyunKyung Kim <hk310.kim@samsung.com>2019-10-28 13:49:42 +0900
commit36db95c010409f5a24111fab6db3f8d39f3bf57d (patch)
tree806756519690a9d39555c26d8c16113937167e1c /libhwc2.1/libexternaldisplay
parent49bb7b3b239b2f7341e4786038d0207f72d9b569 (diff)
downloadgs101-36db95c010409f5a24111fab6db3f8d39f3bf57d.tar.gz
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 <hk310.kim@samsung.com>
Diffstat (limited to 'libhwc2.1/libexternaldisplay')
-rw-r--r--libhwc2.1/libexternaldisplay/ExynosExternalDisplayModule.cpp19
1 files changed, 9 insertions, 10 deletions
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;
}
}