Skip to content

Commit 3153eeb

Browse files
almahallawyrodrigovivi
authored andcommitted
drm/i915/display: Don't disable DDI/Transcoder when setting phy test pattern
Bspecs has updated recently to remove the restriction to disable DDI/Transcoder before setting PHY test pattern. This update is to address PHY compliance test failures observed on a port with LTTPR. The issue is that when Transc. is disabled, the main link signals fed to LTTPR will be dropped invalidating link training, which will affect the quality of the phy test pattern when the transcoder is enabled again. v2: Update commit message (Clint) v3: Add missing Signed-off in v2 v4: Update Bspec and commit message for pre-gen12 (Jani) Bspec: 50482, 7555 Fixes: 8cdf727 ("drm/i915/dp: Program vswing, pre-emphasis, test-pattern") Cc: Imre Deak <[email protected]> Cc: Clint Taylor <[email protected]> CC: Jani Nikula <[email protected]> Tested-by: Khaled Almahallawy <[email protected]> Reviewed-by: Clint Taylor <[email protected]> Signed-off-by: Khaled Almahallawy <[email protected]> Signed-off-by: Jani Nikula <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] (cherry picked from commit be4a847) Signed-off-by: Rodrigo Vivi <[email protected]>
1 parent b2e9e6a commit 3153eeb

File tree

1 file changed

+0
-59
lines changed

1 file changed

+0
-59
lines changed

drivers/gpu/drm/i915/display/intel_dp.c

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -3679,61 +3679,6 @@ static void intel_dp_phy_pattern_update(struct intel_dp *intel_dp,
36793679
}
36803680
}
36813681

3682-
static void
3683-
intel_dp_autotest_phy_ddi_disable(struct intel_dp *intel_dp,
3684-
const struct intel_crtc_state *crtc_state)
3685-
{
3686-
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
3687-
struct drm_device *dev = dig_port->base.base.dev;
3688-
struct drm_i915_private *dev_priv = to_i915(dev);
3689-
struct intel_crtc *crtc = to_intel_crtc(dig_port->base.base.crtc);
3690-
enum pipe pipe = crtc->pipe;
3691-
u32 trans_ddi_func_ctl_value, trans_conf_value, dp_tp_ctl_value;
3692-
3693-
trans_ddi_func_ctl_value = intel_de_read(dev_priv,
3694-
TRANS_DDI_FUNC_CTL(pipe));
3695-
trans_conf_value = intel_de_read(dev_priv, PIPECONF(pipe));
3696-
dp_tp_ctl_value = intel_de_read(dev_priv, TGL_DP_TP_CTL(pipe));
3697-
3698-
trans_ddi_func_ctl_value &= ~(TRANS_DDI_FUNC_ENABLE |
3699-
TGL_TRANS_DDI_PORT_MASK);
3700-
trans_conf_value &= ~PIPECONF_ENABLE;
3701-
dp_tp_ctl_value &= ~DP_TP_CTL_ENABLE;
3702-
3703-
intel_de_write(dev_priv, PIPECONF(pipe), trans_conf_value);
3704-
intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(pipe),
3705-
trans_ddi_func_ctl_value);
3706-
intel_de_write(dev_priv, TGL_DP_TP_CTL(pipe), dp_tp_ctl_value);
3707-
}
3708-
3709-
static void
3710-
intel_dp_autotest_phy_ddi_enable(struct intel_dp *intel_dp,
3711-
const struct intel_crtc_state *crtc_state)
3712-
{
3713-
struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
3714-
struct drm_device *dev = dig_port->base.base.dev;
3715-
struct drm_i915_private *dev_priv = to_i915(dev);
3716-
enum port port = dig_port->base.port;
3717-
struct intel_crtc *crtc = to_intel_crtc(dig_port->base.base.crtc);
3718-
enum pipe pipe = crtc->pipe;
3719-
u32 trans_ddi_func_ctl_value, trans_conf_value, dp_tp_ctl_value;
3720-
3721-
trans_ddi_func_ctl_value = intel_de_read(dev_priv,
3722-
TRANS_DDI_FUNC_CTL(pipe));
3723-
trans_conf_value = intel_de_read(dev_priv, PIPECONF(pipe));
3724-
dp_tp_ctl_value = intel_de_read(dev_priv, TGL_DP_TP_CTL(pipe));
3725-
3726-
trans_ddi_func_ctl_value |= TRANS_DDI_FUNC_ENABLE |
3727-
TGL_TRANS_DDI_SELECT_PORT(port);
3728-
trans_conf_value |= PIPECONF_ENABLE;
3729-
dp_tp_ctl_value |= DP_TP_CTL_ENABLE;
3730-
3731-
intel_de_write(dev_priv, PIPECONF(pipe), trans_conf_value);
3732-
intel_de_write(dev_priv, TGL_DP_TP_CTL(pipe), dp_tp_ctl_value);
3733-
intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(pipe),
3734-
trans_ddi_func_ctl_value);
3735-
}
3736-
37373682
static void intel_dp_process_phy_request(struct intel_dp *intel_dp,
37383683
const struct intel_crtc_state *crtc_state)
37393684
{
@@ -3752,14 +3697,10 @@ static void intel_dp_process_phy_request(struct intel_dp *intel_dp,
37523697
intel_dp_get_adjust_train(intel_dp, crtc_state, DP_PHY_DPRX,
37533698
link_status);
37543699

3755-
intel_dp_autotest_phy_ddi_disable(intel_dp, crtc_state);
3756-
37573700
intel_dp_set_signal_levels(intel_dp, crtc_state, DP_PHY_DPRX);
37583701

37593702
intel_dp_phy_pattern_update(intel_dp, crtc_state);
37603703

3761-
intel_dp_autotest_phy_ddi_enable(intel_dp, crtc_state);
3762-
37633704
drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_LANE0_SET,
37643705
intel_dp->train_set, crtc_state->lane_count);
37653706

0 commit comments

Comments
 (0)