On Fri, 28 Aug 2026, Mitul Golani <[email protected]> wrote: > Add a new module parameter 'enable_dc_balance' to allow enabling or > disabling the VRR DC balance feature at runtime. The DC balance > computation in intel_vrr_dc_balance_compute_config() now honours this > parameter, so the feature can be toggled without recompiling.
Why? Everything in the commit message above is obvious, and can be trivially deduced from the code changes, but I'm none the wiser why this change is needed. Also, what's the specific need for this to be a module parameter? No new module parameters should be added without strong justification. Could this be a debugfs knob instead? Module parameters are, as the name suggests, per module, not per device. BR, Jani. > > Signed-off-by: Mitul Golani <[email protected]> > --- > drivers/gpu/drm/i915/display/intel_display_params.c | 3 +++ > drivers/gpu/drm/i915/display/intel_display_params.h | 1 + > drivers/gpu/drm/i915/display/intel_vrr.c | 4 +++- > 3 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display_params.c > b/drivers/gpu/drm/i915/display/intel_display_params.c > index 2aed110c5b09..ed3aa84c5d43 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_params.c > +++ b/drivers/gpu/drm/i915/display/intel_display_params.c > @@ -120,6 +120,9 @@ intel_display_param_named_unsafe(enable_psr, int, 0400, > "(0=disabled, 1=enable up to PSR1, 2=enable up to PSR2) " > "Default: -1 (use per-chip default)"); > > +intel_display_param_named_unsafe(enable_dc_balance, int, 0400, > + "Enable DC Balance (0=disabled, 1=enable). Default: 1 (use per-chip > default)"); > + > intel_display_param_named_unsafe(enable_panel_replay, int, 0400, > "Enable Panel Replay (0=disabled, 1=enabled). Default: -1 (use per-chip > default)"); > > diff --git a/drivers/gpu/drm/i915/display/intel_display_params.h > b/drivers/gpu/drm/i915/display/intel_display_params.h > index b95ecf728daa..8c28c27e2c46 100644 > --- a/drivers/gpu/drm/i915/display/intel_display_params.h > +++ b/drivers/gpu/drm/i915/display/intel_display_params.h > @@ -46,6 +46,7 @@ struct drm_printer; > param(bool, enable_dp_mst, true, 0600) \ > param(int, enable_fbc, -1, 0600) \ > param(int, enable_psr, -1, 0600) \ > + param(int, enable_dc_balance, false, 0600) \ > param(int, enable_panel_replay, -1, 0600) \ > param(bool, psr_safest_params, false, 0400) \ > param(bool, enable_psr2_sel_fetch, true, 0400) \ > diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c > b/drivers/gpu/drm/i915/display/intel_vrr.c > index e36db1174440..1698c54e258b 100644 > --- a/drivers/gpu/drm/i915/display/intel_vrr.c > +++ b/drivers/gpu/drm/i915/display/intel_vrr.c > @@ -439,10 +439,12 @@ static bool intel_vrr_dc_balance_possible(const struct > intel_crtc_state *crtc_st > static void > intel_vrr_dc_balance_compute_config(struct intel_crtc_state *crtc_state) > { > + struct intel_display *display = to_intel_display(crtc_state); > int guardband_usec, adjustment_usec; > struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode; > > - if (!intel_vrr_dc_balance_possible(crtc_state) || > !crtc_state->vrr.enable) > + if (!intel_vrr_dc_balance_possible(crtc_state) || > + !crtc_state->vrr.enable || !display->params.enable_dc_balance) > return; > > crtc_state->vrr.dc_balance.vmax = crtc_state->vrr.vmax; -- Jani Nikula, Intel
