diff mbox series

ASoC: max98373: Added 10ms delay after amp software reset

Message ID 20180823001519.20056-1-ryans.lee@maximintegrated.com (mailing list archive)
State New, archived
Headers show
Series ASoC: max98373: Added 10ms delay after amp software reset | expand

Commit Message

Ryan Lee Aug. 23, 2018, 12:15 a.m. UTC
Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com>
---
 Changes : Applied 10ms delay after amp software reset.
           10ms guard time is required for stability.
 sound/soc/codecs/max98373.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Dmitry Torokhov Aug. 23, 2018, 12:31 a.m. UTC | #1
On Wed, Aug 22, 2018 at 5:21 PM Ryan Lee <ryans.lee@maximintegrated.com> wrote:
>
> Signed-off-by: Ryan Lee <ryans.lee@maximintegrated.com>
> ---
>  Changes : Applied 10ms delay after amp software reset.
>            10ms guard time is required for stability.
>  sound/soc/codecs/max98373.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/sound/soc/codecs/max98373.c b/sound/soc/codecs/max98373.c
> index 2764fae..6aaff03 100644
> --- a/sound/soc/codecs/max98373.c
> +++ b/sound/soc/codecs/max98373.c
> @@ -730,6 +730,7 @@ static int max98373_probe(struct snd_soc_component *component)
>         /* Software Reset */
>         regmap_write(max98373->regmap,
>                 MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET);
> +       mdelay(10);

Is it really necessary for the CPU to spin for 10msec here?
usleep_range() would be better solution.

>
>         /* IV default slot configuration */
>         regmap_write(max98373->regmap,
> @@ -818,6 +819,7 @@ static int max98373_resume(struct device *dev)
>
>         regmap_write(max98373->regmap,
>                 MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET);
> +       mdelay(10);
>         regcache_cache_only(max98373->regmap, false);
>         regcache_sync(max98373->regmap);
>         return 0;
> --
> 2.7.4
>

Thanks.
Mark Brown Aug. 23, 2018, 9:51 a.m. UTC | #2
On Wed, Aug 22, 2018 at 05:31:04PM -0700, Dmitry Torokhov wrote:
> On Wed, Aug 22, 2018 at 5:21 PM Ryan Lee <ryans.lee@maximintegrated.com> wrote:
> > +       mdelay(10);

> Is it really necessary for the CPU to spin for 10msec here?
> usleep_range() would be better solution.

Or msleep() for that matter, it's not going ot be the end of the world
if we delay a bit too long.
Dmitry Torokhov Aug. 24, 2018, 12:08 a.m. UTC | #3
On Thu, Aug 23, 2018 at 10:51:07AM +0100, Mark Brown wrote:
> On Wed, Aug 22, 2018 at 05:31:04PM -0700, Dmitry Torokhov wrote:
> > On Wed, Aug 22, 2018 at 5:21 PM Ryan Lee <ryans.lee@maximintegrated.com> wrote:
> > > +       mdelay(10);
> 
> > Is it really necessary for the CPU to spin for 10msec here?
> > usleep_range() would be better solution.
> 
> Or msleep() for that matter, it's not going ot be the end of the world
> if we delay a bit too long.

Frankly, I'd rather we did not introduce extra delays. I do not know if
we use this part, but on ChromeOS we are interested in shaving as much
from the boot time as possible and 10 msecs here and 10 msecs there do
add up.

Thanks.
Ryan Lee Aug. 24, 2018, 1 a.m. UTC | #4
>-----Original Message-----
>From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
>Sent: Thursday, August 23, 2018 5:08 PM
>To: Mark Brown <broonie@kernel.org>
>Cc: Ryan Lee <RyanS.Lee@maximintegrated.com>; Liam Girdwood
><lgirdwood@gmail.com>; Jaroslav Kysela <perex@perex.cz>; Takashi Iwai
><tiwai@suse.com>; Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>;
>alsa-devel@alsa-project.org; lkml <linux-kernel@vger.kernel.org>;
>ryan.lee.maxim@gmail.com
>Subject: Re: [PATCH] ASoC: max98373: Added 10ms delay after amp software
>reset
>
>EXTERNAL EMAIL
>
>
>
>On Thu, Aug 23, 2018 at 10:51:07AM +0100, Mark Brown wrote:
>> On Wed, Aug 22, 2018 at 05:31:04PM -0700, Dmitry Torokhov wrote:
>> > On Wed, Aug 22, 2018 at 5:21 PM Ryan Lee
><ryans.lee@maximintegrated.com> wrote:
>> > > +       mdelay(10);
>>
>> > Is it really necessary for the CPU to spin for 10msec here?
>> > usleep_range() would be better solution.
>>
>> Or msleep() for that matter, it's not going ot be the end of the world
>> if we delay a bit too long.
>
>Frankly, I'd rather we did not introduce extra delays. I do not know if we use
>this part, but on ChromeOS we are interested in shaving as much from the boot
>time as possible and 10 msecs here and 10 msecs there do add up.

Thanks for all your feedback.
Let me apply usleep_range() or msleep() instead of using mdelay().

>
>Thanks.
>
>--
>Dmitry
diff mbox series

Patch

diff --git a/sound/soc/codecs/max98373.c b/sound/soc/codecs/max98373.c
index 2764fae..6aaff03 100644
--- a/sound/soc/codecs/max98373.c
+++ b/sound/soc/codecs/max98373.c
@@ -730,6 +730,7 @@  static int max98373_probe(struct snd_soc_component *component)
 	/* Software Reset */
 	regmap_write(max98373->regmap,
 		MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET);
+	mdelay(10);
 
 	/* IV default slot configuration */
 	regmap_write(max98373->regmap,
@@ -818,6 +819,7 @@  static int max98373_resume(struct device *dev)
 
 	regmap_write(max98373->regmap,
 		MAX98373_R2000_SW_RESET, MAX98373_SOFT_RESET);
+	mdelay(10);
 	regcache_cache_only(max98373->regmap, false);
 	regcache_sync(max98373->regmap);
 	return 0;