All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: "Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Russell King" <linux@armlinux.org.uk>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Jean Delvare" <jdelvare@suse.com>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Lars Povlsen" <lars.povlsen@microchip.com>,
	"Steen Hegelund" <Steen.Hegelund@microchip.com>,
	UNGLinuxDriver@microchip.com, linux-hwmon@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Matt Mackall" <mpm@selenic.com>,
	"Herbert Xu" <herbert@gondor.apana.org.au>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Neil Armstrong" <narmstrong@baylibre.com>,
	"David Airlie" <airlied@linux.ie>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Kevin Hilman" <khilman@baylibre.com>,
	"Jerome Brunet" <jbrunet@baylibre.com>,
	"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
	"Paul Cercueil" <paul@crapouillou.net>,
	"Alessandro Zummo" <a.zummo@towertech.it>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Wim Van Sebroeck" <wim@linux-watchdog.org>,
	"Claudiu Beznea" <claudiu.beznea@microchip.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Oleksij Rempel" <linux@rempel-privat.de>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>
Cc: "Tomislav Denis" <tomislav.denis@avl.com>,
	linux-iio@vger.kernel.org,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	dri-devel@lists.freedesktop.org,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	linux-i2c@vger.kernel.org,
	"Nobuhiro Iwamatsu" <nobuhiro1.iwamatsu@toshiba.co.jp>,
	linux-clk@vger.kernel.org, linux-watchdog@vger.kernel.org,
	linux-rtc@vger.kernel.org,
	"Michal Simek" <michal.simek@xilinx.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	"Andy Gross" <agross@kernel.org>,
	"Alexandru Ardelean" <aardelean@deviqon.com>,
	"Keguang Zhang" <keguang.zhang@gmail.com>,
	"Patrice Chotard" <patrice.chotard@foss.st.com>,
	linux-pwm@vger.kernel.org, kernel@pengutronix.de,
	linux-arm-msm@vger.kernel.org,
	"Anand Ashok Dumbre" <anand.ashok.dumbre@xilinx.com>,
	"Vladimir Zapolskiy" <vz@mleia.com>,
	linux-gpio@vger.kernel.org,
	"André Gustavo Nakagomi Lopez" <andregnl@usp.br>,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	linux-amlogic@lists.infradead.org,
	"Amireddy Mallikarjuna reddy"
	<mallikarjunax.reddy@linux.intel.com>,
	linux-mips@vger.kernel.org, linux-spi@vger.kernel.org,
	"Cai Huoqing" <caihuoqing@baidu.com>,
	linux-crypto@vger.kernel.org,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	dmaengine@vger.kernel.org
Subject: [PATCH v8 01/16] clk: generalize devm_clk_get() a bit
Date: Mon, 14 Mar 2022 15:16:28 +0100	[thread overview]
Message-ID: <20220314141643.22184-2-u.kleine-koenig@pengutronix.de> (raw)
In-Reply-To: <20220314141643.22184-1-u.kleine-koenig@pengutronix.de>

Allow to add an exit hook to devm managed clocks. Also use
clk_get_optional() in devm_clk_get_optional instead of open coding it.
The generalisation will be used in the next commit to add some more
devm_clk helpers.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Alexandru Ardelean <aardelean@deviqon.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/clk/clk-devres.c | 67 ++++++++++++++++++++++++++++++----------
 1 file changed, 50 insertions(+), 17 deletions(-)

diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
index f9d5b7334341..fb7761888b30 100644
--- a/drivers/clk/clk-devres.c
+++ b/drivers/clk/clk-devres.c
@@ -4,39 +4,72 @@
 #include <linux/export.h>
 #include <linux/gfp.h>
 
+struct devm_clk_state {
+	struct clk *clk;
+	void (*exit)(struct clk *clk);
+};
+
 static void devm_clk_release(struct device *dev, void *res)
 {
-	clk_put(*(struct clk **)res);
+	struct devm_clk_state *state = *(struct devm_clk_state **)res;
+
+	if (state->exit)
+		state->exit(state->clk);
+
+	clk_put(state->clk);
 }
 
