lkml.org 
[lkml]   [2010]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: linux-next: manual merge of the arm tree with Linus' tree
On Thu, Mar 4, 2010 at 7:49 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi Russell,
>
> Today's linux-next merge of the arm tree got a conflict in
> sound/soc/pxa/pxa-ssp.c between commit
> 026384d614b827f368834860c9b623ce08439b7e ("ASoC: fix PXA SSP port
> resume") from Linus' tree and commit
> f9efc9df94fd126f7d585339e64edec0c03e904b ("ASoC: Remove legacy SSP API
> usage from pxa-ssp.c") from the arm tree.
>
> I fixed it up (see below - it should be checked) and can carry the fix as
> necessary.

Hi Stephen,

I've yet made another fix and have a test build, please use this
one if possible:

diff --cc sound/soc/pxa/pxa-ssp.c
index e69397f,cf00df9..9e95e51
--- a/sound/soc/pxa/pxa-ssp.c
+++ b/sound/soc/pxa/pxa-ssp.c
@@@ -133,28 -152,39 +152,40 @@@ static void pxa_ssp_shutdown(struct snd
static int pxa_ssp_suspend(struct snd_soc_dai *cpu_dai)
{
struct ssp_priv *priv = cpu_dai->private_data;
+ struct ssp_device *ssp = priv->ssp;

if (!cpu_dai->active)
- clk_enable(priv->dev.ssp->clk);
- return 0;
++ clk_enable(ssp->clk);

- ssp_save_state(&priv->dev, &priv->state);
- clk_disable(priv->dev.ssp->clk);
+ priv->cr0 = __raw_readl(ssp->mmio_base + SSCR0);
+ priv->cr1 = __raw_readl(ssp->mmio_base + SSCR1);
+ priv->to = __raw_readl(ssp->mmio_base + SSTO);
+ priv->psp = __raw_readl(ssp->mmio_base + SSPSP);

+ ssp_disable(ssp);
+ clk_disable(ssp->clk);
return 0;
}

static int pxa_ssp_resume(struct snd_soc_dai *cpu_dai)
{
struct ssp_priv *priv = cpu_dai->private_data;
+ struct ssp_device *ssp = priv->ssp;
+ uint32_t sssr = SSSR_ROR | SSSR_TUR | SSSR_BCE;
+
- if (!cpu_dai->active)
- return 0;
-
+ clk_enable(ssp->clk);

- clk_enable(priv->dev.ssp->clk);
- ssp_restore_state(&priv->dev, &priv->state);
+ __raw_writel(sssr, ssp->mmio_base + SSSR);
-
+ __raw_writel(priv->cr0 & ~SSCR0_SSE, ssp->mmio_base + SSCR0);
+ __raw_writel(priv->cr1, ssp->mmio_base + SSCR1);
+ __raw_writel(priv->to, ssp->mmio_base + SSTO);
+ __raw_writel(priv->psp, ssp->mmio_base + SSPSP);
- __raw_writel(priv->cr0 | SSCR0_SSE, ssp->mmio_base + SSCR0);
+
+ if (cpu_dai->active)
- ssp_enable(&priv->dev);
++ ssp_enable(ssp);
+ else
- clk_disable(priv->dev.ssp->clk);
++ clk_disable(ssp->clk);
+
return 0;
}


\
 
 \ /
  Last update: 2010-03-04 02:19    [W:1.478 / U:0.008 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site