Message ID | 20240624191032.27333-13-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/dsb: Use chained DSBs for LUT programming | expand |
> -----Original Message----- > From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Ville > Syrjala > Sent: Tuesday, June 25, 2024 12:41 AM > To: intel-gfx@lists.freedesktop.org > Subject: [PATCH 12/14] drm/i915/dsb: Clear DSB_ENABLE_DEWAKE once the > DSB is done > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > In order to avoid the DSB keeping the DEwake permanently asserted we > must clear DSB_PMCTRL_2.DSB_FORCE_DEWAKE once we are done. For > good measure do the same for DSB_PMCTRL.DSB_ENABLE_DEWAKE. > > Experimentally this doens't seem to be actually necessary (unlike with > DSB_FORCE_DEWAKE). That is, the DSB_ENABLE_DEWAKE doesn't seem to > do anything whenever the DSB is not active. > But I'd hate to waste a ton of power in case there I'm wrong and there is > some way DEwake could remaing asserted. One extra register write is a small > price to pay for some peace of mind. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Animesh Manna <animesh.manna@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dsb.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c > b/drivers/gpu/drm/i915/display/intel_dsb.c > index cf710f0bf430..fad37e7856b1 100644 > --- a/drivers/gpu/drm/i915/display/intel_dsb.c > +++ b/drivers/gpu/drm/i915/display/intel_dsb.c > @@ -464,8 +464,10 @@ void intel_dsb_finish(struct intel_dsb *dsb) > /* > * DSB_FORCE_DEWAKE remains active even after DSB is > * disabled, so make sure to clear it (if set during > - * intel_dsb_commit()). > + * intel_dsb_commit()). And clear DSB_ENABLE_DEWAKE as > + * well for good measure. > */ > + intel_dsb_reg_write(dsb, DSB_PMCTRL(crtc->pipe, dsb->id), 0); > intel_dsb_reg_write_masked(dsb, DSB_PMCTRL_2(crtc->pipe, dsb- > >id), > DSB_FORCE_DEWAKE, 0); > > -- > 2.44.2
diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c b/drivers/gpu/drm/i915/display/intel_dsb.c index cf710f0bf430..fad37e7856b1 100644 --- a/drivers/gpu/drm/i915/display/intel_dsb.c +++ b/drivers/gpu/drm/i915/display/intel_dsb.c @@ -464,8 +464,10 @@ void intel_dsb_finish(struct intel_dsb *dsb) /* * DSB_FORCE_DEWAKE remains active even after DSB is * disabled, so make sure to clear it (if set during - * intel_dsb_commit()). + * intel_dsb_commit()). And clear DSB_ENABLE_DEWAKE as + * well for good measure. */ + intel_dsb_reg_write(dsb, DSB_PMCTRL(crtc->pipe, dsb->id), 0); intel_dsb_reg_write_masked(dsb, DSB_PMCTRL_2(crtc->pipe, dsb->id), DSB_FORCE_DEWAKE, 0);