-struct clk *devm_clk_get(struct device *dev, const char *id)
+static struct clk *__devm_clk_get(struct device *dev, const char *id,
+				  struct clk *(*get)(struct device *dev, const char *id),
+				  int (*init)(struct clk *clk),
+				  void (*exit)(struct clk *clk))
 {
-	struct clk **ptr, *clk;
+	struct devm_clk_state *state;
+	struct clk *clk;
+	int ret;
 
-	ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
-	if (!ptr)
+	state = devres_alloc(devm_clk_release, sizeof(*state), GFP_KERNEL);
+	if (!state)
 		return ERR_PTR(-ENOMEM);
 
-	clk = clk_get(dev, id);
-	if (!IS_ERR(clk)) {
-		*ptr = clk;
-		devres_add(dev, ptr);
-	} else {
-		devres_free(ptr);
+	clk = get(dev, id);
+	if (IS_ERR(clk)) {
+		ret = PTR_ERR(clk);
+		goto err_clk_get;
 	}
 
+	if (init) {
+		ret = init(clk);
+		if (ret)
+			goto err_clk_init;
+	}
+
+	state->clk = clk;
+	state->exit = exit;
+
+	devres_add(dev, state);
+
 	return clk;
+
+err_clk_init:
+
+	clk_put(clk);
+err_clk_get:
+
+	devres_free(state);
+	return ERR_PTR(ret);
 }
-EXPORT_SYMBOL(devm_clk_get);
 
-struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+struct clk *devm_clk_get(struct device *dev, const char *id)
 {
-	struct clk *clk = devm_clk_get(dev, id);
+	return __devm_clk_get(dev, id, clk_get, NULL, NULL);
 
-	if (clk == ERR_PTR(-ENOENT))
-		return NULL;
+}
+EXPORT_SYMBOL(devm_clk_get);
 
-	return clk;
+struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get_optional, NULL, NULL);
 }
 EXPORT_SYMBOL(devm_clk_get_optional);
 
-- 
2.35.1


WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: "Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Russell King" <linux@armlinux.org.uk>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Jean Delvare" <jdelvare@suse.com>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Lars Povlsen" <lars.povlsen@microchip.com>,
	"Steen Hegelund" <Steen.Hegelund@microchip.com>,
	UNGLinuxDriver@microchip.com, linux-hwmon@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Matt Mackall" <mpm@selenic.com>,
	"Herbert Xu" <herbert@gondor.apana.org.au>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Neil Armstrong" <narmstrong@baylibre.com>,
	"David Airlie" <airlied@linux.ie>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Kevin Hilman" <khilman@baylibre.com>,
	"Jerome Brunet" <jbrunet@baylibre.com>,
	"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
	"Paul Cercueil" <paul@crapouillou.net>,
	"Alessandro Zummo" <a.zummo@towertech.it>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Wim Van Sebroeck" <wim@linux-watchdog.org>,
	"Claudiu Beznea" <claudiu.beznea@microchip.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Oleksij Rempel" <linux@rempel-privat.de>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>
Cc: linux-clk@vger.kernel.org, kernel@pengutronix.de,
	"Vladimir Zapolskiy" <vz@mleia.com>,
	"Heiko Stuebner" <heiko@sntech.de>,
	"Tomislav Denis" <tomislav.denis@avl.com>,
	"Anand Ashok Dumbre" <anand.ashok.dumbre@xilinx.com>,
	"Michal Simek" <michal.simek@xilinx.com>,
	"André Gustavo Nakagomi Lopez" <andregnl@usp.br>,
	"Cai Huoqing" <caihuoqing@baidu.com>,
	linux-iio@vger.kernel.org, linux-crypto@vger.kernel.org,
	linux-amlogic@lists.infradead.org, linux-gpio@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-mips@vger.kernel.org,
	linux-rtc@vger.kernel.org,
	"Keguang Zhang" <keguang.zhang@gmail.com>,
	"Andy Gross" <agross@kernel.org>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Patrice Chotard" <patrice.chotard@foss.st.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Nobuhiro Iwamatsu" <nobuhiro1.iwamatsu@toshiba.co.jp>,
	linux-watchdog@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-stm32@st-md-mailman.stormreply.com,
	linux-pwm@vger.kernel.org, linux-i2c@vger.kernel.org,
	linux-spi@vger.kernel.org,
	"Amireddy Mallikarjuna reddy"
	<mallikarjunax.reddy@linux.intel.com>,
	dmaengine@vger.kernel.org,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"Alexandru Ardelean" <aardelean@deviqon.com>
