[PATCH] ASoC: ti: osk5912: Make it CCF clk API compatible
The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not supported by OMAP1 custom implementation of clock API. However, non-CCF stubs of those functions exist for use on such platforms until converted to CCF.
Update the driver to be compatible with CCF implementation of clock API.
Signed-off-by: Janusz Krzysztofik jmkrzyszt@gmail.com --- sound/soc/ti/osk5912.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/sound/soc/ti/osk5912.c b/sound/soc/ti/osk5912.c index 40e29dda7e7a..22da3b335e81 100644 --- a/sound/soc/ti/osk5912.c +++ b/sound/soc/ti/osk5912.c @@ -134,6 +134,10 @@ static int __init osk_soc_init(void) goto err2; }
+ err = clk_prepare(tlv320aic23_mclk); + if (err) + goto err3; + /* * Configure 12 MHz output on MCLK. */ @@ -142,7 +146,7 @@ static int __init osk_soc_init(void) if (clk_set_rate(tlv320aic23_mclk, CODEC_CLOCK)) { printk(KERN_ERR "Cannot set MCLK for AIC23 CODEC\n"); err = -ECANCELED; - goto err3; + goto err4; } }
@@ -151,6 +155,8 @@ static int __init osk_soc_init(void)
return 0;
+err4: + clk_unprepare(tlv320aic23_mclk); err3: clk_put(tlv320aic23_mclk); err2: @@ -164,6 +170,7 @@ static int __init osk_soc_init(void)
static void __exit osk_soc_exit(void) { + clk_unprepare(tlv320aic23_mclk); clk_put(tlv320aic23_mclk); platform_device_unregister(osk_snd_device); }
Hi Janusz,
On 02/04/2022 15:01, Janusz Krzysztofik wrote:
The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not supported by OMAP1 custom implementation of clock API. However, non-CCF stubs of those functions exist for use on such platforms until converted to CCF.
Update the driver to be compatible with CCF implementation of clock API.
Signed-off-by: Janusz Krzysztofik jmkrzyszt@gmail.com
sound/soc/ti/osk5912.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/sound/soc/ti/osk5912.c b/sound/soc/ti/osk5912.c index 40e29dda7e7a..22da3b335e81 100644 --- a/sound/soc/ti/osk5912.c +++ b/sound/soc/ti/osk5912.c @@ -134,6 +134,10 @@ static int __init osk_soc_init(void) goto err2; }
- err = clk_prepare(tlv320aic23_mclk);
would not make sense to change the clk_enable() to clk_prepare_enable() in osk_startup() and the clk_disable() to clk_disable_unprepare() in osk_shutdown() instead leaving the clock in prepared state as long as the driver is loaded?
- if (err)
goto err3;
- /*
*/
- Configure 12 MHz output on MCLK.
@@ -142,7 +146,7 @@ static int __init osk_soc_init(void) if (clk_set_rate(tlv320aic23_mclk, CODEC_CLOCK)) { printk(KERN_ERR "Cannot set MCLK for AIC23 CODEC\n"); err = -ECANCELED;
goto err3;
} }goto err4;
@@ -151,6 +155,8 @@ static int __init osk_soc_init(void)
return 0;
+err4:
- clk_unprepare(tlv320aic23_mclk);
err3: clk_put(tlv320aic23_mclk); err2: @@ -164,6 +170,7 @@ static int __init osk_soc_init(void)
static void __exit osk_soc_exit(void) {
- clk_unprepare(tlv320aic23_mclk); clk_put(tlv320aic23_mclk); platform_device_unregister(osk_snd_device);
}
Hi Peter,
On Wednesday, 6 April 2022 21:57:34 CEST Péter Ujfalusi wrote:
Hi Janusz,
On 02/04/2022 15:01, Janusz Krzysztofik wrote:
The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not supported by OMAP1 custom implementation of clock API. However, non-CCF stubs of those functions exist for use on such platforms until converted to CCF.
Update the driver to be compatible with CCF implementation of clock API.
Signed-off-by: Janusz Krzysztofik jmkrzyszt@gmail.com
sound/soc/ti/osk5912.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/sound/soc/ti/osk5912.c b/sound/soc/ti/osk5912.c index 40e29dda7e7a..22da3b335e81 100644 --- a/sound/soc/ti/osk5912.c +++ b/sound/soc/ti/osk5912.c @@ -134,6 +134,10 @@ static int __init osk_soc_init(void) goto err2; }
- err = clk_prepare(tlv320aic23_mclk);
would not make sense to change the clk_enable() to clk_prepare_enable() in osk_startup() and the clk_disable() to clk_disable_unprepare() in osk_shutdown() instead leaving the clock in prepared state as long as the driver is loaded?
OK, I can see the clk_prepare_enable() approach is more common than separate clk_prepare() across the kernel code, and I have no arguments against it in our case. I'll submit v2 soon.
Thanks, Janusz
- if (err)
goto err3;
- /*
*/
- Configure 12 MHz output on MCLK.
@@ -142,7 +146,7 @@ static int __init osk_soc_init(void) if (clk_set_rate(tlv320aic23_mclk, CODEC_CLOCK)) { printk(KERN_ERR "Cannot set MCLK for AIC23 CODEC\n"); err = -ECANCELED;
goto err3;
} }goto err4;
@@ -151,6 +155,8 @@ static int __init osk_soc_init(void)
return 0;
+err4:
- clk_unprepare(tlv320aic23_mclk);
err3: clk_put(tlv320aic23_mclk); err2: @@ -164,6 +170,7 @@ static int __init osk_soc_init(void)
static void __exit osk_soc_exit(void) {
- clk_unprepare(tlv320aic23_mclk); clk_put(tlv320aic23_mclk); platform_device_unregister(osk_snd_device);
}
The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not supported by OMAP1 custom implementation of clock API. However, non-CCF stubs of those functions exist for use on such platforms until converted to CCF.
Update the driver to be compatible with CCF implementation of clock API.
v2: use clk_prepare_enable/clk_disable_unprepare() (Peter)
Signed-off-by: Janusz Krzysztofik jmkrzyszt@gmail.com --- sound/soc/ti/osk5912.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/ti/osk5912.c b/sound/soc/ti/osk5912.c index 40e29dda7e7a..2790c8915f55 100644 --- a/sound/soc/ti/osk5912.c +++ b/sound/soc/ti/osk5912.c @@ -27,12 +27,12 @@ static struct clk *tlv320aic23_mclk;
static int osk_startup(struct snd_pcm_substream *substream) { - return clk_enable(tlv320aic23_mclk); + return clk_prepare_enable(tlv320aic23_mclk); }
static void osk_shutdown(struct snd_pcm_substream *substream) { - clk_disable(tlv320aic23_mclk); + clk_disable_unprepare(tlv320aic23_mclk); }
static int osk_hw_params(struct snd_pcm_substream *substream,
On 07/04/2022 22:12, Janusz Krzysztofik wrote:
The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not supported by OMAP1 custom implementation of clock API. However, non-CCF stubs of those functions exist for use on such platforms until converted to CCF.
Update the driver to be compatible with CCF implementation of clock API.
v2: use clk_prepare_enable/clk_disable_unprepare() (Peter)
Does the changelogn needs to be in the commit message?
I almost missed the V2 as it came as a reply to a thread ;)
Other than the nitpick with the changlog placement:
Looks good but I can not test it, Acked-by: Peter Ujfalusi peter.ujfalusi@gmail.com
Signed-off-by: Janusz Krzysztofik jmkrzyszt@gmail.com
sound/soc/ti/osk5912.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/ti/osk5912.c b/sound/soc/ti/osk5912.c index 40e29dda7e7a..2790c8915f55 100644 --- a/sound/soc/ti/osk5912.c +++ b/sound/soc/ti/osk5912.c @@ -27,12 +27,12 @@ static struct clk *tlv320aic23_mclk;
static int osk_startup(struct snd_pcm_substream *substream) {
- return clk_enable(tlv320aic23_mclk);
- return clk_prepare_enable(tlv320aic23_mclk);
}
static void osk_shutdown(struct snd_pcm_substream *substream) {
- clk_disable(tlv320aic23_mclk);
- clk_disable_unprepare(tlv320aic23_mclk);
}
static int osk_hw_params(struct snd_pcm_substream *substream,
On Thu, 7 Apr 2022 21:12:02 +0200, Janusz Krzysztofik wrote:
The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not supported by OMAP1 custom implementation of clock API. However, non-CCF stubs of those functions exist for use on such platforms until converted to CCF.
Update the driver to be compatible with CCF implementation of clock API.
[...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: ti: osk5912: Make it CCF clk API compatible commit: 90b76a3cb9bf208286851560cfc70830c91c1d3f
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
On Sat, 2 Apr 2022 14:01:06 +0200, Janusz Krzysztofik wrote:
The driver, OMAP1 specific, now omits clk_prepare/unprepare() steps, not supported by OMAP1 custom implementation of clock API. However, non-CCF stubs of those functions exist for use on such platforms until converted to CCF.
Update the driver to be compatible with CCF implementation of clock API.
[...]
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
Thanks!
[1/1] ASoC: ti: osk5912: Make it CCF clk API compatible commit: 90b76a3cb9bf208286851560cfc70830c91c1d3f
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
participants (3)
-
Janusz Krzysztofik
-
Mark Brown
-
Péter Ujfalusi