Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp2399142pxa; Fri, 7 Aug 2020 10:09:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyrWbrIXd5iby5gkylPyIhHtmGup/OqdASsxzbGQDwxJFWJWUpq1leo5K7PyRFhBfhQoJwv X-Received: by 2002:a17:907:2805:: with SMTP id eb5mr3098764ejc.139.1596820162209; Fri, 07 Aug 2020 10:09:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596820162; cv=none; d=google.com; s=arc-20160816; b=GXMv190RxPItJWnTUFe30BOXxGaABlx3kD326jgPtHSOP+MxXFi6i6W0op+/gnkWjk IqJ3hqHjHchQUp5rmyFnSlHpAwSDjfFToR3yDTqp9Je9HmyokDb2H/PnhgFv9C/Kc2Su zXYu8UYzFXq6Wck7RHyTLmAo1kWwfBUhLQTMXjcvdg+VBS974qVeWztDdO1ymMkffMkB Nebjxs1RdYmOPxVGDsXXZ4ezeiqTrm60ixqYUKCLkxxoVmmLF6pn2AaO1LntEdtUJtL8 T30/iG3vtb4117A9bI1RWbxpgmQqEVkden2w5YYbUW6trgcYyiA16hGsbozOlN9md+ko waNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:cms-type :content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:cc:to:subject:dkim-signature :dkim-filter; bh=ySlo1rRurySUq/mJUjWBrCBKqPIR44VZIR5xfff2xc0=; b=bPzfx+9qQX+pmjo0SGLIYgsNLXS0IoAhywnka3vEsIguX7Ul0d+0HfvhlZ3LOkzvtR DLqOIAgZ1Es2ipyw8fR0TkusNcAg8xuDTc9IwCGTe4me7H05CdCWgH5S8O/oJ71M5TiN wNR+cH3o07O4mkTgv0UZyaU4yeb2esQo0gttvLzpa5K0ocSRdpdb+Lhs1aEjdNxZXgEU XyD2Ihdmgpu18R9boKYEFdKZws+MLQ0ZZqI9h3U0fJJvNsA2cFmPzqW09fCJ4xOLXjCo Nbi86IFe+geyhL+y6tNb9rlpREl1f88UtPwhY8WqL5bk5uAAY/fxCUuo4mEKPuK9LCcH vbbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b="CJ/qLf9m"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f13si5592813ejq.631.2020.08.07.10.08.59; Fri, 07 Aug 2020 10:09:21 -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=@samsung.com header.s=mail20170921 header.b="CJ/qLf9m"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726096AbgHGRGN (ORCPT + 99 others); Fri, 7 Aug 2020 13:06:13 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:40514 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725993AbgHGRGL (ORCPT ); Fri, 7 Aug 2020 13:06:11 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200807170610euoutp021ef7cd32503e56aad585507b54a89d31~pC01wTJ8P0351303513euoutp02R for ; Fri, 7 Aug 2020 17:06:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200807170610euoutp021ef7cd32503e56aad585507b54a89d31~pC01wTJ8P0351303513euoutp02R DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1596819970; bh=ySlo1rRurySUq/mJUjWBrCBKqPIR44VZIR5xfff2xc0=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=CJ/qLf9mT+oJ0m3nkPwzytd+7LjgFY8NeWbXhY4/AlmUu1Ue2gt3SvlU/s8UmYfAx zvQVS8r9CMqppgi3Hxaj1L5WVkniTK0IctcBlNoAL4S6VM89facVyD5eSUP8GH2q/o dtr4oPnZDQ1aWSkMj7I8tHvKAQD79mQQeMQfuxxY= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200807170609eucas1p163ca3c0f6a466a038de9b9affa345011~pC01WyY3n3153631536eucas1p1Z; Fri, 7 Aug 2020 17:06:09 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 59.DA.06318.10A8D2F5; Fri, 7 Aug 2020 18:06:09 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200807170609eucas1p1589506c27a99349d174c6c4c29e84288~pC005XIap2084920849eucas1p1d; Fri, 7 Aug 2020 17:06:09 +0000 (GMT) Received: from eusmgms2.samsung.com (unknown [182.198.249.180]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200807170609eusmtrp2fabd780e21b12cbcd998e857599fdf14~pC004qkxC3033030330eusmtrp2E; Fri, 7 Aug 2020 17:06:09 +0000 (GMT) X-AuditID: cbfec7f5-38bff700000018ae-43-5f2d8a01c8a9 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms2.samsung.com (EUCPMTA) with SMTP id FB.66.06017.10A8D2F5; Fri, 7 Aug 2020 18:06:09 +0100 (BST) Received: from [106.120.51.75] (unknown [106.120.51.75]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200807170608eusmtip2ed8565facc73fccd2acc5b0e8aee273a~pC00fBSfA0703507035eusmtip2M; Fri, 7 Aug 2020 17:06:08 +0000 (GMT) Subject: Re: [PATCH] clk: samsung: Prevent potential endless loop in the PLL set_rate ops To: Tomasz Figa Cc: "open list:COMMON CLK FRAMEWORK" , Chanwoo Choi , Stephen Boyd , Mike Turquette , "moderated list:SAMSUNG SOC CLOCK DRIVERS" , linux-kernel , Bartlomiej Zolnierkiewicz , Marek Szyprowski From: Sylwester Nawrocki Message-ID: Date: Fri, 7 Aug 2020 19:06:08 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrKKsWRmVeSWpSXmKPExsWy7djPc7qMXbrxBiu6VC02zljPanH9y3NW i48991gtLu+aw2Yx4/w+Jou1R+6yW1w85Wrx79pGFotVu/4wOnB6vL/Ryu6xc9Zddo9NqzrZ PPq2rGL0+LxJLoA1issmJTUnsyy1SN8ugStjzdvigpk8FQf37WRsYHzO0cXIySEhYCJx6c1f xi5GLg4hgRWMEuu3nGSDcL4wSnx78psZwvnMKNF09TYzTMuSxstQLcsZJfZMOQ3lvGWUmDF7 OyNIlbBAtMTSu9PBOkQE1CW+TelnByliFpjNLPFsxwl2kASbgKFE79E+sAZeATuJNdNPsIDY LAIqEle2HAeLiwpESux8+pIdokZQ4uTMJ2A1nAKBEt0N31hBbGYBcYmmLyuhbHmJ7W/ngN0t IXCMXeLEnidsEHe7SBw+dZkJwhaWeHV8CzuELSPxf+d8JoiGZkaJnt232SGcCYwS948vYISo spa4c+4X0CQOoBWaEut36UOEHSUuPZrLDBKWEOCTuPFWEOIIPolJ26ZDhXklOtqEIKpVJH6v mg51gpRE95P/LBMYlWYheW0WkndmIXlnFsLeBYwsqxjFU0uLc9NTi43zUsv1ihNzi0vz0vWS 83M3MQIT0+l/x7/uYNz3J+kQowAHoxIP7w9f3Xgh1sSy4srcQ4wSHMxKIrxOZ0/HCfGmJFZW pRblxxeV5qQWH2KU5mBREuc1XvQyVkggPbEkNTs1tSC1CCbLxMEp1cDIzZf3aefXaQZ3RHe9 zXRNl5jvwZv0RtDHyNf8lcHHmsiKQAP/4nPz9Qw+PNRUKLqjObHv0mNj681ix7OSGANevLm6 SrtRxEyiQ/O6g2HzhuM8VzoWfb/edj7zGH/Ojb1G8mHdN7Rqkuynbrr67+LEJ5t+5cftKP/4 5UrnOZ16JfsNldc8kzmUWIozEg21mIuKEwHCX6FNSAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCIsWRmVeSWpSXmKPExsVy+t/xe7qMXbrxBjtWcFhsnLGe1eL6l+es Fh977rFaXN41h81ixvl9TBZrj9xlt7h4ytXi37WNLBardv1hdOD0eH+jld1j56y77B6bVnWy efRtWcXo8XmTXABrlJ5NUX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpO Zllqkb5dgl7GmrfFBTN5Kg7u28nYwPico4uRk0NCwERiSeNlxi5GLg4hgaWMEk+aPjF1MXIA JaQk5rcoQdQIS/y51sUGUfOaUWJR/1dWkISwQLTE0rvTmUFsEQF1iW9T+tlBipgF5jNLLH+/ hx0kISRwlVHi9rdQEJtNwFCi92gfI4jNK2AnsWb6CRYQm0VAReLKluOMIItFBSIldu6whCgR lDg58wlYCadAoER3wzewvcxAu/7Mu8QMYYtLNH1ZCRWXl9j+dg7zBEahWUjaZyFpmYWkZRaS lgWMLKsYRVJLi3PTc4uN9IoTc4tL89L1kvNzNzECY3DbsZ9bdjB2vQs+xCjAwajEw7vAWzde iDWxrLgy9xCjBAezkgiv09nTcUK8KYmVValF+fFFpTmpxYcYTYF+m8gsJZqcD0wPeSXxhqaG 5haWhubG5sZmFkrivB0CB2OEBNITS1KzU1MLUotg+pg4OKUaGKsPbC/3O6K0XKKHbcfaLd+/ rd/EGfdl/aa3791effnx8tqOU/PYypUve0f+7KmcvJXD8OBlwz//w2+JsusfvHl/5h+lGy1r xK3/LIsrU39xiKPzlvVj1Tadr8vuCwlabcqd7rZyf2WdL7+9RP9n5vf2Td+u6S8R6fj7mfPM xa4Wv6nblFZ1i/1TYinOSDTUYi4qTgQApKSnBdcCAAA= X-CMS-MailID: 20200807170609eucas1p1589506c27a99349d174c6c4c29e84288 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20200806160653eucas1p2b7fd860f5d89589cf9df0ad0f8d3981f X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200806160653eucas1p2b7fd860f5d89589cf9df0ad0f8d3981f References: <20200806160646.1997-1-s.nawrocki@samsung.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Tomasz, On 8/6/20 18:11, Tomasz Figa wrote: >> --- a/drivers/clk/samsung/clk-pll.c >> +++ b/drivers/clk/samsung/clk-pll.c >> @@ -63,6 +63,27 @@ static long samsung_pll_round_rate(struct clk_hw *hw, >> return rate_table[i - 1].rate; >> } >> >> +static int samsung_pll_lock_wait(struct samsung_clk_pll *pll, >> + unsigned int reg_mask) >> +{ >> + ktime_t timeout; >> + >> + /* Wait until the PLL is in steady locked state */ >> + timeout = ktime_add_ms(ktime_get(), PLL_TIMEOUT_MS); >> + >> + while (!(readl_relaxed(pll->con_reg) & reg_mask)) { >> + if (ktime_after(ktime_get(), timeout)) { >> + pr_err("%s: Could not lock PLL %s\n", >> + __func__, clk_hw_get_name(&pll->hw)); >> + return -EFAULT; >> + } >> + >> + cpu_relax(); >> + } > Thanks for the patch! Good to have this consolidated. How about going > one step further and using the generic > readl_relaxed_poll_timeout_atomic() helper? Might be a good suggestion, I was considering those helpers but ended up not using them in the patch. The cpu_relax() call might also not be really needed now, when there is the ktime code within the loop. Having multiple occurrences of readl_relaxed_poll_timeout_atomic() could increase the code size due to inlining. How about keeping the samsung_pll_lock_wait() function and just changing its implementation? -- Thanks, Sylwester