Skip to content

Commit 68d187e

Browse files
committed
Merge tag 'sound-6.6-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "A collection of pending fixes since a couple of weeks ago, which became slightly bigger than usual due to my vacation. Most of changes are about ASoC device-specific fixes while USB- and HD-audio received quirks as usual. All fixes, including two ASoC core changes, are reasonably small and safe to apply" * tag 'sound-6.6-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (23 commits) ALSA: usb-audio: Fix microphone sound on Nexigo webcam. ALSA: hda/realtek: Change model for Intel RVP board ALSA: usb-audio: Fix microphone sound on Opencomm2 Headset ALSA: hda: cs35l41: Cleanup and fix double free in firmware request ASoC: dt-bindings: fsl,micfil: Document #sound-dai-cells ASoC: amd: yc: Fix non-functional mic on Lenovo 82YM ASoC: tlv320adc3xxx: BUG: Correct micbias setting ASoC: rt5682: Fix regulator enable/disable sequence ASoC: hdmi-codec: Fix broken channel map reporting ASoC: core: Do not call link_exit() on uninitialized rtd objects ASoC: core: Print component name when printing log ASoC: SOF: amd: fix for firmware reload failure after playback ASoC: fsl-asoc-card: use integer type for fll_id and pll_id ASoC: fsl_sai: Don't disable bitclock for i.MX8MP dt-bindings: ASoC: rockchip: Add compatible for RK3128 spdif ASoC: soc-generic-dmaengine-pcm: Fix function name in comment ALSA: hda/realtek - ALC287 merge RTK codec with CS CS35L41 AMP ASoC: simple-card: fixup asoc_simple_probe() error handling ASoC: simple-card-utils: fixup simple_util_startup() error handling ASoC: Intel: sof_sdw: add support for SKU 0B14 ...
2 parents 94f6f05 + 4a63e68 commit 68d187e

File tree

22 files changed

+225
-80
lines changed

22 files changed

+225
-80
lines changed

Documentation/devicetree/bindings/sound/fsl,micfil.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ properties:
5656
- const: clkext3
5757
minItems: 2
5858

59+
"#sound-dai-cells":
60+
const: 0
61+
5962
required:
6063
- compatible
6164
- reg

Documentation/devicetree/bindings/sound/rockchip-spdif.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ properties:
2626
- const: rockchip,rk3568-spdif
2727
- items:
2828
- enum:
29+
- rockchip,rk3128-spdif
2930
- rockchip,rk3188-spdif
3031
- rockchip,rk3288-spdif
3132
- rockchip,rk3308-spdif

include/sound/soc.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,6 +1126,8 @@ struct snd_soc_pcm_runtime {
11261126
unsigned int pop_wait:1;
11271127
unsigned int fe_compr:1; /* for Dynamic PCM */
11281128

1129+
bool initialized;
1130+
11291131
int num_components;
11301132
struct snd_soc_component *components[]; /* CPU/Codec/Platform */
11311133
};

sound/pci/hda/cs35l41_hda.c

Lines changed: 79 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,14 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
185185
cs35l41->speaker_id, "wmfw");
186186
if (!ret) {
187187
/* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */
188-
return cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
189-
CS35L41_FIRMWARE_ROOT,
190-
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
191-
cs35l41->speaker_id, "bin");
188+
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
189+
CS35L41_FIRMWARE_ROOT,
190+
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
191+
cs35l41->speaker_id, "bin");
192+
if (ret)
193+
goto coeff_err;
194+
195+
return 0;
192196
}
193197

194198
/* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */
@@ -197,10 +201,14 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
197201
cs35l41->amp_name, -1, "wmfw");
198202
if (!ret) {
199203
/* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */
200-
return cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
201-
CS35L41_FIRMWARE_ROOT,
202-
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
203-
cs35l41->speaker_id, "bin");
204+
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
205+
CS35L41_FIRMWARE_ROOT,
206+
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
207+
cs35l41->speaker_id, "bin");
208+
if (ret)
209+
goto coeff_err;
210+
211+
return 0;
204212
}
205213

206214
/* try cirrus/part-dspN-fwtype-sub<-spkidN>.wmfw */
@@ -215,10 +223,14 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
215223
cs35l41->amp_name, cs35l41->speaker_id, "bin");
216224
if (ret)
217225
/* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */
218-
return cs35l41_request_firmware_file(cs35l41, coeff_firmware,
219-
coeff_filename, CS35L41_FIRMWARE_ROOT,
220-
cs35l41->acpi_subsystem_id, NULL,
221-
cs35l41->speaker_id, "bin");
226+
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware,
227+
coeff_filename, CS35L41_FIRMWARE_ROOT,
228+
cs35l41->acpi_subsystem_id, NULL,
229+
cs35l41->speaker_id, "bin");
230+
if (ret)
231+
goto coeff_err;
232+
233+
return 0;
222234
}
223235

