* [PATCH 0/6] ASoC: codecs: Simplify mclk initialization
@ 2024-02-21 15:25 Cezary Rojewski
2024-02-21 15:25 ` [PATCH 1/6] ASoC: codecs: da7213: " Cezary Rojewski
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Cezary Rojewski @ 2024-02-21 15:25 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede, Cezary Rojewski
The patchset may not cover all codecs found in the codecs/ directory -
noticed a possible improvement and grepped for similar pattern across C
files found in the directory. Those addressed here seem pretty
straightforward.
Most of clk_xxx() functions do check if provided clk-pointer is
non-NULL. These do not check if the pointer is an error-pointer.
Providing such to a clk_xxx() results in a panic.
By utilizing _optional() variant of devm_clk_get() the driver code is
both simplified and more robust. There is no need to remember about
IS_ERR(clk) checks each time mclk is accessed.
Cezary Rojewski (6):
ASoC: codecs: da7213: Simplify mclk initialization
ASoC: codecs: nau8825: Simplify mclk initialization
ASoC: codecs: rt5514: Simplify mclk initialization
ASoC: codecs: rt5616: Simplify mclk initialization
ASoC: codecs: rt5640: Simplify mclk initialization
ASoC: codecs: rt5660: Simplify mclk initialization
sound/soc/codecs/da7213.c | 12 ++++--------
sound/soc/codecs/nau8825.c | 12 ++++--------
sound/soc/codecs/rt5514.c | 9 +++------
sound/soc/codecs/rt5616.c | 9 +++------
sound/soc/codecs/rt5640.c | 9 +++------
sound/soc/codecs/rt5660.c | 9 +++------
6 files changed, 20 insertions(+), 40 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/6] ASoC: codecs: da7213: Simplify mclk initialization
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
@ 2024-02-21 15:25 ` Cezary Rojewski
2024-02-21 15:25 ` [PATCH 2/6] ASoC: codecs: nau8825: " Cezary Rojewski
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Cezary Rojewski @ 2024-02-21 15:25 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede, Cezary Rojewski
Most of clk_xxx() functions do check if provided clk-pointer is
non-NULL. These do not check if the pointer is an error-pointer.
Providing such to a clk_xxx() results in a panic.
By utilizing _optional() variant of devm_clk_get() the driver code is
both simplified and more robust. There is no need to remember about
IS_ERR(clk) checks each time mclk is accessed.
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/codecs/da7213.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/sound/soc/codecs/da7213.c b/sound/soc/codecs/da7213.c
index 0e5c527687a2..369c62078780 100644
--- a/sound/soc/codecs/da7213.c
+++ b/sound/soc/codecs/da7213.c
@@ -2101,18 +2101,14 @@ static int da7213_probe(struct snd_soc_component *component)
pm_runtime_put_sync(component->dev);
/* Check if MCLK provided */
- da7213->mclk = devm_clk_get(component->dev, "mclk");
- if (IS_ERR(da7213->mclk)) {
- if (PTR_ERR(da7213->mclk) != -ENOENT)
- return PTR_ERR(da7213->mclk);
- else
- da7213->mclk = NULL;
- } else {
+ da7213->mclk = devm_clk_get_optional(component->dev, "mclk");
+ if (IS_ERR(da7213->mclk))
+ return PTR_ERR(da7213->mclk);
+ if (da7213->mclk)
/* Do automatic PLL handling assuming fixed clock until
* set_pll() has been called. This makes the codec usable
* with the simple-audio-card driver. */
da7213->fixed_clk_auto_pll = true;
- }
/* Default infinite tone gen, start/stop by Kcontrol */
snd_soc_component_write(component, DA7213_TONE_GEN_CYCLES, DA7213_BEEP_CYCLES_MASK);
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/6] ASoC: codecs: nau8825: Simplify mclk initialization
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
2024-02-21 15:25 ` [PATCH 1/6] ASoC: codecs: da7213: " Cezary Rojewski
@ 2024-02-21 15:25 ` Cezary Rojewski
2024-02-21 15:25 ` [PATCH 3/6] ASoC: codecs: rt5514: " Cezary Rojewski
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Cezary Rojewski @ 2024-02-21 15:25 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede, Cezary Rojewski
Most of clk_xxx() functions do check if provided clk-pointer is
non-NULL. These do not check if the pointer is an error-pointer.
Providing such to a clk_xxx() results in a panic.
By utilizing _optional() variant of devm_clk_get() the driver code is
both simplified and more robust. There is no need to remember about
IS_ERR(clk) checks each time mclk is accessed.
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/codecs/nau8825.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/sound/soc/codecs/nau8825.c b/sound/soc/codecs/nau8825.c
index 5cb0de648bd3..cd30ad649bae 100644
--- a/sound/soc/codecs/nau8825.c
+++ b/sound/soc/codecs/nau8825.c
@@ -2836,16 +2836,12 @@ static int nau8825_read_device_properties(struct device *dev,
if (nau8825->adc_delay < 125 || nau8825->adc_delay > 500)
dev_warn(dev, "Please set the suitable delay time!\n");
- nau8825->mclk = devm_clk_get(dev, "mclk");
- if (PTR_ERR(nau8825->mclk) == -EPROBE_DEFER) {
- return -EPROBE_DEFER;
- } else if (PTR_ERR(nau8825->mclk) == -ENOENT) {
+ nau8825->mclk = devm_clk_get_optional(dev, "mclk");
+ if (IS_ERR(nau8825->mclk))
+ return PTR_ERR(nau8825->mclk);
+ if (!nau8825->mclk)
/* The MCLK is managed externally or not used at all */
- nau8825->mclk = NULL;
dev_info(dev, "No 'mclk' clock found, assume MCLK is managed externally");
- } else if (IS_ERR(nau8825->mclk)) {
- return -EINVAL;
- }
return 0;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/6] ASoC: codecs: rt5514: Simplify mclk initialization
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
2024-02-21 15:25 ` [PATCH 1/6] ASoC: codecs: da7213: " Cezary Rojewski
2024-02-21 15:25 ` [PATCH 2/6] ASoC: codecs: nau8825: " Cezary Rojewski
@ 2024-02-21 15:25 ` Cezary Rojewski
2024-02-21 15:25 ` [PATCH 4/6] ASoC: codecs: rt5616: " Cezary Rojewski
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Cezary Rojewski @ 2024-02-21 15:25 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede, Cezary Rojewski
Most of clk_xxx() functions do check if provided clk-pointer is
non-NULL. These do not check if the pointer is an error-pointer.
Providing such to a clk_xxx() results in a panic.
By utilizing _optional() variant of devm_clk_get() the driver code is
both simplified and more robust. There is no need to remember about
IS_ERR(clk) checks each time mclk is accessed.
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/codecs/rt5514.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/sound/soc/codecs/rt5514.c b/sound/soc/codecs/rt5514.c
index 43fc7814fdde..a8cdc3d6994d 100644
--- a/sound/soc/codecs/rt5514.c
+++ b/sound/soc/codecs/rt5514.c
@@ -1054,9 +1054,6 @@ static int rt5514_set_bias_level(struct snd_soc_component *component,
switch (level) {
case SND_SOC_BIAS_PREPARE:
- if (IS_ERR(rt5514->mclk))
- break;
-
if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_ON) {
clk_disable_unprepare(rt5514->mclk);
} else {
@@ -1097,9 +1094,9 @@ static int rt5514_probe(struct snd_soc_component *component)
struct platform_device *pdev = container_of(component->dev,
struct platform_device, dev);
- rt5514->mclk = devm_clk_get(component->dev, "mclk");
- if (PTR_ERR(rt5514->mclk) == -EPROBE_DEFER)
- return -EPROBE_DEFER;
+ rt5514->mclk = devm_clk_get_optional(component->dev, "mclk");
+ if (IS_ERR(rt5514->mclk))
+ return PTR_ERR(rt5514->mclk);
if (rt5514->pdata.dsp_calib_clk_name) {
rt5514->dsp_calib_clk = devm_clk_get(&pdev->dev,
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/6] ASoC: codecs: rt5616: Simplify mclk initialization
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
` (2 preceding siblings ...)
2024-02-21 15:25 ` [PATCH 3/6] ASoC: codecs: rt5514: " Cezary Rojewski
@ 2024-02-21 15:25 ` Cezary Rojewski
2024-02-21 15:25 ` [PATCH 5/6] ASoC: codecs: rt5640: " Cezary Rojewski
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Cezary Rojewski @ 2024-02-21 15:25 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede, Cezary Rojewski
Most of clk_xxx() functions do check if provided clk-pointer is
non-NULL. These do not check if the pointer is an error-pointer.
Providing such to a clk_xxx() results in a panic.
By utilizing _optional() variant of devm_clk_get() the driver code is
both simplified and more robust. There is no need to remember about
IS_ERR(clk) checks each time mclk is accessed.
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/codecs/rt5616.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/sound/soc/codecs/rt5616.c b/sound/soc/codecs/rt5616.c
index c13108b51eaf..e7aa60e73961 100644
--- a/sound/soc/codecs/rt5616.c
+++ b/sound/soc/codecs/rt5616.c
@@ -1174,9 +1174,6 @@ static int rt5616_set_bias_level(struct snd_soc_component *component,
* away from ON. Disable the clock in that case, otherwise
* enable it.
*/
- if (IS_ERR(rt5616->mclk))
- break;
-
if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_ON) {
clk_disable_unprepare(rt5616->mclk);
} else {
@@ -1225,9 +1222,9 @@ static int rt5616_probe(struct snd_soc_component *component)
struct rt5616_priv *rt5616 = snd_soc_component_get_drvdata(component);
/* Check if MCLK provided */
- rt5616->mclk = devm_clk_get(component->dev, "mclk");
- if (PTR_ERR(rt5616->mclk) == -EPROBE_DEFER)
- return -EPROBE_DEFER;
+ rt5616->mclk = devm_clk_get_optional(component->dev, "mclk");
+ if (IS_ERR(rt5616->mclk))
+ return PTR_ERR(rt5616->mclk);
rt5616->component = component;
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/6] ASoC: codecs: rt5640: Simplify mclk initialization
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
` (3 preceding siblings ...)
2024-02-21 15:25 ` [PATCH 4/6] ASoC: codecs: rt5616: " Cezary Rojewski
@ 2024-02-21 15:25 ` Cezary Rojewski
2024-02-21 15:25 ` [PATCH 6/6] ASoC: codecs: rt5660: " Cezary Rojewski
2024-02-26 19:28 ` [PATCH 0/6] ASoC: codecs: " Mark Brown
6 siblings, 0 replies; 8+ messages in thread
From: Cezary Rojewski @ 2024-02-21 15:25 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede, Cezary Rojewski
Most of clk_xxx() functions do check if provided clk-pointer is
non-NULL. These do not check if the pointer is an error-pointer.
Providing such to a clk_xxx() results in a panic.
rt5640_set_dai_sysclk() is an example of that - clk_set_rate() is not
guarded by IS_ERR().
By utilizing _optional() variant of devm_clk_get() the driver code is
both simplified and more robust. There is no need to remember about
IS_ERR(clk) checks each time mclk is accessed.
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/codecs/rt5640.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c
index c60894327296..c579ead0deec 100644
--- a/sound/soc/codecs/rt5640.c
+++ b/sound/soc/codecs/rt5640.c
@@ -1949,9 +1949,6 @@ static int rt5640_set_bias_level(struct snd_soc_component *component,
* away from ON. Disable the clock in that case, otherwise
* enable it.
*/
- if (IS_ERR(rt5640->mclk))
- break;
-
if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_ON) {
clk_disable_unprepare(rt5640->mclk);
} else {
@@ -2661,9 +2658,9 @@ static int rt5640_probe(struct snd_soc_component *component)
u32 val;
/* Check if MCLK provided */
- rt5640->mclk = devm_clk_get(component->dev, "mclk");
- if (PTR_ERR(rt5640->mclk) == -EPROBE_DEFER)
- return -EPROBE_DEFER;
+ rt5640->mclk = devm_clk_get_optional(component->dev, "mclk");
+ if (IS_ERR(rt5640->mclk))
+ return PTR_ERR(rt5640->mclk);
rt5640->component = component;
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 6/6] ASoC: codecs: rt5660: Simplify mclk initialization
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
` (4 preceding siblings ...)
2024-02-21 15:25 ` [PATCH 5/6] ASoC: codecs: rt5640: " Cezary Rojewski
@ 2024-02-21 15:25 ` Cezary Rojewski
2024-02-26 19:28 ` [PATCH 0/6] ASoC: codecs: " Mark Brown
6 siblings, 0 replies; 8+ messages in thread
From: Cezary Rojewski @ 2024-02-21 15:25 UTC (permalink / raw)
To: broonie
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede, Cezary Rojewski
Most of clk_xxx() functions do check if provided clk-pointer is
non-NULL. These do not check if the pointer is an error-pointer.
Providing such to a clk_xxx() results in a panic.
By utilizing _optional() variant of devm_clk_get() the driver code is
both simplified and more robust. There is no need to remember about
IS_ERR(clk) checks each time mclk is accessed.
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/codecs/rt5660.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/sound/soc/codecs/rt5660.c b/sound/soc/codecs/rt5660.c
index 0cecfd602415..d5c2f0f2df98 100644
--- a/sound/soc/codecs/rt5660.c
+++ b/sound/soc/codecs/rt5660.c
@@ -1079,9 +1079,6 @@ static int rt5660_set_bias_level(struct snd_soc_component *component,
snd_soc_component_update_bits(component, RT5660_GEN_CTRL1,
RT5660_DIG_GATE_CTRL, RT5660_DIG_GATE_CTRL);
- if (IS_ERR(rt5660->mclk))
- break;
-
if (snd_soc_component_get_bias_level(component) == SND_SOC_BIAS_ON) {
clk_disable_unprepare(rt5660->mclk);
} else {
@@ -1277,9 +1274,9 @@ static int rt5660_i2c_probe(struct i2c_client *i2c)
return -ENOMEM;
/* Check if MCLK provided */
- rt5660->mclk = devm_clk_get(&i2c->dev, "mclk");
- if (PTR_ERR(rt5660->mclk) == -EPROBE_DEFER)
- return -EPROBE_DEFER;
+ rt5660->mclk = devm_clk_get_optional(&i2c->dev, "mclk");
+ if (IS_ERR(rt5660->mclk))
+ return PTR_ERR(rt5660->mclk);
i2c_set_clientdata(i2c, rt5660);
--
2.25.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/6] ASoC: codecs: Simplify mclk initialization
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
` (5 preceding siblings ...)
2024-02-21 15:25 ` [PATCH 6/6] ASoC: codecs: rt5660: " Cezary Rojewski
@ 2024-02-26 19:28 ` Mark Brown
6 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2024-02-26 19:28 UTC (permalink / raw)
To: Cezary Rojewski
Cc: alsa-devel, linux-sound, tiwai, perex, amadeuszx.slawinski,
pierre-louis.bossart, hdegoede
On Wed, 21 Feb 2024 16:25:10 +0100, Cezary Rojewski wrote:
> The patchset may not cover all codecs found in the codecs/ directory -
> noticed a possible improvement and grepped for similar pattern across C
> files found in the directory. Those addressed here seem pretty
> straightforward.
>
> Most of clk_xxx() functions do check if provided clk-pointer is
> non-NULL. These do not check if the pointer is an error-pointer.
> Providing such to a clk_xxx() results in a panic.
>
> [...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/6] ASoC: codecs: da7213: Simplify mclk initialization
commit: e2cb72d28740516cb03fa072e14b2f1a6eceef61
[2/6] ASoC: codecs: nau8825: Simplify mclk initialization
commit: 71d322fd16a3a62d32a9e6a8d08f48e8a945a515
[3/6] ASoC: codecs: rt5514: Simplify mclk initialization
commit: 67e9bf093372a070f67f85a6ffceb6a44d4cfcf4
[4/6] ASoC: codecs: rt5616: Simplify mclk initialization
commit: f76de61ad1eb725cc05727377ccd4adda336b822
[5/6] ASoC: codecs: rt5640: Simplify mclk initialization
commit: 6413849b678b04e30b5c938e344e653c31a5f73b
[6/6] ASoC: codecs: rt5660: Simplify mclk initialization
commit: bf900c85f8a4ef47b868b6345879e35826a4fec1
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-02-26 19:28 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-21 15:25 [PATCH 0/6] ASoC: codecs: Simplify mclk initialization Cezary Rojewski
2024-02-21 15:25 ` [PATCH 1/6] ASoC: codecs: da7213: " Cezary Rojewski
2024-02-21 15:25 ` [PATCH 2/6] ASoC: codecs: nau8825: " Cezary Rojewski
2024-02-21 15:25 ` [PATCH 3/6] ASoC: codecs: rt5514: " Cezary Rojewski
2024-02-21 15:25 ` [PATCH 4/6] ASoC: codecs: rt5616: " Cezary Rojewski
2024-02-21 15:25 ` [PATCH 5/6] ASoC: codecs: rt5640: " Cezary Rojewski
2024-02-21 15:25 ` [PATCH 6/6] ASoC: codecs: rt5660: " Cezary Rojewski
2024-02-26 19:28 ` [PATCH 0/6] ASoC: codecs: " Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox