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 50/65] clk: si5341: Switch to determine_rate
Date: Tue, 04 Apr 2023 12:11:40 +0200	[thread overview]
Message-ID: <20221018-clk-range-checks-fixes-v3-50-9a1358472d52@cerno.tech> (raw)
In-Reply-To: <20221018-clk-range-checks-fixes-v3-0-9a1358472d52@cerno.tech>

The SI5341 output 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>
---
 drivers/clk/clk-si5341.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c
index 259861aa2e2f..14792d5ffb4f 100644
--- a/drivers/clk/clk-si5341.c
+++ b/drivers/clk/clk-si5341.c
@@ -828,19 +828,20 @@ static unsigned long si5341_output_clk_recalc_rate(struct clk_hw *hw,
 	return parent_rate / r_divider;
 }
 
-static long si5341_output_clk_round_rate(struct clk_hw *hw, unsigned long rate,
-		unsigned long *parent_rate)
+static int si5341_output_clk_determine_rate(struct clk_hw *hw,
+					    struct clk_rate_request *req)
 {
+	unsigned long rate = req->rate;
 	unsigned long r;
 
 	if (!rate)
 		return 0;
 
-	r = *parent_rate >> 1;
+	r = req->best_parent_rate >> 1;
 
 	/* If rate is an even divisor, no changes to parent required */
 	if (r && !(r % rate))
-		return (long)rate;
+		return 0;
 
 	if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) {
 		if (rate > 200000000) {
@@ -850,14 +851,15 @@ static long si5341_output_clk_round_rate(struct clk_hw *hw, unsigned long rate,
 			/* Take a parent frequency near 400 MHz */
 			r = (400000000u / rate) & ~1;
 		}
-		*parent_rate = r * rate;
+		req->best_parent_rate = r * rate;
 	} else {
 		/* We cannot change our parent's rate, report what we can do */
 		r /= rate;
-		rate = *parent_rate / (r << 1);
+		rate = req->best_parent_rate / (r << 1);
 	}
 
-	return rate;
+	req->rate = rate;
+	return 0;
 }
 
 static int si5341_output_clk_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -930,7 +932,7 @@ static const struct clk_ops si5341_output_clk_ops = {
 	.prepare = si5341_output_clk_prepare,
 	.unprepare = si5341_output_clk_unprepare,
 	.recalc_rate = si5341_output_clk_recalc_rate,
-	.round_rate = si5341_output_clk_round_rate,
+	.determine_rate = si5341_output_clk_determine_rate,
 	.set_rate = si5341_output_clk_set_rate,
 	.set_parent = si5341_output_set_parent,
 	.get_parent = si5341_output_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 50/65] clk: si5341: Switch to determine_rate
Date: Tue, 04 Apr 2023 12:11:40 +0200	[thread overview]
Message-ID: <20221018-clk-range-checks-fixes-v3-50-9a1358472d52@cerno.tech> (raw)
In-Reply-To: <20221018-clk-range-checks-fixes-v3-0-9a1358472d52@cerno.tech>

The SI5341 output 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>
---
 drivers/clk/clk-si5341.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c
index 259861aa2e2f..14792d5ffb4f 100644
--- a/drivers/clk/clk-si5341.c
+++ b/drivers/clk/clk-si5341.c
@@ -828,19 +828,20 @@ static unsigned long si5341_output_clk_recalc_rate(struct clk_hw *hw,
 	return parent_rate / r_divider;
 }
 
