All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: "Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Andreas Färber" <afaerber@suse.de>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Claudiu Beznea" <claudiu.beznea@microchip.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Charles Keepax" <ckeepax@opensource.cirrus.com>,
	"Richard Fitzgerald" <rf@opensource.cirrus.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
	"David Lechner" <david@lechnology.com>,
	"Sekhar Nori" <nsekhar@ti.com>, "Abel Vesa" <abelvesa@kernel.org>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Dinh Nguyen" <dinguyen@kernel.org>,
	"Peter De Schrijver" <pdeschrijver@nvidia.com>,
	"Prashant Gaikwad" <pgaikwad@nvidia.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"David Airlie" <airlied@gmail.com>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Alessandro Zummo" <a.zummo@towertech.it>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Paul Cercueil" <paul@crapouillou.net>,
	"Orson Zhai" <orsonzhai@gmail.com>,
	"Baolin Wang" <baolin.wang@linux.alibaba.com>,
	"Chunyan Zhang" <zhang.lyra@gmail.com>
Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	 AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	 linux-arm-kernel@lists.infradead.org,
	linux-actions@lists.infradead.org,
	 patches@opensource.cirrus.com,
	linux-stm32@st-md-mailman.stormreply.com,
	 linux-mediatek@lists.infradead.org,
	linux-renesas-soc@vger.kernel.org,  linux-tegra@vger.kernel.org,
	dri-devel@lists.freedesktop.org,  linux-phy@lists.infradead.org,
	linux-rtc@vger.kernel.org,  linux-sunxi@lists.linux.dev,
	alsa-devel@alsa-project.org,  linux-mips@vger.kernel.org,
	Maxime Ripard <maxime@cerno.tech>
Subject: [PATCH v3 63/65] ASoC: tlv320aic32x4: pll: Switch to determine_rate
Date: Tue, 04 Apr 2023 12:11:53 +0200	[thread overview]
Message-ID: <20221018-clk-range-checks-fixes-v3-63-9a1358472d52@cerno.tech> (raw)
In-Reply-To: <20221018-clk-range-checks-fixes-v3-0-9a1358472d52@cerno.tech>

The tlv320aic32x4 PLL clocks implements a mux with a set_parent hook, but
doesn't provide a determine_rate implementation.

This is a bit odd, since set_parent() is there to, as its name implies,
change the parent of a clock. However, the most likely candidate to
trigger that parent change is a call to clk_set_rate(), with
determine_rate() figuring out which parent is the best suited for a
given rate.

The other trigger would be a call to clk_set_parent(), but it's far less
used, and it doesn't look like there's any obvious user for that clock.

So, the set_parent hook is effectively unused, possibly because of an
oversight. However, it could also be an explicit decision by the
original author to avoid any reparenting but through an explicit call to
clk_set_parent().

The driver does implement round_rate() though, which means that we can
change the rate of the clock, but we will never get to change the
parent.

However, It's hard to tell whether it's been done on purpose or not.

Since we'll start mandating a determine_rate() implementation, let's
convert the round_rate() implementation to a determine_rate(), which
will also make the current behavior explicit. And if it was an
oversight, the clock behaviour can be adjusted later on.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 sound/soc/codecs/tlv320aic32x4-clk.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/sound/soc/codecs/tlv320aic32x4-clk.c b/sound/soc/codecs/tlv320aic32x4-clk.c
index 65b72373cb95..d8b8ea3eaa12 100644
--- a/sound/soc/codecs/tlv320aic32x4-clk.c
+++ b/sound/soc/codecs/tlv320aic32x4-clk.c
@@ -205,18 +205,23 @@ static unsigned long clk_aic32x4_pll_recalc_rate(struct clk_hw *hw,
 	return clk_aic32x4_pll_calc_rate(&settings, parent_rate);
 }
 