224236
/* try cirrus/part-dspN-fwtype-sub.wmfw */
@@ -233,12 +245,50 @@ static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41,
233245
cs35l41->speaker_id, "bin");
234246
if (ret)
235247
/* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */
236-
return cs35l41_request_firmware_file(cs35l41, coeff_firmware,
237-
coeff_filename, CS35L41_FIRMWARE_ROOT,
238-
cs35l41->acpi_subsystem_id, NULL,
239-
cs35l41->speaker_id, "bin");
248+
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware,
249+
coeff_filename, CS35L41_FIRMWARE_ROOT,
250+
cs35l41->acpi_subsystem_id, NULL,
251+
cs35l41->speaker_id, "bin");
252+
if (ret)
253+
goto coeff_err;
254+
}
255+
256+
return ret;
257+
coeff_err:
258+
release_firmware(*wmfw_firmware);
259+
kfree(*wmfw_filename);
260+
return ret;
261+
}
262+
263+
static int cs35l41_fallback_firmware_file(struct cs35l41_hda *cs35l41,
264+
const struct firmware **wmfw_firmware,
265+
char **wmfw_filename,
266+
const struct firmware **coeff_firmware,
267+
char **coeff_filename)
268+
{
269+
int ret;
270+
271+
/* Handle fallback */
272+
dev_warn(cs35l41->dev, "Falling back to default firmware.\n");
273+
274+
/* fallback try cirrus/part-dspN-fwtype.wmfw */
275+
ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename,
276+
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw");
277+
if (ret)
278+
goto err;
279+
280+
/* fallback try cirrus/part-dspN-fwtype.bin */
281+
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
282+
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin");
283+
if (ret) {
284+
release_firmware(*wmfw_firmware);
285+
kfree(*wmfw_filename);
286+
goto err;
240287
}
288+
return 0;
241289

290+
err:
291+
dev_warn(cs35l41->dev, "Unable to find firmware and tuning\n");
242292
return ret;
243293
}
244294

@@ -254,7 +304,6 @@ static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41,
254304
ret = cs35l41_request_firmware_files_spkid(cs35l41, wmfw_firmware, wmfw_filename,
255305
coeff_firmware, coeff_filename);
256306
goto out;
257-
258307
}
259308

260309
/* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */
@@ -267,6 +316,9 @@ static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41,
267316
CS35L41_FIRMWARE_ROOT,
268317
cs35l41->acpi_subsystem_id, cs35l41->amp_name,
269318
-1, "bin");
319+
if (ret)
320+
goto coeff_err;
321+
270322
goto out;
271323
}
272324

@@ -286,32 +338,23 @@ static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41,
286338
CS35L41_FIRMWARE_ROOT,
287339
cs35l41->acpi_subsystem_id, NULL, -1,
288340
"bin");
341+
if (ret)
342+
goto coeff_err;
289343
}
290344

291345
out:
292-
if (!ret)
293-
return 0;
346+
if (ret)
347+
/* if all attempts at finding firmware fail, try fallback */
348+
goto fallback;
294349

295-
/* Handle fallback */
296-
dev_warn(cs35l41->dev, "Falling back to default firmware.\n");
350+
return 0;
297351

352+
coeff_err:
298353
release_firmware(*wmfw_firmware);
299354
kfree(*wmfw_filename);
300-
301-
/* fallback try cirrus/part-dspN-fwtype.wmfw */
302-
ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename,
303-
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw");
304-
if (!ret)
305-
/* fallback try cirrus/part-dspN-fwtype.bin */
306-
ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename,
307-
CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin");
308-
309-
if (ret) {
310-
release_firmware(*wmfw_firmware);
311-
kfree(*wmfw_filename);
312-
dev_warn(cs35l41->dev, "Unable to find firmware and tuning\n");
313-
}
314-
return ret;
355+
fallback:
356+
return cs35l41_fallback_firmware_file(cs35l41, wmfw_firmware, wmfw_filename,
357+
coeff_firmware, coeff_filename);
315358
}
316359

317360
#if IS_ENABLED(CONFIG_EFI)

