Skip to content

Commit 7f02bf6

Browse files
committed
Merge tag 'sound-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "It's always an ambivalent feeling to send a large pull request at the late stage like this, especially when most of patches came from me. Anyway, this is a collection of lots of small fixes that slipped from the previous pull request. All fixes are about ASoC, and the majority of changes are corrections of the wrong access types in ALSA ctl enum items. They are mostly harmless on 32bit architectures, but actually buggy on 64bit. So we addressed all these now in a shot. The rest are various small ASoC driver fixes. Among them, only two changes have been done to ASoC core, and both of them are trivial. The rest are all device-specific. So overall, they should be safe to apply" * tag 'sound-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (33 commits) ASoC: wm_adsp: Fix enum ctl accesses in a wrong type ASoC: wm9081: Fix enum ctl accesses in a wrong type ASoC: wm8996: Fix enum ctl accesses in a wrong type ASoC: wm8994: Fix enum ctl accesses in a wrong type ASoC: wm8985: Fix enum ctl accesses in a wrong type ASoC: wm8983: Fix enum ctl accesses in a wrong type ASoC: wm8958: Fix enum ctl accesses in a wrong type ASoC: wm8904: Fix enum ctl accesses in a wrong type ASoC: wm8753: Fix enum ctl accesses in a wrong type ASoC: wl1273: Fix enum ctl accesses in a wrong type ASoC: tlv320dac33: Fix enum ctl accesses in a wrong type ASoC: max98095: Fix enum ctl accesses in a wrong type ASoC: max98088: Fix enum ctl accesses in a wrong type ASoC: ab8500: Fix enum ctl accesses in a wrong type ASoC: da732x: Fix enum ctl accesses in a wrong type ASoC: cs42l51: Fix enum ctl accesses in a wrong type ASoC: intel: mfld: Fix enum ctl accesses in a wrong type ASoC: omap: rx51: Fix enum ctl accesses in a wrong type ASoC: omap: n810: Fix enum ctl accesses in a wrong type ASoC: pxa: tosa: Fix enum ctl accesses in a wrong type ...
2 parents 1e2a4c7 + ad09ef2 commit 7f02bf6

33 files changed

+162
-160
lines changed

