@@ -1215,7 +1215,7 @@ intel_dp_mode_valid(struct drm_connector *_connector,
1215
1215
* TBD pass the connector BPC,
1216
1216
* for now U8_MAX so that max BPC on that platform would be picked
1217
1217
*/
1218
- pipe_bpp = intel_dp_dsc_compute_max_bpp (intel_dp , U8_MAX );
1218
+ pipe_bpp = intel_dp_dsc_compute_max_bpp (connector , U8_MAX );
1219
1219
1220
1220
/*
1221
1221
* Output bpp is stored in 6.4 format so right shift by 4 to get the
@@ -1577,9 +1577,10 @@ u8 intel_dp_dsc_max_src_input_bpc(struct drm_i915_private *i915)
1577
1577
return 0 ;
1578
1578
}
1579
1579
1580
- int intel_dp_dsc_compute_max_bpp (struct intel_dp * intel_dp , u8 max_req_bpc )
1580
+ int intel_dp_dsc_compute_max_bpp (const struct intel_connector * connector ,
1581
+ u8 max_req_bpc )
1581
1582
{
1582
- struct drm_i915_private * i915 = dp_to_i915 ( intel_dp );
1583
+ struct drm_i915_private * i915 = to_i915 ( connector -> base . dev );
1583
1584
int i , num_bpc ;
1584
1585
u8 dsc_bpc [3 ] = {0 };
1585
1586
u8 dsc_max_bpc ;
@@ -1591,7 +1592,7 @@ int intel_dp_dsc_compute_max_bpp(struct intel_dp *intel_dp, u8 max_req_bpc)
1591
1592
1592
1593
dsc_max_bpc = min_t (u8 , dsc_max_bpc , max_req_bpc );
1593
1594
1594
- num_bpc = drm_dp_dsc_sink_supported_input_bpcs (intel_dp -> dsc_dpcd ,
1595
+ num_bpc = drm_dp_dsc_sink_supported_input_bpcs (connector -> dp . dsc_dpcd ,
1595
1596
dsc_bpc );
1596
1597
for (i = 0 ; i < num_bpc ; i ++ ) {
1597
1598
if (dsc_max_bpc >= dsc_bpc [i ])
@@ -2056,6 +2057,8 @@ static int intel_edp_dsc_compute_pipe_bpp(struct intel_dp *intel_dp,
2056
2057
struct link_config_limits * limits )
2057
2058
{
2058
2059
struct drm_i915_private * i915 = dp_to_i915 (intel_dp );
2060
+ struct intel_connector * connector =
2061
+ to_intel_connector (conn_state -> connector );
2059
2062
int pipe_bpp , forced_bpp ;
2060
2063
int dsc_src_min_bpp , dsc_sink_min_bpp , dsc_min_bpp ;
2061
2064
int dsc_src_max_bpp , dsc_sink_max_bpp , dsc_max_bpp ;
@@ -2068,7 +2071,7 @@ static int intel_edp_dsc_compute_pipe_bpp(struct intel_dp *intel_dp,
2068
2071
int max_bpc = min (limits -> pipe .max_bpp / 3 , (int )conn_state -> max_requested_bpc );
2069
2072
2070
2073
/* For eDP use max bpp that can be supported with DSC. */
2071
- pipe_bpp = intel_dp_dsc_compute_max_bpp (intel_dp , max_bpc );
2074
+ pipe_bpp = intel_dp_dsc_compute_max_bpp (connector , max_bpc );
2072
2075
if (!is_dsc_pipe_bpp_sufficient (i915 , conn_state , limits , pipe_bpp )) {
2073
2076
drm_dbg_kms (& i915 -> drm ,
2074
2077
"Computed BPC is not in DSC BPC limits\n" );
0 commit comments