Subject: [PATCH v8 01/16] clk: generalize devm_clk_get() a bit
Date: Mon, 14 Mar 2022 15:16:28 +0100	[thread overview]
Message-ID: <20220314141643.22184-2-u.kleine-koenig@pengutronix.de> (raw)
In-Reply-To: <20220314141643.22184-1-u.kleine-koenig@pengutronix.de>

Allow to add an exit hook to devm managed clocks. Also use
clk_get_optional() in devm_clk_get_optional instead of open coding it.
The generalisation will be used in the next commit to add some more
devm_clk helpers.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Alexandru Ardelean <aardelean@deviqon.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/clk/clk-devres.c | 67 ++++++++++++++++++++++++++++++----------
 1 file changed, 50 insertions(+), 17 deletions(-)

diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
index f9d5b7334341..fb7761888b30 100644
--- a/drivers/clk/clk-devres.c
+++ b/drivers/clk/clk-devres.c
@@ -4,39 +4,72 @@
 #include <linux/export.h>
 #include <linux/gfp.h>
 
+struct devm_clk_state {
+	struct clk *clk;
+	void (*exit)(struct clk *clk);
+};
+
 static void devm_clk_release(struct device *dev, void *res)
 {
-	clk_put(*(struct clk **)res);
+	struct devm_clk_state *state = *(struct devm_clk_state **)res;
+
+	if (state->exit)
+		state->exit(state->clk);
+
+	clk_put(state->clk);
 }
 
-struct clk *devm_clk_get(struct device *dev, const char *id)
+static struct clk *__devm_clk_get(struct device *dev, const char *id,
+				  struct clk *(*get)(struct device *dev, const char *id),
+				  int (*init)(struct clk *clk),
+				  void (*exit)(struct clk *clk))
 {
-	struct clk **ptr, *clk;
+	struct devm_clk_state *state;
+	struct clk *clk;
+	int ret;
 
-	ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
-	if (!ptr)
+	state = devres_alloc(devm_clk_release, sizeof(*state), GFP_KERNEL);
+	if (!state)
 		return ERR_PTR(-ENOMEM);
 
-	clk = clk_get(dev, id);
-	if (!IS_ERR(clk)) {
-		*ptr = clk;
-		devres_add(dev, ptr);
-	} else {
-		devres_free(ptr);
+	clk = get(dev, id);
+	if (IS_ERR(clk)) {
+		ret = PTR_ERR(clk);
+		goto err_clk_get;
 	}
 
+	if (init) {
+		ret = init(clk);
+		if (ret)
+			goto err_clk_init;
+	}
+
+	state->clk = clk;
+	state->exit = exit;
+
+	devres_add(dev, state);
+
 	return clk;
+
+err_clk_init:
+
+	clk_put(clk);
+err_clk_get:
+
+	devres_free(state);
+	return ERR_PTR(ret);
 }
-EXPORT_SYMBOL(devm_clk_get);
 
-struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+struct clk *devm_clk_get(struct device *dev, const char *id)
 {
-	struct clk *clk = devm_clk_get(dev, id);
+	return __devm_clk_get(dev, id, clk_get, NULL, NULL);
 
-	if (clk == ERR_PTR(-ENOENT))
-		return NULL;
+}
+EXPORT_SYMBOL(devm_clk_get);
 
-	return clk;
+struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get_optional, NULL, NULL);
 }
 EXPORT_SYMBOL(devm_clk_get_optional);
 
-- 
2.35.1


WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: "Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Russell King" <linux@armlinux.org.uk>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Jean Delvare" <jdelvare@suse.com>,
	"Guenter Roeck" <linux@roeck-us.net>,
	"Lars Povlsen" <lars.povlsen@microchip.com>,
	"Steen Hegelund" <Steen.Hegelund@microchip.com>,
	UNGLinuxDriver@microchip.com, linux-hwmon@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Michael Hennerich" <Michael.Hennerich@analog.com>,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Matt Mackall" <mpm@selenic.com>,
	"Herbert Xu" <herbert@gondor.apana.org.au>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Bartosz Golaszewski" <brgl@bgdev.pl>,
	"Neil Armstrong" <narmstrong@baylibre.com>,
	"David Airlie" <airlied@linux.ie>,
	"Daniel Vetter" <daniel@ffwll.ch>,
	"Kevin Hilman" <khilman@baylibre.com>,
	"Jerome Brunet" <jbrunet@baylibre.com>,
	"Martin Blumenstingl" <martin.blumenstingl@googlemail.com>,
	"Paul Cercueil" <paul@crapouillou.net>,
	"Alessandro Zummo" <a.zummo@towertech.it>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Wim Van Sebroeck" <wim@linux-watchdog.org>,
	"Claudiu Beznea" <claudiu.beznea@microchip.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Oleksij Rempel" <linux@rempel-privat.de>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Fabio Estevam" <festevam@gmail.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Vinod Koul" <vkoul@kernel.org>