sound/pci/hda/patch_realtek.c

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7343,6 +7343,7 @@ enum {
73437343
ALC245_FIXUP_HP_MUTE_LED_COEFBIT,
73447344
ALC245_FIXUP_HP_X360_MUTE_LEDS,
73457345
ALC287_FIXUP_THINKPAD_I2S_SPK,
7346+
ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD,
73467347
};
73477348

73487349
/* A special fixup for Lenovo C940 and Yoga Duet 7;
@@ -9441,6 +9442,12 @@ static const struct hda_fixup alc269_fixups[] = {
94419442
.type = HDA_FIXUP_FUNC,
94429443
.v.func = alc287_fixup_bind_dacs,
94439444
},
9445+
[ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD] = {
9446+
.type = HDA_FIXUP_FUNC,
9447+
.v.func = alc287_fixup_bind_dacs,
9448+
.chained = true,
9449+
.chain_id = ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI,
9450+
},
94449451
};
94459452

94469453
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -9854,7 +9861,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
98549861
SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
98559862
SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
98569863
SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
9857-
SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC225_FIXUP_HEADSET_JACK),
9864+
SND_PCI_QUIRK(0x10ec, 0x12cc, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK),
98589865
SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE),
98599866
SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC),
98609867
SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP),
@@ -9988,14 +9995,14 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
99889995
SND_PCI_QUIRK(0x17aa, 0x22be, "Thinkpad X1 Carbon 8th", ALC285_FIXUP_THINKPAD_HEADSET_JACK),
99899996
SND_PCI_QUIRK(0x17aa, 0x22c1, "Thinkpad P1 Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
99909997
SND_PCI_QUIRK(0x17aa, 0x22c2, "Thinkpad X1 Extreme Gen 3", ALC285_FIXUP_THINKPAD_NO_BASS_SPK_HEADSET_JACK),
9991-
SND_PCI_QUIRK(0x17aa, 0x22f1, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9992-
SND_PCI_QUIRK(0x17aa, 0x22f2, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9993-
SND_PCI_QUIRK(0x17aa, 0x22f3, "Thinkpad", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9994-
SND_PCI_QUIRK(0x17aa, 0x2316, "Thinkpad P1 Gen 6", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9995-
SND_PCI_QUIRK(0x17aa, 0x2317, "Thinkpad P1 Gen 6", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9996-
SND_PCI_QUIRK(0x17aa, 0x2318, "Thinkpad Z13 Gen2", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9997-
SND_PCI_QUIRK(0x17aa, 0x2319, "Thinkpad Z16 Gen2", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9998-
SND_PCI_QUIRK(0x17aa, 0x231a, "Thinkpad Z16 Gen2", ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI),
9998+
SND_PCI_QUIRK(0x17aa, 0x22f1, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
9999+
SND_PCI_QUIRK(0x17aa, 0x22f2, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10000+
SND_PCI_QUIRK(0x17aa, 0x22f3, "Thinkpad", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10001+
SND_PCI_QUIRK(0x17aa, 0x2316, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10002+
SND_PCI_QUIRK(0x17aa, 0x2317, "Thinkpad P1 Gen 6", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10003+
SND_PCI_QUIRK(0x17aa, 0x2318, "Thinkpad Z13 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10004+
SND_PCI_QUIRK(0x17aa, 0x2319, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
10005+
SND_PCI_QUIRK(0x17aa, 0x231a, "Thinkpad Z16 Gen2", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
999910006
SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
1000010007
SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
1000110008
SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
@@ -10091,7 +10098,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
1009110098
SND_PCI_QUIRK(0x8086, 0x2074, "Intel NUC 8", ALC233_FIXUP_INTEL_NUC8_DMIC),
1009210099
SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),
1009310100
SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", ALC256_FIXUP_INTEL_NUC10),
10094-
SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC225_FIXUP_HEADSET_JACK),
10101+
SND_PCI_QUIRK(0x8086, 0x3038, "Intel NUC 13", ALC295_FIXUP_CHROME_BOOK),
1009510102
SND_PCI_QUIRK(0xf111, 0x0001, "Framework Laptop", ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE),
1009610103

1009710104
#if 0

sound/soc/amd/yc/acp6x-mach.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
241241
DMI_MATCH(DMI_PRODUCT_NAME, "82V2"),
242242
}
243243
},
244+
{
245+
.driver_data = &acp6x_card,
246+
.matches = {
247+
DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
248+
DMI_MATCH(DMI_PRODUCT_NAME, "82YM"),
249+
}
250+
},
244251
{
245252
.driver_data = &acp6x_card,
246253
.matches = {

sound/soc/codecs/hdmi-codec.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -531,7 +531,10 @@ static int hdmi_codec_fill_codec_params(struct snd_soc_dai *dai,
531531
hp->sample_rate = sample_rate;
532532
hp->channels = channels;
533533

534-
hcp->chmap_idx = idx;
534+
if (pcm_audio)
535+
hcp->chmap_idx = ca_id;
536+
else
537+
hcp->chmap_idx = HDMI_CODEC_CHMAP_IDX_UNKNOWN;
535538

536539
return 0;
537540
}

sound/soc/codecs/rt5682-i2c.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -157,18 +157,18 @@ static int rt5682_i2c_probe(struct i2c_client *i2c)
157157
return ret;
158158
}
159159

160-
ret = devm_add_action_or_reset(&i2c->dev, rt5682_i2c_disable_regulators,
161-
rt5682);
162-
if (ret)
163-
return ret;
164-
165160
ret = regulator_bulk_enable(ARRAY_SIZE(rt5682->supplies),
166161
rt5682->supplies);
167162
if (ret) {
168163
dev_err(&i2c->dev, "Failed to enable supplies: %d\n", ret);
169164
return ret;
170165
}
171166

167+
ret = devm_add_action_or_reset(&i2c->dev, rt5682_i2c_disable_regulators,
168+
rt5682);
169+
if (ret)
170+
return ret;
171+
172172
ret = rt5682_get_ldo1(rt5682, &i2c->dev);
173173
if (ret)
174174
return ret;

sound/soc/codecs/tlv320adc3xxx.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@
293293
#define ADC3XXX_BYPASS_RPGA 0x80
294294

295295
/* MICBIAS control bits */
296-
#define ADC3XXX_MICBIAS_MASK 0x2
296+
#define ADC3XXX_MICBIAS_MASK 0x3
297297
#define ADC3XXX_MICBIAS1_SHIFT 5
298298
#define ADC3XXX_MICBIAS2_SHIFT 3
299299

