[Intel-gfx] [PATCH 2/5] drm: If available use atomic state in getcrtc ioctl

Rob Clark robdclark at gmail.com
Sun Feb 22 08:10:35 PST 2015


On Sun, Feb 22, 2015 at 6:24 AM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> This way drivers fully converted to atomic don't need to update these
> legacy state variables in their modeset code any more.
>
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>

Reviewed-by: Rob Clark <robdclark at gmail.com>

> ---
>  drivers/gpu/drm/drm_crtc.c | 25 ++++++++++++++++++-------
>  1 file changed, 18 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> index 6b6b07ff720b..0dbe417bc841 100644
> --- a/drivers/gpu/drm/drm_crtc.c
> +++ b/drivers/gpu/drm/drm_crtc.c
> @@ -2009,21 +2009,32 @@ int drm_mode_getcrtc(struct drm_device *dev,
>                 return -ENOENT;
>
>         drm_modeset_lock_crtc(crtc, crtc->primary);
> -       crtc_resp->x = crtc->x;
> -       crtc_resp->y = crtc->y;
>         crtc_resp->gamma_size = crtc->gamma_size;
>         if (crtc->primary->fb)
>                 crtc_resp->fb_id = crtc->primary->fb->base.id;
>         else
>                 crtc_resp->fb_id = 0;
>
> -       if (crtc->enabled) {
> -
> -               drm_crtc_convert_to_umode(&crtc_resp->mode, &crtc->mode);
> -               crtc_resp->mode_valid = 1;
> +       if (crtc->state) {
> +               crtc_resp->x = crtc->primary->state->src_x >> 16;
> +               crtc_resp->y = crtc->primary->state->src_y >> 16;
> +               if (crtc->state->enable) {
> +                       drm_crtc_convert_to_umode(&crtc_resp->mode, &crtc->state->mode);
> +                       crtc_resp->mode_valid = 1;
>
> +               } else {
> +                       crtc_resp->mode_valid = 0;
> +               }
>         } else {
> -               crtc_resp->mode_valid = 0;
> +               crtc_resp->x = crtc->x;
> +               crtc_resp->y = crtc->y;
> +               if (crtc->enabled) {
> +                       drm_crtc_convert_to_umode(&crtc_resp->mode, &crtc->mode);
> +                       crtc_resp->mode_valid = 1;
> +
> +               } else {
> +                       crtc_resp->mode_valid = 0;
> +               }
>         }
>         drm_modeset_unlock_crtc(crtc);
>
> --
> 2.1.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list