From: Jani Nikula <jani.nikula@intel.com>
To: imre.deak@intel.com
Cc: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 4/6] drm/i915/mst: handle mst pbn_div in intel_dp_mtp_tu_compute_config()
Date: Thu, 30 Jan 2025 23:14:33 +0200 [thread overview]
Message-ID: <8734h080na.fsf@intel.com> (raw)
In-Reply-To: <Z5uLY1QC72jrT_JC@ideak-desk.fi.intel.com>
On Thu, 30 Jan 2025, Imre Deak <imre.deak@intel.com> wrote:
> On Wed, Jan 29, 2025 at 04:46:36PM +0200, Jani Nikula wrote:
>> Move mst_state->pbn_div calculation to intel_dp_mtp_tu_compute_config()
>> to allow further refactoring.
>>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>> drivers/gpu/drm/i915/display/intel_dp_mst.c | 31 ++++++++++-----------
>> 1 file changed, 14 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> index ea1b05224c06..8786c8751c82 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> @@ -216,15 +216,25 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>> {
>> struct intel_display *display = to_intel_display(intel_dp);
>> struct drm_atomic_state *state = crtc_state->uapi.state;
>> + struct drm_dp_mst_topology_state *mst_state = NULL;
>> struct intel_connector *connector =
>> to_intel_connector(conn_state->connector);
>> const struct drm_display_mode *adjusted_mode =
>> &crtc_state->hw.adjusted_mode;
>> - fixed20_12 pbn_div;
>> + bool is_mst = intel_dp->is_mst;
>> int bpp, slots = -EINVAL;
>> int dsc_slice_count = 0;
>> int max_dpt_bpp;
>>
>> + if (is_mst) {^
>> + mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst_mgr);
>> + if (IS_ERR(mst_state))
>> + return PTR_ERR(mst_state);
>> +
>> + mst_state->pbn_div = drm_dp_get_vc_payload_bw(crtc_state->port_clock,
>> + crtc_state->lane_count);
>> + }
>> +
>
> This could've been in the if (intel_dp->is_mst) block, since SST doesn't
> use pbn_div. In any case the patch is correct:
Uh, there's the if (is_mst)?
>
> Reviewed-by: Imre Deak <imre.deak@intel.com>
>
>> if (dsc) {
>> if (!intel_dp_supports_fec(intel_dp, connector, crtc_state))
>> return -EINVAL;
>> @@ -232,9 +242,6 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>> crtc_state->fec_enable = !intel_dp_is_uhbr(crtc_state);
>> }
>>
>> - pbn_div = drm_dp_get_vc_payload_bw(crtc_state->port_clock,
>> - crtc_state->lane_count);
>> -
>> max_dpt_bpp = intel_dp_mst_max_dpt_bpp(crtc_state, dsc);
>> if (max_bpp > max_dpt_bpp) {
>> drm_dbg_kms(display->drm, "Limiting bpp to max DPT bpp (%d -> %d)\n",
>> @@ -270,7 +277,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>> link_bpp_x16,
>> &crtc_state->dp_m_n);
>>
>> - if (intel_dp->is_mst) {
>> + if (is_mst) {
>> int remote_bw_overhead;
>> int remote_tu;
>> fixed20_12 pbn;
>> @@ -295,7 +302,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>> pbn.full = dfixed_const(intel_dp_mst_calc_pbn(adjusted_mode->crtc_clock,
>> link_bpp_x16,
>> remote_bw_overhead));
>> - remote_tu = DIV_ROUND_UP(pbn.full, pbn_div.full);
>> + remote_tu = DIV_ROUND_UP(pbn.full, mst_state->pbn_div.full);
>>
>> /*
>> * Aligning the TUs ensures that symbols consisting of multiple
>> @@ -313,7 +320,7 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,
>> * allocated for the whole path and the TUs allocated for the
>> * first branch device's link also applies here.
>> */
>> - pbn.full = remote_tu * pbn_div.full;
>> + pbn.full = remote_tu * mst_state->pbn_div.full;
>>
>> drm_WARN_ON(display->drm, remote_tu < crtc_state->dp_m_n.tu);
>> crtc_state->dp_m_n.tu = remote_tu;
>> @@ -365,16 +372,6 @@ static int mst_stream_find_vcpi_slots_for_bpp(struct intel_dp *intel_dp,
>> struct drm_connector_state *conn_state,
>> int step, bool dsc)
>> {
>> - struct drm_atomic_state *state = crtc_state->uapi.state;
>> - struct drm_dp_mst_topology_state *mst_state;
>> -
>> - mst_state = drm_atomic_get_mst_topology_state(state, &intel_dp->mst_mgr);
>> - if (IS_ERR(mst_state))
>> - return PTR_ERR(mst_state);
>> -
>> - mst_state->pbn_div = drm_dp_get_vc_payload_bw(crtc_state->port_clock,
>> - crtc_state->lane_count);
>> -
>> return intel_dp_mtp_tu_compute_config(intel_dp, crtc_state, conn_state,
>> min_bpp, max_bpp, step, dsc);
>> }
>> --
>> 2.39.5
>>
--
Jani Nikula, Intel
next prev parent reply other threads:[~2025-01-30 21:14 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-29 14:46 [PATCH 0/6] drm/i915: DP and DP MST cleanups Jani Nikula
2025-01-29 14:46 ` [PATCH 1/6] drm/i915/dp: constify struct link_config_limits pointers Jani Nikula
2025-01-30 13:47 ` Imre Deak
2025-01-29 14:46 ` [PATCH 2/6] drm/i915/dp: change the order of intel_dp_mtp_tu_compute_config() params Jani Nikula
2025-01-30 14:03 ` Imre Deak
2025-01-29 14:46 ` [PATCH 3/6] drm/i915/mst: change where lane_count and port_clock are set Jani Nikula
2025-01-30 14:16 ` Imre Deak
2025-01-29 14:46 ` [PATCH 4/6] drm/i915/mst: handle mst pbn_div in intel_dp_mtp_tu_compute_config() Jani Nikula
2025-01-30 14:23 ` Imre Deak
2025-01-30 21:14 ` Jani Nikula [this message]
2025-01-30 21:34 ` Imre Deak
2025-01-29 14:46 ` [PATCH 5/6] drm/i915/mst: remove unnecessary mst_stream_find_vcpi_slots_for_bpp() Jani Nikula
2025-01-30 14:25 ` Imre Deak
2025-01-29 14:46 ` [PATCH 6/6] drm/i915/mst: use min_array() and max_array() instead of hand-rolling Jani Nikula
2025-01-30 14:35 ` Imre Deak
2025-01-30 14:39 ` Imre Deak
2025-01-31 9:20 ` Jani Nikula
2025-01-31 9:38 ` Raag Jadav
2025-01-29 16:31 ` ✓ CI.Patch_applied: success for series starting with [1/6] drm/i915/dp: constify struct link_config_limits pointers Patchwork
2025-01-29 16:32 ` ✓ CI.checkpatch: " Patchwork
2025-01-29 16:33 ` ✓ CI.KUnit: " Patchwork
2025-01-29 16:48 ` ✗ Fi.CI.SPARSE: warning for drm/i915: DP and DP MST cleanups Patchwork
2025-01-29 16:49 ` ✓ CI.Build: success " Patchwork
2025-01-29 16:51 ` ✗ CI.Hooks: failure " Patchwork
2025-01-29 16:53 ` ✗ CI.checksparse: warning " Patchwork
2025-01-29 17:04 ` ✓ i915.CI.BAT: success " Patchwork
2025-01-29 17:13 ` ✓ Xe.CI.BAT: " Patchwork
2025-01-29 18:40 ` ✗ i915.CI.Full: failure " Patchwork
2025-01-30 0:24 ` ✗ Xe.CI.Full: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8734h080na.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.