]> git.proxmox.com Git - mirror_ubuntu-kernels.git/blobdiff - sound/soc/codecs/wm8580.c
Merge branch 'for-2.6.37' into for-2.6.38
[mirror_ubuntu-kernels.git] / sound / soc / codecs / wm8580.c
index e2a927684b48fdb562f837c320fae6d5114a2a08..45efc9437ee852a9543870cc2a3ba6586127c79e 100644 (file)
@@ -491,29 +491,29 @@ static int wm8580_paif_hw_params(struct snd_pcm_substream *substream,
                paifa |= 0x8;
                break;
        case SNDRV_PCM_FORMAT_S20_3LE:
-               paifa |= 0x10;
+               paifa |= 0x0;
                paifb |= WM8580_AIF_LENGTH_20;
                break;
        case SNDRV_PCM_FORMAT_S24_LE:
-               paifa |= 0x10;
+               paifa |= 0x0;
                paifb |= WM8580_AIF_LENGTH_24;
                break;
        case SNDRV_PCM_FORMAT_S32_LE:
-               paifa |= 0x10;
-               paifb |= WM8580_AIF_LENGTH_24;
+               paifa |= 0x0;
+               paifb |= WM8580_AIF_LENGTH_32;
                break;
        default:
                return -EINVAL;
        }
 
        /* Look up the SYSCLK ratio; accept only exact matches */
-       ratio = wm8580->sysclk[dai->id] / params_rate(params);
+       ratio = wm8580->sysclk[dai->driver->id] / params_rate(params);
        for (i = 0; i < ARRAY_SIZE(wm8580_sysclk_ratios); i++)
                if (ratio == wm8580_sysclk_ratios[i])
                        break;
        if (i == ARRAY_SIZE(wm8580_sysclk_ratios)) {
                dev_err(codec->dev, "Invalid clock ratio %d/%d\n",
-                       wm8580->sysclk[dai->id], params_rate(params));
+                       wm8580->sysclk[dai->driver->id], params_rate(params));
                return -EINVAL;
        }
        paifa |= i;
@@ -716,7 +716,7 @@ static int wm8580_set_sysclk(struct snd_soc_dai *dai, int clk_id,
 
        switch (clk_id) {
        case WM8580_CLKSRC_ADCMCLK:
-               if (dai->id != WM8580_DAI_PAIFTX)
+               if (dai->driver->id != WM8580_DAI_PAIFTX)
                        return -EINVAL;
                sel = 0 << sel_shift;
                break;
@@ -735,7 +735,7 @@ static int wm8580_set_sysclk(struct snd_soc_dai *dai, int clk_id,
        }
 
        /* We really should validate PLL settings but not yet */
-       wm8580->sysclk[dai->id] = freq;
+       wm8580->sysclk[dai->driver->id] = freq;
 
        return snd_soc_update_bits(codec, WM8580_CLKSEL, sel_mask, sel);
 }