On Mon, Sep 30, 2019 at 07:28:02PM -0300, Ezequiel Garcia wrote: > Some platforms are not able to maintain the color transformation > state after a system suspend/resume cycle. > > Set the colog_mgmt_changed flag so that CMM on the CRTCs in > the suspend state are reapplied after system resume. > > Signed-off-by: Ezequiel Garcia <ezequiel@xxxxxxxxxxxxx> > --- > This is an RFC, and it's mostly based on Jacopo Mondi's work https://lkml.org/lkml/2019/9/6/498. > > Changes from v2: > * New patch. > --- > drivers/gpu/drm/drm_atomic_helper.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > index e41db0f202ca..518488125575 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -3234,8 +3234,20 @@ int drm_atomic_helper_resume(struct drm_device *dev, > struct drm_atomic_state *state) > { > struct drm_modeset_acquire_ctx ctx; > + struct drm_crtc_state *crtc_state; > + struct drm_crtc *crtc; > + unsigned int i; > int err; > > + for_each_new_crtc_in_state(state, crtc, crtc_state, i) { > + /* > + * Force re-enablement of CMM after system resume if any > + * of the DRM color transformation properties was set in > + * the state saved at system suspend time. > + */ > + if (crtc_state->gamma_lut) You say "any" but you check the one? > + crtc_state->color_mgmt_changed = true; But I'm not convinced this is the best way to go about it. I would generally expect that you repgrogram everything when doing a full modeset since the state was possibly lost while the crtc was disabled. > + } > drm_mode_config_reset(dev); > > DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx, 0, err); > -- > 2.22.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel