Commit 02c8d561 authored by Imre Deak's avatar Imre Deak

drm/i915/dp: Remove unused DSC caps from intel_dp

The previous patches converted all users of the DSC DPCD caps to look
these up from the connector, so remove the version stored in intel_dp.

A follow-up patchset will read out the MST connector specific
capabilities in intel_dp_add_mst_connector() ->
intel_dp_mst_read_decompression_port_dsc_caps().

v2:
- Rebased on intel_edp_get_dsc_sink_cap() addition in the patchset.
v3:
- Rebased on read-out fix for eDP in the patchset.

Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com> (v1)
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231011171606.2540078-3-imre.deak@intel.com
parent d19daffc
...@@ -1725,10 +1725,8 @@ struct intel_dp { ...@@ -1725,10 +1725,8 @@ struct intel_dp {
u8 psr_dpcd[EDP_PSR_RECEIVER_CAP_SIZE]; u8 psr_dpcd[EDP_PSR_RECEIVER_CAP_SIZE];
u8 downstream_ports[DP_MAX_DOWNSTREAM_PORTS]; u8 downstream_ports[DP_MAX_DOWNSTREAM_PORTS];
u8 edp_dpcd[EDP_DISPLAY_CTL_CAP_SIZE]; u8 edp_dpcd[EDP_DISPLAY_CTL_CAP_SIZE];
u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE];
u8 lttpr_common_caps[DP_LTTPR_COMMON_CAP_SIZE]; u8 lttpr_common_caps[DP_LTTPR_COMMON_CAP_SIZE];
u8 lttpr_phy_caps[DP_MAX_LTTPR_COUNT][DP_LTTPR_PHY_CAP_SIZE]; u8 lttpr_phy_caps[DP_MAX_LTTPR_COUNT][DP_LTTPR_PHY_CAP_SIZE];
u8 fec_capable;
u8 pcon_dsc_dpcd[DP_PCON_DSC_ENCODER_CAP_SIZE]; u8 pcon_dsc_dpcd[DP_PCON_DSC_ENCODER_CAP_SIZE];
/* source rates */ /* source rates */
int num_source_rates; int num_source_rates;
......
...@@ -3490,10 +3490,9 @@ static void intel_dp_read_dsc_dpcd(struct drm_dp_aux *aux, ...@@ -3490,10 +3490,9 @@ static void intel_dp_read_dsc_dpcd(struct drm_dp_aux *aux,
dsc_dpcd); dsc_dpcd);
} }
void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_dp *intel_dp, void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_connector *connector)
struct intel_connector *connector)
{ {
struct drm_i915_private *i915 = dp_to_i915(intel_dp); struct drm_i915_private *i915 = to_i915(connector->base.dev);
/* /*
* Clear the cached register set to avoid using stale values * Clear the cached register set to avoid using stale values
...@@ -3518,27 +3517,14 @@ void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_dp *intel_dp, ...@@ -3518,27 +3517,14 @@ void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_dp *intel_dp,
drm_dbg_kms(&i915->drm, "FEC CAPABILITY: %x\n", drm_dbg_kms(&i915->drm, "FEC CAPABILITY: %x\n",
connector->dp.fec_capability); connector->dp.fec_capability);
/*
* TODO: remove the following intel_dp copies once all users
* are converted to look up DSC DPCD/FEC capability via the
* connector.
*/
memcpy(intel_dp->dsc_dpcd, connector->dp.dsc_dpcd,
sizeof(intel_dp->dsc_dpcd));
intel_dp->fec_capable = connector->dp.fec_capability;
} }
static void intel_edp_get_dsc_sink_cap(u8 edp_dpcd_rev, struct intel_dp *intel_dp, static void intel_edp_get_dsc_sink_cap(u8 edp_dpcd_rev, struct intel_connector *connector)
struct intel_connector *connector)
{ {
if (edp_dpcd_rev < DP_EDP_14) if (edp_dpcd_rev < DP_EDP_14)
return; return;
intel_dp_read_dsc_dpcd(connector->dp.dsc_decompression_aux, connector->dp.dsc_dpcd); intel_dp_read_dsc_dpcd(connector->dp.dsc_decompression_aux, connector->dp.dsc_dpcd);
memcpy(intel_dp->dsc_dpcd, connector->dp.dsc_dpcd,
sizeof(intel_dp->dsc_dpcd));
} }
static void intel_edp_mso_mode_fixup(struct intel_connector *connector, static void intel_edp_mso_mode_fixup(struct intel_connector *connector,
...@@ -3710,7 +3696,6 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector ...@@ -3710,7 +3696,6 @@ intel_edp_init_dpcd(struct intel_dp *intel_dp, struct intel_connector *connector
/* Read the eDP DSC DPCD registers */ /* Read the eDP DSC DPCD registers */
if (HAS_DSC(dev_priv)) if (HAS_DSC(dev_priv))
intel_edp_get_dsc_sink_cap(intel_dp->edp_dpcd[0], intel_edp_get_dsc_sink_cap(intel_dp->edp_dpcd[0],
intel_dp,
connector); connector);
/* /*
...@@ -5390,10 +5375,10 @@ intel_dp_detect_dsc_caps(struct intel_dp *intel_dp, struct intel_connector *conn ...@@ -5390,10 +5375,10 @@ intel_dp_detect_dsc_caps(struct intel_dp *intel_dp, struct intel_connector *conn
if (intel_dp_is_edp(intel_dp)) if (intel_dp_is_edp(intel_dp))
intel_edp_get_dsc_sink_cap(intel_dp->edp_dpcd[0], intel_edp_get_dsc_sink_cap(intel_dp->edp_dpcd[0],
intel_dp, connector); connector);
else else
intel_dp_get_dsc_sink_cap(intel_dp->dpcd[DP_DPCD_REV], intel_dp_get_dsc_sink_cap(intel_dp->dpcd[DP_DPCD_REV],
intel_dp, connector); connector);
} }
static int static int
...@@ -5427,11 +5412,6 @@ intel_dp_detect(struct drm_connector *connector, ...@@ -5427,11 +5412,6 @@ intel_dp_detect(struct drm_connector *connector,
if (status == connector_status_disconnected) { if (status == connector_status_disconnected) {
memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance)); memset(&intel_dp->compliance, 0, sizeof(intel_dp->compliance));
/*
* TODO: Remove clearing the DPCD in intel_dp, once all
* user are converted to using the DPCD in connector.
*/
memset(intel_dp->dsc_dpcd, 0, sizeof(intel_dp->dsc_dpcd));
memset(intel_connector->dp.dsc_dpcd, 0, sizeof(intel_connector->dp.dsc_dpcd)); memset(intel_connector->dp.dsc_dpcd, 0, sizeof(intel_connector->dp.dsc_dpcd));
if (intel_dp->is_mst) { if (intel_dp->is_mst) {
......
...@@ -163,7 +163,6 @@ intel_dp_compute_config_link_bpp_limits(struct intel_dp *intel_dp, ...@@ -163,7 +163,6 @@ intel_dp_compute_config_link_bpp_limits(struct intel_dp *intel_dp,
bool dsc, bool dsc,
struct link_config_limits *limits); struct link_config_limits *limits);
void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_dp *intel_dp, void intel_dp_get_dsc_sink_cap(u8 dpcd_rev, struct intel_connector *connector);
struct intel_connector *connector);
#endif /* __INTEL_DP_H__ */ #endif /* __INTEL_DP_H__ */
...@@ -1136,7 +1136,7 @@ intel_dp_mst_read_decompression_port_dsc_caps(struct intel_dp *intel_dp, ...@@ -1136,7 +1136,7 @@ intel_dp_mst_read_decompression_port_dsc_caps(struct intel_dp *intel_dp,
if (drm_dp_read_dpcd_caps(connector->dp.dsc_decompression_aux, dpcd_caps) < 0) if (drm_dp_read_dpcd_caps(connector->dp.dsc_decompression_aux, dpcd_caps) < 0)
return; return;
intel_dp_get_dsc_sink_cap(dpcd_caps[DP_DPCD_REV], intel_dp, connector); intel_dp_get_dsc_sink_cap(dpcd_caps[DP_DPCD_REV], connector);
} }
static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr, static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment