Subject: linux-next: manual merge of the arm tree with Linus' tree

From: Stephen Rothwell <[email-masked]>
Date: Thu, 4 Mar 2010 10:49:58 +1100

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.
-- 
Cheers,
Stephen Rothwell                    [email-masked]

diff --cc sound/soc/pxa/pxa-ssp.c
index e69397f,cf00df9..0000000
--- a/sound/soc/pxa/pxa-ssp.c
+++ b/sound/soc/pxa/pxa-ssp.c
@@@ -133,28 -152,39 +152,41 @@@ 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)
 -		return 0;
 +		clk_enable(priv->dev.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;
  
- 	clk_enable(priv->dev.ssp->clk);
- 	ssp_restore_state(&priv->dev, &priv->state);
 -	if (!cpu_dai->active)
 -		return 0;
 -
+ 	clk_enable(ssp->clk);
  
- 	if (cpu_dai->active)
- 		ssp_enable(&priv->dev);
- 	else
- 		clk_disable(priv->dev.ssp->clk);
 -	__raw_writel(sssr, ssp->mmio_base + SSSR);
++	if (cpu_dai->active) {
++		__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);
++	} else
++		clk_disable(ssp->clk);
  
 -	__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);
  	return 0;
  }