From: Jani Nikula <jani.nikula@intel.com>
To: Khaled Almahallawy <khaled.almahallawy@intel.com>,
dri-devel@lists.freedesktop.org
Cc: Or Cochvi <or.cochvi@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH] drm/display: Don't rewrite link config when setting phy test pattern
Date: Wed, 28 Sep 2022 14:20:05 +0300 [thread overview]
Message-ID: <875yh7zqxm.fsf@intel.com> (raw)
In-Reply-To: <20220916054900.415804-1-khaled.almahallawy@intel.com>
On Thu, 15 Sep 2022, Khaled Almahallawy <khaled.almahallawy@intel.com> wrote:
> The sequence for Source DP PHY CTS automation is [2][1]:
> 1- Emulate successful Link Training(LT)
> 2- Short HPD and change link rates and number of lanes by LT.
> (This is same flow for Link Layer CTS)
> 3- Short HPD and change PHY test pattern and swing/pre-emphasis
> levels (This step should not trigger LT)
>
> The problem is with DP PHY compliance setup as follow:
>
> [DPTX + on board LTTPR]------Main Link--->[Scope]
> ^ |
> | |
> | |
> ----------Aux Ch------>[Aux Emulator]
>
> At step 3, before writing TRAINING_LANEx_SET/LINK_QUAL_PATTERN_SET
> to declare the pattern/swing requested by scope, we write link
> config in LINK_BW_SET/LANE_COUNT_SET on a port that has LTTPR.
> As LTTPR snoops aux transaction, LINK_BW_SET/LANE_COUNT_SET writes
> indicate a LT will start [Check DP 2.0 E11 -Sec 3.6.8.2 & 3.6.8.6.3],
> and LTTPR will reset the link and stop sending DP signals to
> DPTX/Scope causing the measurements to fail. Note that step 3 will
> not trigger LT and DP link will never recovered by the
> Aux Emulator/Scope.
>
> The reset of link can be tested with a monitor connected to LTTPR
> port simply by writing to LINK_BW_SET or LANE_COUNT_SET as follow
>
> igt/tools/dpcd_reg write --offset=0x100 --value 0x14 --device=2
>
> OR
>
> printf '\x14' | sudo dd of=/dev/drm_dp_aux2 bs=1 count=1 conv=notrunc
> seek=$((0x100))
>
> This single aux write causes the screen to blank, sending short HPD to
> DPTX, setting LINK_STATUS_UPDATE = 1 in DPCD 0x204, and triggering LT.
>
> As stated in [1]:
> "Before any TX electrical testing can be performed, the link between a
> DPTX and DPRX (in this case, a piece of test equipment), including all
> LTTPRs within the path, shall be trained as defined in this Standard."
>
> In addition, changing Phy pattern/Swing/Pre-emphasis (Step 3) uses the
> same link rate and lane count applied on step 2, so no need to redo LT.
>
> The fix is to not rewrite link config in step 3, and just writes
> TRAINING_LANEx_SET and LINK_QUAL_PATTERN_SET
>
> [1]: DP 2.0 E11 - 3.6.11.1 LTTPR DPTX_PHY Electrical Compliance
>
> [2]: Configuring UnigrafDPTC Controller - Automation Test Sequence
> https://www.keysight.com/us/en/assets/9922-01244/help-files/
> D9040DPPC-DisplayPort-Test-Software-Online-Help-latest.chm
>
> Cc: Imre Deak <imre.deak@intel.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Cc: Or Cochvi <or.cochvi@intel.com>
> Signed-off-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
Pushed to drm-misc-next, thanks for the patch.
I didn't seek further confirmation because i915 is still the only user
of this function it seems.
BR,
Jani.
> ---
> drivers/gpu/drm/display/drm_dp_helper.c | 9 ---------
> 1 file changed, 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/display/drm_dp_helper.c b/drivers/gpu/drm/display/drm_dp_helper.c
> index 92990a3d577a..9f055d9710ea 100644
> --- a/drivers/gpu/drm/display/drm_dp_helper.c
> +++ b/drivers/gpu/drm/display/drm_dp_helper.c
> @@ -2670,17 +2670,8 @@ int drm_dp_set_phy_test_pattern(struct drm_dp_aux *aux,
> struct drm_dp_phy_test_params *data, u8 dp_rev)
> {
> int err, i;
> - u8 link_config[2];
> u8 test_pattern;
>
> - link_config[0] = drm_dp_link_rate_to_bw_code(data->link_rate);
> - link_config[1] = data->num_lanes;
> - if (data->enhanced_frame_cap)
> - link_config[1] |= DP_LANE_COUNT_ENHANCED_FRAME_EN;
> - err = drm_dp_dpcd_write(aux, DP_LINK_BW_SET, link_config, 2);
> - if (err < 0)
> - return err;
> -
> test_pattern = data->phy_pattern;
> if (dp_rev < 0x12) {
> test_pattern = (test_pattern << 2) &
--
Jani Nikula, Intel Open Source Graphics Center
prev parent reply other threads:[~2022-09-28 11:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-16 5:49 [Intel-gfx] [PATCH] drm/display: Don't rewrite link config when setting phy test pattern Khaled Almahallawy
2022-09-16 6:34 ` [Intel-gfx] ✓ Fi.CI.BAT: success for " Patchwork
2022-09-16 10:09 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2022-09-28 11:20 ` Jani Nikula [this message]
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=875yh7zqxm.fsf@intel.com \
--to=jani.nikula@intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=khaled.almahallawy@intel.com \
--cc=or.cochvi@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox