From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2CF3C433FF for ; Wed, 7 Aug 2019 02:40:32 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C66F821743 for ; Wed, 7 Aug 2019 02:40:32 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="GL0woff6"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="RXnGW4yJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C66F821743 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sifive.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+infradead-linux-riscv=archiver.kernel.org@lists.infradead.org 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:Message-ID: In-Reply-To:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hzfNtUc0mmL2O5d0Po66j61Xq6dyaLktp4WBJdTftEI=; b=GL0woff6EOGLox nroC64K8LwosA6nLqSiYkgtv8ju2HSPBYe/ZKB1PGAvKhpljgrq7EdU6eH3uQPExGuWpP0vReOTHM EhSoGf+wkHjkaQYzux3HFolTUmQRpzw7I2stX/CTTeMAIXnBrhpl7luLj+9lfBxqY1MNP7F0xVDtE ILZt2PFd/fIrpxOVZXj7Me6yvYHTcL3EKDSy5lR9qUGfndGOitkSAdTrU6TZ+FiRKnaqN9RgJlvrL U9Z8W3a4d3ZobRNgyppnn7mEmua+hj7KbBLSZIGAvuLDGjDsil9loZKTJlItHxrVGpUh+Y/I2c6cQ tN2uLdYieLkHHcJduLaA==; 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 1hvBsN-0004LQ-SP; Wed, 07 Aug 2019 02:40:31 +0000 Received: from mail-ot1-x344.google.com ([2607:f8b0:4864:20::344]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hvBsL-0004Kx-LD for linux-riscv@lists.infradead.org; Wed, 07 Aug 2019 02:40:31 +0000 Received: by mail-ot1-x344.google.com with SMTP id j19so21694095otq.2 for ; Tue, 06 Aug 2019 19:40:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=iI/iXUmfEkQSyq4AtQNQzdpL0txh4zeQs+r3TsZsnbM=; b=RXnGW4yJICiNedzv7C1pEQFd8BHqwA3T9B5lVxO60Ger81MYLyuA2EyATKteG/T5p5 sfHrNSFPY4hfASFC5RsV4l4adfcyg6UhchDK8gaJeIf9JQvjVAVUs/2oYl1wXDjrv5rx WCYwxW1VUS5Mb5leHph7h1pZ5tIX8XrwZd/RqUbHQPeF5YJJPiqyXPo7c4yKzAtmTw1m TQDW+krt/3yQfHlj3958wL5Fi1uu1wnQgsAyYk3P6wwAQzfDfJ6VhnA16d4iKx9VJaNW OT72Sp7awyzWF1fUfRVT4d5qPLFbpZPiAgARJNceUz3+X/reuJAsoGnV4m+8S2mQ4YDb rBAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=iI/iXUmfEkQSyq4AtQNQzdpL0txh4zeQs+r3TsZsnbM=; b=t2MSoZQFyU/wZa1EXG45KqPMhA6mZrfqPrBfN/IJR6NFOT1KPMY/hm3LczfvOfIqRv W373ggVOuw9Cg0oeIcikYGx3V7JhabHtL9n/g5NGGvD2dDXwA/lBOC66lnesgP2MxtTH EIrU/dOn3DidvMllNr4/Ye24OUg3EdZhl1LeDMq3pgM/FtBTit9z07JlnrwTmMRoRIsN 1RjBuE5gVEd/vBCAHR1EJbnWecWXZfhoPPjhKBU68Fi0InwaA3c644YbNf5OmHDhPga2 xCsJGi/2kUbd7VWbIWQKyixue/bSVQ1jSQspJGAmPwnHLlg9euqbDv7jvQMl0QgXT30k xu2Q== X-Gm-Message-State: APjAAAUUSKH57fPwdMjQ3Ko2cEiIVQr4M7quuP2lTPh4v/W65Ma8wRwg BEKRGdK/ZJmZ2+Bemq4fl4PAWA== X-Google-Smtp-Source: APXvYqwXhS7UuwQcYeMkwcfT6rmQHbUmCtdyfES+jI9ghn4BGrkN/O8/H89s/z6tFxlOXdiHc8VVMw== X-Received: by 2002:a5d:885a:: with SMTP id t26mr6542150ios.218.1565145628416; Tue, 06 Aug 2019 19:40:28 -0700 (PDT) Received: from localhost (c-73-95-159-87.hsd1.co.comcast.net. [73.95.159.87]) by smtp.gmail.com with ESMTPSA id x22sm63417021ioh.87.2019.08.06.19.40.27 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 06 Aug 2019 19:40:28 -0700 (PDT) Date: Tue, 6 Aug 2019 19:40:27 -0700 (PDT) From: Paul Walmsley X-X-Sender: paulw@viisi.sifive.com To: Nicolas Pitre Subject: Re: [PATCH] RISC-V: Remove udivdi3 In-Reply-To: Message-ID: References: <20190807000508.9477-1-palmer@sifive.com> <20190807001846.GA21655@andestech.com> User-Agent: Alpine 2.21.9999 (DEB 301 2018-08-15) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190806_194029_754253_EEDE9BE7 X-CRM114-Status: GOOD ( 14.74 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-riscv@lists.infradead.org, Palmer Dabbelt , Alan Kao Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+infradead-linux-riscv=archiver.kernel.org@lists.infradead.org On Tue, 6 Aug 2019, Nicolas Pitre wrote: > On Tue, 6 Aug 2019, Paul Walmsley wrote: > > > This patch breaks the rv32_defconfig build, since udelay() still relies on > > __udivdi3(). I'll queue "riscv: delay: use do_div() instead of > > __udivdi3()" along with it: > > > > https://lore.kernel.org/linux-riscv/alpine.DEB.2.21.9999.1908061906240.25231@viisi.sifive.com/T/#u > > > + u64 n; > > + u32 rem; > > > > if (unlikely(usecs > MAX_UDELAY_US)) { > > - __delay((u64)usecs * riscv_timebase / 1000000ULL); > > + n = (u64)usecs * riscv_timebase; > > + rem = do_div(n, 1000000); > > You may omit rem and ignore the return value here. Thanks Nico. Updated patch below - Paul From: Paul Walmsley Date: Tue, 6 Aug 2019 18:28:33 -0700 Subject: [PATCH] riscv: delay: use do_div() instead of __udivdi3() In preparation for removing __udivdi3() from the RISC-V architecture-specific files, convert its one user to use do_div(). This avoids breaking the RV32 build after __udivdi3() is removed. This second version removes the assignment of the remainder to an unused temporary variable. Thanks to Nicolas Pitre for the suggestion. Signed-off-by: Paul Walmsley Cc: Nicolas Pitre --- arch/riscv/lib/delay.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/riscv/lib/delay.c b/arch/riscv/lib/delay.c index 87ff89e88f2c..f51c9a03bca1 100644 --- a/arch/riscv/lib/delay.c +++ b/arch/riscv/lib/delay.c @@ -81,9 +81,13 @@ EXPORT_SYMBOL(__delay); void udelay(unsigned long usecs) { u64 ucycles = (u64)usecs * lpj_fine * UDELAY_MULT; + u64 n; if (unlikely(usecs > MAX_UDELAY_US)) { - __delay((u64)usecs * riscv_timebase / 1000000ULL); + n = (u64)usecs * riscv_timebase; + do_div(n, 1000000); + + __delay(n); return; } -- 2.22.0 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv