[PATCH] drm: atomic: fix legacy gamma set helper
Bob Paauwe
bob.j.paauwe at intel.com
Fri Apr 8 18:15:01 UTC 2016
On Fri, 8 Apr 2016 18:17:51 +0100
Lionel Landwerlin <lionel.g.landwerlin at intel.com> wrote:
> Color management properties are a bit of an odd use case because
> they're not marked as atomic properties. Currently we're not updating
> the non atomic values so the drm_crtc_state is out of sync with the
> values stored in the crtc object.
>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Bob Paauwe <bob.j.paauwe at intel.com>
> Cc: <dri-devel at lists.freedesktop.org>
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
> drivers/gpu/drm/drm_atomic_helper.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 7bf678e..4aacd44 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -2964,16 +2964,22 @@ retry:
> config->degamma_lut_property, 0);
> if (ret)
> goto fail;
> + drm_object_property_set_value(&crtc->base,
> + config->degamma_lut_property, 0);
>
> ret = drm_atomic_crtc_set_property(crtc, crtc_state,
> config->ctm_property, 0);
> if (ret)
> goto fail;
> + drm_object_property_set_value(&crtc->base,
> + config->ctm_property, 0);
>
> ret = drm_atomic_crtc_set_property(crtc, crtc_state,
> config->gamma_lut_property, blob->base.id);
> if (ret)
> goto fail;
> + drm_object_property_set_value(&crtc->base,
> + config->gamma_lut_property, blob->base.id);
>
This is similar to what I originally did to fix this problem.
But if the commit below fails, you've now changed the non atomic
values, but the atomic values would be reverted back to the original
state so they're out of sync again. So just moving the set_value calls
to after the commit succeeds might be a better solution.
> ret = drm_atomic_commit(state);
> if (ret)
--
--
Bob Paauwe
Bob.J.Paauwe at intel.com
IOTG / PED Software Organization
Intel Corp. Folsom, CA
(916) 356-6193
More information about the dri-devel
mailing list