compositor-drm: head attach requires a modeset
For the attach on an enabled output to have an effect, we need to go through drmModeSetCrtc or ATOMIC_ALLOW_MODESET. v9: - Add another XXX comment. Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Acked-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
@@ -4388,9 +4388,27 @@ static int
|
|||||||
drm_output_attach_head(struct weston_output *output_base,
|
drm_output_attach_head(struct weston_output *output_base,
|
||||||
struct weston_head *head_base)
|
struct weston_head *head_base)
|
||||||
{
|
{
|
||||||
|
struct drm_backend *b = to_drm_backend(output_base->compositor);
|
||||||
|
|
||||||
if (wl_list_length(&output_base->head_list) >= MAX_CLONED_CONNECTORS)
|
if (wl_list_length(&output_base->head_list) >= MAX_CLONED_CONNECTORS)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
if (!output_base->enabled)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* XXX: ensure the configuration will work.
|
||||||
|
* This is actually impossible without major infrastructure
|
||||||
|
* work. */
|
||||||
|
|
||||||
|
/* Need to go through modeset to add connectors. */
|
||||||
|
/* XXX: Ideally we'd do this per-output, not globally. */
|
||||||
|
/* XXX: Doing it globally, what guarantees another output's update
|
||||||
|
* will not clear the flag before this output is updated?
|
||||||
|
*/
|
||||||
|
b->state_invalid = true;
|
||||||
|
|
||||||
|
weston_output_schedule_repaint(output_base);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user