From patchwork Tue Nov 24 09:12:15 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: 1405354 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 4CgJFp6Nbxz9sSf; Tue, 24 Nov 2020 20:12:46 +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 1khUNJ-0005OO-Qy; Tue, 24 Nov 2020 09:12:37 +0000 Received: from mail-pf1-f193.google.com ([209.85.210.193]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1khUNH-0005Nw-A4 for kernel-team@lists.ubuntu.com; Tue, 24 Nov 2020 09:12:35 +0000 Received: by mail-pf1-f193.google.com with SMTP id w187so3367971pfd.5 for ; Tue, 24 Nov 2020 01:12:34 -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:mime-version :content-transfer-encoding; bh=QufHcp47bzyLX1KZcNEmY0TqPc//L1TpLy1VacASO6k=; b=ezO77d5GkxCTjJTXrY33sYg/zskDjC4N6eVu1uOJwfn0APr98duMLukktnUR1Cfcvq rE851an3+R3jBYkN9siH24pInOOFSeDsJwxgji5QrhAE95pAzCTM+U5tmayL0oae/l0J 1gBimXHZdIVtHfz1WXwW/cuQNpToQ3vR0eNBuxwr9lJZ5yGrdZjK1dH1fuj05FdCIN// 1JkS2LnzND/qgqzhZj2EHyiYhlGLpuiInHNT25adXeLtWPlybRRrCpR3XtoyqPtHlCLq p2wb3FMiTqkt0MpJYFTf3ToHzZMvCxelp3/225WCRHobTGuBxkmB476zHRZq5c/Y2NG4 A1mw== X-Gm-Message-State: AOAM530zmxNNInfnFGwWpM8Xy432h3hQUv4OSx7928c9ME2sN70DoqjC WjBgWryRaWoPChBwqYxF9z5FT9QLweVeCQ== X-Google-Smtp-Source: ABdhPJxFTn+f0yrfJpTJfZS1iM94k3/qb7o91x0SvJJEY1COucvS3utcZ8qt0nuaWQDUBnRF53EAQQ== X-Received: by 2002:a17:90a:940c:: with SMTP id r12mr3836395pjo.107.1606209152931; Tue, 24 Nov 2020 01:12:32 -0800 (PST) Received: from localhost (61-220-137-37.HINET-IP.hinet.net. [61.220.137.37]) by smtp.gmail.com with ESMTPSA id c193sm14096741pfb.78.2020.11.24.01.12.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Nov 2020 01:12:31 -0800 (PST) From: You-Sheng Yang To: kernel-team@lists.ubuntu.com Subject: [PATCH 00/15][SRU][U/OEM-5.10] Add DRM support for LTTPR non-transparent link training mode Date: Tue, 24 Nov 2020 17:12:15 +0800 Message-Id: <20201124091230.335132-1-vicamo.yang@canonical.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.210.193; envelope-from=vicamo@gmail.com; helo=mail-pf1-f193.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" BugLink: https://bugs.launchpad.net/bugs/1903969 [Impact] On platforms supported DP tunneling over USB 3.2 or so, a Retimer is required on the host side to cover insertion loss. On such platforms the rtimer firmware maybe configured to use LTTPR (Link Training Tunable PHY Repeater) non-transparent mode only, which is only supported in drm-tip currently. Without LTTPR support, link training may fail with following error messages depending on the data path configuration: i915 0000:00:02.0: [drm] *ERROR* Link Training Unsuccessful i915 0000:00:02.0: [drm] *ERROR* CPU pipe A FIFO underrun [Fix] Patchset https://www.spinics.net/lists/intel-gfx/msg248700.html ("drm/i915: Add support for LTTPR non-transparent link training mode") is required to fix this issue. It has been landed to drm-tip and will only included to mainline in v5.11. Patchset https://patchwork.freedesktop.org/series/76993/ ("Plumb crtc state to link training code") is included for link training functions prototype changes. [Test Case] On Dell OptiPlex and WD19 docking station, use following steps to verify: 1. disconnect WD19 from OptiPlex, disconnect OptiPlex's power 2. attach OptiPlex's power cord 3. attach WD19's power cord 4. attach DP to WD19 5. attach WD19 to OptiPlex 6. boot up and check if boot to GUI directly 7. `dmesg` and check if aforementioned DRM link training error appears [Regression Potential] The second patchset pulled for dependency doesn't have too much effective changes but refactoring some translation functions, so very unlikely to have regressions. For the major part, LTTPR support, when LTTPR is either not detected or not supported, it will fall back to use transparent mode as it was. Otherwise, DP Standard recommends to use LTTPR non-transparent mode for link training, so this should be the right way to have best hardware support. Imre Deak (6): drm/i915: Fix DP link training pattern mask drm/i915: Simplify the link training functions drm/i915: Factor out a helper to disable the DPCD training pattern drm/dp: Add LTTPR helpers drm/i915: Switch to LTTPR transparent mode link training drm/i915: Switch to LTTPR non-transparent mode link training Ville Syrjälä (9): drm/i915: s/old_crtc_state/crtc_state/ drm/i915: Make intel_dp_process_phy_request() static drm/i915: Shove the PHY test into the hotplug work drm/i915: Split ICL combo PHY buf trans per output type drm/i915: Split ICL MG PHY buf trans per output type drm/i915: Split EHL combo PHY buf trans per output type drm/i915: Split TGL combo PHY buf trans per output type drm/i915: Split TGL DKL PHY buf trans per output type drm/i915: Plumb crtc_state to link training drivers/gpu/drm/drm_dp_helper.c | 232 +++++++- drivers/gpu/drm/i915/display/intel_ddi.c | 560 ++++++++++-------- drivers/gpu/drm/i915/display/intel_ddi.h | 6 +- .../drm/i915/display/intel_display_types.h | 19 +- drivers/gpu/drm/i915/display/intel_dp.c | 318 +++++++--- drivers/gpu/drm/i915/display/intel_dp.h | 11 +- .../drm/i915/display/intel_dp_link_training.c | 554 ++++++++++++++--- .../drm/i915/display/intel_dp_link_training.h | 17 +- drivers/gpu/drm/i915/display/intel_dpio_phy.c | 23 +- drivers/gpu/drm/i915/display/intel_dpio_phy.h | 2 + drivers/gpu/drm/i915/display/intel_hdmi.c | 7 +- include/drm/drm_dp_helper.h | 62 ++ 12 files changed, 1355 insertions(+), 456 deletions(-)