linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: lrg@ti.com (Liam Girdwood)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/1] ASoC: mxs-saif: clear clk gate first before register setting
Date: Mon, 22 Aug 2011 11:28:44 +0100	[thread overview]
Message-ID: <4E522F5C.7040301@ti.com> (raw)
In-Reply-To: <1313941540-20393-1-git-send-email-b29396@freescale.com>

On 21/08/11 16:45, Dong Aisheng wrote:
> Saif needs clear clk gate first before writing registers or the write
> will not success.
> 
> The original xx_get_mclk function clear clk gate after mclk setting
> that may cause the former mclk setting unwork, then the real output
> mclk maybe inaccurate.
> Placing the clear before setting mclk to avoid such an issue.
> 
> We also have to clear clk gate in startup instead of in prepare function.
> 
> Signed-off-by: Dong Aisheng <b29396@freescale.com>
> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
> Cc: Liam Girdwood <lrg@ti.com>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Wolfram Sang <w.sang@pengutronix.de>
> ---
>  sound/soc/mxs/mxs-saif.c |   22 ++++++++++++----------
>  1 files changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c
> index 0b3adae..530017f 100644
> --- a/sound/soc/mxs/mxs-saif.c
> +++ b/sound/soc/mxs/mxs-saif.c
> @@ -187,16 +187,20 @@ int mxs_saif_get_mclk(unsigned int saif_id, unsigned int mclk,
>  	if (!saif)
>  		return -EINVAL;
>  
> +	/* Clear Reset */
> +	__raw_writel(BM_SAIF_CTRL_SFTRST,
> +		saif->base + SAIF_CTRL + MXS_CLR_ADDR);
> +
> +	/* FIXME: need clear clk gate for register r/w */
> +	__raw_writel(BM_SAIF_CTRL_CLKGATE,
> +		saif->base + SAIF_CTRL + MXS_CLR_ADDR);
> +
>  	stat = __raw_readl(saif->base + SAIF_STAT);
>  	if (stat & BM_SAIF_STAT_BUSY) {
>  		dev_err(saif->dev, "error: busy\n");
>  		return -EBUSY;
>  	}
>  
> -	/* Clear Reset */
> -	__raw_writel(BM_SAIF_CTRL_SFTRST,
> -		saif->base + SAIF_CTRL + MXS_CLR_ADDR);
> -
>  	saif->mclk_in_use = 1;
>  	ret = mxs_saif_set_clk(saif, mclk, rate);
>  	if (ret)
> @@ -207,8 +211,6 @@ int mxs_saif_get_mclk(unsigned int saif_id, unsigned int mclk,
>  		return ret;
>  
>  	/* enable MCLK output */
> -	__raw_writel(BM_SAIF_CTRL_CLKGATE,
> -		saif->base + SAIF_CTRL + MXS_CLR_ADDR);
>  	__raw_writel(BM_SAIF_CTRL_RUN,
>  		saif->base + SAIF_CTRL + MXS_SET_ADDR);
>  
> @@ -303,6 +305,10 @@ static int mxs_saif_startup(struct snd_pcm_substream *substream,
>  	__raw_writel(BM_SAIF_CTRL_SFTRST,
>  		saif->base + SAIF_CTRL + MXS_CLR_ADDR);
>  
> +	/* clear clock gate */
> +	__raw_writel(BM_SAIF_CTRL_CLKGATE,
> +		saif->base + SAIF_CTRL + MXS_CLR_ADDR);
> +
>  	return 0;
>  }
>  
> @@ -379,10 +385,6 @@ static int mxs_saif_prepare(struct snd_pcm_substream *substream,
>  {
>  	struct mxs_saif *saif = snd_soc_dai_get_drvdata(cpu_dai);
>  
> -	/* clear clock gate */
> -	__raw_writel(BM_SAIF_CTRL_CLKGATE,
> -		saif->base + SAIF_CTRL + MXS_CLR_ADDR);
> -
>  	/* enable FIFO error irqs */
>  	__raw_writel(BM_SAIF_CTRL_FIFO_ERROR_IRQ_EN,
>  		saif->base + SAIF_CTRL + MXS_SET_ADDR);

Acked-by: Liam Girdwood <lrg@ti.com>

  reply	other threads:[~2011-08-22 10:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-21 15:45 [PATCH 1/1] ASoC: mxs-saif: clear clk gate first before register setting Dong Aisheng
2011-08-22 10:28 ` Liam Girdwood [this message]
2011-08-22 22:34 ` Mark Brown

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=4E522F5C.7040301@ti.com \
    --to=lrg@ti.com \
    --cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).