-static long clk_aic32x4_pll_round_rate(struct clk_hw *hw,
-			unsigned long rate,
-			unsigned long *parent_rate)
+static int clk_aic32x4_pll_determine_rate(struct clk_hw *hw,
+					  struct clk_rate_request *req)
 {
 	struct clk_aic32x4_pll_muldiv settings;
+	unsigned long rate;
 	int ret;
 
-	ret = clk_aic32x4_pll_calc_muldiv(&settings, rate, *parent_rate);
+	ret = clk_aic32x4_pll_calc_muldiv(&settings, req->rate, req->best_parent_rate);
 	if (ret < 0)
-		return 0;
+		return -EINVAL;
 
-	return clk_aic32x4_pll_calc_rate(&settings, *parent_rate);
+	rate = clk_aic32x4_pll_calc_rate(&settings, req->best_parent_rate);
+	if (rate < 0)
+		return rate;
+
+	req->rate = rate;
+	return 0;
 }
 
 static int clk_aic32x4_pll_set_rate(struct clk_hw *hw,
@@ -267,7 +272,7 @@ static const struct clk_ops aic32x4_pll_ops = {
 	.unprepare = clk_aic32x4_pll_unprepare,
 	.is_prepared = clk_aic32x4_pll_is_prepared,
 	.recalc_rate = clk_aic32x4_pll_recalc_rate,
-	.round_rate = clk_aic32x4_pll_round_rate,
+	.determine_rate = clk_aic32x4_pll_determine_rate,
 	.set_rate = clk_aic32x4_pll_set_rate,
 	.set_parent = clk_aic32x4_pll_set_parent,
 	.get_parent = clk_aic32x4_pll_get_parent,

-- 
2.39.2


WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime@cerno.tech>
To: "Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Andreas Färber" <afaerber@suse.de>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Claudiu Beznea" <claudiu.beznea@microchip.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Charles Keepax" <ckeepax@opensource.cirrus.com>,
	"Richard Fitzgerald" <rf@opensource.cirrus.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
	"David Lechner" <david@lechnology.com>,
	"Sekhar Nori" <nsekhar@ti.com>, "Abel Vesa" <abelvesa@kernel.org>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Dinh Nguyen" <dinguyen@kernel.org>,
	"Peter De Schrijver" <pdeschrijver@nvidia.com>,
	"Prashant Gaikwad" <pgaikwad@nvidia.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"David Airlie" <airlied@gmail.com>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Alessandro Zummo" <a.zummo@towertech.it>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Paul Cercueil" <paul@crapouillou.net>,
	"Orson Zhai" <orsonzhai@gmail.com>,
	"Baolin Wang" <baolin.wang@linux.alibaba.com>,
	"Chunyan Zhang" <zhang.lyra@gmail.com>
Cc: linux-rtc@vger.kernel.org, alsa-devel@alsa-project.org,
	patches@opensource.cirrus.com, linux-actions@lists.infradead.org,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-stm32@st-md-mailman.stormreply.com,
	linux-renesas-soc@vger.kernel.org, linux-phy@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	Maxime Ripard <maxime@cerno.tech>,
	linux-tegra@vger.kernel.org, linux-mips@vger.kernel.org,
	linux-sunxi@lists.linux.dev, linux-clk@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>
Subject: [PATCH v3 63/65] ASoC: tlv320aic32x4: pll: Switch to determine_rate
Date: Tue, 04 Apr 2023 12:11:53 +0200	[thread overview]
Message-ID: <20221018-clk-range-checks-fixes-v3-63-9a1358472d52@cerno.tech> (raw)
In-Reply-To: <20221018-clk-range-checks-fixes-v3-0-9a1358472d52@cerno.tech>

The tlv320aic32x4 PLL clocks implements a mux with a set_parent hook, but
doesn't provide a determine_rate implementation.

This is a bit odd, since set_parent() is there to, as its name implies,
change the parent of a clock. However, the most likely candidate to
trigger that parent change is a call to clk_set_rate(), with
determine_rate() figuring out which parent is the best suited for a
given rate.

The other trigger would be a call to clk_set_parent(), but it's far less
used, and it doesn't look like there's any obvious user for that clock.

So, the set_parent hook is effectively unused, possibly because of an
oversight. However, it could also be an explicit decision by the
original author to avoid any reparenting but through an explicit call to
clk_set_parent().

The driver does implement round_rate() though, which means that we can
change the rate of the clock, but we will never get to change the
parent.

However, It's hard to tell whether it's been done on purpose or not.

Since we'll start mandating a determine_rate() implementation, let's
convert the round_rate() implementation to a determine_rate(), which
will also make the current behavior explicit. And if it was an
oversight, the clock behaviour can be adjusted later on.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 sound/soc/codecs/tlv320aic32x4-clk.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/sound/soc/codecs/tlv320aic32x4-clk.c b/sound/soc/codecs/tlv320aic32x4-clk.c
index 65b72373cb95..d8b8ea3eaa12 100644
--- a/sound/soc/codecs/tlv320aic32x4-clk.c
+++ b/sound/soc/codecs/tlv320aic32x4-clk.c
@@ -205,18 +205,23 @@ static unsigned long clk_aic32x4_pll_recalc_rate(struct clk_hw *hw,
 	return clk_aic32x4_pll_calc_rate(&settings, parent_rate);
 }
 
-static long clk_aic32x4_pll_round_rate(struct clk_hw *hw,
-			unsigned long rate,
-			unsigned long *parent_rate)
+static int clk_aic32x4_pll_determine_rate(struct clk_hw *hw,
+					  struct clk_rate_request *req)
 {
 	struct clk_aic32x4_pll_muldiv settings;
+	unsigned long rate;
 	int ret;
 
-	ret = clk_aic32x4_pll_calc_muldiv(&settings, rate, *parent_rate);
+	ret = clk_aic32x4_pll_calc_muldiv(&settings, req->rate, req->best_parent_rate);
 	if (ret < 0)
-		return 0;
+		return -EINVAL;
 
-	return clk_aic32x4_pll_calc_rate(&settings, *parent_rate);
+	rate = clk_aic32x4_pll_calc_rate(&settings, req->best_parent_rate);
+	if (rate < 0)
+		return rate;
+
+	req->rate = rate;
+	return 0;
 }
 
 static int clk_aic32x4_pll_set_rate(struct clk_hw *hw,
@@ -267,7 +272,7 @@ static const struct clk_ops aic32x4_pll_ops = {
 	.unprepare = clk_aic32x4_pll_unprepare,
 	.is_prepared = clk_aic32x4_pll_is_prepared,
 	.recalc_rate = clk_aic32x4_pll_recalc_rate,
-	.round_rate = clk_aic32x4_pll_round_rate,
+	.determine_rate = clk_aic32x4_pll_determine_rate,
 	.set_rate = clk_aic32x4_pll_set_rate,
 	.set_parent = clk_aic32x4_pll_set_parent,
 	.get_parent = clk_aic32x4_pll_get_parent,

-- 
2.39.2


WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime@cerno.tech>
To: "Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Andreas Färber" <afaerber@suse.de>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Claudiu Beznea" <claudiu.beznea@microchip.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Charles Keepax" <ckeepax@opensource.cirrus.com>,
	"Richard Fitzgerald" <rf@opensource.cirrus.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Luca Ceresoli" <luca.ceresoli@bootlin.com>,
	"David Lechner" <david@lechnology.com>,
	"Sekhar Nori" <nsekhar@ti.com>, "Abel Vesa" <abelvesa@kernel.org>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Sascha Hauer" <s.hauer@pengutronix.de>,
	"Pengutronix Kernel Team" <kernel@pengutronix.de>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Dinh Nguyen" <dinguyen@kernel.org>,
	"Peter De Schrijver" <pdeschrijver@nvidia.com>,
	"Prashant Gaikwad" <pgaikwad@nvidia.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Jonathan Hunter" <jonathanh@nvidia.com>,
	"Ulf Hansson" <ulf.hansson@linaro.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"David Airlie" <airlied@gmail.com>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Vinod Koul" <vkoul@kernel.org>,
	"Kishon Vijay Abraham I" <kishon@kernel.org>,
	"Alessandro Zummo" <a.zummo@towertech.it>,
	"Chen-Yu Tsai" <wens@csie.org>,
	"Jernej Skrabec" <jernej.skrabec@gmail.com>,
	"Samuel Holland" <samuel@sholland.org>,
	"Liam Girdwood" <lgirdwood@gmail.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Jaroslav Kysela" <perex@perex.cz>,
	"Takashi Iwai" <tiwai@suse.com>,
	"Paul Cercueil" <paul@crapouillou.net>,
	"Orson Zhai" <orsonzhai@gmail.com>,
	"Baolin Wang" <baolin.wang@linux.alibaba.com>,
	"Chunyan Zhang" <zhang.lyra@gmail.com>
Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org,
	 AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	 linux-arm-kernel@lists.infradead.org,
	linux-actions@lists.infradead.org,
	 patches@opensource.cirrus.com,
	linux-stm32@st-md-mailman.stormreply.com,
	 linux-mediatek@lists.infradead.org,
	linux-renesas-soc@vger.kernel.org,  linux-tegra@vger.kernel.org,
	dri-devel@lists.freedesktop.org,  linux-phy@lists.infradead.org,
	linux-rtc@vger.kernel.org,  linux-sunxi@lists.linux.dev,
	alsa-devel@alsa-project.org,  linux-mips@vger.kernel.org,
	Maxime Ripard <maxime@cerno.tech>
Subject: [PATCH v3 63/65] ASoC: tlv320aic32x4: pll: Switch to determine_rate
Date: Tue, 04 Apr 2023 12:11:53 +0200	[thread overview]
Message-ID: <20221018-clk-range-checks-fixes-v3-63-9a1358472d52@cerno.tech> (raw)
In-Reply-To: <20221018-clk-range-checks-fixes-v3-0-9a1358472d52@cerno.tech>

The tlv320aic32x4 PLL clocks implements a mux with a set_parent hook, but
doesn't provide a determine_rate implementation.

This is a bit odd, since set_parent() is there to, as its name implies,
change the parent of a clock. However, the most likely candidate to
trigger that parent change is a call to clk_set_rate(), with
determine_rate() figuring out which parent is the best suited for a
given rate.

The other trigger would be a call to clk_set_parent(), but it's far less
used, and it doesn't look like there's any obvious user for that clock.

So, the set_parent hook is effectively unused, possibly because of an
oversight. However, it could also be an explicit decision by the
original author to avoid any reparenting but through an explicit call to
clk_set_parent().

The driver does implement round_rate() though, which means that we can
change the rate of the clock, but we will never get to change the
parent.

However, It's hard to tell whether it's been done on purpose or not.

Since we'll start mandating a determine_rate() implementation, let's
convert the round_rate() implementation to a determine_rate(), which
will also make the current behavior explicit. And if it was an
oversight, the clock behaviour can be adjusted later on.

Signed-off-by: Maxime Ripard <maxime@cerno.tech>
---
 sound/soc/codecs/tlv320aic32x4-clk.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/sound/soc/codecs/tlv320aic32x4-clk.c b/sound/soc/codecs/tlv320aic32x4-clk.c
index 65b72373cb95..d8b8ea3eaa12 100644
--- a/sound/soc/codecs/tlv320aic32x4-clk.c
+++ b/sound/soc/codecs/tlv320aic32x4-clk.c
@@ -205,18 +205,23 @@ static unsigned long clk_aic32x4_pll_recalc_rate(struct clk_hw *hw,
 	return clk_aic32x4_pll_calc_rate(&settings, parent_rate);
 }
 
-static long clk_aic32x4_pll_round_rate(struct clk_hw *hw,
-			unsigned long rate,
-			unsigned long *parent_rate)
+static int clk_aic32x4_pll_determine_rate(struct clk_hw *hw,
+					  struct clk_rate_request *req)
 {
 	struct clk_aic32x4_pll_muldiv settings;
+	unsigned long rate;
 	int ret;
 
-	ret = clk_aic32x4_pll_calc_muldiv(&settings, rate, *parent_rate);
+	ret = clk_aic32x4_pll_calc_muldiv(&settings, req->rate, req->best_parent_rate);
 	if (ret < 0)
-		return 0;
+		return -EINVAL;
 
-	return clk_aic32x4_pll_calc_rate(&settings, *parent_rate);
+	rate = clk_aic32x4_pll_calc_rate(&settings, req->best_parent_rate);
+	if (rate < 0)
+		return rate;
+
+	req->rate = rate;
+	return 0;
 }
 
 static int clk_aic32x4_pll_set_rate(struct clk_hw *hw,
@@ -267,7 +272,7 @@ static const struct clk_ops aic32x4_pll_ops = {
 	.unprepare = clk_aic32x4_pll_unprepare,
 	.is_prepared = clk_aic32x4_pll_is_prepared,
 	.recalc_rate = clk_aic32x4_pll_recalc_rate,
-	.round_rate = clk_aic32x4_pll_round_rate,
+	.determine_rate = clk_aic32x4_pll_determine_rate,
 	.set_rate = clk_aic32x4_pll_set_rate,
 	.set_parent = clk_aic32x4_pll_set_parent,
 	.get_parent = clk_aic32x4_pll_get_parent,

-- 
2.39.2


-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

  parent reply	other threads:[~2023-04-05 12:25 UTC|newest]

Thread overview: 304+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-04 10:10 [PATCH v3 00/65] clk: Make determine_rate mandatory for muxes Maxime Ripard
2023-04-04 10:10 ` Maxime Ripard
2023-04-04 10:10 ` Maxime Ripard
2023-04-04 10:10 ` [PATCH v3 01/65] clk: Export clk_hw_forward_rate_request() Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10 ` [PATCH v3 02/65] clk: lan966x: Remove unused round_rate hook Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10 ` [PATCH v3 03/65] clk: nodrv: Add a determine_rate hook Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10 ` [PATCH v3 04/65] clk: test: " Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10 ` [PATCH v3 05/65] clk: actions: composite: Add a determine_rate hook for pass clk Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10 ` [PATCH v3 06/65] clk: at91: main: Add a determine_rate hook Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-05-18  7:37   ` Claudiu.Beznea
2023-05-18  7:37     ` Claudiu.Beznea
2023-05-18  7:37     ` Claudiu.Beznea
2023-04-04 10:10 ` [PATCH v3 07/65] clk: at91: sckc: " Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-05-18  7:38   ` Claudiu.Beznea
2023-05-18  7:38     ` Claudiu.Beznea
2023-05-18  7:38     ` Claudiu.Beznea
2023-04-04 10:10 ` [PATCH v3 08/65] clk: berlin: div: " Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10 ` [PATCH v3 09/65] clk: cdce706: " Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:10   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 10/65] clk: k210: pll: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 11/65] clk: k210: aclk: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 12/65] clk: k210: mux: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 13/65] clk: lmk04832: clkout: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 14/65] clk: lochnagar: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-05-04 13:39   ` Charles Keepax via Alsa-devel
2023-05-04 13:39   ` Charles Keepax
2023-05-04 13:39     ` Charles Keepax
2023-05-04 13:39     ` Charles Keepax
2023-04-04 10:11 ` [PATCH v3 15/65] clk: qoriq: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 16/65] clk: si5341: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 17/65] clk: stm32f4: mux: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 18/65] clk: vc5: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 19/65] clk: vc5: clkout: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 20/65] clk: wm831x: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 21/65] clk: davinci: da8xx-cfgchip: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-05 15:04   ` David Lechner
2023-04-05 15:04     ` David Lechner
2023-04-05 15:04     ` David Lechner
2023-04-04 10:11 ` [PATCH v3 22/65] " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-05 15:04   ` David Lechner
2023-04-05 15:04     ` David Lechner
2023-04-05 15:04     ` David Lechner
2023-04-04 10:11 ` [PATCH v3 23/65] clk: imx: busy: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 24/65] clk: imx: fixup-mux: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 25/65] clk: imx: scu: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 26/65] clk: mediatek: cpumux: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 27/65] clk: pxa: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 28/65] clk: renesas: r9a06g032: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-11 10:27   ` Geert Uytterhoeven
2023-04-11 10:27     ` Geert Uytterhoeven
2023-04-11 10:27     ` Geert Uytterhoeven
2023-04-11 10:27     ` Geert Uytterhoeven
2023-04-11 13:09     ` Miquel Raynal via Alsa-devel
2023-04-11 13:09     ` Miquel Raynal
2023-04-11 13:09       ` Miquel Raynal
2023-04-11 13:09       ` Miquel Raynal
2023-04-04 10:11 ` [PATCH v3 29/65] clk: socfpga: gate: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-24 18:32   ` Dinh Nguyen
2023-04-24 18:32     ` Dinh Nguyen
2023-04-24 18:32     ` Dinh Nguyen
2023-04-25 14:48     ` Maxime Ripard
2023-04-25 14:48       ` Maxime Ripard
2023-04-25 14:48       ` Maxime Ripard
2023-04-25 14:48       ` Maxime Ripard
2023-04-27 19:09       ` Dinh Nguyen
2023-04-27 19:09         ` Dinh Nguyen
2023-04-27 19:09         ` Dinh Nguyen
2023-04-27 19:09         ` Dinh Nguyen
2023-05-04 17:04         ` Maxime Ripard
2023-05-04 17:04           ` Maxime Ripard
2023-05-04 17:04           ` Maxime Ripard
2023-05-04 17:04           ` Maxime Ripard
2023-05-09 17:37           ` Dinh Nguyen
2023-05-09 17:37             ` Dinh Nguyen
2023-05-09 17:37             ` Dinh Nguyen
2023-05-09 17:37             ` Dinh Nguyen
2023-05-11  9:45             ` Maxime Ripard
2023-05-11  9:45               ` Maxime Ripard
2023-05-11  9:45               ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 30/65] clk: stm32: core: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 31/65] clk: tegra: bpmp: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 32/65] clk: tegra: super: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 33/65] clk: tegra: periph: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 34/65] clk: ux500: prcmu: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 13:44   ` Linus Walleij
2023-04-04 13:44     ` Linus Walleij
2023-04-04 13:44     ` Linus Walleij
2023-04-04 13:44     ` Linus Walleij
2023-04-04 10:11 ` [PATCH v3 35/65] clk: ux500: sysctrl: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 36/65] clk: versatile: sp810: " Maxime Ripard
2023-04-05  7:27   ` maxime
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-06 15:21   ` Pawel Moll
2023-04-06 15:21     ` Pawel Moll
2023-04-06 15:21     ` Pawel Moll
2023-04-06 15:21     ` Pawel Moll
2023-04-04 10:11 ` [PATCH v3 37/65] drm/tegra: sor: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 38/65] phy: cadence: sierra: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 39/65] phy: cadence: torrent: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 40/65] phy: ti: am654-serdes: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 41/65] phy: ti: j721e-wiz: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 42/65] rtc: sun6i: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 43/65] ASoC: tlv320aic32x4: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 15:26   ` Mark Brown
2023-04-04 15:26     ` Mark Brown
2023-04-04 15:26     ` Mark Brown
2023-04-04 15:26     ` Mark Brown
2023-04-05 15:17     ` Maxime Ripard
2023-04-05 15:17       ` Maxime Ripard
2023-04-05 15:17       ` Maxime Ripard
2023-04-05 15:17       ` Maxime Ripard
2023-04-05 15:34       ` Mark Brown
2023-04-05 15:34         ` Mark Brown
2023-04-05 15:34         ` Mark Brown
2023-04-05 15:34         ` Mark Brown
2023-05-04 17:01         ` Maxime Ripard
2023-05-04 17:01           ` Maxime Ripard
2023-05-04 17:01           ` Maxime Ripard
2023-05-04 17:01           ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 44/65] clk: actions: composite: div: Switch to determine_rate Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 45/65] clk: actions: composite: fact: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 46/65] clk: at91: smd: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-05-18  7:38   ` Claudiu.Beznea
2023-05-18  7:38     ` Claudiu.Beznea
2023-05-18  7:38     ` Claudiu.Beznea
2023-04-04 10:11 ` [PATCH v3 47/65] clk: axi-clkgen: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 48/65] clk: cdce706: divider: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 49/65] clk: cdce706: clkout: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 50/65] clk: si5341: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 51/65] clk: si5351: pll: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 52/65] clk: si5351: msynth: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 53/65] clk: si5351: clkout: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 54/65] clk: da8xx: clk48: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-05 15:03   ` David Lechner
2023-04-05 15:03     ` David Lechner
2023-04-05 15:03     ` David Lechner
2023-04-05 15:22     ` Maxime Ripard
2023-04-05 15:22       ` Maxime Ripard
2023-04-05 15:22       ` Maxime Ripard
2023-04-05 15:22       ` Maxime Ripard
2023-04-05 16:07       ` David Lechner
2023-04-05 16:07         ` David Lechner
2023-04-05 16:07         ` David Lechner
2023-04-05 16:07         ` David Lechner
2023-04-04 10:11 ` [PATCH v3 55/65] clk: imx: scu: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 56/65] clk: ingenic: cgu: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-05 13:04   ` Paul Cercueil
2023-04-05 13:04     ` Paul Cercueil
2023-04-05 13:04     ` Paul Cercueil
2023-04-05 15:19     ` Maxime Ripard
2023-04-05 15:19       ` Maxime Ripard
2023-04-05 15:19       ` Maxime Ripard
2023-04-05 15:19       ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 57/65] clk: ingenic: tcu: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 58/65] clk: sprd: composite: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 59/65] clk: st: flexgen: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 60/65] clk: stm32: composite: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 61/65] clk: tegra: periph: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` [PATCH v3 62/65] clk: tegra: super: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11 ` Maxime Ripard [this message]
2023-04-04 10:11   ` [PATCH v3 63/65] ASoC: tlv320aic32x4: pll: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-05 15:09   ` Mark Brown
2023-04-05 15:09     ` Mark Brown
2023-04-05 15:09     ` Mark Brown
2023-04-05 15:09     ` Mark Brown
2023-04-04 10:11 ` [PATCH v3 64/65] ASoC: tlv320aic32x4: div: " Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-05 15:10   ` Mark Brown
2023-04-05 15:10     ` Mark Brown
2023-04-05 15:10     ` Mark Brown
2023-04-05 15:10     ` Mark Brown
2023-04-04 10:11 ` [PATCH v3 65/65] clk: Forbid to register a mux without determine_rate Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-04 10:11   ` Maxime Ripard
2023-04-13 21:44 ` [PATCH v3 00/65] clk: Make determine_rate mandatory for muxes Stephen Boyd
2023-04-13 21:44   ` Stephen Boyd
2023-04-25 14:46   ` Maxime Ripard
2023-04-25 14:46     ` Maxime Ripard
2023-04-25 14:46     ` Maxime Ripard
2023-04-25 14:46     ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221018-clk-range-checks-fixes-v3-63-9a1358472d52@cerno.tech \
    --to=maxime@cerno.tech \
    --cc=a.zummo@towertech.it \
    --cc=abelvesa@kernel.org \
    --cc=afaerber@suse.de \
    --cc=airlied@gmail.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=broonie@kernel.org \
    --cc=ckeepax@opensource.cirrus.com \
    --cc=claudiu.beznea@microchip.com \
    --cc=daniel@ffwll.ch \
    --cc=david@lechnology.com \
    --cc=dinguyen@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=festevam@gmail.com \
    --cc=geert+renesas@glider.be \
    --cc=jcmvbkbc@gmail.com \
    --cc=jernej.skrabec@gmail.com \
    --cc=jonathanh@nvidia.com \
    --cc=kernel@pengutronix.de \
    --cc=kishon@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-actions@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=linux-tegra@vger.kernel.org \
    --cc=luca.ceresoli@bootlin.com \
    --cc=mani@kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=mturquette@baylibre.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=nsekhar@ti.com \
    --cc=orsonzhai@gmail.com \
    --cc=patches@opensource.cirrus.com \
    --cc=paul@crapouillou.net \
    --cc=pdeschrijver@nvidia.com \
    --cc=perex@perex.cz \
    --cc=pgaikwad@nvidia.com \
    --cc=rf@opensource.cirrus.com \
    --cc=s.hauer@pengutronix.de \
    --cc=samuel@sholland.org \
    --cc=sboyd@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=tiwai@suse.com \
    --cc=ulf.hansson@linaro.org \
    --cc=vkoul@kernel.org \
    --cc=wens@csie.org \
    --cc=zhang.lyra@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.