From 59e36d4fa5be83f652e0971796a2bb8ce9ded7b1 Mon Sep 17 00:00:00 2001 From: hmz007 Date: Sat, 24 May 2025 18:14:55 +0800 Subject: [PATCH] rockchip: drmhwc2: skip disconnected DSI by default Signed-off-by: hmz007 --- hardware/rockchip/hwcomposer/drmhwc2/drm/drmdevice.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hardware/rockchip/hwcomposer/drmhwc2/drm/drmdevice.cpp b/hardware/rockchip/hwcomposer/drmhwc2/drm/drmdevice.cpp index 74a931a311b..df0c80c424c 100755 --- a/hardware/rockchip/hwcomposer/drmhwc2/drm/drmdevice.cpp +++ b/hardware/rockchip/hwcomposer/drmhwc2/drm/drmdevice.cpp @@ -652,6 +652,15 @@ std::tuple DrmDevice::Init(int num_displays) { break; } + if (c->connection == DRM_MODE_DISCONNECTED && + c->connector_type == DRM_MODE_CONNECTOR_DSI) { + if (property_get_bool("vendor.hwc.no_disconnected_dsi", true)) { + drmModeFreeConnector(c); + ALOGD("Skip disconnected DSI (%d)", res->connectors[i]); + continue; + } + } + std::vector possible_encoders; DrmEncoder *current_encoder = NULL; for (int j = 0; j < c->count_encoders; ++j) { @@ -665,7 +674,6 @@ std::tuple DrmDevice::Init(int num_displays) { std::unique_ptr conn( new DrmConnector(this, c, current_encoder, possible_encoders)); - drmModeFreeConnector(c); ret = conn->Init();