From patchwork Fri Jun 14 22:47:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 10996865 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 D758014E5 for ; Fri, 14 Jun 2019 22:48:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C7B6E28795 for ; Fri, 14 Jun 2019 22:48:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BB382287A4; Fri, 14 Jun 2019 22:48:01 +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,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5FE7828795 for ; Fri, 14 Jun 2019 22:48:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=UXWubqSrW9ysR77CAObnOU67xFcr/Kta0ctBiuPxb7U=; b=rx4UZAhBWjork+ ts23wWph4EmWh9k+9itZB8626i0/nHVJawfwVrvQzOQd1qtzMejmXnKLGr2Pk1NBM4x9THsiy+tmx r8yM3aRTNeGDbAFtEMOI99aIgUTE1Bo6/3cOLimziGittE29hy6BprL6Y8c4vSAb8UdclpF2yQdue TBkugZKUqXiUE7gG6+Kh1YLBLE+k4xfT+Gusx1LRR3BuA2tSiB48zq10xKlUJnE20yUB6GoN5nbb+ h9iP4Maq+sJdvlX7uip8fMcQVkVlPJ5wWGxsoS3YafBuo21LUCuQ0NHWI87oLNb/DWA20t9H2SHsy TPiTnKrpP9ya3Zd2PwBw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hbuzH-0002cn-S8; Fri, 14 Jun 2019 22:47:59 +0000 Received: from mail-pf1-x443.google.com ([2607:f8b0:4864:20::443]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hbuzD-0002aW-VV for linux-arm-kernel@lists.infradead.org; Fri, 14 Jun 2019 22:47:57 +0000 Received: by mail-pf1-x443.google.com with SMTP id 81so2223152pfy.13 for ; Fri, 14 Jun 2019 15:47:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=B/paYYaNElnUhrLCMfr9aofzvSpDY7fIjtUGwDwrL/w=; b=ApCzoYVFWJ+gmiLTLvrC4zRCv/sxTzAUuGigYReuCPkwv8+JbQtTQ1ujJvy8eXWLqB +IQTzppqRJKhqe+8V7UEuUHo4bd+AM07L3HjWFZQQdGpjnep077mDCdlHdC1RIk2DgQq 5mJV4O++xveG92zkhvhU6kYaRMIla/IEBvu+I= 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=B/paYYaNElnUhrLCMfr9aofzvSpDY7fIjtUGwDwrL/w=; b=HRY4C+h1T4MLUGoO4xQM0GJU1Q4EmvGNb1NXnmmNgCFMwH8EQ/SJGRGeFyc5NGNRB2 HIzkXi8gM5ZYidL0rk4i9d2js5ZRkRrfqGcQpice/JcZGyCOJZonKsTkGzC6Y71S+yVT jCPeEURKnx0vmH1nMtpof3I2RWDpOnkMARcjZ2d1Hp5DrRcPRLwd/zJ9P53epXWMh1GZ gO5EMXtt4Yt3IaE8AVqWv6WlTa72FsBb90DGfeQqwOnGi7BDbbmd5YYoxNStddvf00ik yXKnqIXRX2iWjO4dSWF6wPq6M5XQ/yektfl5kFIuQ8jsSnYlDa901+p2hnoD42sXFX/3 5ElA== X-Gm-Message-State: APjAAAUzZjGQUqnX86QI2GevHOKALr0/idGm6m8pH4vBQN5qj7q/ArDv gvZZAxnOMfr2eNm+97cg4YMijg== X-Google-Smtp-Source: APXvYqwCFm4zexZwb/yHk0T7k2vyRVj2XJif4vKx4gUkaC3e6ysgiT29t7k5lmVupIUZSX9ZhqMjSw== X-Received: by 2002:a63:441c:: with SMTP id r28mr37978657pga.255.1560552475017; Fri, 14 Jun 2019 15:47:55 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id x7sm3706087pfm.82.2019.06.14.15.47.54 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 14 Jun 2019 15:47:54 -0700 (PDT) From: Douglas Anderson To: Sandy Huang , heiko@sntech.de, seanpaul@chromium.org Subject: [PATCH 1/2] drm/rockchip: Properly adjust to a true clock in adjusted_mode Date: Fri, 14 Jun 2019 15:47:29 -0700 Message-Id: <20190614224730.98622-1-dianders@chromium.org> X-Mailer: git-send-email 2.22.0.410.gd8fdbe21b5-goog MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190614_154756_017537_67AC6AA1 X-CRM114-Status: GOOD ( 11.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , Douglas Anderson , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, urjaman@gmail.com, linux-rockchip@lists.infradead.org, Daniel Vetter , Yakir Yang , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP When fixing up the clock in vop_crtc_mode_fixup() we're not doing it quite correctly. Specifically if we've got the true clock 266666667 Hz, we'll perform this calculation: 266666667 / 1000 => 266666 Later when we try to set the clock we'll do clk_set_rate(266666 * 1000). The common clock framework won't actually pick the proper clock in this case since it always wants clocks <= the specified one. Let's solve this by using DIV_ROUND_UP. Fixes: b59b8de31497 ("drm/rockchip: return a true clock rate to adjusted_mode") Signed-off-by: Douglas Anderson Signed-off-by: Sean Paul Reviewed-by: Yakir Yang --- Back in 2016 Mark Yao said he applied this to his drm fixes [1], but it's 2019 and it's still missing so I'm posting again. [1] https://patchwork.freedesktop.org/patch/103872/ drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index e4580d8f21e1..d124f34ab9fc 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1006,7 +1006,8 @@ static bool vop_crtc_mode_fixup(struct drm_crtc *crtc, struct vop *vop = to_vop(crtc); adjusted_mode->clock = - clk_round_rate(vop->dclk, mode->clock * 1000) / 1000; + DIV_ROUND_UP(clk_round_rate(vop->dclk, mode->clock * 1000), + 1000); return true; } From patchwork Fri Jun 14 22:47:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 10996873 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 B77001515 for ; Fri, 14 Jun 2019 22:48:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A693128795 for ; Fri, 14 Jun 2019 22:48:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 97D92287A4; Fri, 14 Jun 2019 22:48:19 +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,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3F7C628795 for ; Fri, 14 Jun 2019 22:48:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=59iw8W1IsZ7GELr1zctOZbN61fNr0l9FZVaZBP3+T/U=; b=QRHV8MTL8epf8R kqAYJgcmCBkwZOEE9SmybdOnjQIHxmHicQZqbtfZJ+ugO+QPYzan9m9bsunkpAGpsncMli2TXjQeb 1fSW7zw+uSwxBoZtyQRbQe46nt7VcTKFXkGAGYbtjUiGSJ1ptDb4xgqlKzsOEiALowYgI+nkgqkd/ JnUw6hta8VHephzx2Q/oC0e4UEd2Ihx5uBaKFue3fXxIzAy6cglR0xTUVPH8B7WdIsKOSxXQzg5nO wJ4QusZ4SoCKMWIQWtZWx9KLQLrOaeqhhcH28IOxEHFjp0NWp2iVeORnovdkGNttjrwZhrF3YOiPl mpszztx39GzCP126ACLQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hbuzV-0002rf-14; Fri, 14 Jun 2019 22:48:13 +0000 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hbuzE-0002az-Gn for linux-arm-kernel@lists.infradead.org; Fri, 14 Jun 2019 22:47:58 +0000 Received: by mail-pf1-x444.google.com with SMTP id a186so2237597pfa.5 for ; Fri, 14 Jun 2019 15:47:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0MclKa4ww/GU4h0ModhXTnU03GxDuW7aam4X/xA5H20=; b=ZHrf0zetXblEGMrSWzFuV+TI9faYuEa+jhfVW9V/m0B9O+jKxO4+WjenDITlg+aFYZ rwkn7i/eEJwwpQKHMiEq0zlBvGsHMIF45Uf+FNPktBaKA1e7aETQITS6pxCwjG88fhY0 xNrhAWXlbmUSTAcnqo9tAd0ptVAPAcMc7dGLQ= 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:mime-version:content-transfer-encoding; bh=0MclKa4ww/GU4h0ModhXTnU03GxDuW7aam4X/xA5H20=; b=aOYtzjkZ2l5y6uWJbOSFKzqXAIGtAj3PZajtFyFoU+/fxzGivjo6uxUPcAm/9NXo4z K+cfacYNQird7J1kMaToPjfTTl4WzzgVMRR5Vy12KK32sBkheU5eyMzjeSx9ABMh8e92 RAYNylfOhtdEV6owxY8I65C8ahTOg+7S8du0Cxb6n6RZYUWRaGL7b03JxMwNnc7KTV9d jugk5QAcezFAQCLop5I3QEyn6FyYk/esz7XBJuMd5BVoWB+M0ocyH9ooAyCXyqc+yOHk +1sFpMqVJsqccJWvUtDtdGN4fN+3WegnJROkStq7XyyVfm1PDQM/rg2JlzPIHHMc4A1p pCtQ== X-Gm-Message-State: APjAAAVAwCInyPrl44J2uMxmQeIPiRFR4i5IC9rJSDW7yd4iGiKWGqfX YZkqm9v0hglbbGPy+RSzjD4o4w== X-Google-Smtp-Source: APXvYqzZ+CMlOlPiOf2LQv6uMUwI93prqIodMDLjqSqBeZ5oaQMYW0ftolCisN3PIf4q8UD0Rzr7Vg== X-Received: by 2002:a17:90a:25af:: with SMTP id k44mr13019616pje.122.1560552476071; Fri, 14 Jun 2019 15:47:56 -0700 (PDT) Received: from tictac2.mtv.corp.google.com ([2620:15c:202:1:24fa:e766:52c9:e3b2]) by smtp.gmail.com with ESMTPSA id x7sm3706087pfm.82.2019.06.14.15.47.55 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 14 Jun 2019 15:47:55 -0700 (PDT) From: Douglas Anderson To: Sandy Huang , heiko@sntech.de, seanpaul@chromium.org Subject: [PATCH 2/2] drm/rockchip: Base adjustments of the mode based on prev adjustments Date: Fri, 14 Jun 2019 15:47:30 -0700 Message-Id: <20190614224730.98622-2-dianders@chromium.org> X-Mailer: git-send-email 2.22.0.410.gd8fdbe21b5-goog In-Reply-To: <20190614224730.98622-1-dianders@chromium.org> References: <20190614224730.98622-1-dianders@chromium.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190614_154756_558608_BE0E5939 X-CRM114-Status: GOOD ( 11.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , Douglas Anderson , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, urjaman@gmail.com, linux-rockchip@lists.infradead.org, Daniel Vetter , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP In vop_crtc_mode_fixup() we fixup the mode to show what we actually will be able to achieve. However we should base our adjustments on any previous adjustments that were made. As an example, the dw_hdmi driver may wish to make some small adjustments to clock rates in its atomic_check() function. If it does, it will update the adjusted_mode. We shouldn't throw away those adjustments. NOTE: the version of the dw_hdmi driver upstream doesn't _actually_ make such adjustments, but downstream in Chrome OS it does. It is plausible that one day we'll figure out how to cleanly make that happen in an upstream-friendly way, so we should prepare by using the right mode. Signed-off-by: Douglas Anderson --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index d124f34ab9fc..09a790c2f3a1 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1006,8 +1006,8 @@ static bool vop_crtc_mode_fixup(struct drm_crtc *crtc, struct vop *vop = to_vop(crtc); adjusted_mode->clock = - DIV_ROUND_UP(clk_round_rate(vop->dclk, mode->clock * 1000), - 1000); + DIV_ROUND_UP(clk_round_rate(vop->dclk, + adjusted_mode->clock * 1000), 1000); return true; }