Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1389714pxb; Thu, 24 Mar 2022 19:33:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzyBG8S58jc5gk+LtjJqA8aV2g8y0fv1NQ97S76W/ACl9iHogDqoOYiwSou+IT5NMSq7AVd X-Received: by 2002:a17:90b:3b8f:b0:1c7:b62e:8e87 with SMTP id pc15-20020a17090b3b8f00b001c7b62e8e87mr8159156pjb.156.1648175608672; Thu, 24 Mar 2022 19:33:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648175608; cv=none; d=google.com; s=arc-20160816; b=QDEr7tCp3FhB4ISsrAXdaDryhzV+I63n5hCIHoK3AiiKpOe3eSnNCfzH/42DzN5s7Y hLkB+CQqtcw+CRfMPmV+VO4fzQTQdtPFFAO7lrAZJRp7ZAK9nClMiWsfMyGimjBwH95p Ia7dlYoj9hAkhh+koXHpdHVxpyNxqBUsAZ1uaG7DZSL0MQRKQ/0g7I5Zp4W6tWExW6Bd t7FRc+WARz2Ln1KpN1DMekDvwA0UHRNKoE6eA7EB8UV3zFlUguAh7VahKFg7TB1OHGoE YJnXu7rZRx6Mtwd9z40/ermnpaZOmAU+yGT2x6Zlr/rVi+1k8RsNce2L/kxheQCAOcOI R2Gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:user-agent:date:to:from:subject :references:in-reply-to:content-transfer-encoding:mime-version :dkim-signature; bh=GClv78/0L1toqStIwORNCk86P55ndpWMXX0bDXGZRoI=; b=KpMc2EGIof9lfkOSOtny0sVv+t6KYq6Te+b2z7UN9KX4nqBfNzo+vKjH0yUacstdgU w84w7wneUzvTiExCmobwIdpbn7pGF7c75LLuAYTeMzBeyUxRqnEzmEVTnzWMpvi2kUp+ skJPndpoR4qntblpumlciVNThlQYloi0lXYcDU78Vm4CbbPYoj+ipaAD1CIBQNml8ZdD NS4Zj4dyupDWa39Lj8Nwh5qDvFCBdvOIMdGH5GarcmjXYsxixbPY+9d7nFECVM8RK/lG YrC0QdLfI0jNjVMc8BD3TR2LrSD7KGXm9CvmubV9yAkgm0zwdzQzBBM/nrcDyXbREihn df2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PefXn2AU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h1-20020a170902b94100b00153b2d16606si893141pls.526.2022.03.24.19.33.14; Thu, 24 Mar 2022 19:33:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=PefXn2AU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1348360AbiCYBKq (ORCPT + 99 others); Thu, 24 Mar 2022 21:10:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35028 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348928AbiCYBKo (ORCPT ); Thu, 24 Mar 2022 21:10:44 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8682345ADD; Thu, 24 Mar 2022 18:09:11 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2247C6186A; Fri, 25 Mar 2022 01:09:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77277C340ED; Fri, 25 Mar 2022 01:09:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1648170550; bh=5ly/TWLlvs8wkSgCbJLfBRzJN6ldBdF8OZK18Ogzrw4=; h=In-Reply-To:References:Subject:From:To:Date:From; b=PefXn2AUb364Kxbqqbd+tqrw78TUkvLX8i96UIyO/KpB31Uvi/BwBtOGQpGDjBCMz AVH4nrA8RcqIn2o1Bm15XlHHYkJ+Hz75q4cklmSMR0oalnlAusovfjmaLAggqtoIvJ 65sQ7hW5neXHsOxms+O/JVMlLEgh2PT8L++czXjX2i4PAajtV4S6l0qmJgbozukLmS 5JYKlHRfleVDegQKRr4TPjb5h4Im6yQqnfCLzkDH/tmR7Hlcn/t6jYJ02VkUbFdtd6 UIRqHoLyMcLdV0AMJO1KoOuaZitmhi7ZWBKgy5Mvam1qbOIioH/xldfsinKquwoblx Mk/8jsZRyX2pA== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable In-Reply-To: <20220321231548.14276-5-ansuelsmth@gmail.com> References: <20220321231548.14276-1-ansuelsmth@gmail.com> <20220321231548.14276-5-ansuelsmth@gmail.com> Subject: Re: [PATCH v6 04/18] clk: qcom: clk-hfpll: use poll_timeout macro From: Stephen Boyd To: Andy Gross , Ansuel Smith , Bjorn Andersson , Michael Turquette , Rob Herring , devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Date: Thu, 24 Mar 2022 18:09:08 -0700 User-Agent: alot/0.10 Message-Id: <20220325010910.77277C340ED@smtp.kernel.org> X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Ansuel Smith (2022-03-21 16:15:34) > Use regmap_read_poll_timeout macro instead of do-while structure. Please add a note that this isn't an equivalent translation. Now we timeout if the PLL fails to lock whereas before we would loop potentially forever. > diff --git a/drivers/clk/qcom/clk-hfpll.c b/drivers/clk/qcom/clk-hfpll.c > index e847d586a73a..a4e347eb4d4d 100644 > --- a/drivers/clk/qcom/clk-hfpll.c > +++ b/drivers/clk/qcom/clk-hfpll.c > @@ -12,6 +12,8 @@ > #include "clk-regmap.h" > #include "clk-hfpll.h" > =20 > +#define HFPLL_BUSY_WAIT_TIMEOUT 100 We don't really need a define for this. > + > #define PLL_OUTCTRL BIT(0) > #define PLL_BYPASSNL BIT(1) > #define PLL_RESET_N BIT(2) > @@ -72,13 +74,12 @@ static void __clk_hfpll_enable(struct clk_hw *hw) > regmap_update_bits(regmap, hd->mode_reg, PLL_RESET_N, PLL_RESET_N= ); > =20 > /* Wait for PLL to lock. */ > - if (hd->status_reg) { > - do { > - regmap_read(regmap, hd->status_reg, &val); > - } while (!(val & BIT(hd->lock_bit))); > - } else { > + if (hd->status_reg) > + regmap_read_poll_timeout(regmap, hd->status_reg, val, > + !(val & BIT(hd->lock_bit)), USEC= _PER_MSEC * 2, Why are we waiting between reads? > + HFPLL_BUSY_WAIT_TIMEOUT * USEC_P= ER_MSEC); > + else > udelay(60); > - } >