<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - [CI][SHARDS] igt@kms_properties@connector-properties-atomic - fail - Test assertion failure function max_bpc_prop_test, Failed assertion: ret == 0"
href="https://bugs.freedesktop.org/show_bug.cgi?id=108642#c4">Comment # 4</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - [CI][SHARDS] igt@kms_properties@connector-properties-atomic - fail - Test assertion failure function max_bpc_prop_test, Failed assertion: ret == 0"
href="https://bugs.freedesktop.org/show_bug.cgi?id=108642">bug 108642</a>
from <span class="vcard"><a class="email" href="mailto:stanislav.lisovskiy@intel.com" title="Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>"> <span class="fn">Stanislav Lisovskiy</span></a>
</span></b>
<pre>Problem is quite simple in fact. I enabled atomic debugs for recent kernel and
found that this code in drm_atomic.c is executed, thus returning EINVAL:
if (!state->allow_modeset) {
for_each_new_crtc_in_state(state, crtc, new_crtc_state, i) {
if (drm_atomic_crtc_needs_modeset(new_crtc_state)) {
DRM_DEBUG_ATOMIC("[CRTC:%d:%s] requires full
modeset\n",
crtc->base.id, crtc->name);
return -EINVAL;
}
}
}
So it determines that we have to do a full modeset, while we are not allowing
it and returns an error.
state->allow_modeset is set to false, because DRM_MODE_ATOMIC_ALLOW_MODESET bit
is not set drmModeAtomicCommit call.
Just merely adding this flag fixes the test case:
ret = drmModeAtomicCommit(fd, req,
DRM_MODE_ATOMIC_TEST_ONLY|DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>