From patchwork Tue Nov 24 09:12:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: You-Sheng Yang X-Patchwork-Id: 1405365 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CgJGX0QPXz9sT6; Tue, 24 Nov 2020 20:13:24 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1khUNz-0005pe-5H; Tue, 24 Nov 2020 09:13:19 +0000 Received: from mail-pg1-f194.google.com ([209.85.215.194]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1khUNt-0005fP-Tl for kernel-team@lists.ubuntu.com; Tue, 24 Nov 2020 09:13:14 +0000 Received: by mail-pg1-f194.google.com with SMTP id t3so3058770pgi.11 for ; Tue, 24 Nov 2020 01:13:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OpXtfXM9u4n7OS0lWf3Ez8at9CD4WWhZY0sMKSse5/g=; b=kKijX4fIPgOLyrmOfYzbuUS+rf3Vuqs2N/tK56mhb01AQxl4dL9c73WsMrKkOoP+Yf IFP3+sE6HU9or9A2YuZjwiC0imxSrVu3IYuSIwXEVjvbMNyNYrGA3kX72NOHK7hshRzg gu8ESwWgQjtXszPaOFTxAt/tSqSltPMag6xta2jdy2J8twKWA8+SbBOOq7dvDG79jkxI 68tW5oeHhEhMOfslsw6mFA8GEH2ykxaEYrs/ApTizDWk0lWtiwYAv3oXS/JkY/rvev6b 4tFRphCX0uQZNqq/qP3KBWnMX5FyM+qu/YpnEdrkh6fMSVfEWM01WDWyOHCKa1+5CeCh qx+A== X-Gm-Message-State: AOAM533vVsTLw/UrCHiQoXE+xODQCVt8Czxm5DUU4LEqnbR7TZtsuLk1 G1+hAT4VnkAh6dO0hEUhp9TH9w/NHiBJCA== X-Google-Smtp-Source: ABdhPJx7DnD2lI2o9RjrS4vaowM6m7AVd0wPompUp1px5T4mDGXPM5di6daQWoPNw6aRan5s5UANWg== X-Received: by 2002:a62:8685:0:b029:197:f766:b135 with SMTP id x127-20020a6286850000b0290197f766b135mr3388186pfd.0.1606209182592; Tue, 24 Nov 2020 01:13:02 -0800 (PST) Received: from localhost (61-220-137-37.HINET-IP.hinet.net. [61.220.137.37]) by smtp.gmail.com with ESMTPSA id h18sm9694679pfk.17.2020.11.24.01.13.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Nov 2020 01:13:01 -0800 (PST) From: You-Sheng Yang To: kernel-team@lists.ubuntu.com Subject: [PATCH 12/15][SRU][U/OEM-5.10] UBUNTU: SAUCE: drm/i915: Factor out a helper to disable the DPCD training pattern Date: Tue, 24 Nov 2020 17:12:27 +0800 Message-Id: <20201124091230.335132-13-vicamo.yang@canonical.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201124091230.335132-1-vicamo.yang@canonical.com> References: <20201124091230.335132-1-vicamo.yang@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.215.194; envelope-from=vicamo@gmail.com; helo=mail-pg1-f194.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Imre Deak BugLink: https://bugs.launchpad.net/bugs/1903969 To prepare for a follow-up LTTPR change factor out a helper to disable the training pattern in DPCD. We'll need to do this for each LTTPR (without programming the port to output the idle pattern) when training in LTTPR non-transparent mode. While at it also move the disable-link-training logic from intel_dp_set_link_train() to intel_dp_stop_link_train(), since the latter is the only user of this. v2: - Move the disable-link-training logic to intel_dp_stop_link_train() (Ville) Cc: Ville Syrjälä Reviewed-by: Ville Syrjälä Signed-off-by: Imre Deak Link: https://patchwork.freedesktop.org/patch/msgid/20201007170917.1764556-4-imre.deak@intel.com (cherry picked from commit c43027a9a37541dbdc54e9dca647602175ff27a2 https://anongit.freedesktop.org/git/drm-tip.git) Signed-off-by: You-Sheng Yang --- .../drm/i915/display/intel_dp_link_training.c | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_link_training.c b/drivers/gpu/drm/i915/display/intel_dp_link_training.c index 51d1316c37d5..71a8c9a546a3 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_link_training.c +++ b/drivers/gpu/drm/i915/display/intel_dp_link_training.c @@ -94,26 +94,18 @@ intel_dp_set_link_train(struct intel_dp *intel_dp, u8 dp_train_pat) { u8 buf[sizeof(intel_dp->train_set) + 1]; - int ret, len; + int len; intel_dp_program_link_training_pattern(intel_dp, crtc_state, dp_train_pat); buf[0] = dp_train_pat; - if (intel_dp_training_pattern_symbol(dp_train_pat) == - DP_TRAINING_PATTERN_DISABLE) { - /* don't write DP_TRAINING_LANEx_SET on disable */ - len = 1; - } else { - /* DP_TRAINING_LANEx_SET follow DP_TRAINING_PATTERN_SET */ - memcpy(buf + 1, intel_dp->train_set, crtc_state->lane_count); - len = crtc_state->lane_count + 1; - } - - ret = drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_PATTERN_SET, - buf, len); + /* DP_TRAINING_LANEx_SET follow DP_TRAINING_PATTERN_SET */ + memcpy(buf + 1, intel_dp->train_set, crtc_state->lane_count); + len = crtc_state->lane_count + 1; - return ret == len; + return drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_PATTERN_SET, + buf, len) == len; } static bool @@ -406,6 +398,13 @@ intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp, return channel_eq; } +static bool intel_dp_disable_dpcd_training_pattern(struct intel_dp *intel_dp) +{ + u8 val = DP_TRAINING_PATTERN_DISABLE; + + return drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_PATTERN_SET, &val, 1) == 1; +} + /** * intel_dp_stop_link_train - stop link training * @intel_dp: DP struct @@ -427,8 +426,10 @@ void intel_dp_stop_link_train(struct intel_dp *intel_dp, { intel_dp->link_trained = true; - intel_dp_set_link_train(intel_dp, crtc_state, - DP_TRAINING_PATTERN_DISABLE); + intel_dp_program_link_training_pattern(intel_dp, + crtc_state, + DP_TRAINING_PATTERN_DISABLE); + intel_dp_disable_dpcd_training_pattern(intel_dp); } static bool