@@ -1099,7 +1099,7 @@ static int adc3xxx_parse_dt_micbias(struct adc3xxx *adc3xxx,
10991099
unsigned int val;
11001100

11011101
if (!of_property_read_u32(np, propname, &val)) {
1102-
if (val >= ADC3XXX_MICBIAS_AVDD) {
1102+
if (val > ADC3XXX_MICBIAS_AVDD) {
11031103
dev_err(dev, "Invalid property value for '%s'\n", propname);
11041104
return -EINVAL;
11051105
}

sound/soc/fsl/fsl-asoc-card.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ struct codec_priv {
5252
unsigned long mclk_freq;
5353
unsigned long free_freq;
5454
u32 mclk_id;
55-
u32 fll_id;
56-
u32 pll_id;
55+
int fll_id;
56+
int pll_id;
5757
};
5858

5959
/**
@@ -206,7 +206,7 @@ static int fsl_asoc_card_hw_params(struct snd_pcm_substream *substream,
206206
}
207207

208208
/* Specific configuration for PLL */
209-
if (codec_priv->pll_id && codec_priv->fll_id) {
209+
if (codec_priv->pll_id >= 0 && codec_priv->fll_id >= 0) {
210210
if (priv->sample_format == SNDRV_PCM_FORMAT_S24_LE)
211211
pll_out = priv->sample_rate * 384;
212212
else
@@ -248,7 +248,7 @@ static int fsl_asoc_card_hw_free(struct snd_pcm_substream *substream)
248248

249249
priv->streams &= ~BIT(substream->stream);
250250

251-
if (!priv->streams && codec_priv->pll_id && codec_priv->fll_id) {
251+
if (!priv->streams && codec_priv->pll_id >= 0 && codec_priv->fll_id >= 0) {
252252
/* Force freq to be free_freq to avoid error message in codec */
253253
ret = snd_soc_dai_set_sysclk(asoc_rtd_to_codec(rtd, 0),
254254
codec_priv->mclk_id,
@@ -621,6 +621,10 @@ static int fsl_asoc_card_probe(struct platform_device *pdev)
621621
priv->card.dapm_routes = audio_map;
622622
priv->card.num_dapm_routes = ARRAY_SIZE(audio_map);
623623
priv->card.driver_name = DRIVER_NAME;
624+
625+
priv->codec_priv.fll_id = -1;
626+
priv->codec_priv.pll_id = -1;
627+
624628
/* Diversify the card configurations */
625629
if (of_device_is_compatible(np, "fsl,imx-audio-cs42888")) {
626630
codec_dai_name = "cs42888";

0 commit comments

Comments
 (0)