From nobody Tue Feb 10 20:46:49 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 248B9C77B60 for ; Sun, 2 Apr 2023 09:42:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230302AbjDBJm3 (ORCPT ); Sun, 2 Apr 2023 05:42:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230196AbjDBJm0 (ORCPT ); Sun, 2 Apr 2023 05:42:26 -0400 Received: from smtp.smtpout.orange.fr (smtp-22.smtpout.orange.fr [80.12.242.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9FC3A1BF7B for ; Sun, 2 Apr 2023 02:42:24 -0700 (PDT) Received: from pop-os.home ([86.243.2.178]) by smtp.orange.fr with ESMTPA id iuDzpwm4hwFKBiuEApeDi6; Sun, 02 Apr 2023 11:42:23 +0200 X-ME-Helo: pop-os.home X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Sun, 02 Apr 2023 11:42:23 +0200 X-ME-IP: 86.243.2.178 From: Christophe JAILLET To: mturquette@baylibre.com, sboyd@kernel.org, abelvesa@kernel.org, peng.fan@nxp.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, heiko@sntech.de Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH v2 1/4] clk: Compute masks for fractional_divider clk when needed. Date: Sun, 2 Apr 2023 11:42:04 +0200 Message-Id: <0fd6357242c974259c9e034c6e28a0391c480bf0.1680423909.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" There is no real need to pre-compute mmask and nmask when handling fractional_divider clk. They can be computed when needed. Signed-off-by: Christophe JAILLET Reviewed-by: Heiko Stuebner Suggested-by: Stephen Boyd --- drivers/clk/clk-fractional-divider.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/clk/clk-fractional-divider.c b/drivers/clk/clk-fractio= nal-divider.c index 6affe3565025..479297763e70 100644 --- a/drivers/clk/clk-fractional-divider.c +++ b/drivers/clk/clk-fractional-divider.c @@ -71,6 +71,7 @@ static void clk_fd_get_div(struct clk_hw *hw, struct u32_= fract *fract) struct clk_fractional_divider *fd =3D to_clk_fd(hw); unsigned long flags =3D 0; unsigned long m, n; + u32 mmask, nmask; u32 val; =20 if (fd->lock) @@ -85,8 +86,11 @@ static void clk_fd_get_div(struct clk_hw *hw, struct u32= _fract *fract) else __release(fd->lock); =20 - m =3D (val & fd->mmask) >> fd->mshift; - n =3D (val & fd->nmask) >> fd->nshift; + mmask =3D GENMASK(fd->mwidth - 1, 0) << fd->mshift; + nmask =3D GENMASK(fd->nwidth - 1, 0) << fd->nshift; + + m =3D (val & mmask) >> fd->mshift; + n =3D (val & nmask) >> fd->nshift; =20 if (fd->flags & CLK_FRAC_DIVIDER_ZERO_BASED) { m++; @@ -166,6 +170,7 @@ static int clk_fd_set_rate(struct clk_hw *hw, unsigned = long rate, struct clk_fractional_divider *fd =3D to_clk_fd(hw); unsigned long flags =3D 0; unsigned long m, n; + u32 mmask, nmask; u32 val; =20 rational_best_approximation(rate, parent_rate, @@ -182,8 +187,11 @@ static int clk_fd_set_rate(struct clk_hw *hw, unsigned= long rate, else __acquire(fd->lock); =20 + mmask =3D GENMASK(fd->mwidth - 1, 0) << fd->mshift; + nmask =3D GENMASK(fd->nwidth - 1, 0) << fd->nshift; + val =3D clk_fd_readl(fd); - val &=3D ~(fd->mmask | fd->nmask); + val &=3D ~(mmask | nmask); val |=3D (m << fd->mshift) | (n << fd->nshift); clk_fd_writel(fd, val); =20 @@ -260,10 +268,8 @@ struct clk_hw *clk_hw_register_fractional_divider(stru= ct device *dev, fd->reg =3D reg; fd->mshift =3D mshift; fd->mwidth =3D mwidth; - fd->mmask =3D GENMASK(mwidth - 1, 0) << mshift; fd->nshift =3D nshift; fd->nwidth =3D nwidth; - fd->nmask =3D GENMASK(nwidth - 1, 0) << nshift; fd->flags =3D clk_divider_flags; fd->lock =3D lock; fd->hw.init =3D &init; --=20 2.34.1 From nobody Tue Feb 10 20:46:49 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A22E1C7619A for ; Sun, 2 Apr 2023 09:42:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230359AbjDBJmf (ORCPT ); Sun, 2 Apr 2023 05:42:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42336 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230297AbjDBJm3 (ORCPT ); Sun, 2 Apr 2023 05:42:29 -0400 Received: from smtp.smtpout.orange.fr (smtp-22.smtpout.orange.fr [80.12.242.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E741D1BF76 for ; Sun, 2 Apr 2023 02:42:26 -0700 (PDT) Received: from pop-os.home ([86.243.2.178]) by smtp.orange.fr with ESMTPA id iuDzpwm4hwFKBiuEDpeDiY; Sun, 02 Apr 2023 11:42:25 +0200 X-ME-Helo: pop-os.home X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Sun, 02 Apr 2023 11:42:25 +0200 X-ME-IP: 86.243.2.178 From: Christophe JAILLET To: mturquette@baylibre.com, sboyd@kernel.org, abelvesa@kernel.org, peng.fan@nxp.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, heiko@sntech.de Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH v2 2/4] clk: imx: Remove values for mmask and nmask in struct clk_fractional_divider Date: Sun, 2 Apr 2023 11:42:05 +0200 Message-Id: <187a2266c3a034a593a151d6e5e6b21118043b5d.1680423909.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Now that fractional_divider clk computes mmask and nmask when needed, there is no more need to provide them explicitly anymore. Signed-off-by: Christophe JAILLET Reviewed-by: Abel Vesa Suggested-by: Stephen Boyd --- drivers/clk/imx/clk-composite-7ulp.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/clk/imx/clk-composite-7ulp.c b/drivers/clk/imx/clk-com= posite-7ulp.c index 4eedd45dbaa8..e208ddc51133 100644 --- a/drivers/clk/imx/clk-composite-7ulp.c +++ b/drivers/clk/imx/clk-composite-7ulp.c @@ -19,10 +19,8 @@ #define PCG_CGC_SHIFT 30 #define PCG_FRAC_SHIFT 3 #define PCG_FRAC_WIDTH 1 -#define PCG_FRAC_MASK BIT(3) #define PCG_PCD_SHIFT 0 #define PCG_PCD_WIDTH 3 -#define PCG_PCD_MASK 0x7 =20 #define SW_RST BIT(28) =20 @@ -102,10 +100,8 @@ static struct clk_hw *imx_ulp_clk_hw_composite(const c= har *name, fd->reg =3D reg; fd->mshift =3D PCG_FRAC_SHIFT; fd->mwidth =3D PCG_FRAC_WIDTH; - fd->mmask =3D PCG_FRAC_MASK; fd->nshift =3D PCG_PCD_SHIFT; fd->nwidth =3D PCG_PCD_WIDTH; - fd->nmask =3D PCG_PCD_MASK; fd->flags =3D CLK_FRAC_DIVIDER_ZERO_BASED; if (has_swrst) fd->lock =3D &imx_ccm_lock; --=20 2.34.1 From nobody Tue Feb 10 20:46:49 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6FBA6C77B6D for ; Sun, 2 Apr 2023 09:42:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230314AbjDBJmb (ORCPT ); Sun, 2 Apr 2023 05:42:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230295AbjDBJm3 (ORCPT ); Sun, 2 Apr 2023 05:42:29 -0400 Received: from smtp.smtpout.orange.fr (smtp-22.smtpout.orange.fr [80.12.242.22]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 190601BF72 for ; Sun, 2 Apr 2023 02:42:28 -0700 (PDT) Received: from pop-os.home ([86.243.2.178]) by smtp.orange.fr with ESMTPA id iuDzpwm4hwFKBiuEEpeDj1; Sun, 02 Apr 2023 11:42:26 +0200 X-ME-Helo: pop-os.home X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Sun, 02 Apr 2023 11:42:26 +0200 X-ME-IP: 86.243.2.178 From: Christophe JAILLET To: mturquette@baylibre.com, sboyd@kernel.org, abelvesa@kernel.org, peng.fan@nxp.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, heiko@sntech.de Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH v2 3/4] clk: rockchip: Remove values for mmask and nmask in struct clk_fractional_divider Date: Sun, 2 Apr 2023 11:42:06 +0200 Message-Id: <58e1950566e40e2fbb31004baee57a164ca6a390.1680423909.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Now that fractional_divider clk computes mmask and nmask when needed, there is no more need to provide them explicitly anymore. Signed-off-by: Christophe JAILLET Reviewed-by: Heiko Stuebner Suggested-by: Stephen Boyd --- drivers/clk/rockchip/clk.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/clk/rockchip/clk.c b/drivers/clk/rockchip/clk.c index a8646794575a..4059d9365ae6 100644 --- a/drivers/clk/rockchip/clk.c +++ b/drivers/clk/rockchip/clk.c @@ -244,10 +244,8 @@ static struct clk *rockchip_clk_register_frac_branch( div->reg =3D base + muxdiv_offset; div->mshift =3D 16; div->mwidth =3D 16; - div->mmask =3D GENMASK(div->mwidth - 1, 0) << div->mshift; div->nshift =3D 0; div->nwidth =3D 16; - div->nmask =3D GENMASK(div->nwidth - 1, 0) << div->nshift; div->lock =3D lock; div->approximation =3D rockchip_fractional_approximation; div_ops =3D &clk_fractional_divider_ops; --=20 2.34.1 From nobody Tue Feb 10 20:46:49 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E0B5CC7619A for ; Sun, 2 Apr 2023 09:42:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230384AbjDBJmk (ORCPT ); Sun, 2 Apr 2023 05:42:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230362AbjDBJmg (ORCPT ); Sun, 2 Apr 2023 05:42:36 -0400 Received: from smtp.smtpout.orange.fr (smtp-21.smtpout.orange.fr [80.12.242.21]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F96A1BF72 for ; Sun, 2 Apr 2023 02:42:29 -0700 (PDT) Received: from pop-os.home ([86.243.2.178]) by smtp.orange.fr with ESMTPA id iuDzpwm4hwFKBiuEFpeDju; Sun, 02 Apr 2023 11:42:28 +0200 X-ME-Helo: pop-os.home X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Sun, 02 Apr 2023 11:42:28 +0200 X-ME-IP: 86.243.2.178 From: Christophe JAILLET To: mturquette@baylibre.com, sboyd@kernel.org, abelvesa@kernel.org, peng.fan@nxp.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, heiko@sntech.de Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH v2 4/4] clk: Remove mmask and nmask fields in struct clk_fractional_divider Date: Sun, 2 Apr 2023 11:42:07 +0200 Message-Id: <680357e5acb338433bfc94114b65b4a4ce2c99e2.1680423909.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" All users of these fields have been removed. They are now computed when needed with [mn]shift and [mn]width. This shrinks the size of struct clk_fractional_divider from 72 to 56 bytes. Signed-off-by: Christophe JAILLET Reviewed-by: Heiko Stuebner Suggested-by: Stephen Boyd --- include/linux/clk-provider.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h index faad3cdc1e48..eb6930ae550f 100644 --- a/include/linux/clk-provider.h +++ b/include/linux/clk-provider.h @@ -1154,10 +1154,8 @@ struct clk_fractional_divider { void __iomem *reg; u8 mshift; u8 mwidth; - u32 mmask; u8 nshift; u8 nwidth; - u32 nmask; u8 flags; void (*approximation)(struct clk_hw *hw, unsigned long rate, unsigned long *parent_rate, --=20 2.34.1