diff --git a/src/plugins/platforms/drm/drm_object.cpp b/src/plugins/platforms/drm/drm_object.cpp index 56eb5ee883..54d7aa3e37 100644 --- a/src/plugins/platforms/drm/drm_object.cpp +++ b/src/plugins/platforms/drm/drm_object.cpp @@ -52,9 +52,6 @@ bool DrmObject::initProps(const QVector &&vector, uint32_t o drmModePropertyBlobRes *blob = nullptr; if (prop->flags & DRM_MODE_PROP_BLOB) { blob = drmModeGetPropertyBlob(m_gpu->fd(), properties->prop_values[i]); - if (!blob) { - break; - } } qCDebug(KWIN_DRM, "Found property %s with value %lu", def.name.data(), properties->prop_values[i]); m_props[j] = new Property(prop.data(), properties->prop_values[i], def.enumNames, blob); diff --git a/src/plugins/platforms/drm/drm_object_connector.cpp b/src/plugins/platforms/drm/drm_object_connector.cpp index 0fd0fe3ad9..6bd17c3297 100644 --- a/src/plugins/platforms/drm/drm_object_connector.cpp +++ b/src/plugins/platforms/drm/drm_object_connector.cpp @@ -50,15 +50,16 @@ bool DrmConnector::init() } // parse edid - if (auto edidProp = m_props[static_cast(PropertyIndex::Edid)]) { + auto edidProp = m_props[static_cast(PropertyIndex::Edid)]; + if (edidProp && edidProp->blob() && edidProp->blob()->data) { m_edid = Edid(edidProp->blob()->data, edidProp->blob()->length); if (!m_edid.isValid()) { qCWarning(KWIN_DRM, "Couldn't parse EDID for connector with id %d", id()); } - deleteProp(PropertyIndex::Edid); } else { qCDebug(KWIN_DRM) << "Could not find edid for connector" << this; } + deleteProp(PropertyIndex::Edid); // check the physical size if (m_edid.physicalSize().isEmpty()) {