From patchwork Mon Jul 8 13:52:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 168648 Delivered-To: patch@linaro.org Received: by 2002:a92:4782:0:0:0:0:0 with SMTP id e2csp7196422ilk; Mon, 8 Jul 2019 06:52:51 -0700 (PDT) X-Google-Smtp-Source: APXvYqxT/66Hzymw2DeQ/mPQFxCDiDmyHNlr4eDya6tPZ2d1ukDrnklkuNvaSkIy+/WmMyHeoB+S X-Received: by 2002:a65:404d:: with SMTP id h13mr23452972pgp.71.1562593971299; Mon, 08 Jul 2019 06:52:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562593971; cv=none; d=google.com; s=arc-20160816; b=c2uROrxCOqJ2DQwV7fqnoQvUZxsNlpS/DK37JrHjgNEPgzAsldiYsETyx+63GiuPCE L2EvY5Eh2/yFOxj99vBFkphE5Xgk0bB9xzWucRaf8FRZPpiXmW4CsXVUmCvszgSv7Myg s0FI88VDTT0lMcg2dSrkBAJReA4s05kt1Jo2A1jtj97DiVCLRstbN7MENX9CgPxwdstB rSF9gRhiVZL2N1H0Xr7yJwEIpwo5hnzf6jJbCesFOCw4ToKgrKpmBV/RXknOKXATP7E+ 5o0J0c+kAw/vXDy7y2DhQjRjrxZ9GoG5oq3lwi6XxhmBJRp5ynrZYaembFTcVOqKqgkq RsEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:mime-version:message-id:date:subject:to:from :delivered-to; bh=ZAPw6qZo1or1bVQzXv9cvognDEDawH9MfwdbQqnSEeI=; b=wCoVt4d5K3EcQ6c3kEGz79kYkzGMHlI8KI4eKtqwYSK5NZIEdDJL4PEKo0LHm59xt0 4OS7vWv/WcPKqa9bBaSKnxcmmdXj4Q7jKo5ah4vn5TO4Dx2lAC7gtn786NSj8dJ0WjKY +wOAqFoXfKsoUXq0GpBx4pWicM6eR/OLOoeFz0lMO87Q29V3XacwSsfDCJOTbWu3Uh3C KJPRvHzFJyrXysrciu2j5qjckoMuQW/c9/rQeqdiKu/3v3SvoAjhzAeRG1k3UApdM3MA lFooTwEj6vW7drc9DmamuXQdQJewoUujrq1E/W23NmcS5L/4eBy5qhrCbWKpD07EaV7X BwBg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Return-Path: Received: from gabe.freedesktop.org (gabe.freedesktop.org. [131.252.210.177]) by mx.google.com with ESMTPS id z26si20017638pfj.247.2019.07.08.06.52.50 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 08 Jul 2019 06:52:51 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) client-ip=131.252.210.177; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of dri-devel-bounces@lists.freedesktop.org designates 131.252.210.177 as permitted sender) smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2F3D489CD9; Mon, 8 Jul 2019 13:52:50 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mout.kundenserver.de (mout.kundenserver.de [217.72.192.75]) by gabe.freedesktop.org (Postfix) with ESMTPS id 663E289C33; Mon, 8 Jul 2019 13:52:48 +0000 (UTC) Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1MTAJl-1hvicR406R-00UWYx; Mon, 08 Jul 2019 15:52:41 +0200 From: Arnd Bergmann To: Harry Wentland , Leo Li , Alex Deucher , =?utf-8?q?Christian_K=C3=B6?= =?utf-8?q?nig?= , "David (ChunMing) Zhou" , David Airlie , Daniel Vetter Subject: [PATCH] drm/amd/display: avoid 64-bit division Date: Mon, 8 Jul 2019 15:52:08 +0200 Message-Id: <20190708135238.651483-1-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:52AGef0Lq+dkr8kwjZNMwANHvgY3NRXyfVsWmIJgsnAVhNNRfc6 +DvJqiMs58ht8342jZhhnhohh35rAb8AknH5DtGDOAN2AdFoXCfAFhd66huKJ7KP7xjFEOl 1kTxt89yac00Xl8XVX6DHMdODQQoJ3QXl2KnJ+nrhTWnmYS5yWJD5d1DKT84ZJmlLvczuip 7ZBsA0mrNEjAw8ono+ZwA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:LM2YkTiy6w0=:Urgvr2KhXrQJHmnNUZ3Aay HFfPj1p4DzZqha1rGAJgrxsvl9i8srVeglCgb73+oum6M1wTdy8DYfYrTpaFTlP7cev+MOAos kyeL6Eq13c7PwtKIpYMvsJYlLZYlh8gu2FUWblDQa3Ng1tNbBh0jSZZQGnBdzegEvULxEcq7u c0la0Zph5YDkQMp/0h0NCc+2rN7rBiMFvYCcw5WwcIb3KegNA3Upn0RYUxCJ/zwbcWup7PHxE xIOB3orusnst6VaI+JFBAsA3Ks7kljv0AXSpRWYyJ6JUKE9jMXIyr/o5QCDN7MDLN3KQkwSQa 6EF2OKILbWXOGfxMgiYdbQefheqOutolj0llTvM7r6pqMHHmOI7DTKvdSRcuoE8CR04K7knZP XdfDWv8uuYM0ZAmAR4kg5jOez0yZ00rwbL7QEeMyVQBnQAZpfOMlzgXKNSWusQO4/QpKcvEmn 5dRCBC4s+r3HluLBSBrvRCR4Hbp9JAX68dim4X+6XlwZTPv95qtUe7yRhl5wLi32pyKwQroQX QoJDTBHHe/XBKcv7z7pajYSK2k9b6VwYvRV9efBlEPZDVmik3ZInGRj5IA1M1JRxVyANblVZU whrhtyHeR68dVy7SfImFQF4WsLWiahcsOCCbt3jlXsAkb+qbKb72HBUalG8TZNiVbHJjKGvC0 kyZ2JWup0wlDDaCg6Gtg0BkHw3LAxzl05Bx0JK3pj2GEz4sSPk4X3jqV1gl9EhI8RUie7/7ak LSU+6aP8VHZ+Up6UUb4n9RG4490JV7q7/gvsVw== 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: Charlene Liu , Chris Park , Arnd Bergmann , Tony Cheng , David Francis , linux-kernel@vger.kernel.org, amd-gfx@lists.freedesktop.org, Nikola Cornij , Dmytro Laktyushkin , dri-devel@lists.freedesktop.org, Jun Lei , Bhawanpreet Lakha , Anthony Koo Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 32-bit architectures, dividing a 64-bit integer in the kernel leads to a link error: ERROR: "__udivdi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined! ERROR: "__divdi3" [drivers/gpu/drm/amd/amdgpu/amdgpu.ko] undefined! Change the two recently introduced instances to a multiply+shift operation that is also much cheaper on 32-bit architectures. We can do that here, since both of them are really 32-bit numbers that change a few percent. Fixes: bedbbe6af4be ("drm/amd/display: Move link functions from dc to dc_link") Fixes: f18bc4e53ad6 ("drm/amd/display: update calculated bounding box logic for NV") Signed-off-by: Arnd Bergmann Acked-by: Slava Abramov Tested-by: Slava Abramov Signed-off-by: Arnd Bergmann Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Arnd Bergmann Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Arnd Bergmann Signed-off-by: Arnd Bergmann <arnd@arndb.de>
--- drivers/gpu/drm/amd/display/dc/core/dc_link.c | 4 ++-- drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link.c b/drivers/gpu/drm/amd/display/dc/core/dc_link.c index c17db5c144aa..8dbf759eba45 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc_link.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc_link.c @@ -3072,8 +3072,8 @@ uint32_t dc_link_bandwidth_kbps( * but the difference is minimal and is in a safe direction, * which all works well around potential ambiguity of DP 1.4a spec. */ - long long fec_link_bw_kbps = link_bw_kbps * 970LL; - link_bw_kbps = (uint32_t)(fec_link_bw_kbps / 1000LL); + link_bw_kbps = mul_u64_u32_shr(BIT_ULL(32) * 970LL / 1000, + link_bw_kbps, 32); } #endif diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c index b35327bafbc5..70ac8a95d2db 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c @@ -2657,7 +2657,7 @@ static void update_bounding_box(struct dc *dc, struct _vcs_dpi_soc_bounding_box_ calculated_states[i].dram_speed_mts = uclk_states[i] * 16 / 1000; // FCLK:UCLK ratio is 1.08 - min_fclk_required_by_uclk = ((unsigned long long)uclk_states[i]) * 1080 / 1000000; + min_fclk_required_by_uclk = mul_u64_u32_shr(BIT_ULL(32) * 1080 / 1000000, uclk_states[i], 32); calculated_states[i].fabricclk_mhz = (min_fclk_required_by_uclk < min_dcfclk) ? min_dcfclk : min_fclk_required_by_uclk;