On Fri, Nov 29, 2024 at 01:25:14PM -0500, Rodrigo Vivi wrote: > On Fri, Nov 29, 2024 at 01:37:54PM -0300, Gustavo Sousa wrote: > > We will need to flush the release work from outside in an upcoming > > change. Let's put that into a public interface and call it > > intel_dmc_wl_flush_release_work(). > > > > Signed-off-by: Gustavo Sousa <gustavo.sousa@xxxxxxxxx> > > Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> I just pushed to drm-intel-next since there's this patch here that would conflict there in in drm-xe-next and also, the whole display-pm-reconcile I'm targeting here in drm-intel-next as well and that touches a lot xe/xe_display files. > > > --- > > drivers/gpu/drm/i915/display/intel_dmc_wl.c | 12 +++++++++++- > > drivers/gpu/drm/i915/display/intel_dmc_wl.h | 1 + > > 2 files changed, 12 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dmc_wl.c b/drivers/gpu/drm/i915/display/intel_dmc_wl.c > > index 853d75610489..09075830c12f 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dmc_wl.c > > +++ b/drivers/gpu/drm/i915/display/intel_dmc_wl.c > > @@ -349,7 +349,7 @@ void intel_dmc_wl_disable(struct intel_display *display) > > if (!__intel_dmc_wl_supported(display)) > > return; > > > > - flush_delayed_work(&wl->work); > > + intel_dmc_wl_flush_release_work(display); > > > > spin_lock_irqsave(&wl->lock, flags); > > > > @@ -377,6 +377,16 @@ void intel_dmc_wl_disable(struct intel_display *display) > > spin_unlock_irqrestore(&wl->lock, flags); > > } > > > > +void intel_dmc_wl_flush_release_work(struct intel_display *display) > > +{ > > + struct intel_dmc_wl *wl = &display->wl; > > + > > + if (!__intel_dmc_wl_supported(display)) > > + return; > > + > > + flush_delayed_work(&wl->work); > > +} > > + > > void intel_dmc_wl_get(struct intel_display *display, i915_reg_t reg) > > { > > struct intel_dmc_wl *wl = &display->wl; > > diff --git a/drivers/gpu/drm/i915/display/intel_dmc_wl.h b/drivers/gpu/drm/i915/display/intel_dmc_wl.h > > index 147eeb4d8432..5488fbdf29b8 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dmc_wl.h > > +++ b/drivers/gpu/drm/i915/display/intel_dmc_wl.h > > @@ -32,6 +32,7 @@ struct intel_dmc_wl { > > void intel_dmc_wl_init(struct intel_display *display); > > void intel_dmc_wl_enable(struct intel_display *display, u32 dc_state); > > void intel_dmc_wl_disable(struct intel_display *display); > > +void intel_dmc_wl_flush_release_work(struct intel_display *display); > > void intel_dmc_wl_get(struct intel_display *display, i915_reg_t reg); > > void intel_dmc_wl_put(struct intel_display *display, i915_reg_t reg); > > void intel_dmc_wl_get_noreg(struct intel_display *display); > > -- > > 2.47.0 > >