[PATCH v7 12/18] drm/i915/dsb: Add pipedmc dc balance enable/disable
Jani Nikula
jani.nikula at linux.intel.com
Tue Jun 24 08:25:00 UTC 2025
On Tue, 24 Jun 2025, Mitul Golani <mitulkumar.ajitkumar.golani at intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> Add function to control DC balance enable/disable bit via DSB.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani at intel.com>
> Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal at intel.com>
> ---
> 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
More information about the Intel-xe
mailing list