Merge remote-tracking branches 'asoc/topic/tlv320aic3x', 'asoc/topic/width', 'asoc/topic/wm0010', 'asoc/topic/wm8904' and 'asoc/topic/wm8962' into asoc-next
diff --git a/Documentation/devicetree/bindings/sound/wm8904.txt b/Documentation/devicetree/bindings/sound/wm8904.txt
new file mode 100644
index 0000000..e99f409
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/wm8904.txt
@@ -0,0 +1,33 @@
+WM8904 audio CODEC
+
+This device supports I2C only.
+
+Required properties:
+ - compatible: "wlf,wm8904"
+ - reg: the I2C address of the device.
+ - clock-names: "mclk"
+ - clocks: reference to
+ <Documentation/devicetree/bindings/clock/clock-bindings.txt>
+
+Pins on the device (for linking into audio routes):
+
+ * IN1L
+ * IN1R
+ * IN2L
+ * IN2R
+ * IN3L
+ * IN3R
+ * HPOUTL
+ * HPOUTR
+ * LINEOUTL
+ * LINEOUTR
+ * MICBIAS
+
+Examples:
+
+codec: wm8904@1a {
+ compatible = "wlf,wm8904";
+ reg = <0x1a>;
+ clocks = <&pck0>;
+ clock-names = "mclk";
+};
diff --git a/include/sound/wm8962.h b/include/sound/wm8962.h
index 79e6d42..0af7c16 100644
--- a/include/sound/wm8962.h
+++ b/include/sound/wm8962.h
@@ -37,6 +37,7 @@
#define WM8962_GPIO_FN_MICSCD 22
struct wm8962_pdata {
+ struct clk *mclk;
int gpio_base;
u32 gpio_init[WM8962_MAX_GPIO];
diff --git a/sound/soc/codecs/88pm860x-codec.c b/sound/soc/codecs/88pm860x-codec.c
index 3c4b10f..922006d 100644
--- a/sound/soc/codecs/88pm860x-codec.c
+++ b/sound/soc/codecs/88pm860x-codec.c
@@ -945,11 +945,11 @@
unsigned char inf = 0, mask = 0;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
inf &= ~PCM_INF2_18WL;
break;
- case SNDRV_PCM_FORMAT_S18_3LE:
+ case 18:
inf |= PCM_INF2_18WL;
break;
default:
@@ -1044,11 +1044,11 @@
unsigned char inf;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
inf = 0;
break;
- case SNDRV_PCM_FORMAT_S18_3LE:
+ case 18:
inf = PCM_INF2_18WL;
break;
default:
diff --git a/sound/soc/codecs/adau17x1.c b/sound/soc/codecs/adau17x1.c
index 2961fae..0b65970 100644
--- a/sound/soc/codecs/adau17x1.c
+++ b/sound/soc/codecs/adau17x1.c
@@ -359,14 +359,14 @@
if (adau->dai_fmt != SND_SOC_DAIFMT_RIGHT_J)
return 0;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
val = ADAU17X1_SERIAL_PORT1_DELAY16;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
val = ADAU17X1_SERIAL_PORT1_DELAY8;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
val = ADAU17X1_SERIAL_PORT1_DELAY0;
break;
default:
diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c
index 9134982..2cd3e54 100644
--- a/sound/soc/codecs/max98088.c
+++ b/sound/soc/codecs/max98088.c
@@ -1299,12 +1299,12 @@
rate = params_rate(params);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
snd_soc_update_bits(codec, M98088_REG_1C_DAI2_FORMAT,
M98088_DAI_WS, 0);
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
snd_soc_update_bits(codec, M98088_REG_1C_DAI2_FORMAT,
M98088_DAI_WS, M98088_DAI_WS);
break;
diff --git a/sound/soc/codecs/max98095.c b/sound/soc/codecs/max98095.c
index 89ec004..0ee6797 100644
--- a/sound/soc/codecs/max98095.c
+++ b/sound/soc/codecs/max98095.c
@@ -1280,12 +1280,12 @@
rate = params_rate(params);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
snd_soc_update_bits(codec, M98095_034_DAI2_FORMAT,
M98095_DAI_WS, 0);
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
snd_soc_update_bits(codec, M98095_034_DAI2_FORMAT,
M98095_DAI_WS, M98095_DAI_WS);
break;
@@ -1341,12 +1341,12 @@
rate = params_rate(params);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
snd_soc_update_bits(codec, M98095_03E_DAI3_FORMAT,
M98095_DAI_WS, 0);
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
snd_soc_update_bits(codec, M98095_03E_DAI3_FORMAT,
M98095_DAI_WS, M98095_DAI_WS);
break;
diff --git a/sound/soc/codecs/rt5631.c b/sound/soc/codecs/rt5631.c
index 30e2347..1ba27db 100644
--- a/sound/soc/codecs/rt5631.c
+++ b/sound/soc/codecs/rt5631.c
@@ -1370,16 +1370,16 @@
return coeff;
}
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= RT5631_SDP_I2S_DL_20;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= RT5631_SDP_I2S_DL_24;
break;
- case SNDRV_PCM_FORMAT_S8:
+ case 8:
iface |= RT5631_SDP_I2S_DL_8;
break;
default:
diff --git a/sound/soc/codecs/rt5651.c b/sound/soc/codecs/rt5651.c
index ea4b1c6..bb0a3ab 100644
--- a/sound/soc/codecs/rt5651.c
+++ b/sound/soc/codecs/rt5651.c
@@ -1366,16 +1366,16 @@
dev_dbg(dai->dev, "bclk_ms is %d and pre_div is %d for iis %d\n",
bclk_ms, pre_div, dai->id);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
val_len |= RT5651_I2S_DL_20;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
val_len |= RT5651_I2S_DL_24;
break;
- case SNDRV_PCM_FORMAT_S8:
+ case 8:
val_len |= RT5651_I2S_DL_8;
break;
default:
diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
index d739f83..e997d27 100644
--- a/sound/soc/codecs/sgtl5000.c
+++ b/sound/soc/codecs/sgtl5000.c
@@ -724,25 +724,25 @@
return ret;
/* set i2s data format */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
if (sgtl5000->fmt == SND_SOC_DAIFMT_RIGHT_J)
return -EINVAL;
i2s_ctl |= SGTL5000_I2S_DLEN_16 << SGTL5000_I2S_DLEN_SHIFT;
i2s_ctl |= SGTL5000_I2S_SCLKFREQ_32FS <<
SGTL5000_I2S_SCLKFREQ_SHIFT;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
i2s_ctl |= SGTL5000_I2S_DLEN_20 << SGTL5000_I2S_DLEN_SHIFT;
i2s_ctl |= SGTL5000_I2S_SCLKFREQ_64FS <<
SGTL5000_I2S_SCLKFREQ_SHIFT;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
i2s_ctl |= SGTL5000_I2S_DLEN_24 << SGTL5000_I2S_DLEN_SHIFT;
i2s_ctl |= SGTL5000_I2S_SCLKFREQ_64FS <<
SGTL5000_I2S_SCLKFREQ_SHIFT;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
if (sgtl5000->fmt == SND_SOC_DAIFMT_RIGHT_J)
return -EINVAL;
i2s_ctl |= SGTL5000_I2S_DLEN_32 << SGTL5000_I2S_DLEN_SHIFT;
diff --git a/sound/soc/codecs/si476x.c b/sound/soc/codecs/si476x.c
index f26befb..cdf882f 100644
--- a/sound/soc/codecs/si476x.c
+++ b/sound/soc/codecs/si476x.c
@@ -167,17 +167,17 @@
return -EINVAL;
}
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S8:
+ switch (params_width(params)) {
+ case 8:
width = SI476X_PCM_FORMAT_S8;
break;
- case SNDRV_PCM_FORMAT_S16_LE:
+ case 16:
width = SI476X_PCM_FORMAT_S16_LE;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
width = SI476X_PCM_FORMAT_S20_3LE;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
width = SI476X_PCM_FORMAT_S24_LE;
break;
default:
diff --git a/sound/soc/codecs/sn95031.c b/sound/soc/codecs/sn95031.c
index 42dff26..cf8fa40 100644
--- a/sound/soc/codecs/sn95031.c
+++ b/sound/soc/codecs/sn95031.c
@@ -661,12 +661,12 @@
{
unsigned int format, rate;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
format = BIT(4)|BIT(5);
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
format = 0;
break;
default:
diff --git a/sound/soc/codecs/ssm2518.c b/sound/soc/codecs/ssm2518.c
index 56adb3e..e8680be 100644
--- a/sound/soc/codecs/ssm2518.c
+++ b/sound/soc/codecs/ssm2518.c
@@ -361,11 +361,11 @@
return -EINVAL;
if (ssm2518->right_j) {
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
ctrl1 |= SSM2518_SAI_CTRL1_FMT_RJ_16BIT;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
ctrl1 |= SSM2518_SAI_CTRL1_FMT_RJ_24BIT;
break;
default:
diff --git a/sound/soc/codecs/ssm2602.c b/sound/soc/codecs/ssm2602.c
index 97b0454..484b3bb 100644
--- a/sound/soc/codecs/ssm2602.c
+++ b/sound/soc/codecs/ssm2602.c
@@ -275,17 +275,17 @@
regmap_write(ssm2602->regmap, SSM2602_SRATE, srate);
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
iface = 0x0;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface = 0x4;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface = 0x8;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface = 0xc;
break;
default:
diff --git a/sound/soc/codecs/sta32x.c b/sound/soc/codecs/sta32x.c
index 0579d18..4874085 100644
--- a/sound/soc/codecs/sta32x.c
+++ b/sound/soc/codecs/sta32x.c
@@ -678,15 +678,11 @@
confb = snd_soc_read(codec, STA32X_CONFB);
confb &= ~(STA32X_CONFB_SAI_MASK | STA32X_CONFB_SAIFB);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S24_LE:
- case SNDRV_PCM_FORMAT_S24_BE:
- case SNDRV_PCM_FORMAT_S24_3LE:
- case SNDRV_PCM_FORMAT_S24_3BE:
+ switch (params_width(params)) {
+ case 24:
pr_debug("24bit\n");
/* fall through */
- case SNDRV_PCM_FORMAT_S32_LE:
- case SNDRV_PCM_FORMAT_S32_BE:
+ case 32:
pr_debug("24bit or 32bit\n");
switch (sta32x->format) {
case SND_SOC_DAIFMT_I2S:
@@ -701,8 +697,7 @@
}
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
- case SNDRV_PCM_FORMAT_S20_3BE:
+ case 20:
pr_debug("20bit\n");
switch (sta32x->format) {
case SND_SOC_DAIFMT_I2S:
@@ -717,8 +712,7 @@
}
break;
- case SNDRV_PCM_FORMAT_S18_3LE:
- case SNDRV_PCM_FORMAT_S18_3BE:
+ case 18:
pr_debug("18bit\n");
switch (sta32x->format) {
case SND_SOC_DAIFMT_I2S:
@@ -733,8 +727,7 @@
}
break;
- case SNDRV_PCM_FORMAT_S16_LE:
- case SNDRV_PCM_FORMAT_S16_BE:
+ case 16:
pr_debug("16bit\n");
switch (sta32x->format) {
case SND_SOC_DAIFMT_I2S:
diff --git a/sound/soc/codecs/sta529.c b/sound/soc/codecs/sta529.c
index fcdf110..9aa1323 100644
--- a/sound/soc/codecs/sta529.c
+++ b/sound/soc/codecs/sta529.c
@@ -197,16 +197,16 @@
int pdata, play_freq_val, record_freq_val;
int bclk_to_fs_ratio;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
pdata = 1;
bclk_to_fs_ratio = 0;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
pdata = 2;
bclk_to_fs_ratio = 1;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
pdata = 3;
bclk_to_fs_ratio = 2;
break;
diff --git a/sound/soc/codecs/tas5086.c b/sound/soc/codecs/tas5086.c
index be7194b..249ef5c 100644
--- a/sound/soc/codecs/tas5086.c
+++ b/sound/soc/codecs/tas5086.c
@@ -425,14 +425,14 @@
}
/* ... then add the offset for the sample bit depth. */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
val += 0;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
val += 1;
break;
- case SNDRV_PCM_FORMAT_S24_3LE:
+ case 24:
val += 2;
break;
default:
diff --git a/sound/soc/codecs/tlv320aic26.c b/sound/soc/codecs/tlv320aic26.c
index 43069de..620ab9e 100644
--- a/sound/soc/codecs/tlv320aic26.c
+++ b/sound/soc/codecs/tlv320aic26.c
@@ -71,8 +71,8 @@
dev_dbg(&aic26->spi->dev, "aic26_hw_params(substream=%p, params=%p)\n",
substream, params);
- dev_dbg(&aic26->spi->dev, "rate=%i format=%i\n", params_rate(params),
- params_format(params));
+ dev_dbg(&aic26->spi->dev, "rate=%i width=%d\n", params_rate(params),
+ params_width(params));
switch (params_rate(params)) {
case 8000: fsref = 48000; divisor = AIC26_DIV_6; break;
@@ -89,11 +89,11 @@
}
/* select data word length */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S8: wlen = AIC26_WLEN_16; break;
- case SNDRV_PCM_FORMAT_S16_BE: wlen = AIC26_WLEN_16; break;
- case SNDRV_PCM_FORMAT_S24_BE: wlen = AIC26_WLEN_24; break;
- case SNDRV_PCM_FORMAT_S32_BE: wlen = AIC26_WLEN_32; break;
+ switch (params_width(params)) {
+ case 8: wlen = AIC26_WLEN_16; break;
+ case 16: wlen = AIC26_WLEN_16; break;
+ case 24: wlen = AIC26_WLEN_24; break;
+ case 32: wlen = AIC26_WLEN_32; break;
default:
dev_dbg(&aic26->spi->dev, "bad format\n"); return -EINVAL;
}
diff --git a/sound/soc/codecs/tlv320aic31xx.c b/sound/soc/codecs/tlv320aic31xx.c
index 095f455..0f64c78 100644
--- a/sound/soc/codecs/tlv320aic31xx.c
+++ b/sound/soc/codecs/tlv320aic31xx.c
@@ -760,8 +760,8 @@
struct snd_soc_codec *codec = dai->codec;
u8 data = 0;
- dev_dbg(codec->dev, "## %s: format %d width %d rate %d\n",
- __func__, params_format(params), params_width(params),
+ dev_dbg(codec->dev, "## %s: width %d rate %d\n",
+ __func__, params_width(params),
params_rate(params));
switch (params_width(params)) {
@@ -780,8 +780,8 @@
AIC31XX_IFACE1_DATALEN_SHIFT);
break;
default:
- dev_err(codec->dev, "%s: Unsupported format %d\n",
- __func__, params_format(params));
+ dev_err(codec->dev, "%s: Unsupported width %d\n",
+ __func__, params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c
index 89e41d2..6ea662d 100644
--- a/sound/soc/codecs/tlv320aic32x4.c
+++ b/sound/soc/codecs/tlv320aic32x4.c
@@ -450,16 +450,16 @@
data = snd_soc_read(codec, AIC32X4_IFACE1);
data = data & ~(3 << 4);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
data |= (AIC32X4_WORD_LEN_20BITS << AIC32X4_DOSRMSB_SHIFT);
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
data |= (AIC32X4_WORD_LEN_24BITS << AIC32X4_DOSRMSB_SHIFT);
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
data |= (AIC32X4_WORD_LEN_32BITS << AIC32X4_DOSRMSB_SHIFT);
break;
}
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index f14b551..64f179e 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -873,16 +873,16 @@
/* select data word length */
data = snd_soc_read(codec, AIC3X_ASD_INTF_CTRLB) & (~(0x3 << 4));
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
data |= (0x01 << 4);
break;
- case SNDRV_PCM_FORMAT_S24_3LE:
+ case 24:
data |= (0x02 << 4);
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
data |= (0x03 << 4);
break;
}
@@ -1194,7 +1194,8 @@
#define AIC3X_RATES SNDRV_PCM_RATE_8000_96000
#define AIC3X_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE | \
- SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S32_LE)
+ SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_LE | \
+ SNDRV_PCM_FMTBIT_S32_LE)
static const struct snd_soc_dai_ops aic3x_dai_ops = {
.hw_params = aic3x_hw_params,
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index ff006cc..e21ed93 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -832,18 +832,18 @@
return -EINVAL;
}
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
dac33->fifo_size = DAC33_FIFO_SIZE_16BIT;
dac33->burst_rate = CALC_BURST_RATE(dac33->burst_bclkdiv, 32);
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
dac33->fifo_size = DAC33_FIFO_SIZE_24BIT;
dac33->burst_rate = CALC_BURST_RATE(dac33->burst_bclkdiv, 64);
break;
default:
- dev_err(codec->dev, "unsupported format %d\n",
- params_format(params));
+ dev_err(codec->dev, "unsupported width %d\n",
+ params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index cf40450..b6b0cb3 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -1763,16 +1763,16 @@
old_format = twl4030_read(codec, TWL4030_REG_AUDIO_IF);
format = old_format;
format &= ~TWL4030_DATA_WIDTH;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
format |= TWL4030_DATA_WIDTH_16S_16W;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
format |= TWL4030_DATA_WIDTH_32S_24W;
break;
default:
- dev_err(codec->dev, "%s: unknown format %d\n", __func__,
- params_format(params));
+ dev_err(codec->dev, "%s: unsupported bits/sample %d\n",
+ __func__, params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/uda134x.c b/sound/soc/codecs/uda134x.c
index 12fc0ae..32b2f78 100644
--- a/sound/soc/codecs/uda134x.c
+++ b/sound/soc/codecs/uda134x.c
@@ -243,14 +243,14 @@
case SND_SOC_DAIFMT_I2S:
break;
case SND_SOC_DAIFMT_RIGHT_J:
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
hw_params |= (1<<1);
break;
- case SNDRV_PCM_FORMAT_S18_3LE:
+ case 18:
hw_params |= (1<<2);
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
hw_params |= ((1<<2) | (1<<1));
break;
default:
diff --git a/sound/soc/codecs/wl1273.c b/sound/soc/codecs/wl1273.c
index 5d8ba77..f3d4e88 100644
--- a/sound/soc/codecs/wl1273.c
+++ b/sound/soc/codecs/wl1273.c
@@ -341,8 +341,9 @@
struct wl1273_core *core = wl1273->core;
unsigned int rate, width, r;
- if (params_format(params) != SNDRV_PCM_FORMAT_S16_LE) {
- pr_err("Only SNDRV_PCM_FORMAT_S16_LE supported.\n");
+ if (params_width(params) != 16) {
+ dev_err(dai->dev, "%d bits/sample not supported\n",
+ params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c
index 982467c..f37989e 100644
--- a/sound/soc/codecs/wm0010.c
+++ b/sound/soc/codecs/wm0010.c
@@ -144,7 +144,7 @@
static const char *wm0010_state_to_str(enum wm0010_state state)
{
- const char *state_to_str[] = {
+ static const char * const state_to_str[] = {
"Power off",
"Out of reset",
"Boot ROM",
diff --git a/sound/soc/codecs/wm8350.c b/sound/soc/codecs/wm8350.c
index d9e634c..3dfdcc4 100644
--- a/sound/soc/codecs/wm8350.c
+++ b/sound/soc/codecs/wm8350.c
@@ -918,16 +918,16 @@
~WM8350_AIF_WL_MASK;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x1 << 10;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x2 << 10;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x3 << 10;
break;
}
diff --git a/sound/soc/codecs/wm8400.c b/sound/soc/codecs/wm8400.c
index 06e913d..72471be 100644
--- a/sound/soc/codecs/wm8400.c
+++ b/sound/soc/codecs/wm8400.c
@@ -1095,16 +1095,16 @@
audio1 &= ~WM8400_AIF_WL_MASK;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
audio1 |= WM8400_AIF_WL_20BITS;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
audio1 |= WM8400_AIF_WL_24BITS;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
audio1 |= WM8400_AIF_WL_32BITS;
break;
}
diff --git a/sound/soc/codecs/wm8510.c b/sound/soc/codecs/wm8510.c
index 1c1e328..e11127f 100644
--- a/sound/soc/codecs/wm8510.c
+++ b/sound/soc/codecs/wm8510.c
@@ -449,16 +449,16 @@
u16 adn = snd_soc_read(codec, WM8510_ADD) & 0x1f1;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0020;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0040;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x0060;
break;
}
diff --git a/sound/soc/codecs/wm8523.c b/sound/soc/codecs/wm8523.c
index 601ee81..ec1f574 100644
--- a/sound/soc/codecs/wm8523.c
+++ b/sound/soc/codecs/wm8523.c
@@ -163,16 +163,16 @@
aifctrl2 |= lrclk_ratios[i].value;
aifctrl1 &= ~WM8523_WL_MASK;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
aifctrl1 |= 0x8;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
aifctrl1 |= 0x10;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
aifctrl1 |= 0x18;
break;
}
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c
index 7665ff6..911605e 100644
--- a/sound/soc/codecs/wm8580.c
+++ b/sound/soc/codecs/wm8580.c
@@ -511,19 +511,19 @@
int i, ratio, osr;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
paifa |= 0x8;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
paifa |= 0x0;
paifb |= WM8580_AIF_LENGTH_20;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
paifa |= 0x0;
paifb |= WM8580_AIF_LENGTH_24;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
paifa |= 0x0;
paifb |= WM8580_AIF_LENGTH_32;
break;
diff --git a/sound/soc/codecs/wm8711.c b/sound/soc/codecs/wm8711.c
index b0fbcb3..32187e7 100644
--- a/sound/soc/codecs/wm8711.c
+++ b/sound/soc/codecs/wm8711.c
@@ -169,13 +169,13 @@
snd_soc_write(codec, WM8711_SRATE, srate);
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0008;
break;
}
diff --git a/sound/soc/codecs/wm8728.c b/sound/soc/codecs/wm8728.c
index bac7fc2..38ff826 100644
--- a/sound/soc/codecs/wm8728.c
+++ b/sound/soc/codecs/wm8728.c
@@ -94,13 +94,13 @@
dac &= ~0x18;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
dac |= 0x10;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
dac |= 0x08;
break;
default:
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c
index 5ada616..eebb328 100644
--- a/sound/soc/codecs/wm8731.c
+++ b/sound/soc/codecs/wm8731.c
@@ -348,13 +348,13 @@
snd_soc_write(codec, WM8731_SRATE, srate);
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0008;
break;
}
diff --git a/sound/soc/codecs/wm8737.c b/sound/soc/codecs/wm8737.c
index b27f26cd..744a422 100644
--- a/sound/soc/codecs/wm8737.c
+++ b/sound/soc/codecs/wm8737.c
@@ -367,16 +367,16 @@
clocking |= coeff_div[i].usb | (coeff_div[i].sr << WM8737_SR_SHIFT);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
af |= 0x8;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
af |= 0x10;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
af |= 0x18;
break;
default:
diff --git a/sound/soc/codecs/wm8741.c b/sound/soc/codecs/wm8741.c
index b33542a..a237f16 100644
--- a/sound/soc/codecs/wm8741.c
+++ b/sound/soc/codecs/wm8741.c
@@ -241,26 +241,26 @@
}
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0001;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0002;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x0003;
break;
default:
dev_dbg(codec->dev, "wm8741_hw_params: Unsupported bit size param = %d",
- params_format(params));
+ params_width(params));
return -EINVAL;
}
dev_dbg(codec->dev, "wm8741_hw_params: bit size param = %d",
- params_format(params));
+ params_width(params));
snd_soc_write(codec, WM8741_FORMAT_CONTROL, iface);
return 0;
diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c
index 33990b6..67653a2 100644
--- a/sound/soc/codecs/wm8750.c
+++ b/sound/soc/codecs/wm8750.c
@@ -586,16 +586,16 @@
int coeff = get_coeff(wm8750->sysclk, params_rate(params));
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0008;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x000c;
break;
}
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c
index 53e57b4..e54e097 100644
--- a/sound/soc/codecs/wm8753.c
+++ b/sound/soc/codecs/wm8753.c
@@ -937,16 +937,16 @@
u16 srate = snd_soc_read(codec, WM8753_SRATE1) & 0x017f;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
voice |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
voice |= 0x0008;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
voice |= 0x000c;
break;
}
@@ -1176,16 +1176,16 @@
coeff_div[coeff].usb);
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
hifi |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
hifi |= 0x0008;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
hifi |= 0x000c;
break;
}
diff --git a/sound/soc/codecs/wm8770.c b/sound/soc/codecs/wm8770.c
index c61aeb3..180e7a0 100644
--- a/sound/soc/codecs/wm8770.c
+++ b/sound/soc/codecs/wm8770.c
@@ -426,16 +426,16 @@
wm8770 = snd_soc_codec_get_drvdata(codec);
iface = 0;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x10;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x20;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x30;
break;
}
diff --git a/sound/soc/codecs/wm8804.c b/sound/soc/codecs/wm8804.c
index d96e596..0ea01df 100644
--- a/sound/soc/codecs/wm8804.c
+++ b/sound/soc/codecs/wm8804.c
@@ -270,19 +270,19 @@
codec = dai->codec;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
blen = 0x0;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
blen = 0x1;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
blen = 0x2;
break;
default:
dev_err(dai->dev, "Unsupported word length: %u\n",
- params_format(params));
+ params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/wm8900.c b/sound/soc/codecs/wm8900.c
index d09fdce..44a5f15 100644
--- a/sound/soc/codecs/wm8900.c
+++ b/sound/soc/codecs/wm8900.c
@@ -640,16 +640,16 @@
reg = snd_soc_read(codec, WM8900_REG_AUDIO1) & ~0x60;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
reg |= 0x20;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
reg |= 0x40;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
reg |= 0x60;
break;
default:
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c
index ec3250d..aa09848 100644
--- a/sound/soc/codecs/wm8903.c
+++ b/sound/soc/codecs/wm8903.c
@@ -1476,19 +1476,19 @@
aif1 &= ~WM8903_AIF_WL_MASK;
bclk = 2 * fs;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
bclk *= 16;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
bclk *= 20;
aif1 |= 0x4;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
bclk *= 24;
aif1 |= 0x8;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
bclk *= 32;
aif1 |= 0xc;
break;
diff --git a/sound/soc/codecs/wm8904.c b/sound/soc/codecs/wm8904.c
index e279298..4d2d2b1 100644
--- a/sound/soc/codecs/wm8904.c
+++ b/sound/soc/codecs/wm8904.c
@@ -11,6 +11,7 @@
* published by the Free Software Foundation.
*/
+#include <linux/clk.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
@@ -49,6 +50,7 @@
/* codec private data */
struct wm8904_priv {
struct regmap *regmap;
+ struct clk *mclk;
enum wm8904_type devtype;
@@ -1290,16 +1292,16 @@
wm8904->bclk = snd_soc_params_to_bclk(params);
}
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
aif1 |= 0x40;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
aif1 |= 0x80;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
aif1 |= 0xc0;
break;
default:
@@ -1828,6 +1830,7 @@
switch (level) {
case SND_SOC_BIAS_ON:
+ clk_prepare_enable(wm8904->mclk);
break;
case SND_SOC_BIAS_PREPARE:
@@ -1894,6 +1897,7 @@
regulator_bulk_disable(ARRAY_SIZE(wm8904->supplies),
wm8904->supplies);
+ clk_disable_unprepare(wm8904->mclk);
break;
}
codec->dapm.bias_level = level;
@@ -2106,6 +2110,13 @@
if (wm8904 == NULL)
return -ENOMEM;
+ wm8904->mclk = devm_clk_get(&i2c->dev, "mclk");
+ if (IS_ERR(wm8904->mclk)) {
+ ret = PTR_ERR(wm8904->mclk);
+ dev_err(&i2c->dev, "Failed to get MCLK\n");
+ return ret;
+ }
+
wm8904->regmap = devm_regmap_init_i2c(i2c, &wm8904_regmap);
if (IS_ERR(wm8904->regmap)) {
ret = PTR_ERR(wm8904->regmap);
diff --git a/sound/soc/codecs/wm8940.c b/sound/soc/codecs/wm8940.c
index fc6eec9..5201104 100644
--- a/sound/soc/codecs/wm8940.c
+++ b/sound/soc/codecs/wm8940.c
@@ -430,19 +430,19 @@
if (ret)
goto error_ret;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S8:
+ switch (params_width(params)) {
+ case 8:
companding = companding | (1 << 5);
break;
- case SNDRV_PCM_FORMAT_S16_LE:
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= (1 << 5);
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= (2 << 5);
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= (3 << 5);
break;
}
diff --git a/sound/soc/codecs/wm8955.c b/sound/soc/codecs/wm8955.c
index 2a35108..09d91d9 100644
--- a/sound/soc/codecs/wm8955.c
+++ b/sound/soc/codecs/wm8955.c
@@ -597,17 +597,17 @@
int ret;
int wl;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
wl = 0;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
wl = 0x4;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
wl = 0x8;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
wl = 0xc;
break;
default:
diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c
index e96349b..4dc4e85 100644
--- a/sound/soc/codecs/wm8960.c
+++ b/sound/soc/codecs/wm8960.c
@@ -567,24 +567,21 @@
struct snd_soc_codec *codec = dai->codec;
struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec);
u16 iface = snd_soc_read(codec, WM8960_IFACE1) & 0xfff3;
- snd_pcm_format_t format = params_format(params);
int i;
/* bit size */
- switch (format) {
- case SNDRV_PCM_FORMAT_S16_LE:
- case SNDRV_PCM_FORMAT_S16_BE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
- case SNDRV_PCM_FORMAT_S20_3BE:
+ case 20:
iface |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
- case SNDRV_PCM_FORMAT_S24_BE:
+ case 24:
iface |= 0x0008;
break;
default:
- dev_err(codec->dev, "unsupported format %i\n", format);
+ dev_err(codec->dev, "unsupported width %d\n",
+ params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/wm8961.c b/sound/soc/codecs/wm8961.c
index 9c88f04..41d23e9 100644
--- a/sound/soc/codecs/wm8961.c
+++ b/sound/soc/codecs/wm8961.c
@@ -565,16 +565,16 @@
reg = snd_soc_read(codec, WM8961_AUDIO_INTERFACE_0);
reg &= ~WM8961_WL_MASK;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
reg |= 1 << WM8961_WL_SHIFT;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
reg |= 2 << WM8961_WL_SHIFT;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
reg |= 3 << WM8961_WL_SHIFT;
break;
default:
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index ca2fda9..1098ae3 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -14,6 +14,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/init.h>
+#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/pm.h>
#include <linux/gcd.h>
@@ -2586,16 +2587,16 @@
if (wm8962->lrclk % 8000 == 0)
adctl3 |= WM8962_SAMPLE_RATE_INT_MODE;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
aif0 |= 0x4;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
aif0 |= 0x8;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
aif0 |= 0xc;
break;
default:
@@ -3541,6 +3542,8 @@
pdata->gpio_init[i] = 0x0;
}
+ pdata->mclk = devm_clk_get(&i2c->dev, NULL);
+
return 0;
}
@@ -3572,6 +3575,14 @@
return ret;
}
+ /* Mark the mclk pointer to NULL if no mclk assigned */
+ if (IS_ERR(wm8962->pdata.mclk)) {
+ /* But do not ignore the request for probe defer */
+ if (PTR_ERR(wm8962->pdata.mclk) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
+ wm8962->pdata.mclk = NULL;
+ }
+
for (i = 0; i < ARRAY_SIZE(wm8962->supplies); i++)
wm8962->supplies[i].supply = wm8962_supply_names[i];
@@ -3780,6 +3791,12 @@
struct wm8962_priv *wm8962 = dev_get_drvdata(dev);
int ret;
+ ret = clk_prepare_enable(wm8962->pdata.mclk);
+ if (ret) {
+ dev_err(dev, "Failed to enable MCLK: %d\n", ret);
+ return ret;
+ }
+
ret = regulator_bulk_enable(ARRAY_SIZE(wm8962->supplies),
wm8962->supplies);
if (ret != 0) {
@@ -3839,6 +3856,8 @@
regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies),
wm8962->supplies);
+ clk_disable_unprepare(wm8962->pdata.mclk);
+
return 0;
}
#endif
diff --git a/sound/soc/codecs/wm8971.c b/sound/soc/codecs/wm8971.c
index 09b7b42..0499cd4 100644
--- a/sound/soc/codecs/wm8971.c
+++ b/sound/soc/codecs/wm8971.c
@@ -517,16 +517,16 @@
int coeff = get_coeff(wm8971->sysclk, params_rate(params));
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0008;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x000c;
break;
}
diff --git a/sound/soc/codecs/wm8974.c b/sound/soc/codecs/wm8974.c
index 0627c56..682e9ed 100644
--- a/sound/soc/codecs/wm8974.c
+++ b/sound/soc/codecs/wm8974.c
@@ -445,16 +445,16 @@
u16 adn = snd_soc_read(codec, WM8974_ADD) & 0x1f1;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0020;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0040;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x0060;
break;
}
diff --git a/sound/soc/codecs/wm8978.c b/sound/soc/codecs/wm8978.c
index 28ef46c..ee2ba57 100644
--- a/sound/soc/codecs/wm8978.c
+++ b/sound/soc/codecs/wm8978.c
@@ -736,16 +736,16 @@
return -EINVAL;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface_ctl |= 0x20;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface_ctl |= 0x40;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface_ctl |= 0x60;
break;
}
@@ -817,8 +817,8 @@
wm8978->sysclk == WM8978_MCLK ?
", consider using PLL" : "");
- dev_dbg(codec->dev, "%s: fmt %d, rate %u, MCLK divisor #%d\n", __func__,
- params_format(params), params_rate(params), best);
+ dev_dbg(codec->dev, "%s: width %d, rate %u, MCLK divisor #%d\n", __func__,
+ params_width(params), params_rate(params), best);
/* MCLK divisor mask = 0xe0 */
snd_soc_update_bits(codec, WM8978_CLOCKING, 0xe0, best << 5);
diff --git a/sound/soc/codecs/wm8983.c b/sound/soc/codecs/wm8983.c
index 19d5baa..ac5defd 100644
--- a/sound/soc/codecs/wm8983.c
+++ b/sound/soc/codecs/wm8983.c
@@ -719,22 +719,22 @@
wm8983->bclk = ret;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
blen = 0x0;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
blen = 0x1;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
blen = 0x2;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
blen = 0x3;
break;
default:
dev_err(dai->dev, "Unsupported word length %u\n",
- params_format(params));
+ params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/wm8985.c b/sound/soc/codecs/wm8985.c
index 0f5780c..b0f64345 100644
--- a/sound/soc/codecs/wm8985.c
+++ b/sound/soc/codecs/wm8985.c
@@ -698,22 +698,22 @@
if ((int)wm8985->bclk < 0)
return wm8985->bclk;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
blen = 0x0;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
blen = 0x1;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
blen = 0x2;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
blen = 0x3;
break;
default:
dev_err(dai->dev, "Unsupported word length %u\n",
- params_format(params));
+ params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/wm8988.c b/sound/soc/codecs/wm8988.c
index d3fea46..a5130d9 100644
--- a/sound/soc/codecs/wm8988.c
+++ b/sound/soc/codecs/wm8988.c
@@ -687,16 +687,16 @@
}
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
iface |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
iface |= 0x0008;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
iface |= 0x000c;
break;
}
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c
index b5c1f0f..03e43e3 100644
--- a/sound/soc/codecs/wm8990.c
+++ b/sound/soc/codecs/wm8990.c
@@ -1073,16 +1073,16 @@
audio1 &= ~WM8990_AIF_WL_MASK;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
audio1 |= WM8990_AIF_WL_20BITS;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
audio1 |= WM8990_AIF_WL_24BITS;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
audio1 |= WM8990_AIF_WL_32BITS;
break;
}
diff --git a/sound/soc/codecs/wm8991.c b/sound/soc/codecs/wm8991.c
index b8fd284f..d0be897 100644
--- a/sound/soc/codecs/wm8991.c
+++ b/sound/soc/codecs/wm8991.c
@@ -1081,16 +1081,16 @@
audio1 &= ~WM8991_AIF_WL_MASK;
/* bit size */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
audio1 |= WM8991_AIF_WL_20BITS;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
audio1 |= WM8991_AIF_WL_24BITS;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
audio1 |= WM8991_AIF_WL_32BITS;
break;
}
diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c
index f825dc0..93b14ed 100644
--- a/sound/soc/codecs/wm8993.c
+++ b/sound/soc/codecs/wm8993.c
@@ -1214,19 +1214,19 @@
wm8993->tdm_slots, wm8993->tdm_width);
wm8993->bclk *= wm8993->tdm_width * wm8993->tdm_slots;
} else {
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
wm8993->bclk *= 16;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
wm8993->bclk *= 20;
aif1 |= 0x8;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
wm8993->bclk *= 24;
aif1 |= 0x10;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
wm8993->bclk *= 32;
aif1 |= 0x18;
break;
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index 39d8df0..6cc0566 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -2815,19 +2815,19 @@
}
bclk_rate = params_rate(params);
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
bclk_rate *= 16;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
bclk_rate *= 20;
aif1 |= 0x20;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
bclk_rate *= 24;
aif1 |= 0x40;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
bclk_rate *= 32;
aif1 |= 0x60;
break;
@@ -2966,16 +2966,16 @@
return 0;
}
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
aif1 |= 0x20;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
aif1 |= 0x40;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
aif1 |= 0x60;
break;
default:
diff --git a/sound/soc/codecs/wm8995.c b/sound/soc/codecs/wm8995.c
index 863a2c3..cae4ac5 100644
--- a/sound/soc/codecs/wm8995.c
+++ b/sound/soc/codecs/wm8995.c
@@ -1597,21 +1597,21 @@
return bclk_rate;
aif1 = 0;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
aif1 |= (0x1 << WM8995_AIF1_WL_SHIFT);
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
aif1 |= (0x2 << WM8995_AIF1_WL_SHIFT);
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
aif1 |= (0x3 << WM8995_AIF1_WL_SHIFT);
break;
default:
dev_err(dai->dev, "Unsupported word length %u\n",
- params_format(params));
+ params_width(params));
return -EINVAL;
}
diff --git a/sound/soc/codecs/wm9081.c b/sound/soc/codecs/wm9081.c
index 185eb97..0cdc9e2 100644
--- a/sound/soc/codecs/wm9081.c
+++ b/sound/soc/codecs/wm9081.c
@@ -1029,19 +1029,19 @@
/* Otherwise work out a BCLK from the sample size */
wm9081->bclk = 2 * wm9081->fs;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
wm9081->bclk *= 16;
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
wm9081->bclk *= 20;
aif2 |= 0x4;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
wm9081->bclk *= 24;
aif2 |= 0x8;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
wm9081->bclk *= 32;
aif2 |= 0xc;
break;
diff --git a/sound/soc/codecs/wm9713.c b/sound/soc/codecs/wm9713.c
index 2a9c6d1..bddee30 100644
--- a/sound/soc/codecs/wm9713.c
+++ b/sound/soc/codecs/wm9713.c
@@ -953,16 +953,16 @@
struct snd_soc_codec *codec = dai->codec;
u16 reg = ac97_read(codec, AC97_CENTER_LFE_MASTER) & 0xfff3;
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
+ switch (params_width(params)) {
+ case 16:
break;
- case SNDRV_PCM_FORMAT_S20_3LE:
+ case 20:
reg |= 0x0004;
break;
- case SNDRV_PCM_FORMAT_S24_LE:
+ case 24:
reg |= 0x0008;
break;
- case SNDRV_PCM_FORMAT_S32_LE:
+ case 32:
reg |= 0x000c;
break;
}