Cc: linux-clk@vger.kernel.org, kernel@pengutronix.de,
	"Vladimir Zapolskiy" <vz@mleia.com>,
	"Heiko Stuebner" <heiko@sntech.de>,
	"Tomislav Denis" <tomislav.denis@avl.com>,
	"Anand Ashok Dumbre" <anand.ashok.dumbre@xilinx.com>,
	"Michal Simek" <michal.simek@xilinx.com>,
	"André Gustavo Nakagomi Lopez" <andregnl@usp.br>,
	"Cai Huoqing" <caihuoqing@baidu.com>,
	linux-iio@vger.kernel.org, linux-crypto@vger.kernel.org,
	linux-amlogic@lists.infradead.org, linux-gpio@vger.kernel.org,
	dri-devel@lists.freedesktop.org, linux-mips@vger.kernel.org,
	linux-rtc@vger.kernel.org,
	"Keguang Zhang" <keguang.zhang@gmail.com>,
	"Andy Gross" <agross@kernel.org>,
	"Bjorn Andersson" <bjorn.andersson@linaro.org>,
	"Patrice Chotard" <patrice.chotard@foss.st.com>,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
	"Nobuhiro Iwamatsu" <nobuhiro1.iwamatsu@toshiba.co.jp>,
	linux-watchdog@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-stm32@st-md-mailman.stormreply.com,
	linux-pwm@vger.kernel.org, linux-i2c@vger.kernel.org,
	linux-spi@vger.kernel.org,
	"Amireddy Mallikarjuna reddy"
	<mallikarjunax.reddy@linux.intel.com>,
	dmaengine@vger.kernel.org,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"Alexandru Ardelean" <aardelean@deviqon.com>
Subject: [PATCH v8 01/16] clk: generalize devm_clk_get() a bit
Date: Mon, 14 Mar 2022 15:16:28 +0100	[thread overview]
Message-ID: <20220314141643.22184-2-u.kleine-koenig@pengutronix.de> (raw)
In-Reply-To: <20220314141643.22184-1-u.kleine-koenig@pengutronix.de>

Allow to add an exit hook to devm managed clocks. Also use
clk_get_optional() in devm_clk_get_optional instead of open coding it.
The generalisation will be used in the next commit to add some more
devm_clk helpers.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Alexandru Ardelean <aardelean@deviqon.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 drivers/clk/clk-devres.c | 67 ++++++++++++++++++++++++++++++----------
 1 file changed, 50 insertions(+), 17 deletions(-)

diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
index f9d5b7334341..fb7761888b30 100644
--- a/drivers/clk/clk-devres.c
+++ b/drivers/clk/clk-devres.c
@@ -4,39 +4,72 @@
 #include <linux/export.h>
 #include <linux/gfp.h>
 
+struct devm_clk_state {
+	struct clk *clk;
+	void (*exit)(struct clk *clk);
+};
+
 static void devm_clk_release(struct device *dev, void *res)
 {
-	clk_put(*(struct clk **)res);
+	struct devm_clk_state *state = *(struct devm_clk_state **)res;
+
+	if (state->exit)
+		state->exit(state->clk);
+
+	clk_put(state->clk);
 }
 
