]> Git Repo - linux.git/commitdiff
Merge remote-tracking branch 'asoc/topic/wm8994' into asoc-next
authorMark Brown <[email protected]>
Tue, 12 Feb 2013 22:19:08 +0000 (22:19 +0000)
committerMark Brown <[email protected]>
Tue, 12 Feb 2013 22:19:08 +0000 (22:19 +0000)
1  2 
sound/soc/codecs/wm8994.c

index 3b269fa226bdabec90e97c2b77bd8347909a9df7,f2e63acb2674a3144722e1cd937c4986eff19cef..c9bd445c497628d014a77508e8d37092e4db203e
@@@ -1030,7 -1030,6 +1030,7 @@@ static int aif1clk_ev(struct snd_soc_da
                      struct snd_kcontrol *kcontrol, int event)
  {
        struct snd_soc_codec *codec = w->codec;
 +      struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
        struct wm8994 *control = codec->control_data;
        int mask = WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC1R_ENA;
        int i;
  
        switch (event) {
        case SND_SOC_DAPM_PRE_PMU:
 +              /* Don't enable timeslot 2 if not in use */
 +              if (wm8994->channels[0] <= 2)
 +                      mask &= ~(WM8994_AIF1DAC2L_ENA | WM8994_AIF1DAC2R_ENA);
 +
                val = snd_soc_read(codec, WM8994_AIF1_CONTROL_1);
                if ((val & WM8994_AIF1ADCL_SRC) &&
                    (val & WM8994_AIF1ADCR_SRC))
@@@ -2701,7 -2696,7 +2701,7 @@@ static int wm8994_hw_params(struct snd_
                return -EINVAL;
        }
  
 -      bclk_rate = params_rate(params) * 4;
 +      bclk_rate = params_rate(params);
        switch (params_format(params)) {
        case SNDRV_PCM_FORMAT_S16_LE:
                bclk_rate *= 16;
                return -EINVAL;
        }
  
 +      wm8994->channels[id] = params_channels(params);
 +      switch (params_channels(params)) {
 +      case 1:
 +      case 2:
 +              bclk_rate *= 2;
 +              break;
 +      default:
 +              bclk_rate *= 4;
 +              break;
 +      }
 +
        /* Try to find an appropriate sample rate; look for an exact match. */
        for (i = 0; i < ARRAY_SIZE(srs); i++)
                if (srs[i].rate == params_rate(params))
@@@ -3737,7 -3721,7 +3737,7 @@@ static irqreturn_t wm8958_mic_irq(int i
  {
        struct wm8994_priv *wm8994 = data;
        struct snd_soc_codec *codec = wm8994->hubs.codec;
-       int reg, count;
+       int reg, count, ret;
  
        /*
         * Jack detection may have detected a removal simulataneously
        } while (count--);
  
        if (count == 0)
 -              dev_warn(codec->dev, "No impedence range reported for jack\n");
 +              dev_warn(codec->dev, "No impedance range reported for jack\n");
  
  #ifndef CONFIG_SND_SOC_WM8994_MODULE
        trace_snd_soc_jack_irq(dev_name(codec->dev));
  
        /* Avoid a transient report when the accessory is being removed */
        if (wm8994->jackdet) {
-               reg = snd_soc_read(codec, WM1811_JACKDET_CTRL);
-               if (reg < 0) {
+               ret = snd_soc_read(codec, WM1811_JACKDET_CTRL);
+               if (ret < 0) {
                        dev_err(codec->dev, "Failed to read jack status: %d\n",
-                               reg);
-               } else if (!(reg & WM1811_JACKDET_LVL)) {
+                               ret);
+               } else if (!(ret & WM1811_JACKDET_LVL)) {
                        dev_dbg(codec->dev, "Ignoring removed jack\n");
                        return IRQ_HANDLED;
                }
@@@ -4287,7 -4271,7 +4287,7 @@@ static struct snd_soc_codec_driver soc_
        .set_bias_level = wm8994_set_bias_level,
  };
  
 -static int __devinit wm8994_probe(struct platform_device *pdev)
 +static int wm8994_probe(struct platform_device *pdev)
  {
        struct wm8994_priv *wm8994;
  
                        wm8994_dai, ARRAY_SIZE(wm8994_dai));
  }
  
 -static int __devexit wm8994_remove(struct platform_device *pdev)
 +static int wm8994_remove(struct platform_device *pdev)
  {
        snd_soc_unregister_codec(&pdev->dev);
        return 0;
@@@ -4347,7 -4331,7 +4347,7 @@@ static struct platform_driver wm8994_co
                .pm = &wm8994_pm_ops,
        },
        .probe = wm8994_probe,
 -      .remove = __devexit_p(wm8994_remove),
 +      .remove = wm8994_remove,
  };
  
  module_platform_driver(wm8994_codec_driver);
This page took 0.08851 seconds and 4 git commands to generate.