On Tue, Aug 26, 2025 at 08:01:17AM +0000, Lee Shawn C wrote: > While performing HDMI compliance testing, test equipment may request > different bpc output for signal measurement. However, display driver > typically determines the maximum available bpc based on HW bandwidth. > This change leverages the existing debugfs (intel_force_link_bpp) > to manage HDMI bpc, and making it easier to pass HDMI CTS. > > v2: Using exist variable max_requested_bpc. > v3: Extend intel_force_link_bpp to support HDMI as suggested by Imre. > v4: Update commit message suggested by Jani. > > Cc: Shankar Uma <uma.shan...@intel.com> > Cc: Jani Nikula <jani.nik...@intel.com> > Cc: Imre Deak <imre.d...@intel.com> > Cc: Vidya Srinivas <vidya.srini...@intel.com> > Signed-off-by: Lee Shawn C <shawn.c....@intel.com> > --- > drivers/gpu/drm/i915/display/g4x_hdmi.c | 5 +---- > drivers/gpu/drm/i915/display/intel_hdmi.c | 4 ++++ > drivers/gpu/drm/i915/display/intel_link_bw.c | 6 +----- > 3 files changed, 6 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/g4x_hdmi.c > b/drivers/gpu/drm/i915/display/g4x_hdmi.c > index 108ebd97f9e4..b31fb1e4bc1a 100644 > --- a/drivers/gpu/drm/i915/display/g4x_hdmi.c > +++ b/drivers/gpu/drm/i915/display/g4x_hdmi.c > @@ -136,11 +136,8 @@ static int g4x_hdmi_compute_config(struct intel_encoder > *encoder, > struct intel_atomic_state *state = > to_intel_atomic_state(crtc_state->uapi.state); > struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc); > > - if (HAS_PCH_SPLIT(display)) { > + if (HAS_PCH_SPLIT(display)) > crtc_state->has_pch_encoder = true; > - if (!intel_fdi_compute_pipe_bpp(crtc_state)) > - return -EINVAL; > - } > > if (display->platform.g4x) > crtc_state->has_hdmi_sink = g4x_compute_has_hdmi_sink(state, > crtc); > diff --git a/drivers/gpu/drm/i915/display/intel_hdmi.c > b/drivers/gpu/drm/i915/display/intel_hdmi.c > index cbee628eb26b..027e8ed0cea8 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/display/intel_hdmi.c > @@ -55,6 +55,7 @@ > #include "intel_display_regs.h" > #include "intel_display_types.h" > #include "intel_dp.h" > +#include "intel_fdi.h" > #include "intel_gmbus.h" > #include "intel_hdcp.h" > #include "intel_hdcp_regs.h" > @@ -2345,6 +2346,9 @@ int intel_hdmi_compute_config(struct intel_encoder > *encoder, > if (adjusted_mode->flags & DRM_MODE_FLAG_DBLCLK) > pipe_config->pixel_multiplier = 2; > > + if (!intel_fdi_compute_pipe_bpp(pipe_config)) > + return -EINVAL;
After this change the above function is not any more FDI specific, it's also used for connectors that are not on an FDI link, so could you also add a patch moving it to intel_link_bw.c, renaming it to intel_link_bw_compute_pipe_bpp()? > + > pipe_config->has_audio = > intel_hdmi_has_audio(encoder, pipe_config, conn_state) && > intel_audio_compute_config(encoder, pipe_config, conn_state); > diff --git a/drivers/gpu/drm/i915/display/intel_link_bw.c > b/drivers/gpu/drm/i915/display/intel_link_bw.c > index 3caef7f9c7c4..d194a366ff10 100644 > --- a/drivers/gpu/drm/i915/display/intel_link_bw.c > +++ b/drivers/gpu/drm/i915/display/intel_link_bw.c > @@ -449,6 +449,7 @@ void intel_link_bw_connector_debugfs_add(struct > intel_connector *connector) > switch (connector->base.connector_type) { > case DRM_MODE_CONNECTOR_DisplayPort: > case DRM_MODE_CONNECTOR_eDP: > + case DRM_MODE_CONNECTOR_HDMIA: > break; > case DRM_MODE_CONNECTOR_VGA: > case DRM_MODE_CONNECTOR_SVIDEO: > @@ -457,11 +458,6 @@ void intel_link_bw_connector_debugfs_add(struct > intel_connector *connector) > if (HAS_FDI(display)) > break; > > - return; > - case DRM_MODE_CONNECTOR_HDMIA: > - if (HAS_FDI(display) && !HAS_DDI(display)) > - break; > - > return; > default: > return; > -- > 2.34.1 >