From patchwork Wed Jul 25 20:34:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Paul X-Patchwork-Id: 10544645 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 74E5614E2 for ; Wed, 25 Jul 2018 20:35:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 646EA2AB3D for ; Wed, 25 Jul 2018 20:35:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 58A072AB4D; Wed, 25 Jul 2018 20:35:36 +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 F345E2AB3D for ; Wed, 25 Jul 2018 20:35:35 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 566C889D42; Wed, 25 Jul 2018 20:35:33 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-yb0-x243.google.com (mail-yb0-x243.google.com [IPv6:2607:f8b0:4002:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4EA4489D5C for ; Wed, 25 Jul 2018 20:35:32 +0000 (UTC) Received: by mail-yb0-x243.google.com with SMTP id s8-v6so3510257ybe.8 for ; Wed, 25 Jul 2018 13:35:32 -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; bh=6ZTac85IUMF64cfhKWN5Z291977FjMugrxItjI79ay0=; b=qRxaa5fpwT8Kp/NJLPstUEKkj3aWsKnq5f7EViXTyXNm0RQWqAjWPlnFydXBpzgKXw NEMenL5APT1p7Wiz/sj2QPYwOpAa7zrYncLLQgx+0rWDtmfRrLByxXmlBO4LOnuA2zYq S2pFoiFDBpcnIuFnkVsOD8Yw8BXQJ6bsWHIYf+Bs9APOLeMnehVFBZpVuGACqbi7lEht q0vSFJgj8Z08zXg+PLRj58QMsnIu2bXH7uU+YPPanpSvpiND59F2iA+0UYQTpae8VHwG uWFFGnPw7+n6YtG9i21/1tYm+EV6olmCknoDIu/WHpHZisZodg25SUa2Z62nrgROO1I+ gTbw== X-Gm-Message-State: AOUpUlE3zoED0Bl1h4v3j3B0Sw+PX91CggySFQJoGw1seoU6HVcj75fS 9cZMFd2VbfPpSiDfiRxz+5+6lA== X-Google-Smtp-Source: AAOMgpe6GufHfU7lcap6leuefB82lkDIrIKgbXrYnnaFW+iQd+8QcX011pKE/nu0h7DJpCvidh6MXw== X-Received: by 2002:a25:1b42:: with SMTP id b63-v6mr12279823ybb.385.1532550931388; Wed, 25 Jul 2018 13:35:31 -0700 (PDT) Received: from rosewood.cam.corp.google.com ([2620:0:1013:11:ad55:b1db:adfe:3b9f]) by smtp.gmail.com with ESMTPSA id f137-v6sm14692568ywb.52.2018.07.25.13.35.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Jul 2018 13:35:30 -0700 (PDT) From: Sean Paul To: Subject: [PATCH 1/3] drm/msm: dpu: Use 'vsync' instead of 'vsync_clk' in cmdmode encoder Date: Wed, 25 Jul 2018 16:34:43 -0400 Message-Id: <20180725203529.164928-1-seanpaul@chromium.org> X-Mailer: git-send-email 2.18.0.233.g985f88cf7e-goog 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: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, dri-devel@lists.freedesktop.org MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP Should work with the legacy handling in of, but we shouldn't rely on that. Signed-off-by: Sean Paul --- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c index 035a5fbe1435..e6d02c6947b4 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c @@ -424,7 +424,7 @@ static void dpu_encoder_phys_cmd_tearcheck_config( * vsync_count is ratio of MDP VSYNC clock frequency to LCD panel * frequency divided by the no. of rows (lines) in the LCDpanel. */ - vsync_hz = dpu_kms_get_clk_rate(dpu_kms, "vsync_clk"); + vsync_hz = dpu_kms_get_clk_rate(dpu_kms, "vsync"); if (vsync_hz <= 0) { DPU_DEBUG_CMDENC(cmd_enc, "invalid - vsync_hz %u\n", vsync_hz); From patchwork Wed Jul 25 20:34:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Paul X-Patchwork-Id: 10544649 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 860E19093 for ; Wed, 25 Jul 2018 20:35:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76A402AB3D for ; Wed, 25 Jul 2018 20:35:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6B4762AB4D; Wed, 25 Jul 2018 20:35:53 +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 2AA702AB3D for ; Wed, 25 Jul 2018 20:35:53 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0F2926E45C; Wed, 25 Jul 2018 20:35:52 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-yb0-x244.google.com (mail-yb0-x244.google.com [IPv6:2607:f8b0:4002:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 644086E3F1 for ; Wed, 25 Jul 2018 20:35:50 +0000 (UTC) Received: by mail-yb0-x244.google.com with SMTP id e84-v6so3519560ybb.0 for ; Wed, 25 Jul 2018 13:35: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:in-reply-to :references; bh=MlyuJVDQeAUxfZ1k6RXnMoxz17jBygBu1WOVxhRzWkU=; b=hBYJ2/nqUKoEhAnLeCuJjCh1kd0wRlAp/G8Sy5+KbWWMzMGxqhSIkW5MeUVaA7vuTD APJTT4juAtZEkCqMucXaXoVOFUkv3xgnjZat5aV9YcVS2ZBhKF7v/+c/mdj+zdm8CAJb ALhUQCjnFTof2py+OLM/VlIfmbeHbv6KKQcqp22RTQGgzFc7FaBOMoe18uSShdfQysnu AXHtDb/ksdi+q133FOxdAo3bX8PVB3ACl0ny3XZLJuZ57aZT3jMoT56N8dNwcdGlBK9C aXv5/wU3SmIrb+zTp3pUeZ/0iPRxsOrY2JrzkJAEgWvVpqpnU3hbtcjmX4kjzRAVZRrI QTGQ== X-Gm-Message-State: AOUpUlFl9gIst9j+Pj0AxrOhJ+gmBmUln1WizwVEf+VDWT2SBnNyXd5n UKswC3a5BmLDNsfIDj2+nVuB9w== X-Google-Smtp-Source: AAOMgpewY7scfiQI0n7rW2B50JWQEf/TxdbL9tvtOCNLSsj7WNriV2hmCLaJgO4fSvf4uq1LzI7fag== X-Received: by 2002:a25:9d0d:: with SMTP id i13-v6mr12377359ybp.104.1532550949697; Wed, 25 Jul 2018 13:35:49 -0700 (PDT) Received: from rosewood.cam.corp.google.com ([2620:0:1013:11:ad55:b1db:adfe:3b9f]) by smtp.gmail.com with ESMTPSA id f137-v6sm14692568ywb.52.2018.07.25.13.35.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Jul 2018 13:35:49 -0700 (PDT) From: Sean Paul To: Subject: [PATCH 2/3] drm/msm: dpu: Use clock-names instead of assigned-clock-names Date: Wed, 25 Jul 2018 16:34:44 -0400 Message-Id: <20180725203529.164928-2-seanpaul@chromium.org> X-Mailer: git-send-email 2.18.0.233.g985f88cf7e-goog In-Reply-To: <20180725203529.164928-1-seanpaul@chromium.org> References: <20180725203529.164928-1-seanpaul@chromium.org> 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: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, dri-devel@lists.freedesktop.org MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP In these cases, we want to enumerate _all_ clocks, not just the ones that are assigned a rate. Signed-off-by: Sean Paul --- drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c index 8d907faa7496..c1d7eac4fa25 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_io_util.c @@ -147,8 +147,7 @@ int msm_dss_parse_clock(struct platform_device *pdev, return -EINVAL; mp->num_clk = 0; - num_clk = of_property_count_strings(pdev->dev.of_node, - "assigned-clock-names"); + num_clk = of_property_count_strings(pdev->dev.of_node, "clock-names"); if (num_clk <= 0) { pr_debug("clocks are not defined\n"); return 0; @@ -162,7 +161,7 @@ int msm_dss_parse_clock(struct platform_device *pdev, for (i = 0; i < num_clk; i++) { rc = of_property_read_string_index(pdev->dev.of_node, - "assigned-clock-names", i, + "clock-names", i, &clock_name); if (rc) { dev_err(&pdev->dev, "Failed to get clock name for %d\n", From patchwork Wed Jul 25 20:34:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Paul X-Patchwork-Id: 10544653 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 CC4CC9093 for ; Wed, 25 Jul 2018 20:36:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BC3FB2AB3D for ; Wed, 25 Jul 2018 20:36:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B0CF92AB4D; Wed, 25 Jul 2018 20:36:16 +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 5973C2AB3D for ; Wed, 25 Jul 2018 20:36:16 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 73FF46E402; Wed, 25 Jul 2018 20:36:15 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-yb0-x242.google.com (mail-yb0-x242.google.com [IPv6:2607:f8b0:4002:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id A84B96E402 for ; Wed, 25 Jul 2018 20:36:13 +0000 (UTC) Received: by mail-yb0-x242.google.com with SMTP id k124-v6so3512947ybk.6 for ; Wed, 25 Jul 2018 13:36:13 -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:in-reply-to :references; bh=fNeUTlJ4GhpcI96stLqkvrFGlBMidcc1UWinuiedkOM=; b=uJWZC33CSsF4FKOmuskbijtkFOu9oEMdwgJKkWJdWKUJImk4Bd8p6A6EhA09GSCq/w TnhVVW3UJLdfyoHrIOnNRcKobDX4aPd86JXuZgJ6lWj5eUlquvd4Sbmh3yVBEverjOrS QLc4TP58jVt6YryCqT1TXfFUrPtKxWtK4oocnr6A2wdjaBwx3hTnBYf5wiOyzdCe7q1Y UmiAkBie4CqHOebbMk0ZYQbOf2Jfe1JZFHViRFD1fnrR+DzCiThOdEdac2vm1yTevo0o R9fYZIg+1+ivgpwXoIBDpgMglfmf7/8la7GtLTk9VSBZEzpwZt7AivPi7Evu05WDqpGR sKEg== X-Gm-Message-State: AOUpUlG/r4LWVghDEL00V+V3hJ1nDVotvu9IzZEn938wNj2vu9JuIdLr ylS+a/UWX3XHej5pjhKY97s4fQ== X-Google-Smtp-Source: AAOMgpfVjnL+pED6r8ueR8oK+1+6VAYDKIVDDnesE4vDLzQPR3M1DqzI/bMoEevYJQCHRrYlns1+5A== X-Received: by 2002:a25:ddc1:: with SMTP id u184-v6mr11405709ybg.457.1532550972869; Wed, 25 Jul 2018 13:36:12 -0700 (PDT) Received: from rosewood.cam.corp.google.com ([2620:0:1013:11:ad55:b1db:adfe:3b9f]) by smtp.gmail.com with ESMTPSA id f137-v6sm14692568ywb.52.2018.07.25.13.36.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Jul 2018 13:36:12 -0700 (PDT) From: Sean Paul To: Subject: [PATCH 3/3] drm/msm: dsi: Handle dual-channel for 6G as well Date: Wed, 25 Jul 2018 16:34:45 -0400 Message-Id: <20180725203529.164928-3-seanpaul@chromium.org> X-Mailer: git-send-email 2.18.0.233.g985f88cf7e-goog In-Reply-To: <20180725203529.164928-1-seanpaul@chromium.org> References: <20180725203529.164928-1-seanpaul@chromium.org> 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: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, Sibi Sankar , freedreno@lists.freedesktop.org MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP This fixes up a collision between introducing dual-channel support and the dsi refactors. This patch applies the same dual-channel considerations and pclk calculations to both v2 and 6G, with a bit of abstracting for good measure. Signed-off-by: Sean Paul --- drivers/gpu/drm/msm/dsi/dsi_host.c | 72 +++++++++++++++--------------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c index 319501dcc083..96fb5f635314 100644 --- a/drivers/gpu/drm/msm/dsi/dsi_host.c +++ b/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -664,11 +664,9 @@ void dsi_link_clk_disable_v2(struct msm_dsi_host *msm_host) clk_disable_unprepare(msm_host->byte_clk); } -int dsi_calc_clk_rate_6g(struct msm_dsi_host *msm_host, bool is_dual_dsi) +static u32 dsi_get_pclk_rate(struct msm_dsi_host *msm_host, bool is_dual_dsi) { struct drm_display_mode *mode = msm_host->mode; - u8 lanes = msm_host->lanes; - u32 bpp = dsi_get_bpp(msm_host->format); u32 pclk_rate; pclk_rate = mode->clock * 1000; @@ -676,61 +674,61 @@ int dsi_calc_clk_rate_6g(struct msm_dsi_host *msm_host, bool is_dual_dsi) /* * For dual DSI mode, the current DRM mode has the complete width of the * panel. Since, the complete panel is driven by two DSI controllers, - * theclock rates have to be split between the two dsi controllers. + * the clock rates have to be split between the two dsi controllers. * Adjust the byte and pixel clock rates for each dsi host accordingly. */ if (is_dual_dsi) pclk_rate /= 2; - if (lanes > 0) { - msm_host->byte_clk_rate = (pclk_rate * bpp) / (8 * lanes); - } else { + return pclk_rate; +} + +static void dsi_calc_pclk(struct msm_dsi_host *msm_host, bool is_dual_dsi) +{ + u8 lanes = msm_host->lanes; + u32 bpp = dsi_get_bpp(msm_host->format); + u32 pclk_rate = dsi_get_pclk_rate(msm_host, is_dual_dsi); + u64 pclk_bpp = (u64)pclk_rate * bpp; + + if (lanes == 0) { pr_err("%s: forcing mdss_dsi lanes to 1\n", __func__); - msm_host->byte_clk_rate = (pclk_rate * bpp) / 8; + lanes = 1; } - DBG("pclk=%d, bclk=%d", pclk_rate, msm_host->byte_clk_rate); + do_div(pclk_bpp, (8 * lanes)); - msm_host->esc_clk_rate = clk_get_rate(msm_host->esc_clk); + msm_host->pixel_clk_rate = pclk_rate; + msm_host->byte_clk_rate = pclk_bpp; + + DBG("pclk=%d, bclk=%d", msm_host->pixel_clk_rate, + msm_host->byte_clk_rate); + +} + +int dsi_calc_clk_rate_6g(struct msm_dsi_host *msm_host, bool is_dual_dsi) +{ + if (!msm_host->mode) { + pr_err("%s: mode not set\n", __func__); + return -EINVAL; + } + dsi_calc_pclk(msm_host, is_dual_dsi); + msm_host->esc_clk_rate = clk_get_rate(msm_host->esc_clk); return 0; } int dsi_calc_clk_rate_v2(struct msm_dsi_host *msm_host, bool is_dual_dsi) { - struct drm_display_mode *mode = msm_host->mode; - u8 lanes = msm_host->lanes; u32 bpp = dsi_get_bpp(msm_host->format); - u32 pclk_rate; u64 pclk_bpp; unsigned int esc_mhz, esc_div; unsigned long byte_mhz; - pclk_rate = mode->clock * 1000; - - /* - * For dual DSI mode, the current DRM mode has the complete width of the - * panel. Since, the complete panel is driven by two DSI controllers, - * theclock rates have to be split between the two dsi controllers. - * Adjust the byte and pixel clock rates for each dsi host accordingly. - */ - if (is_dual_dsi) - pclk_rate /= 2; - - pclk_bpp = pclk_rate * bpp; - if (lanes > 0) { - do_div(pclk_bpp, (8 * lanes)); - } else { - pr_err("%s: forcing mdss_dsi lanes to 1\n", __func__); - do_div(pclk_bpp, 8); - } - msm_host->pixel_clk_rate = pclk_rate; - msm_host->byte_clk_rate = pclk_bpp; - - DBG("pclk=%d, bclk=%d", msm_host->pixel_clk_rate, - msm_host->byte_clk_rate); + dsi_calc_pclk(msm_host, is_dual_dsi); - msm_host->src_clk_rate = (pclk_rate * bpp) / 8; + pclk_bpp = (u64)dsi_get_pclk_rate(msm_host, is_dual_dsi) * bpp; + do_div(pclk_bpp, 8); + msm_host->src_clk_rate = pclk_bpp; /* * esc clock is byte clock followed by a 4 bit divider,