Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp218926ybm; Thu, 28 May 2020 21:13:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx65XTiMtJslvFuHiiLw93xm34BKEELkus/cMKDohaxTn6Qj5fv6Av8Yn+I0eLwG5lGzjhq X-Received: by 2002:a50:f10f:: with SMTP id w15mr5973024edl.125.1590725609520; Thu, 28 May 2020 21:13:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590725609; cv=none; d=google.com; s=arc-20160816; b=h/5ii0E42/Nnb7xYd4Iw7X9KQ9iRonGln48BRYeDMnfL1Ouk8L6qb7KmF58BuP66Fj HY5/ty/nQxhLQH/SnG2PmR344DpoLZGNb2Znerw+VgAmDpoIQ7Pfi3Ua5bIx0NvNUuPY eU8qLJE/OTCs+OC3oaiqtjTaoidEJKCRUFoA5jnDERvIHdeiE9woww7DIY74kAidFick iMoa7s21zSisNHkFio+qtMc1yYoa/neijJ3Fet/SYimB9XN6O1F+/jG/HQXXCoE/BwpV BdUJ17uuzf8Zc7RhlGvh56gw/9bK+rcfmVCKldaf3Z9dto/+IPJIrTBtW+7mtP/kqH2f g38A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:dkim-signature; bh=LO3M2CBP7umJZixFIVvaW1ht/fyaVnUAS9mz1Evpc/o=; b=aKebZUN6yq0E044tfgW1A1I2cjpCZknZjNbTQfIjSBcSrPqkcP1UH/i7B9rSjPb9qb itLPDqNaLQ9iSsRe9k/O2LCsC30YmTQmZ1iJKKQiqv4bkeLWvi4I5VmDMKI1Lj0h4utG hTEh9cZtMoyNzruHNarm6Lg7JXGdcWFR+JFiwnHBUnR5Cfu+4MZEDzeRjhcTLzs/wLu0 HQivYRyCmMiBDYdOMS5bx9fp8DvpdQzEYhyRF/30+uaJ7GLSx11Avgf5NvoCij0hYyOV 3cS398N9XBTseWaEl/fgsKRbksdWuVhuckqjRWa6qBGhMEpP/leRrRsAj8bchkzGFvP6 YSjQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@canb.auug.org.au header.s=201702 header.b=aRxk05nJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s17si5112480edi.175.2020.05.28.21.13.06; Thu, 28 May 2020 21:13:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@canb.auug.org.au header.s=201702 header.b=aRxk05nJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727913AbgE2ELC (ORCPT + 99 others); Fri, 29 May 2020 00:11:02 -0400 Received: from ozlabs.org ([203.11.71.1]:36511 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725936AbgE2ELB (ORCPT ); Fri, 29 May 2020 00:11:01 -0400 Received: from authenticated.ozlabs.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ozlabs.org (Postfix) with ESMTPSA id 49YB295DpQz9sSm; Fri, 29 May 2020 14:10:57 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=canb.auug.org.au; s=201702; t=1590725458; bh=MvpExw+kJlNIs4OW+iB1XEUz15syI6U7hZfNtJIbGQQ=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=aRxk05nJsPY5NTsjlEzowXfRCYmKxrJ5BsffyUDehUYpB8Gy7jIxaofSp2l3LGQD3 9b0F/KXu35uI4YM4PTcO8qCIp8rt30UOv2ptIBmw5mLqNTa2P767SkLgRbfUnABn6P 8OYFN+8q8ftN34KEYRAso5xbty1zdhvnDlWh3kdwynGXha3flJnm1flUbb9jbUUUzU mkRNK5nAOU58uoeZ5tBOphTTudsvB0NZ6JfHVSW7inx8Wv4fTiaTiuY2CRjmwQ5RDA C4BTgkbp9f4J73eZLaa0sQmQCP9L+LzKSOpvePaQX1kPLtuO1cus2DibT6AEsF3qyu 6qCBmxHLeXyKg== Date: Fri, 29 May 2020 14:10:56 +1000 From: Stephen Rothwell To: Rob Clark , Sean Paul Cc: Linux Next Mailing List , Linux Kernel Mailing List , Kalyan Thota Subject: Re: inux-next: build failure after merge of the drm-msm tree Message-ID: <20200529141056.000f78ba@canb.auug.org.au> In-Reply-To: <20200526140841.0a1d5c7b@canb.auug.org.au> References: <20200519150955.1667566a@canb.auug.org.au> <20200526140841.0a1d5c7b@canb.auug.org.au> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/0s2XPM_4kygMGPSAs87Bbrq"; protocol="application/pgp-signature"; micalg=pgp-sha256 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --Sig_/0s2XPM_4kygMGPSAs87Bbrq Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi all, On Tue, 26 May 2020 14:08:41 +1000 Stephen Rothwell = wrote: > > Hi all, >=20 > On Tue, 19 May 2020 15:09:55 +1000 Stephen Rothwell wrote: > > > > Hi all, > >=20 > > After merging the drm-msm tree, today's linux-next build (arm > > multi_v7_defconfig) failed like this: > >=20 > > ERROR: modpost: "__aeabi_ldivmod" [drivers/gpu/drm/msm/msm.ko] undefine= d! > > ERROR: modpost: "__aeabi_uldivmod" [drivers/gpu/drm/msm/msm.ko] undefin= ed! > >=20 > > Caused by commit > >=20 > > 04d9044f6c57 ("drm/msm/dpu: add support for clk and bw scaling for di= splay") > >=20 > > I applied the following patch for today (this is mechanical, there may > > be a better way): > >=20 > > From: Stephen Rothwell > > Date: Tue, 19 May 2020 14:12:39 +1000 > > Subject: [PATCH] drm/msm/dpu: fix up u64/u32 division for 32 bit archit= ectures > >=20 > > Signed-off-by: Stephen Rothwell > > --- > > drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 23 ++++++++++++++----- > > drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 15 ++++++++---- > > 2 files changed, 28 insertions(+), 10 deletions(-) > >=20 > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c b/drivers/gp= u/drm/msm/disp/dpu1/dpu_core_perf.c > > index 9697abcbec3f..85c2a4190840 100644 > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c > > @@ -10,6 +10,7 @@ > > #include > > #include > > #include > > +#include > > =20 > > #include "dpu_kms.h" > > #include "dpu_trace.h" > > @@ -53,8 +54,11 @@ static u64 _dpu_core_perf_calc_bw(struct dpu_kms *km= s, > > } > > =20 > > bw_factor =3D kms->catalog->perf.bw_inefficiency_factor; > > - if (bw_factor) > > - crtc_plane_bw =3D mult_frac(crtc_plane_bw, bw_factor, 100); > > + if (bw_factor) { > > + u64 quot =3D crtc_plane_bw; > > + u32 rem =3D do_div(quot, 100); > > + crtc_plane_bw =3D (quot * bw_factor) + ((rem * bw_factor) / 100); > > + } > > =20 > > return crtc_plane_bw; > > } > > @@ -89,8 +93,11 @@ static u64 _dpu_core_perf_calc_clk(struct dpu_kms *k= ms, > > } > > =20 > > clk_factor =3D kms->catalog->perf.clk_inefficiency_factor; > > - if (clk_factor) > > - crtc_clk =3D mult_frac(crtc_clk, clk_factor, 100); > > + if (clk_factor) { > > + u64 quot =3D crtc_clk; > > + u32 rem =3D do_div(quot, 100); > > + crtc_clk =3D (quot * clk_factor) + ((rem * clk_factor) / 100); > > + } > > =20 > > return crtc_clk; > > } > > @@ -234,8 +241,12 @@ static int _dpu_core_perf_crtc_update_bus(struct d= pu_kms *kms, > > } > > } > > =20 > > - avg_bw =3D kms->num_paths ? > > - perf.bw_ctl / kms->num_paths : 0; > > + if (kms->num_paths) { > > + avg_bw =3D perf.bw_ctl; > > + do_div(avg_bw, kms->num_paths); > > + } else { > > + avg_bw =3D 0; > > + } > > =20 > > for (i =3D 0; i < kms->num_paths; i++) > > icc_set_bw(kms->path[i], > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/dr= m/msm/disp/dpu1/dpu_plane.c > > index c2a6e3dacd68..ad95f32eac13 100644 > > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c > > @@ -9,6 +9,7 @@ > > =20 > > #include > > #include > > +#include > > =20 > > #include > > #include > > @@ -174,7 +175,11 @@ static void _dpu_plane_calc_bw(struct drm_plane *p= lane, > > plane_prefill_bw =3D > > src_width * hw_latency_lines * fps * fmt->bpp * scale_factor; > > =20 > > - plane_prefill_bw =3D mult_frac(plane_prefill_bw, mode->vtotal, (vbp+v= pw)); > > + { > > + u64 quot =3D plane_prefill_bw; > > + u32 rem =3D do_div(plane_prefill_bw, vbp + vpw); > > + plane_prefill_bw =3D quot * mode->vtotal + rem * mode->vtotal / (vbp= + vpw); > > + } > > =20 > > pstate->plane_fetch_bw =3D max(plane_bw, plane_prefill_bw); > > } > > @@ -204,9 +209,11 @@ static void _dpu_plane_calc_clk(struct drm_plane *= plane) > > pstate->plane_clk =3D > > dst_width * mode->vtotal * fps; > > =20 > > - if (src_height > dst_height) > > - pstate->plane_clk =3D mult_frac(pstate->plane_clk, > > - src_height, dst_height); > > + if (src_height > dst_height) { > > + u64 quot =3D pstate->plane_clk; > > + u32 rem =3D do_div(quot, dst_height); > > + pstate->plane_clk =3D quot * src_height + rem * src_height / dst_hei= ght; > > + } > > } > > =20 > > /** > > --=20 > > 2.26.2 =20 >=20 > I am still applying the above ... Still applying. Any comment even? --=20 Cheers, Stephen Rothwell --Sig_/0s2XPM_4kygMGPSAs87Bbrq Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEENIC96giZ81tWdLgKAVBC80lX0GwFAl7Qi1EACgkQAVBC80lX 0Gx0zgf/X659iSWvO2inqpuJ5Lw0ff+VXrOwRqFtXe9XvCVJhzgn8hftFc5OmQD7 I+ggS+f7HGbnU8UeUaXUXtDzrkkXAUaraFFKtKLKMy1vL7AVcw4JpgJuC2IWG10I Se1tLsjOgUSiD1QkEiJ7dSeTSNslTWwnadnF0VPnOvaThySnEIf2rBySacafpoTc 4xKPt5od2iUe18UTEwzl1tulNQChvv/xwTUGpzp4iAmdQiAz+8eh5TIRYzY91Gba 7vHH+mEuEid7EXZ6+9wwm8+43Ls4EHOWVyQ0sIMBMglO8a784CMY+6Mu0tzYkr2d trsvETdbQUvWMFZ8xcCBYh0lH6cR8w== =dEIo -----END PGP SIGNATURE----- --Sig_/0s2XPM_4kygMGPSAs87Bbrq--