-struct clk *devm_clk_get(struct device *dev, const char *id)
+static struct clk *__devm_clk_get(struct device *dev, const char *id,
+				  struct clk *(*get)(struct device *dev, const char *id),
+				  int (*init)(struct clk *clk),
+				  void (*exit)(struct clk *clk))
 {
-	struct clk **ptr, *clk;
+	struct devm_clk_state *state;
+	struct clk *clk;
+	int ret;
 
-	ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
-	if (!ptr)
+	state = devres_alloc(devm_clk_release, sizeof(*state), GFP_KERNEL);
+	if (!state)
 		return ERR_PTR(-ENOMEM);
 
-	clk = clk_get(dev, id);
-	if (!IS_ERR(clk)) {
-		*ptr = clk;
-		devres_add(dev, ptr);
-	} else {
-		devres_free(ptr);
+	clk = get(dev, id);
+	if (IS_ERR(clk)) {
+		ret = PTR_ERR(clk);
+		goto err_clk_get;
 	}
 
+	if (init) {
+		ret = init(clk);
+		if (ret)
+			goto err_clk_init;
+	}
+
+	state->clk = clk;
+	state->exit = exit;
+
+	devres_add(dev, state);
+
 	return clk;
+
+err_clk_init:
+
+	clk_put(clk);
+err_clk_get:
+
+	devres_free(state);
+	return ERR_PTR(ret);
 }
-EXPORT_SYMBOL(devm_clk_get);
 
-struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+struct clk *devm_clk_get(struct device *dev, const char *id)
 {
-	struct clk *clk = devm_clk_get(dev, id);
+	return __devm_clk_get(dev, id, clk_get, NULL, NULL);
 
-	if (clk == ERR_PTR(-ENOENT))
-		return NULL;
+}
+EXPORT_SYMBOL(devm_clk_get);
 
-	return clk;
+struct clk *devm_clk_get_optional(struct device *dev, const char *id)
+{
+	return __devm_clk_get(dev, id, clk_get_optional, NULL, NULL);
 }
 EXPORT_SYMBOL(devm_clk_get_optional);
 
-- 
2.35.1


_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic

  reply	other threads:[~2022-03-14 14:17 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14 14:16 [PATCH v8 00/16] clk: provide new devm helpers for prepared and enabled clocks Uwe Kleine-König
2022-03-14 14:16 ` Uwe Kleine-König
2022-03-14 14:16 ` Uwe Kleine-König
2022-03-14 14:16 ` Uwe Kleine-König [this message]
2022-03-14 14:16   ` [PATCH v8 01/16] clk: generalize devm_clk_get() a bit Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-06-21 19:57   ` Jon Hunter
2022-06-21 19:57     ` Jon Hunter
2022-06-21 19:57     ` Jon Hunter
2022-06-21 20:49     ` Uwe Kleine-König
2022-06-21 20:49       ` Uwe Kleine-König
2022-06-21 20:49       ` Uwe Kleine-König
2022-06-22 10:36       ` Andy Shevchenko
2022-06-22 10:36         ` Andy Shevchenko
2022-06-22 10:36         ` Andy Shevchenko
2022-06-22 11:14         ` Neil Armstrong
2022-06-22 11:14           ` Neil Armstrong
2022-06-22 11:14           ` Neil Armstrong
2022-06-22 15:28       ` Jon Hunter
2022-06-22 15:28         ` Jon Hunter
2022-06-22 15:28         ` Jon Hunter
2022-03-14 14:16 ` [PATCH v8 02/16] clk: Provide new devm_clk helpers for prepared and enabled clocks Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-19 18:29   ` Jonathan Cameron
2022-03-19 18:29     ` Jonathan Cameron
2022-03-19 18:29     ` Jonathan Cameron
2022-03-21  7:22     ` Uwe Kleine-König
2022-03-21  7:22       ` Uwe Kleine-König
2022-03-21  7:22       ` Uwe Kleine-König
2022-05-19 23:45   ` Stephen Boyd
2022-03-14 14:16 ` [PATCH v8 03/16] hwmon: Make use of devm_clk_get_enabled() Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-15 23:26   ` Guenter Roeck
2022-03-15 23:26     ` Guenter Roeck
2022-03-15 23:26     ` Guenter Roeck
2022-03-14 14:16 ` [PATCH v8 04/16] iio: " Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 15:01   ` Sa, Nuno
2022-03-14 15:01     ` Sa, Nuno
2022-03-19 18:22   ` Jonathan Cameron
2022-03-19 18:22     ` Jonathan Cameron
2022-03-21  7:41     ` Uwe Kleine-König
2022-03-21  7:41       ` Uwe Kleine-König
2022-03-22 20:34       ` Jonathan Cameron
2022-03-22 20:34         ` Jonathan Cameron
2022-03-14 14:16 ` [PATCH v8 05/16] hwrng: meson - Don't open-code devm_clk_get_optional_enabled() Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-16  8:32   ` Neil Armstrong
2022-03-16  8:32     ` Neil Armstrong
2022-03-16  8:32     ` Neil Armstrong
2022-03-14 14:16 ` [PATCH v8 06/16] bus: bt1: Don't open code devm_clk_get_enabled() Uwe Kleine-König
2022-03-14 14:16 ` [PATCH v8 07/16] gpio: vf610: Simplify error handling in probe Uwe Kleine-König
2022-03-14 15:01   ` Bartosz Golaszewski
2022-03-14 14:16 ` [PATCH v8 08/16] drm/meson: dw-hdmi: Don't open code devm_clk_get_enabled() Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-16  8:33   ` Neil Armstrong
2022-03-16  8:33     ` Neil Armstrong
2022-03-16  8:33     ` Neil Armstrong
2022-03-16  8:33     ` Neil Armstrong
2022-03-14 14:16 ` [PATCH v8 09/16] rtc: ingenic: Simplify using devm_clk_get_enabled() Uwe Kleine-König
2022-03-15 22:47   ` Paul Cercueil
2022-03-14 14:16 ` [PATCH v8 10/16] clk: meson: axg-audio: Don't duplicate devm_clk_get_enabled() Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16 ` [PATCH v8 11/16] watchdog: Make use of devm_clk_get_enabled() Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-16  1:29   ` Guenter Roeck
2022-03-16  1:29     ` Guenter Roeck
2022-03-16  1:29     ` Guenter Roeck
2022-03-14 14:16 ` [PATCH v8 12/16] pwm: atmel: Simplify using devm_clk_get_prepared() Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-15  9:33   ` Claudiu.Beznea
2022-03-15  9:33     ` Claudiu.Beznea
2022-03-14 14:16 ` [PATCH v8 13/16] rtc: at91sam9: Simplify using devm_clk_get_enabled() Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16 ` [PATCH v8 14/16] i2c: imx: " Uwe Kleine-König
2022-03-14 14:16   ` Uwe Kleine-König
2022-03-14 14:16 ` [PATCH v8 15/16] spi: davinci: " Uwe Kleine-König
2022-03-14 14:16 ` [PATCH v8 16/16] dmaengine: lgm: Fix error handling Uwe Kleine-König
2022-03-15 18:03 ` [PATCH v8 00/16] clk: provide new devm helpers for prepared and enabled clocks Andy Shevchenko
2022-03-15 18:03   ` Andy Shevchenko
2022-03-15 18:03   ` Andy Shevchenko

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=20220314141643.22184-2-u.kleine-koenig@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=Michael.Hennerich@analog.com \
    --cc=Steen.Hegelund@microchip.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=a.zummo@towertech.it \
    --cc=aardelean@deviqon.com \
    --cc=agross@kernel.org \
    --cc=airlied@linux.ie \
    --cc=alexandre.belloni@bootlin.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=anand.ashok.dumbre@xilinx.com \
    --cc=andregnl@usp.br \
    --cc=bjorn.andersson@linaro.org \
    --cc=brgl@bgdev.pl \
    --cc=broonie@kernel.org \
    --cc=caihuoqing@baidu.com \
    --cc=claudiu.beznea@microchip.com \
    --cc=daniel@ffwll.ch \
    --cc=dmaengine@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=festevam@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=jbrunet@baylibre.com \
    --cc=jdelvare@suse.com \
    --cc=jic23@kernel.org \
    --cc=keguang.zhang@gmail.com \
    --cc=kernel@pengutronix.de \
    --cc=khilman@baylibre.com \
    --cc=lars.povlsen@microchip.com \
    --cc=lars@metafoo.de \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-pwm@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=linux@rempel-privat.de \
    --cc=linux@roeck-us.net \
    --cc=mallikarjunax.reddy@linux.intel.com \
    --cc=martin.blumenstingl@googlemail.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=michal.simek@xilinx.com \
    --cc=mpm@selenic.com \
    --cc=mturquette@baylibre.com \
    --cc=narmstrong@baylibre.com \
    --cc=nicolas.ferre@microchip.com \
    --cc=nobuhiro1.iwamatsu@toshiba.co.jp \
    --cc=nuno.sa@analog.com \
    --cc=patrice.chotard@foss.st.com \
    --cc=paul@crapouillou.net \
    --cc=sboyd@kernel.org \
    --cc=shawnguo@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=tomislav.denis@avl.com \
    --cc=vkoul@kernel.org \
    --cc=vz@mleia.com \
    --cc=wim@linux-watchdog.org \
    /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.