-static long si5341_output_clk_round_rate(struct clk_hw *hw, unsigned long rate,
-		unsigned long *parent_rate)
+static int si5341_output_clk_determine_rate(struct clk_hw *hw,
+					    struct clk_rate_request *req)
 {
+	unsigned long rate = req->rate;
 	unsigned long r;
 
 	if (!rate)
 		return 0;
 
-	r = *parent_rate >> 1;
+	r = req->best_parent_rate >> 1;
 
 	/* If rate is an even divisor, no changes to parent required */
 	if (r && !(r % rate))
-		return (long)rate;
+		return 0;
 
 	if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) {
 		if (rate > 200000000) {
@@ -850,14 +851,15 @@ static long si5341_output_clk_round_rate(struct clk_hw *hw, unsigned long rate,
 			/* Take a parent frequency near 400 MHz */
 			r = (400000000u / rate) & ~1;
 		}
-		*parent_rate = r * rate;
+		req->best_parent_rate = r * rate;
 	} else {
 		/* We cannot change our parent's rate, report what we can do */
 		r /= rate;
-		rate = *parent_rate / (r << 1);
+		rate = req->best_parent_rate / (r << 1);
 	}
 
-	return rate;
+	req->rate = rate;
+	return 0;
 }
 
 static int si5341_output_clk_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -930,7 +932,7 @@ static const struct clk_ops si5341_output_clk_ops = {
 	.prepare = si5341_output_clk_prepare,
 	.unprepare = si5341_output_clk_unprepare,
 	.recalc_rate = si5341_output_clk_recalc_rate,
-	.round_rate = si5341_output_clk_round_rate,
+	.determine_rate = si5341_output_clk_determine_rate,
 	.set_rate = si5341_output_clk_set_rate,
 	.set_parent = si5341_output_set_parent,
 	.get_parent = si5341_output_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 50/65] clk: si5341: Switch to determine_rate
Date: Tue, 04 Apr 2023 12:11:40 +0200	[thread overview]
Message-ID: <20221018-clk-range-checks-fixes-v3-50-9a1358472d52@cerno.tech> (raw)
In-Reply-To: <20221018-clk-range-checks-fixes-v3-0-9a1358472d52@cerno.tech>

The SI5341 output 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>
---
 drivers/clk/clk-si5341.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/clk/clk-si5341.c b/drivers/clk/clk-si5341.c
index 259861aa2e2f..14792d5ffb4f 100644
--- a/drivers/clk/clk-si5341.c
+++ b/drivers/clk/clk-si5341.c
@@ -828,19 +828,20 @@ static unsigned long si5341_output_clk_recalc_rate(struct clk_hw *hw,
 	return parent_rate / r_divider;
 }
 
-static long si5341_output_clk_round_rate(struct clk_hw *hw, unsigned long rate,
-		unsigned long *parent_rate)
+static int si5341_output_clk_determine_rate(struct clk_hw *hw,
+					    struct clk_rate_request *req)
 {
+	unsigned long rate = req->rate;
 	unsigned long r;
 
 	if (!rate)
 		return 0;
 
-	r = *parent_rate >> 1;
+	r = req->best_parent_rate >> 1;
 
 	/* If rate is an even divisor, no changes to parent required */
 	if (r && !(r % rate))
-		return (long)rate;
+		return 0;
 
 	if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) {
 		if (rate > 200000000) {
@@ -850,14 +851,15 @@ static long si5341_output_clk_round_rate(struct clk_hw *hw, unsigned long rate,
 			/* Take a parent frequency near 400 MHz */
 			r = (400000000u / rate) & ~1;
 		}
-		*parent_rate = r * rate;
+		req->best_parent_rate = r * rate;
 	} else {
 		/* We cannot change our parent's rate, report what we can do */
 		r /= rate;
-		rate = *parent_rate / (r << 1);
+		rate = req->best_parent_rate / (r << 1);
 	}
 
-	return rate;
+	req->rate = rate;
+	return 0;
 }
 
 static int si5341_output_clk_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -930,7 +932,7 @@ static const struct clk_ops si5341_output_clk_ops = {
 	.prepare = si5341_output_clk_prepare,
 	.unprepare = si5341_output_clk_unprepare,
 	.recalc_rate = si5341_output_clk_recalc_rate,
-	.round_rate = si5341_output_clk_round_rate,
+	.determine_rate = si5341_output_clk_determine_rate,
 	.set_rate = si5341_output_clk_set_rate,
 	.set_parent = si5341_output_set_parent,
 	.get_parent = si5341_output_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-04 13:38 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 ` Maxime Ripard [this message]
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 ` [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 ` [PATCH v3 63/65] ASoC: tlv320aic32x4: pll: " Maxime Ripard
2023-04-04 10:11   ` 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-50-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.