summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Volk <servolk@google.com>2023-12-04 20:50:17 +0000
committerSergey Volk <servolk@google.com>2023-12-04 20:52:56 +0000
commit4681a206cc59d25482fb468108d183addbe16a22 (patch)
treec3011fd5345243dc195ac4cacae026a301773787
parent77b4e75572be830a2b7a9d8bbf85d7bb6b316472 (diff)
downloadgs101-4681a206cc59d25482fb468108d183addbe16a22.tar.gz
libhwc2.1: Use getDcDisplayType instead of getDisplayTypeFromIndex
Currently HWC uses the getDisplayTypeFromIndex function in a number of places in common/gs101 code, but that function is defined only for primary displays. This CL introduces the getDcDisplayType function, which has the same behavior as getDisplayTypeFromIndex, but will also handle external display properly. Also replace getBuiltInDisplayType with getDcDisplayType too. Bug: 299682821 Test: presubmit Change-Id: I00f6412ac3986aaa9663e585ee76fd599286c18c
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp26
-rw-r--r--libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h7
2 files changed, 15 insertions, 18 deletions
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
index ae624ac..f376447 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.cpp
@@ -125,7 +125,7 @@ int32_t ExynosPrimaryDisplayModule::getColorModes(
uint32_t* outNumModes, int32_t* outModes)
{
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
const ColorModesMap colorModeMap = displayColorInterface == nullptr
? ColorModesMap()
: displayColorInterface->ColorModesAndRenderIntents(display);
@@ -155,7 +155,7 @@ int32_t ExynosPrimaryDisplayModule::setColorMode(int32_t mode)
{
ALOGD("%s: mode(%d)", __func__, mode);
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
const ColorModesMap colorModeMap = displayColorInterface == nullptr
? ColorModesMap()
: displayColorInterface->ColorModesAndRenderIntents(display);
@@ -179,7 +179,7 @@ int32_t ExynosPrimaryDisplayModule::getRenderIntents(int32_t mode,
uint32_t* outNumIntents, int32_t* outIntents)
{
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
const ColorModesMap colorModeMap = displayColorInterface == nullptr
? ColorModesMap()
: displayColorInterface->ColorModesAndRenderIntents(display);
@@ -216,7 +216,7 @@ int32_t ExynosPrimaryDisplayModule::setColorModeWithRenderIntent(int32_t mode,
int32_t intent)
{
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
const ColorModesMap colorModeMap = displayColorInterface == nullptr
? ColorModesMap()
: displayColorInterface->ColorModesAndRenderIntents(display);
@@ -280,7 +280,7 @@ int32_t ExynosPrimaryDisplayModule::getClientTargetProperty(
return ExynosDisplay::getClientTargetProperty(outClientTargetProperty);
}
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
hwc::PixelFormat pixelFormat;
hwc::Dataspace dataspace;
bool dimming_linear;
@@ -308,7 +308,7 @@ int32_t ExynosPrimaryDisplayModule::updateBrightnessTable() {
return HWC2_ERROR_NO_RESOURCES;
}
- auto displayType = getBuiltInDisplayType();
+ auto displayType = getDcDisplayType();
auto ret = displayColorInterface->GetBrightnessTable(displayType, table);
if (ret != android::OK) {
ALOGE("%s brightness table not available!", __func__);
@@ -397,7 +397,7 @@ bool ExynosPrimaryDisplayModule::hasDppForLayer(ExynosMPPSource* layer)
return false;
uint32_t index = mDisplaySceneInfo.layerDataMappingInfo[layer].dppIdx;
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
auto size = displayColorInterface->GetPipelineData(display)->Dpp().size();
if (index >= size) {
DISPLAY_LOGE("%s: invalid dpp index(%d) dpp size(%zu)", __func__, index, size);
@@ -411,7 +411,7 @@ const ExynosPrimaryDisplayModule::GsInterfaceType::IDpp& ExynosPrimaryDisplayMod
ExynosMPPSource* layer) {
uint32_t index = mDisplaySceneInfo.layerDataMappingInfo[layer].dppIdx;
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
return displayColorInterface->GetPipelineData(display)->Dpp()[index].get();
}
@@ -727,7 +727,7 @@ int32_t ExynosPrimaryDisplayModule::updateColorConversionInfo()
if (hwcCheckDebugMessages(eDebugColorManagement))
mDisplaySceneInfo.printDisplayScene();
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
if ((ret = displayColorInterface->Update(display, mDisplaySceneInfo.displayScene)) != 0) {
DISPLAY_LOGE("Display Scene update error (%d)", ret);
return ret;
@@ -767,7 +767,7 @@ int32_t ExynosPrimaryDisplayModule::updatePresentColorConversionInfo()
mDisplaySceneInfo.displayScene.lhbm_on = mBrightnessController->isLhbmOn();
mDisplaySceneInfo.displayScene.dbv = mBrightnessController->getBrightnessLevel();
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
if ((ret = displayColorInterface->UpdatePresent(display, mDisplaySceneInfo.displayScene)) !=
0) {
DISPLAY_LOGE("Display Scene update error (%d)", ret);
@@ -783,7 +783,7 @@ int32_t ExynosPrimaryDisplayModule::getColorAdjustedDbv(uint32_t &dbv_adj) {
return NO_ERROR;
}
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
dbv_adj = displayColorInterface->GetPipelineData(display)->Panel().GetAdjustedBrightnessLevel();
return NO_ERROR;
}
@@ -1121,7 +1121,7 @@ PanelCalibrationStatus ExynosPrimaryDisplayModule::getPanelCalibrationStatus() {
return PanelCalibrationStatus::UNCALIBRATED;
}
- auto displayType = getBuiltInDisplayType();
+ auto displayType = getDcDisplayType();
auto calibrationInfo = displayColorInterface->GetCalibrationInfo(displayType);
if (calibrationInfo.factory_cal_loaded) {
@@ -1217,7 +1217,7 @@ bool ExynosPrimaryDisplayModule::isDisplaySwitched(int32_t mode, int32_t prevMod
}
bool ExynosPrimaryDisplayModule::isColorCalibratedByDevice() {
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
return displayColorInterface->GetCalibrationInfo(display).factory_cal_loaded;
};
diff --git a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
index c77c399..c6404d3 100644
--- a/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
+++ b/libhwc2.1/libmaindisplay/ExynosPrimaryDisplayModule.h
@@ -119,7 +119,7 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay {
virtual int32_t resetColorMappingInfo(ExynosMPPSource* mppSrc);
virtual int32_t updatePresentColorConversionInfo();
virtual bool checkRrCompensationEnabled() {
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
return displayColorInterface
? displayColorInterface->IsRrCompensationEnabled(display)
@@ -250,14 +250,11 @@ class ExynosPrimaryDisplayModule : public ExynosPrimaryDisplay {
const GsInterfaceType::IDqe& getDqe()
{
- const DisplayType display = getDisplayTypeFromIndex(mIndex);
+ const DisplayType display = getDcDisplayType();
GsInterfaceType* displayColorInterface = getDisplayColorInterface();
return displayColorInterface->GetPipelineData(display)->Dqe();
};
- // primary or secondary
- DisplayType getBuiltInDisplayType() { return getDisplayTypeFromIndex(mIndex); }
-
int32_t updateBrightnessTable();
private: