Message ID | 20231127063926.1630925-1-ankit.k.nautiyal@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
On Mon, 27 Nov 2023, Ankit Nautiyal <ankit.k.nautiyal@intel.com> wrote: > Use helpers for source min/max input bpc with DSC. > While at it, make them return int instead of u8. > > v2: Make the helpers return int instead of u8. (Jani) > > Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> > Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dp.c | 6 ++---- > drivers/gpu/drm/i915/display/intel_dp.h | 2 ++ > drivers/gpu/drm/i915/display/intel_dp_mst.c | 11 ++++------- > 3 files changed, 8 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index 1f68d4819282..74000b65829e 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -1622,8 +1622,7 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp, > return -EINVAL; > } > > -static > -u8 intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915) > +int intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915) > { > if (!HAS_DSC(i915)) > return 0; > @@ -2022,8 +2021,7 @@ static int dsc_compute_compressed_bpp(struct intel_dp *intel_dp, > dsc_max_bpp, dsc_min_bpp, pipe_bpp, timeslots); > } > > -static > -u8 intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915) > +int intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915) > { > /* Min DSC Input BPC for ICL+ is 8 */ > return HAS_DSC(i915) ? 8 : 0; > diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h > index 05db46b111f2..f613ced9eda6 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.h > +++ b/drivers/gpu/drm/i915/display/intel_dp.h > @@ -184,5 +184,7 @@ intel_dp_compute_config_link_bpp_limits(struct intel_dp *intel_dp, > struct link_config_limits *limits); > > void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_connector *connector); > +int intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915); > +int intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915); > > #endif /* __INTEL_DP_H__ */ > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c > index 63364c9602ef..01e9d6fb9548 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > @@ -293,17 +293,14 @@ static int intel_dp_dsc_mst_compute_link_config(struct intel_encoder *encoder, > int i, num_bpc; > u8 dsc_bpc[3] = {}; > int min_bpp, max_bpp, sink_min_bpp, sink_max_bpp; > - u8 dsc_max_bpc; > + u8 dsc_max_bpc, dsc_min_bpc; > int min_compressed_bpp, max_compressed_bpp; > > - /* Max DSC Input BPC for ICL is 10 and for TGL+ is 12 */ > - if (DISPLAY_VER(i915) >= 12) > - dsc_max_bpc = min_t(u8, 12, conn_state->max_requested_bpc); > - else > - dsc_max_bpc = min_t(u8, 10, conn_state->max_requested_bpc); > + dsc_max_bpc = intel_dp_dsc_max_src_input_bpc(i915); > + dsc_min_bpc = intel_dp_dsc_min_src_input_bpc(i915); > > max_bpp = min_t(u8, dsc_max_bpc * 3, limits->pipe.max_bpp); > - min_bpp = limits->pipe.min_bpp; > + min_bpp = max_t(u8, dsc_min_bpc * 3, limits->pipe.min_bpp); I thought it would be obvious you'd also need to change these to ints and drop the forced u8 etc. BR, Jani. > > num_bpc = drm_dp_dsc_sink_supported_input_bpcs(connector->dp.dsc_dpcd, > dsc_bpc);
On 11/27/2023 3:07 PM, Jani Nikula wrote: > On Mon, 27 Nov 2023, Ankit Nautiyal <ankit.k.nautiyal@intel.com> wrote: >> Use helpers for source min/max input bpc with DSC. >> While at it, make them return int instead of u8. >> >> v2: Make the helpers return int instead of u8. (Jani) >> >> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> >> Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> >> --- >> drivers/gpu/drm/i915/display/intel_dp.c | 6 ++---- >> drivers/gpu/drm/i915/display/intel_dp.h | 2 ++ >> drivers/gpu/drm/i915/display/intel_dp_mst.c | 11 ++++------- >> 3 files changed, 8 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c >> index 1f68d4819282..74000b65829e 100644 >> --- a/drivers/gpu/drm/i915/display/intel_dp.c >> +++ b/drivers/gpu/drm/i915/display/intel_dp.c >> @@ -1622,8 +1622,7 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp, >> return -EINVAL; >> } >> >> -static >> -u8 intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915) >> +int intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915) >> { >> if (!HAS_DSC(i915)) >> return 0; >> @@ -2022,8 +2021,7 @@ static int dsc_compute_compressed_bpp(struct intel_dp *intel_dp, >> dsc_max_bpp, dsc_min_bpp, pipe_bpp, timeslots); >> } >> >> -static >> -u8 intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915) >> +int intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915) >> { >> /* Min DSC Input BPC for ICL+ is 8 */ >> return HAS_DSC(i915) ? 8 : 0; >> diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h >> index 05db46b111f2..f613ced9eda6 100644 >> --- a/drivers/gpu/drm/i915/display/intel_dp.h >> +++ b/drivers/gpu/drm/i915/display/intel_dp.h >> @@ -184,5 +184,7 @@ intel_dp_compute_config_link_bpp_limits(struct intel_dp *intel_dp, >> struct link_config_limits *limits); >> >> void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_connector *connector); >> +int intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915); >> +int intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915); >> >> #endif /* __INTEL_DP_H__ */ >> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c >> index 63364c9602ef..01e9d6fb9548 100644 >> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c >> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c >> @@ -293,17 +293,14 @@ static int intel_dp_dsc_mst_compute_link_config(struct intel_encoder *encoder, >> int i, num_bpc; >> u8 dsc_bpc[3] = {}; >> int min_bpp, max_bpp, sink_min_bpp, sink_max_bpp; >> - u8 dsc_max_bpc; >> + u8 dsc_max_bpc, dsc_min_bpc; >> int min_compressed_bpp, max_compressed_bpp; >> >> - /* Max DSC Input BPC for ICL is 10 and for TGL+ is 12 */ >> - if (DISPLAY_VER(i915) >= 12) >> - dsc_max_bpc = min_t(u8, 12, conn_state->max_requested_bpc); >> - else >> - dsc_max_bpc = min_t(u8, 10, conn_state->max_requested_bpc); >> + dsc_max_bpc = intel_dp_dsc_max_src_input_bpc(i915); >> + dsc_min_bpc = intel_dp_dsc_min_src_input_bpc(i915); >> >> max_bpp = min_t(u8, dsc_max_bpc * 3, limits->pipe.max_bpp); >> - min_bpp = limits->pipe.min_bpp; >> + min_bpp = max_t(u8, dsc_min_bpc * 3, limits->pipe.min_bpp); > I thought it would be obvious you'd also need to change these to ints > and drop the forced u8 etc. Ah ok. But still in some places we need to force to u8 when comparing with conn_state->max_requested_bpc,which is u8. Regards, Ankit > BR, > Jani. > >> >> num_bpc = drm_dp_dsc_sink_supported_input_bpcs(connector->dp.dsc_dpcd, >> dsc_bpc);
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index 1f68d4819282..74000b65829e 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -1622,8 +1622,7 @@ intel_dp_compute_link_config_wide(struct intel_dp *intel_dp, return -EINVAL; } -static -u8 intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915) +int intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915) { if (!HAS_DSC(i915)) return 0; @@ -2022,8 +2021,7 @@ static int dsc_compute_compressed_bpp(struct intel_dp *intel_dp, dsc_max_bpp, dsc_min_bpp, pipe_bpp, timeslots); } -static -u8 intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915) +int intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915) { /* Min DSC Input BPC for ICL+ is 8 */ return HAS_DSC(i915) ? 8 : 0; diff --git a/drivers/gpu/drm/i915/display/intel_dp.h b/drivers/gpu/drm/i915/display/intel_dp.h index 05db46b111f2..f613ced9eda6 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.h +++ b/drivers/gpu/drm/i915/display/intel_dp.h @@ -184,5 +184,7 @@ intel_dp_compute_config_link_bpp_limits(struct intel_dp *intel_dp, struct link_config_limits *limits); void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_connector *connector); +int intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915); +int intel_dp_dsc_min_src_input_bpc(struct drm_i915_private *i915); #endif /* __INTEL_DP_H__ */ diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index 63364c9602ef..01e9d6fb9548 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -293,17 +293,14 @@ static int intel_dp_dsc_mst_compute_link_config(struct intel_encoder *encoder, int i, num_bpc; u8 dsc_bpc[3] = {}; int min_bpp, max_bpp, sink_min_bpp, sink_max_bpp; - u8 dsc_max_bpc; + u8 dsc_max_bpc, dsc_min_bpc; int min_compressed_bpp, max_compressed_bpp; - /* Max DSC Input BPC for ICL is 10 and for TGL+ is 12 */ - if (DISPLAY_VER(i915) >= 12) - dsc_max_bpc = min_t(u8, 12, conn_state->max_requested_bpc); - else - dsc_max_bpc = min_t(u8, 10, conn_state->max_requested_bpc); + dsc_max_bpc = intel_dp_dsc_max_src_input_bpc(i915); + dsc_min_bpc = intel_dp_dsc_min_src_input_bpc(i915); max_bpp = min_t(u8, dsc_max_bpc * 3, limits->pipe.max_bpp); - min_bpp = limits->pipe.min_bpp; + min_bpp = max_t(u8, dsc_min_bpc * 3, limits->pipe.min_bpp); num_bpc = drm_dp_dsc_sink_supported_input_bpcs(connector->dp.dsc_dpcd, dsc_bpc);