include/trace/events/asoc.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,13 +231,13 @@ TRACE_EVENT(snd_soc_jack_report,
231231
TP_ARGS(jack, mask, val),
232232

233233
TP_STRUCT__entry(
234-
__string( name, jack->jack->name )
234+
__string( name, jack->jack->id )
235235
__field( int, mask )
236236
__field( int, val )
237237
),
238238

239239
TP_fast_assign(
240-
__assign_str(name, jack->jack->name);
240+
__assign_str(name, jack->jack->id);
241241
__entry->mask = mask;
242242
__entry->val = val;
243243
),
@@ -253,12 +253,12 @@ TRACE_EVENT(snd_soc_jack_notify,
253253
TP_ARGS(jack, val),
254254

255255
TP_STRUCT__entry(
256-
__string( name, jack->jack->name )
256+
__string( name, jack->jack->id )
257257
__field( int, val )
258258
),
259259

260260
TP_fast_assign(
261-
__assign_str(name, jack->jack->name);
261+
__assign_str(name, jack->jack->id);
262262
__entry->val = val;
263263
),
264264

sound/soc/codecs/ab8500-codec.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,7 +1130,7 @@ static int sid_status_control_get(struct snd_kcontrol *kcontrol,
11301130
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev);
11311131

11321132
mutex_lock(&drvdata->ctrl_lock);
1133-
ucontrol->value.integer.value[0] = drvdata->sid_status;
1133+
ucontrol->value.enumerated.item[0] = drvdata->sid_status;
11341134
mutex_unlock(&drvdata->ctrl_lock);
11351135

11361136
return 0;
@@ -1147,7 +1147,7 @@ static int sid_status_control_put(struct snd_kcontrol *kcontrol,
11471147

11481148
dev_dbg(codec->dev, "%s: Enter\n", __func__);
11491149

1150-
if (ucontrol->value.integer.value[0] != SID_APPLY_FIR) {
1150+
if (ucontrol->value.enumerated.item[0] != SID_APPLY_FIR) {
11511151
dev_err(codec->dev,
11521152
"%s: ERROR: This control supports '%s' only!\n",
11531153
__func__, enum_sid_state[SID_APPLY_FIR]);
@@ -1199,7 +1199,7 @@ static int anc_status_control_get(struct snd_kcontrol *kcontrol,
11991199
struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev);
12001200

12011201
mutex_lock(&drvdata->ctrl_lock);
1202-
ucontrol->value.integer.value[0] = drvdata->anc_status;
1202+
ucontrol->value.enumerated.item[0] = drvdata->anc_status;
12031203
mutex_unlock(&drvdata->ctrl_lock);
12041204

12051205
return 0;
@@ -1220,7 +1220,7 @@ static int anc_status_control_put(struct snd_kcontrol *kcontrol,
12201220

12211221
mutex_lock(&drvdata->ctrl_lock);
12221222

1223-
req = ucontrol->value.integer.value[0];
1223+
req = ucontrol->value.enumerated.item[0];
12241224
if (req >= ARRAY_SIZE(enum_anc_state)) {
12251225
status = -EINVAL;
12261226
goto cleanup;

sound/soc/codecs/adau17x1.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,9 @@ bool adau17x1_has_dsp(struct adau *adau);
103103
#define ADAU17X1_CLOCK_CONTROL_CORECLK_SRC_PLL BIT(3)
104104
#define ADAU17X1_CLOCK_CONTROL_SYSCLK_EN BIT(0)
105105

106-
#define ADAU17X1_SERIAL_PORT1_BCLK32 (0x0 << 5)
107-
#define ADAU17X1_SERIAL_PORT1_BCLK48 (0x1 << 5)
108-
#define ADAU17X1_SERIAL_PORT1_BCLK64 (0x2 << 5)
106+
#define ADAU17X1_SERIAL_PORT1_BCLK64 (0x0 << 5)
107+
#define ADAU17X1_SERIAL_PORT1_BCLK32 (0x1 << 5)
108+
#define ADAU17X1_SERIAL_PORT1_BCLK48 (0x2 << 5)
109109
#define ADAU17X1_SERIAL_PORT1_BCLK128 (0x3 << 5)
110110
#define ADAU17X1_SERIAL_PORT1_BCLK256 (0x4 << 5)
111111
#define ADAU17X1_SERIAL_PORT1_BCLK_MASK (0x7 << 5)

sound/soc/codecs/cs42l51.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ static int cs42l51_get_chan_mix(struct snd_kcontrol *kcontrol,
6060
switch (value) {
6161
default:
6262
case 0:
63-
ucontrol->value.integer.value[0] = 0;
63+
ucontrol->value.enumerated.item[0] = 0;
6464
break;
6565
/* same value : (L+R)/2 and (R+L)/2 */
6666
case 1:
6767
case 2:
68-
ucontrol->value.integer.value[0] = 1;
68+
ucontrol->value.enumerated.item[0] = 1;
6969
break;
7070
case 3:
71-
ucontrol->value.integer.value[0] = 2;
71+
ucontrol->value.enumerated.item[0] = 2;
7272
break;
7373
}
7474

@@ -85,7 +85,7 @@ static int cs42l51_set_chan_mix(struct snd_kcontrol *kcontrol,
8585
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
8686
unsigned char val;
8787

88-
switch (ucontrol->value.integer.value[0]) {
88+
switch (ucontrol->value.enumerated.item[0]) {
8989
default:
9090
case 0:
9191
val = CHAN_MIX_NORMAL;

sound/soc/codecs/da732x.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ static int da732x_hpf_set(struct snd_kcontrol *kcontrol,
334334
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
335335
struct soc_enum *enum_ctrl = (struct soc_enum *)kcontrol->private_value;
336336
unsigned int reg = enum_ctrl->reg;
337-
unsigned int sel = ucontrol->value.integer.value[0];
337+
unsigned int sel = ucontrol->value.enumerated.item[0];
338338
unsigned int bits;
339339

340340
switch (sel) {
@@ -368,13 +368,13 @@ static int da732x_hpf_get(struct snd_kcontrol *kcontrol,
368368

369369
switch (val) {
370370
case DA732X_HPF_VOICE_EN:
371-
ucontrol->value.integer.value[0] = DA732X_HPF_VOICE;
371+
ucontrol->value.enumerated.item[0] = DA732X_HPF_VOICE;
372372
break;
373373
case DA732X_HPF_MUSIC_EN:
374-
ucontrol->value.integer.value[0] = DA732X_HPF_MUSIC;
374+
ucontrol->value.enumerated.item[0] = DA732X_HPF_MUSIC;
375375
break;
376376
default:
377-
ucontrol->value.integer.value[0] = DA732X_HPF_DISABLED;
377+
ucontrol->value.enumerated.item[0] = DA732X_HPF_DISABLED;
378378
break;
379379
}
380380

sound/soc/codecs/max98088.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1496,7 +1496,7 @@ static int max98088_put_eq_enum(struct snd_kcontrol *kcontrol,
14961496
struct max98088_pdata *pdata = max98088->pdata;
14971497
int channel = max98088_get_channel(codec, kcontrol->id.name);
14981498
struct max98088_cdata *cdata;
1499-
int sel = ucontrol->value.integer.value[0];
1499+
int sel = ucontrol->value.enumerated.item[0];
15001500

15011501
if (channel < 0)
15021502
return channel;

sound/soc/codecs/max98095.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,7 +1499,7 @@ static int max98095_put_eq_enum(struct snd_kcontrol *kcontrol,
14991499
struct max98095_pdata *pdata = max98095->pdata;
15001500
int channel = max98095_get_eq_channel(kcontrol->id.name);
15011501
struct max98095_cdata *cdata;
1502-
unsigned int sel = ucontrol->value.integer.value[0];
1502+
unsigned int sel = ucontrol->value.enumerated.item[0];
15031503
struct max98095_eq_cfg *coef_set;
15041504
int fs, best, best_val, i;
15051505
int regmask, regsave;
@@ -1653,7 +1653,7 @@ static int max98095_put_bq_enum(struct snd_kcontrol *kcontrol,
16531653
struct max98095_pdata *pdata = max98095->pdata;
16541654
int channel = max98095_get_bq_channel(codec, kcontrol->id.name);
16551655
struct max98095_cdata *cdata;
1656-
unsigned int sel = ucontrol->value.integer.value[0];
1656+
unsigned int sel = ucontrol->value.enumerated.item[0];
16571657
struct max98095_biquad_cfg *coef_set;
16581658
int fs, best, best_val, i;
16591659
int regmask, regsave;

sound/soc/codecs/tlv320dac33.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,7 @@ static int dac33_get_fifo_mode(struct snd_kcontrol *kcontrol,
446446
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
447447
struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec);
448448

449-
ucontrol->value.integer.value[0] = dac33->fifo_mode;
449+
ucontrol->value.enumerated.item[0] = dac33->fifo_mode;
450450

451451
return 0;
452452
}
@@ -458,17 +458,16 @@ static int dac33_set_fifo_mode(struct snd_kcontrol *kcontrol,
458458
struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec);
459459
int ret = 0;
460460

461-
if (dac33->fifo_mode == ucontrol->value.integer.value[0])
461+
if (dac33->fifo_mode == ucontrol->value.enumerated.item[0])
462462
return 0;
463463
/* Do not allow changes while stream is running*/
464464
if (snd_soc_codec_is_active(codec))
465465
return -EPERM;
466466

467-
if (ucontrol->value.integer.value[0] < 0 ||
468-
ucontrol->value.integer.value[0] >= DAC33_FIFO_LAST_MODE)
467+
if (ucontrol->value.enumerated.item[0] >= DAC33_FIFO_LAST_MODE)
469468
ret = -EINVAL;
470469
else
471-
dac33->fifo_mode = ucontrol->value.integer.value[0];
470+
dac33->fifo_mode = ucontrol->value.enumerated.item[0];
472471

473472
return ret;
474473
}

sound/soc/codecs/wl1273.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ static int snd_wl1273_get_audio_route(struct snd_kcontrol *kcontrol,
175175
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
176176
struct wl1273_priv *wl1273 = snd_soc_codec_get_drvdata(codec);
177177

178-
ucontrol->value.integer.value[0] = wl1273->mode;
178+
ucontrol->value.enumerated.item[0] = wl1273->mode;
179179

180180
return 0;
181181
}
@@ -193,18 +193,17 @@ static int snd_wl1273_set_audio_route(struct snd_kcontrol *kcontrol,
193193
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
194194
struct wl1273_priv *wl1273 = snd_soc_codec_get_drvdata(codec);
195195

196-
if (wl1273->mode == ucontrol->value.integer.value[0])
196+
if (wl1273->mode == ucontrol->value.enumerated.item[0])
197197
return 0;
198198

199199
/* Do not allow changes while stream is running */
200200
if (snd_soc_codec_is_active(codec))
201201
return -EPERM;
202202

203-
if (ucontrol->value.integer.value[0] < 0 ||
204-
ucontrol->value.integer.value[0] >= ARRAY_SIZE(wl1273_audio_route))
203+
if (ucontrol->value.enumerated.item[0] >= ARRAY_SIZE(wl1273_audio_route))
205204
return -EINVAL;
206205

207-
wl1273->mode = ucontrol->value.integer.value[0];
206+
wl1273->mode = ucontrol->value.enumerated.item[0];
208207

209208
return 1;
210209
}
@@ -219,7 +218,7 @@ static int snd_wl1273_fm_audio_get(struct snd_kcontrol *kcontrol,
219218

220219
dev_dbg(codec->dev, "%s: enter.\n", __func__);
221220

222-
ucontrol->value.integer.value[0] = wl1273->core->audio_mode;
221+
ucontrol->value.enumerated.item[0] = wl1273->core->audio_mode;
223222

224223
return 0;
225224
}
@@ -233,7 +232,7 @@ static int snd_wl1273_fm_audio_put(struct snd_kcontrol *kcontrol,
233232

234233
dev_dbg(codec->dev, "%s: enter.\n", __func__);
235234

236-
val = ucontrol->value.integer.value[0];
235+
val = ucontrol->value.enumerated.item[0];
237236
if (wl1273->core->audio_mode == val)
238237
return 0;
239238

sound/soc/codecs/wm8753.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ static int wm8753_get_dai(struct snd_kcontrol *kcontrol,
233233
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
234234
struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec);
235235

236-
ucontrol->value.integer.value[0] = wm8753->dai_func;
236+
ucontrol->value.enumerated.item[0] = wm8753->dai_func;
237237
return 0;
238238
}
239239

@@ -244,15 +244,15 @@ static int wm8753_set_dai(struct snd_kcontrol *kcontrol,
244244
struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec);
245245
u16 ioctl;
246246

247-
if (wm8753->dai_func == ucontrol->value.integer.value[0])
247+
if (wm8753->dai_func == ucontrol->value.enumerated.item[0])
248248
return 0;
249249

250250
if (snd_soc_codec_is_active(codec))
251251
return -EBUSY;
252252

253253
ioctl = snd_soc_read(codec, WM8753_IOCTL);
254254

255-
wm8753->dai_func = ucontrol->value.integer.value[0];
255+
wm8753->dai_func = ucontrol->value.enumerated.item[0];
256256

257257
if (((ioctl >> 2) & 0x3) == wm8753->dai_func)
258258
return 1;

sound/soc/codecs/wm8904.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ static int wm8904_put_drc_enum(struct snd_kcontrol *kcontrol,
396396
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
397397
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
398398
struct wm8904_pdata *pdata = wm8904->pdata;
399-
int value = ucontrol->value.integer.value[0];
399+
int value = ucontrol->value.enumerated.item[0];
400400

401401
if (value >= pdata->num_drc_cfgs)
402402
return -EINVAL;
@@ -467,7 +467,7 @@ static int wm8904_put_retune_mobile_enum(struct snd_kcontrol *kcontrol,
467467
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
468468
struct wm8904_priv *wm8904 = snd_soc_codec_get_drvdata(codec);
469469
struct wm8904_pdata *pdata = wm8904->pdata;
470-
int value = ucontrol->value.integer.value[0];
470+
int value = ucontrol->value.enumerated.item[0];
471471

472472
if (value >= pdata->num_retune_mobile_cfgs)
473473
return -EINVAL;

sound/soc/codecs/wm8958-dsp2.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ static int wm8958_put_mbc_enum(struct snd_kcontrol *kcontrol,
459459
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
460460
struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
461461
struct wm8994 *control = wm8994->wm8994;
462-
int value = ucontrol->value.integer.value[0];
462+
int value = ucontrol->value.enumerated.item[0];
463463
int reg;
464464

465465
/* Don't allow on the fly reconfiguration */
@@ -549,7 +549,7 @@ static int wm8958_put_vss_enum(struct snd_kcontrol *kcontrol,
549549
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
550550
struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
551551
struct wm8994 *control = wm8994->wm8994;
552-
int value = ucontrol->value.integer.value[0];
552+
int value = ucontrol->value.enumerated.item[0];
553553
int reg;
554554

555555
/* Don't allow on the fly reconfiguration */
@@ -582,7 +582,7 @@ static int wm8958_put_vss_hpf_enum(struct snd_kcontrol *kcontrol,
582582
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
583583
struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
584584
struct wm8994 *control = wm8994->wm8994;
585-
int value = ucontrol->value.integer.value[0];
585+
int value = ucontrol->value.enumerated.item[0];
586586
int reg;
587587

588588
/* Don't allow on the fly reconfiguration */
@@ -749,7 +749,7 @@ static int wm8958_put_enh_eq_enum(struct snd_kcontrol *kcontrol,
749749
struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
750750
struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
751751
struct wm8994 *control = wm8994->wm8994;
752-
int value = ucontrol->value.integer.value[0];
752+
int value = ucontrol->value.enumerated.item[0];
753753
int reg;
754754

755755
/* Don't allow on the fly reconfiguration */

sound/soc/codecs/wm8983.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -497,9 +497,9 @@ static int eqmode_get(struct snd_kcontrol *kcontrol,
497497

498498
reg = snd_soc_read(codec, WM8983_EQ1_LOW_SHELF);
499499
if (reg & WM8983_EQ3DMODE)
500-
ucontrol->value.integer.value[0] = 1;
500+
ucontrol->value.enumerated.item[0] = 1;
501501
else
502-
ucontrol->value.integer.value[0] = 0;
502+
ucontrol->value.enumerated.item[0] = 0;
503503

504504
return 0;
505505
}
@@ -511,18 +511,18 @@ static int eqmode_put(struct snd_kcontrol *kcontrol,
511511
unsigned int regpwr2, regpwr3;
512512
unsigned int reg_eq;
513513

514-
if (ucontrol->value.integer.value[0] != 0
515-
&& ucontrol->value.integer.value[0] != 1)
514+
if (ucontrol->value.enumerated.item[0] != 0
515+
&& ucontrol->value.enumerated.item[0] != 1)
516516
return -EINVAL;
517517

518518
reg_eq = snd_soc_read(codec, WM8983_EQ1_LOW_SHELF);
519519
switch ((reg_eq & WM8983_EQ3DMODE) >> WM8983_EQ3DMODE_SHIFT) {
520520
case 0:
521-
if (!ucontrol->value.integer.value[0])
521+
if (!ucontrol->value.enumerated.item[0])
522522
return 0;
523523
break;
524524
case 1:
525-
if (ucontrol->value.integer.value[0])
525+
if (ucontrol->value.enumerated.item[0])
526526
return 0;
527527
break;
528528
}
@@ -537,7 +537,7 @@ static int eqmode_put(struct snd_kcontrol *kcontrol,
537537
/* set the desired eqmode */
538538
snd_soc_update_bits(codec, WM8983_EQ1_LOW_SHELF,
539539
WM8983_EQ3DMODE_MASK,
540-
ucontrol->value.integer.value[0]
540+
ucontrol->value.enumerated.item[0]
541541
<< WM8983_EQ3DMODE_SHIFT);
542542
/* restore DAC/ADC configuration */
543543
snd_soc_write(codec, WM8983_POWER_MANAGEMENT_2, regpwr2);

0 commit comments

Comments
 (0)