Re: [PATCH] ASoC: ti: osk5912: Make it CCF clk API compatible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
> > ---
> >  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);
> >  }
> 
> 








[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux