On Tue, 24 Jun 2025, Mitul Golani <[email protected]> wrote: > From: Ville Syrjälä <[email protected]> > > Add function to control DC balance enable/disable bit via DSB. > > Signed-off-by: Ville Syrjälä <[email protected]> > Signed-off-by: Mitul Golani <[email protected]> > Reviewed-by: Ankit Nautiyal <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_dmc.c | 18 ++++++++++++++++++ > drivers/gpu/drm/i915/display/intel_dmc.h | 5 +++++ > 2 files changed, 23 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c > b/drivers/gpu/drm/i915/display/intel_dmc.c > index 4572e87d9bfa..1726c0ab18c2 100644 > --- a/drivers/gpu/drm/i915/display/intel_dmc.c > +++ b/drivers/gpu/drm/i915/display/intel_dmc.c > @@ -1607,3 +1607,21 @@ void intel_pipedmc_irq_handler(struct intel_display > *display, enum pipe pipe) > drm_err(display->drm, "[CRTC:%d:%s]] PIPEDMC interrupt vector > 0x%x\n", > crtc->base.base.id, crtc->base.name, tmp); > } > + > +void intel_pipedmc_dcb_enable(struct intel_dsb *dsb, struct intel_crtc *crtc) > +{ > + struct intel_display *display = to_intel_display(crtc); > + enum pipe pipe = crtc->pipe; > + > + intel_de_write_dsb(display, dsb, PIPEDMC_DCB_CTL(pipe), > + PIPEDMC_ADAPTIVE_DCB_ENABLE); > +} > + > +void intel_pipedmc_dcb_disable(struct intel_dsb *dsb, struct intel_crtc > *crtc) > +{ > + struct intel_display *display = to_intel_display(crtc); > + enum pipe pipe = crtc->pipe; > + > + intel_de_write_dsb(display, dsb, PIPEDMC_DCB_CTL(pipe), 0); > +} > + > diff --git a/drivers/gpu/drm/i915/display/intel_dmc.h > b/drivers/gpu/drm/i915/display/intel_dmc.h > index 7820fa5aed3e..d45d51bedb87 100644 > --- a/drivers/gpu/drm/i915/display/intel_dmc.h > +++ b/drivers/gpu/drm/i915/display/intel_dmc.h > @@ -8,11 +8,14 @@ > > #include <linux/types.h> > > +
Please run checkpatch before sending. > enum pipe; > +struct intel_crtc; > struct drm_printer; > struct intel_crtc_state; > struct intel_display; > struct intel_dmc_snapshot; > +struct intel_dsb; > > void intel_dmc_init(struct intel_display *display); > void intel_dmc_load_program(struct intel_display *display); > @@ -36,5 +39,7 @@ void intel_dmc_update_dc6_allowed_count(struct > intel_display *display, bool star > void assert_main_dmc_loaded(struct intel_display *display); > > void intel_pipedmc_irq_handler(struct intel_display *display, enum pipe > pipe); > +void intel_pipedmc_dcb_enable(struct intel_dsb *dsb, struct intel_crtc > *crtc); > +void intel_pipedmc_dcb_disable(struct intel_dsb *dsb, struct intel_crtc > *crtc); > > #endif /* __INTEL_DMC_H__ */ -- Jani Nikula, Intel
