From patchwork Wed Jul 17 16:01:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Sean Paul X-Patchwork-Id: 11048075 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2565A13BD for ; Wed, 17 Jul 2019 16:01:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0FA62287FE for ; Wed, 17 Jul 2019 16:01:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 01B12286C1; Wed, 17 Jul 2019 16:01:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 93128286C1 for ; Wed, 17 Jul 2019 16:01:54 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 867A16E0BA; Wed, 17 Jul 2019 16:01:52 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-yb1-xb44.google.com (mail-yb1-xb44.google.com [IPv6:2607:f8b0:4864:20::b44]) by gabe.freedesktop.org (Postfix) with ESMTPS id CAC2B6E0BA for ; Wed, 17 Jul 2019 16:01:50 +0000 (UTC) Received: by mail-yb1-xb44.google.com with SMTP id s41so7137997ybe.12 for ; Wed, 17 Jul 2019 09:01:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5v/KSKjUEeP32VcuEgzbcQ/YndyePmg9yJEvo1CFkgE=; b=szlOcwDEvhqLnjVsGHWLrDB/Fyb+DJwDC8eIy0eBGMHsHzHh9gst/Qm/ff195bXt/b hmHlBMoT8fHaCurdMlbK6ZOeKGToRAx2YtLOujnqv44nmctKRHalms8rsXWWvTsMJObP MA6HanRb092olJQ/0pzJmAsKZGmlTA8VbLRJNhXIZhzMEN7o4pNAFl9D1++x9Uni0KMy SKiIsqyHI0JDdUQO2nPexNvcHXe9KT42Td1PMCPgqJRkrRA8DY5wOeQKYU2f40R1Smqx JiykLh1J98BvDBfCP25EuyJaKKWfzznuVoDR/70k0QefdiJg6Omz09U1Bo0oMHy/SkX6 RtDw== X-Gm-Message-State: APjAAAXyTwaU8nhe5TDta9QMNzmghoyswp1Ku5Hlzgi6WV8uGMr71s/S QaMEx3j2q7PlMnvqpUhAmK93z1+bwNCtjw== X-Google-Smtp-Source: APXvYqy/shYDZ9RRKwBh0Tq2oyK1HBNYjy4eShnwLr3q4k+lR9uj9Dxhvtv/dxkzdkNFNbd2SwWkig== X-Received: by 2002:a25:99c9:: with SMTP id q9mr18621198ybo.421.1563379309406; Wed, 17 Jul 2019 09:01:49 -0700 (PDT) Received: from rosewood.cam.corp.google.com ([2620:0:1013:11:89c6:2139:5435:371d]) by smtp.gmail.com with ESMTPSA id 200sm6077892ywq.102.2019.07.17.09.01.48 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Wed, 17 Jul 2019 09:01:49 -0700 (PDT) From: Sean Paul To: dri-devel@lists.freedesktop.org Subject: [PATCH] drm: Make the bw/link rate calculations more forgiving Date: Wed, 17 Jul 2019 12:01:48 -0400 Message-Id: <20190717160148.256826-1-sean@poorly.run> X-Mailer: git-send-email 2.22.0.510.g264f2c817a-goog MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=poorly.run; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=5v/KSKjUEeP32VcuEgzbcQ/YndyePmg9yJEvo1CFkgE=; b=U0aP974jBD4CyyqFIpOFa9CsjWut0EHHq1M8LbhYFIAoxiSyRHiwp1OjaWfmTM7nvV fSrXHm0pTUrNOFn+TdBCyFgDSGzc7cKpzp08mHSMetWPUsgZvKL9CGEjh7rUgPT2AQOW LZUzunETEvkX8NmMGkdBTXVC3ZvPYV2H6qBPGtSMk5PMBrb2rXjWokA6J0uHGlKVbHFr a2XVManApdkl04k+NrKucfXkr6RvmR5UbO/O1XhQ2IabfNgdp0JMC93WgaTZVN4VyR49 +NBbotyO4iCKuURfqPsSLQudxhK9lYVC8txcfAcvCSUwGN6vy+KOOR3PEmW8sZHKRsB4 A3Mw== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sean Paul Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Sean Paul Although the DisplayPort spec explicitly calls out the 1.62/2.7/5.4/8.1 link rates, the value of LINK_BW_SET is calculated. The DisplayPort spec says "Main-Link Bandwidth Setting = Value x 0.27Gbps/lane". A bridge that we're looking to upstream uses 6.75Gbps rate (value 0x19) [1], and that precludes it from using these functions. This patch calculates the values according to spec instead of restricting these values to one of the DP_LINK_BW_* #defines. No functional change for the well-defined values, but we lose the warning for ill-defined bw values. Signed-off-by: Sean Paul [1] https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1689251/2/drivers/gpu/drm/bridge/analogix/anx7625.c#636 Reviewed-by: Ville Syrjälä --- drivers/gpu/drm/drm_dp_helper.c | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c index 0b994d083a89..ffc68d305afe 100644 --- a/drivers/gpu/drm/drm_dp_helper.c +++ b/drivers/gpu/drm/drm_dp_helper.c @@ -152,38 +152,15 @@ EXPORT_SYMBOL(drm_dp_link_train_channel_eq_delay); u8 drm_dp_link_rate_to_bw_code(int link_rate) { - switch (link_rate) { - default: - WARN(1, "unknown DP link rate %d, using %x\n", link_rate, - DP_LINK_BW_1_62); - /* fall through */ - case 162000: - return DP_LINK_BW_1_62; - case 270000: - return DP_LINK_BW_2_7; - case 540000: - return DP_LINK_BW_5_4; - case 810000: - return DP_LINK_BW_8_1; - } + /* Spec says link_bw = link_rate / 0.27Gbps */ + return link_rate / 27000; } EXPORT_SYMBOL(drm_dp_link_rate_to_bw_code); int drm_dp_bw_code_to_link_rate(u8 link_bw) { - switch (link_bw) { - default: - WARN(1, "unknown DP link BW code %x, using 162000\n", link_bw); - /* fall through */ - case DP_LINK_BW_1_62: - return 162000; - case DP_LINK_BW_2_7: - return 270000; - case DP_LINK_BW_5_4: - return 540000; - case DP_LINK_BW_8_1: - return 810000; - } + /* Spec says link_rate = link_bw * 0.27Gbps */ + return link_bw * 27000; } EXPORT_SYMBOL(drm_dp_bw_code_to_link_rate);