Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de7b6be7 authored by Daniel Stone's avatar Daniel Stone Committed by Daniel Vetter
Browse files

drm: Use atomic state for FB in legacy ioctls



If atomic state is available, use this to read the current plane in
GetCrtc/GetPlane, rather than the legacy points.

Signed-off-by: default avatarDaniel Stone <daniels@collabora.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20161213181912.92904-1-daniels@collabora.com
parent af913418
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -357,7 +357,10 @@ int drm_mode_getcrtc(struct drm_device *dev,

	drm_modeset_lock_crtc(crtc, crtc->primary);
	crtc_resp->gamma_size = crtc->gamma_size;
	if (crtc->primary->fb)

	if (crtc->primary->state && crtc->primary->state->fb)
		crtc_resp->fb_id = crtc->primary->state->fb->base.id;
	else if (!crtc->primary->state && crtc->primary->fb)
		crtc_resp->fb_id = crtc->primary->fb->base.id;
	else
		crtc_resp->fb_id = 0;
+6 −2
Original line number Diff line number Diff line
@@ -392,12 +392,16 @@ int drm_mode_getplane(struct drm_device *dev, void *data,
		return -ENOENT;

	drm_modeset_lock(&plane->mutex, NULL);
	if (plane->crtc)
	if (plane->state && plane->state->crtc)
		plane_resp->crtc_id = plane->state->crtc->base.id;
	else if (!plane->state && plane->crtc)
		plane_resp->crtc_id = plane->crtc->base.id;
	else
		plane_resp->crtc_id = 0;

	if (plane->fb)
	if (plane->state && plane->state->fb)
		plane_resp->fb_id = plane->state->fb->base.id;
	else if (!plane->state && plane->fb)
		plane_resp->fb_id = plane->fb->base.id;
	else
		plane_resp->fb_id = 0;