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=-2.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no 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 E1A0BC1975A for ; Thu, 12 Mar 2020 19:09:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C1312206EB for ; Thu, 12 Mar 2020 19:09:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726469AbgCLTJN (ORCPT ); Thu, 12 Mar 2020 15:09:13 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:59557 "EHLO alexa-out-sd-01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725268AbgCLTJN (ORCPT ); Thu, 12 Mar 2020 15:09:13 -0400 Received: from unknown (HELO ironmsg02-sd.qualcomm.com) ([10.53.140.142]) by alexa-out-sd-01.qualcomm.com with ESMTP; 12 Mar 2020 12:09:12 -0700 Received: from gurus-linux.qualcomm.com ([10.46.162.81]) by ironmsg02-sd.qualcomm.com with ESMTP; 12 Mar 2020 12:09:12 -0700 Received: by gurus-linux.qualcomm.com (Postfix, from userid 383780) id 8E90D4B3B; Thu, 12 Mar 2020 12:09:12 -0700 (PDT) Date: Thu, 12 Mar 2020 12:09:12 -0700 From: Guru Das Srinagesh To: David Laight Cc: "linux-pwm@vger.kernel.org" , Thierry Reding , Uwe =?utf-8?Q?Kleine-K=C3=B6nig?= , Subbaraman Narayanamurthy , "linux-kernel@vger.kernel.org" , Michael Turquette , Stephen Boyd , "linux-clk@vger.kernel.org" Subject: Re: [PATCH v8 01/12] clk: pwm: Use 64-bit division function Message-ID: <20200312190859.GA19605@codeaurora.org> References: <338966686a673c241905716c90049993e7bb7d6a.1583889178.git.gurus@codeaurora.org> <7506bc2972324fd286dac6327ec73a3a@AcuMS.aculab.com> <20200312020938.GA14827@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-clk-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-clk@vger.kernel.org On Thu, Mar 12, 2020 at 09:14:09AM +0000, David Laight wrote: > From: Guru Das Srinagesh > > Sent: 12 March 2020 02:10 > > On Wed, Mar 11, 2020 at 04:58:24PM +0000, David Laight wrote: > > > From: Guru Das Srinagesh > > > > Sent: 11 March 2020 01:41 > > > > > > > > Since the PWM framework is switching struct pwm_args.period's datatype > > > > to u64, prepare for this transition by using div64_u64 to handle a > > > > 64-bit divisor. > > > > > ... > > > > --- a/drivers/clk/clk-pwm.c > > > > +++ b/drivers/clk/clk-pwm.c > > > > @@ -89,7 +89,7 @@ static int clk_pwm_probe(struct platform_device *pdev) > > > > } > > > > > > > > if (of_property_read_u32(node, "clock-frequency", &clk_pwm->fixed_rate)) > > > > - clk_pwm->fixed_rate = NSEC_PER_SEC / pargs.period; > > > > + clk_pwm->fixed_rate = div64_u64(NSEC_PER_SEC, pargs.period); > > > > > > That cannot be needed, a 32 bit division is fine. > > > > Could you please explain why? I think the use of this function is > > warranted in order to handle the division properly with a 64-bit > > divisor. > ... > > > I'd assign pargs.period to an 'unsigned int' variable > > > prior to the division (I hate casts - been bitten by them in the past.). > > > > Wouldn't this truncate the 64-bit value? The intention behind this patch > > is to allow the processing of 64-bit values in full. > > You are dividing a 32bit constant by a value. > If pargs.period is greater than 2^32 the result is zero. Thanks for the explanation. > I think you divide by 'fixed_rate' a bit later on - better not be zero. Good point, but this issue exists with or without this patch, and fixing it is beyond this patch's scope. Just to check if this patch can be dropped, I tested out compilation with this patch reverted and there were no errors, so I'm leaning towards dropping this patch unless you have any further comments on how to proceed. Thank you. Guru Das.