From patchwork Tue Jun 24 22:12:53 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Todd Previte X-Patchwork-Id: 4414431 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 6AA84BEECB for ; Tue, 24 Jun 2014 22:13:41 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id A25432034B for ; Tue, 24 Jun 2014 22:13:40 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C309220272 for ; Tue, 24 Jun 2014 22:13:39 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 42DDC6E5BE; Tue, 24 Jun 2014 15:13:39 -0700 (PDT) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-pa0-f49.google.com (mail-pa0-f49.google.com [209.85.220.49]) by gabe.freedesktop.org (Postfix) with ESMTP id 5E9016E5BA for ; Tue, 24 Jun 2014 15:13:38 -0700 (PDT) Received: by mail-pa0-f49.google.com with SMTP id lj1so811790pab.36 for ; Tue, 24 Jun 2014 15:13:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=LSBJG8yrmuX+m0OVm7cFSCw+Ubk+znZbHpcIVTXvcUM=; b=XYc/sFKpOlmrXO0IK3nz9G2op3iaVhOqSLAOM4aU7KpMQWAarTXOU3OAgDo/08PXKM nG8Dc2cri9tY3dUu0A+PEpqgUR2ahvPWhv5nsf4LJEJvdngevqdtjnP24LzWJAwnqbmH q62EhyevhihcbqV3d9bIf2M/Hv2JT0Ezrswdzg4eGPDrbgTovRfle/7bSU/1OWRvG9CE us4dEL6Wprf7+S4uZGu4iqxKJiKzZ9R3htHxCvqsvHI1LcMW03X4UsNniB1Bnwxr9A3J g5/soDaDqsIgS0AyCCusteamjLuJXfScMzd+eRNU1whOR+Iz9PFZKDibZ9k6npmG2H3F mWtg== X-Received: by 10.66.185.4 with SMTP id ey4mr5546488pac.126.1403648018249; Tue, 24 Jun 2014 15:13:38 -0700 (PDT) Received: from localhost.localdomain (ip72-201-95-47.ph.ph.cox.net. [72.201.95.47]) by mx.google.com with ESMTPSA id bc4sm2023698pbb.2.2014.06.24.15.13.36 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Jun 2014 15:13:37 -0700 (PDT) From: Todd Previte To: intel-gfx@lists.freedesktop.org Date: Tue, 24 Jun 2014 15:12:53 -0700 Message-Id: <1403647974-42377-6-git-send-email-tprevite@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1403647974-42377-1-git-send-email-tprevite@gmail.com> References: <1403647974-42377-1-git-send-email-tprevite@gmail.com> Subject: [Intel-gfx] [PATCH 5/6] drm/i915: Update Displayport compliance testing for link training X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Adds basic link training test functionality for Displayport compliance. Signed-off-by: Todd Previte --- drivers/gpu/drm/i915/intel_dp.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 4c5d229..95bd27a 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -3405,6 +3405,30 @@ static uint8_t intel_dp_autotest_link_training(struct intel_dp *intel_dp) { uint8_t test_result = DP_TEST_NAK; + uint8_t rxdata[2]; + uint8_t link_status[DP_LINK_STATUS_SIZE]; + int bytes_ret = 0; + + /* Read test parameters */ + bytes_ret = drm_dp_dpcd_read(&intel_dp->aux, DP_TEST_LINK_RATE, rxdata, 2); + + /* Set link rate directly */ + intel_dp->link_bw = rxdata[0]; + /* Preserve 7:5 when setting lane count */ + intel_dp->lane_count &= 0xE0; + intel_dp->lane_count |= rxdata[1]; + + DRM_DEBUG_KMS("Displayport: Link training testing - %d lanes @ %02x link rate\n", intel_dp->lane_count, intel_dp->link_bw); + + /* Train the link */ + intel_dp_start_link_train(intel_dp); + intel_dp_complete_link_train(intel_dp); + intel_dp_stop_link_train(intel_dp); + + // Check link status for successful completion + if (drm_dp_channel_eq_ok(link_status, intel_dp->lane_count)) + test_result = true; + return test_result; }