Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'sound-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

Pull sound fixes from Takashi Iwai:
"A bit more commits than expected at this time, but likely it's the
last shot before the final.

Many of changes are device-specific fix-ups for various ASoC drivers,
while a few usual HD-audio quirks and a FireWire fix, as well as a
couple of ALSA / ASoC core fixes.

All look nice and small, and nothing to scare much"

* tag 'sound-5.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
ALSA: seq: Fix race of snd_seq_timer_open()
ALSA: hda/realtek: fix mute/micmute LEDs for HP ZBook Power G8
ALSA: hda/realtek: headphone and mic don't work on an Acer laptop
ASoC: qcom: lpass-cpu: Fix pop noise during audio capture begin
ALSA: firewire-lib: fix the context to call snd_pcm_stop_xrun()
ALSA: hda/realtek: fix mute/micmute LEDs for HP EliteBook 840 Aero G8
ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP EliteBook x360 1040 G8
ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Elite Dragonfly G2
ASoC: rt5682: Fix the fast discharge for headset unplugging in soundwire mode
ASoC: tas2562: Fix TDM_CFG0_SAMPRATE values
ASoC: meson: gx-card: fix sound-dai dt schema
ASoC: AMD Renoir: Remove fix for DMI entry on Lenovo 2020 platforms
ASoC: AMD Renoir - add DMI entry for Lenovo 2020 AMD platforms
ASoC: SOF: reset enabled_cores state at suspend
ASoC: fsl-asoc-card: Set .owner attribute when registering card.
ASoC: topology: Fix spelling mistake "vesion" -> "version"
ASoC: rt5659: Fix the lost powers for the HDA header
ASoC: core: Fix Null-point-dereference in fmt_single_name()

+148 -20
+2 -2
Documentation/devicetree/bindings/sound/amlogic,gx-sound-card.yaml
··· 57 57 rate 58 58 59 59 sound-dai: 60 - $ref: /schemas/types.yaml#/definitions/phandle 60 + $ref: /schemas/types.yaml#/definitions/phandle-array 61 61 description: phandle of the CPU DAI 62 62 63 63 patternProperties: ··· 71 71 72 72 properties: 73 73 sound-dai: 74 - $ref: /schemas/types.yaml#/definitions/phandle 74 + $ref: /schemas/types.yaml#/definitions/phandle-array 75 75 description: phandle of the codec DAI 76 76 77 77 required:
+9 -1
sound/core/seq/seq_timer.c
··· 297 297 return err; 298 298 } 299 299 spin_lock_irq(&tmr->lock); 300 - tmr->timeri = t; 300 + if (tmr->timeri) 301 + err = -EBUSY; 302 + else 303 + tmr->timeri = t; 301 304 spin_unlock_irq(&tmr->lock); 305 + if (err < 0) { 306 + snd_timer_close(t); 307 + snd_timer_instance_free(t); 308 + return err; 309 + } 302 310 return 0; 303 311 } 304 312
+1 -1
sound/firewire/amdtp-stream.c
··· 804 804 static inline void cancel_stream(struct amdtp_stream *s) 805 805 { 806 806 s->packet_index = -1; 807 - if (current_work() == &s->period_work) 807 + if (in_interrupt()) 808 808 amdtp_stream_pcm_abort(s); 809 809 WRITE_ONCE(s->pcm_buffer_pointer, SNDRV_PCM_POS_XRUN); 810 810 }
+16
sound/pci/hda/patch_realtek.c
··· 6568 6568 ALC285_FIXUP_HP_SPECTRE_X360, 6569 6569 ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, 6570 6570 ALC623_FIXUP_LENOVO_THINKSTATION_P340, 6571 + ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, 6571 6572 }; 6572 6573 6573 6574 static const struct hda_fixup alc269_fixups[] = { ··· 8147 8146 .chained = true, 8148 8147 .chain_id = ALC283_FIXUP_HEADSET_MIC, 8149 8148 }, 8149 + [ALC255_FIXUP_ACER_HEADPHONE_AND_MIC] = { 8150 + .type = HDA_FIXUP_PINS, 8151 + .v.pins = (const struct hda_pintbl[]) { 8152 + { 0x21, 0x03211030 }, /* Change the Headphone location to Left */ 8153 + { } 8154 + }, 8155 + .chained = true, 8156 + .chain_id = ALC255_FIXUP_XIAOMI_HEADSET_MIC 8157 + }, 8150 8158 }; 8151 8159 8152 8160 static const struct snd_pci_quirk alc269_fixup_tbl[] = { ··· 8192 8182 SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21", ALC233_FIXUP_ACER_HEADSET_MIC), 8193 8183 SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T", ALC255_FIXUP_ACER_HEADSET_MIC), 8194 8184 SND_PCI_QUIRK(0x1025, 0x1430, "Acer TravelMate B311R-31", ALC256_FIXUP_ACER_MIC_NO_PRESENCE), 8185 + SND_PCI_QUIRK(0x1025, 0x1466, "Acer Aspire A515-56", ALC255_FIXUP_ACER_HEADPHONE_AND_MIC), 8195 8186 SND_PCI_QUIRK(0x1028, 0x0470, "Dell M101z", ALC269_FIXUP_DELL_M101Z), 8196 8187 SND_PCI_QUIRK(0x1028, 0x054b, "Dell XPS one 2710", ALC275_FIXUP_DELL_XPS), 8197 8188 SND_PCI_QUIRK(0x1028, 0x05bd, "Dell Latitude E6440", ALC292_FIXUP_DELL_E7X), ··· 8321 8310 SND_PCI_QUIRK(0x103c, 0x8519, "HP Spectre x360 15-df0xxx", ALC285_FIXUP_HP_SPECTRE_X360), 8322 8311 SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED), 8323 8312 SND_PCI_QUIRK(0x103c, 0x86c7, "HP Envy AiO 32", ALC274_FIXUP_HP_ENVY_GPIO), 8313 + SND_PCI_QUIRK(0x103c, 0x8716, "HP Elite Dragonfly G2 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), 8314 + SND_PCI_QUIRK(0x103c, 0x8720, "HP EliteBook x360 1040 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), 8324 8315 SND_PCI_QUIRK(0x103c, 0x8724, "HP EliteBook 850 G7", ALC285_FIXUP_HP_GPIO_LED), 8325 8316 SND_PCI_QUIRK(0x103c, 0x8729, "HP", ALC285_FIXUP_HP_GPIO_LED), 8326 8317 SND_PCI_QUIRK(0x103c, 0x8730, "HP ProBook 445 G7", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), ··· 8341 8328 SND_PCI_QUIRK(0x103c, 0x87f5, "HP", ALC287_FIXUP_HP_GPIO_LED), 8342 8329 SND_PCI_QUIRK(0x103c, 0x87f7, "HP Spectre x360 14", ALC245_FIXUP_HP_X360_AMP), 8343 8330 SND_PCI_QUIRK(0x103c, 0x8846, "HP EliteBook 850 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED), 8331 + SND_PCI_QUIRK(0x103c, 0x884b, "HP EliteBook 840 Aero G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED), 8344 8332 SND_PCI_QUIRK(0x103c, 0x884c, "HP EliteBook 840 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_LED), 8345 8333 SND_PCI_QUIRK(0x103c, 0x886d, "HP ZBook Fury 17.3 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), 8346 8334 SND_PCI_QUIRK(0x103c, 0x8870, "HP ZBook Fury 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), 8347 8335 SND_PCI_QUIRK(0x103c, 0x8873, "HP ZBook Studio 15.6 Inch G8 Mobile Workstation PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), 8336 + SND_PCI_QUIRK(0x103c, 0x888d, "HP ZBook Power 15.6 inch G8 Mobile Workstation PC", ALC236_FIXUP_HP_GPIO_LED), 8348 8337 SND_PCI_QUIRK(0x103c, 0x8896, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_MUTE_LED), 8349 8338 SND_PCI_QUIRK(0x103c, 0x8898, "HP EliteBook 845 G8 Notebook PC", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST), 8350 8339 SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), ··· 8752 8737 {.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"}, 8753 8738 {.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"}, 8754 8739 {.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"}, 8740 + {.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name = "alc255-acer-headphone-and-mic"}, 8755 8741 {} 8756 8742 }; 8757 8743 #define ALC225_STANDARD_PINS \
+21 -5
sound/soc/codecs/rt5659.c
··· 2433 2433 return 0; 2434 2434 } 2435 2435 2436 - static const struct snd_soc_dapm_widget rt5659_dapm_widgets[] = { 2436 + static const struct snd_soc_dapm_widget rt5659_particular_dapm_widgets[] = { 2437 2437 SND_SOC_DAPM_SUPPLY("LDO2", RT5659_PWR_ANLG_3, RT5659_PWR_LDO2_BIT, 0, 2438 2438 NULL, 0), 2439 - SND_SOC_DAPM_SUPPLY("PLL", RT5659_PWR_ANLG_3, RT5659_PWR_PLL_BIT, 0, 2440 - NULL, 0), 2439 + SND_SOC_DAPM_SUPPLY("MICBIAS1", RT5659_PWR_ANLG_2, RT5659_PWR_MB1_BIT, 2440 + 0, NULL, 0), 2441 2441 SND_SOC_DAPM_SUPPLY("Mic Det Power", RT5659_PWR_VOL, 2442 2442 RT5659_PWR_MIC_DET_BIT, 0, NULL, 0), 2443 + }; 2444 + 2445 + static const struct snd_soc_dapm_widget rt5659_dapm_widgets[] = { 2446 + SND_SOC_DAPM_SUPPLY("PLL", RT5659_PWR_ANLG_3, RT5659_PWR_PLL_BIT, 0, 2447 + NULL, 0), 2443 2448 SND_SOC_DAPM_SUPPLY("Mono Vref", RT5659_PWR_ANLG_1, 2444 2449 RT5659_PWR_VREF3_BIT, 0, NULL, 0), 2445 2450 ··· 2469 2464 RT5659_ADC_MONO_R_ASRC_SFT, 0, NULL, 0), 2470 2465 2471 2466 /* Input Side */ 2472 - SND_SOC_DAPM_SUPPLY("MICBIAS1", RT5659_PWR_ANLG_2, RT5659_PWR_MB1_BIT, 2473 - 0, NULL, 0), 2474 2467 SND_SOC_DAPM_SUPPLY("MICBIAS2", RT5659_PWR_ANLG_2, RT5659_PWR_MB2_BIT, 2475 2468 0, NULL, 0), 2476 2469 SND_SOC_DAPM_SUPPLY("MICBIAS3", RT5659_PWR_ANLG_2, RT5659_PWR_MB3_BIT, ··· 3663 3660 3664 3661 static int rt5659_probe(struct snd_soc_component *component) 3665 3662 { 3663 + struct snd_soc_dapm_context *dapm = 3664 + snd_soc_component_get_dapm(component); 3666 3665 struct rt5659_priv *rt5659 = snd_soc_component_get_drvdata(component); 3667 3666 3668 3667 rt5659->component = component; 3668 + 3669 + switch (rt5659->pdata.jd_src) { 3670 + case RT5659_JD_HDA_HEADER: 3671 + break; 3672 + 3673 + default: 3674 + snd_soc_dapm_new_controls(dapm, 3675 + rt5659_particular_dapm_widgets, 3676 + ARRAY_SIZE(rt5659_particular_dapm_widgets)); 3677 + break; 3678 + } 3669 3679 3670 3680 return 0; 3671 3681 }
+2 -1
sound/soc/codecs/rt5682-sdw.c
··· 462 462 463 463 regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_2, 464 464 RT5682_EXT_JD_SRC, RT5682_EXT_JD_SRC_MANUAL); 465 - regmap_write(rt5682->regmap, RT5682_CBJ_CTRL_1, 0xd042); 465 + regmap_write(rt5682->regmap, RT5682_CBJ_CTRL_1, 0xd142); 466 + regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_5, 0x0700, 0x0600); 466 467 regmap_update_bits(rt5682->regmap, RT5682_CBJ_CTRL_3, 467 468 RT5682_CBJ_IN_BUF_EN, RT5682_CBJ_IN_BUF_EN); 468 469 regmap_update_bits(rt5682->regmap, RT5682_SAR_IL_CMD_1,
+7 -7
sound/soc/codecs/tas2562.h
··· 57 57 #define TAS2562_TDM_CFG0_RAMPRATE_MASK BIT(5) 58 58 #define TAS2562_TDM_CFG0_RAMPRATE_44_1 BIT(5) 59 59 #define TAS2562_TDM_CFG0_SAMPRATE_MASK GENMASK(3, 1) 60 - #define TAS2562_TDM_CFG0_SAMPRATE_7305_8KHZ 0x0 61 - #define TAS2562_TDM_CFG0_SAMPRATE_14_7_16KHZ 0x1 62 - #define TAS2562_TDM_CFG0_SAMPRATE_22_05_24KHZ 0x2 63 - #define TAS2562_TDM_CFG0_SAMPRATE_29_4_32KHZ 0x3 64 - #define TAS2562_TDM_CFG0_SAMPRATE_44_1_48KHZ 0x4 65 - #define TAS2562_TDM_CFG0_SAMPRATE_88_2_96KHZ 0x5 66 - #define TAS2562_TDM_CFG0_SAMPRATE_176_4_192KHZ 0x6 60 + #define TAS2562_TDM_CFG0_SAMPRATE_7305_8KHZ (0x0 << 1) 61 + #define TAS2562_TDM_CFG0_SAMPRATE_14_7_16KHZ (0x1 << 1) 62 + #define TAS2562_TDM_CFG0_SAMPRATE_22_05_24KHZ (0x2 << 1) 63 + #define TAS2562_TDM_CFG0_SAMPRATE_29_4_32KHZ (0x3 << 1) 64 + #define TAS2562_TDM_CFG0_SAMPRATE_44_1_48KHZ (0x4 << 1) 65 + #define TAS2562_TDM_CFG0_SAMPRATE_88_2_96KHZ (0x5 << 1) 66 + #define TAS2562_TDM_CFG0_SAMPRATE_176_4_192KHZ (0x6 << 1) 67 67 68 68 #define TAS2562_TDM_CFG2_RIGHT_JUSTIFY BIT(6) 69 69
+1
sound/soc/fsl/fsl-asoc-card.c
··· 744 744 /* Initialize sound card */ 745 745 priv->pdev = pdev; 746 746 priv->card.dev = &pdev->dev; 747 + priv->card.owner = THIS_MODULE; 747 748 ret = snd_soc_of_parse_card_name(&priv->card, "model"); 748 749 if (ret) { 749 750 snprintf(priv->name, sizeof(priv->name), "%s-audio",
+79
sound/soc/qcom/lpass-cpu.c
··· 93 93 struct snd_soc_dai *dai) 94 94 { 95 95 struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); 96 + struct lpaif_i2sctl *i2sctl = drvdata->i2sctl; 97 + unsigned int id = dai->driver->id; 96 98 97 99 clk_disable_unprepare(drvdata->mi2s_osr_clk[dai->driver->id]); 100 + /* 101 + * Ensure LRCLK is disabled even in device node validation. 102 + * Will not impact if disabled in lpass_cpu_daiops_trigger() 103 + * suspend. 104 + */ 105 + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 106 + regmap_fields_write(i2sctl->spken, id, LPAIF_I2SCTL_SPKEN_DISABLE); 107 + else 108 + regmap_fields_write(i2sctl->micen, id, LPAIF_I2SCTL_MICEN_DISABLE); 109 + 110 + /* 111 + * BCLK may not be enabled if lpass_cpu_daiops_prepare is called before 112 + * lpass_cpu_daiops_shutdown. It's paired with the clk_enable in 113 + * lpass_cpu_daiops_prepare. 114 + */ 115 + if (drvdata->mi2s_was_prepared[dai->driver->id]) { 116 + drvdata->mi2s_was_prepared[dai->driver->id] = false; 117 + clk_disable(drvdata->mi2s_bit_clk[dai->driver->id]); 118 + } 119 + 98 120 clk_unprepare(drvdata->mi2s_bit_clk[dai->driver->id]); 99 121 } 100 122 ··· 297 275 case SNDRV_PCM_TRIGGER_START: 298 276 case SNDRV_PCM_TRIGGER_RESUME: 299 277 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: 278 + /* 279 + * Ensure lpass BCLK/LRCLK is enabled during 280 + * device resume as lpass_cpu_daiops_prepare() is not called 281 + * after the device resumes. We don't check mi2s_was_prepared before 282 + * enable/disable BCLK in trigger events because: 283 + * 1. These trigger events are paired, so the BCLK 284 + * enable_count is balanced. 285 + * 2. the BCLK can be shared (ex: headset and headset mic), 286 + * we need to increase the enable_count so that we don't 287 + * turn off the shared BCLK while other devices are using 288 + * it. 289 + */ 300 290 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { 301 291 ret = regmap_fields_write(i2sctl->spken, id, 302 292 LPAIF_I2SCTL_SPKEN_ENABLE); ··· 330 296 case SNDRV_PCM_TRIGGER_STOP: 331 297 case SNDRV_PCM_TRIGGER_SUSPEND: 332 298 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 299 + /* 300 + * To ensure lpass BCLK/LRCLK is disabled during 301 + * device suspend. 302 + */ 333 303 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { 334 304 ret = regmap_fields_write(i2sctl->spken, id, 335 305 LPAIF_I2SCTL_SPKEN_DISABLE); ··· 353 315 return ret; 354 316 } 355 317 318 + static int lpass_cpu_daiops_prepare(struct snd_pcm_substream *substream, 319 + struct snd_soc_dai *dai) 320 + { 321 + struct lpass_data *drvdata = snd_soc_dai_get_drvdata(dai); 322 + struct lpaif_i2sctl *i2sctl = drvdata->i2sctl; 323 + unsigned int id = dai->driver->id; 324 + int ret; 325 + 326 + /* 327 + * Ensure lpass BCLK/LRCLK is enabled bit before playback/capture 328 + * data flow starts. This allows other codec to have some delay before 329 + * the data flow. 330 + * (ex: to drop start up pop noise before capture starts). 331 + */ 332 + if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) 333 + ret = regmap_fields_write(i2sctl->spken, id, LPAIF_I2SCTL_SPKEN_ENABLE); 334 + else 335 + ret = regmap_fields_write(i2sctl->micen, id, LPAIF_I2SCTL_MICEN_ENABLE); 336 + 337 + if (ret) { 338 + dev_err(dai->dev, "error writing to i2sctl reg: %d\n", ret); 339 + return ret; 340 + } 341 + 342 + /* 343 + * Check mi2s_was_prepared before enabling BCLK as lpass_cpu_daiops_prepare can 344 + * be called multiple times. It's paired with the clk_disable in 345 + * lpass_cpu_daiops_shutdown. 346 + */ 347 + if (!drvdata->mi2s_was_prepared[dai->driver->id]) { 348 + ret = clk_enable(drvdata->mi2s_bit_clk[id]); 349 + if (ret) { 350 + dev_err(dai->dev, "error in enabling mi2s bit clk: %d\n", ret); 351 + return ret; 352 + } 353 + drvdata->mi2s_was_prepared[dai->driver->id] = true; 354 + } 355 + return 0; 356 + } 357 + 356 358 const struct snd_soc_dai_ops asoc_qcom_lpass_cpu_dai_ops = { 357 359 .set_sysclk = lpass_cpu_daiops_set_sysclk, 358 360 .startup = lpass_cpu_daiops_startup, 359 361 .shutdown = lpass_cpu_daiops_shutdown, 360 362 .hw_params = lpass_cpu_daiops_hw_params, 361 363 .trigger = lpass_cpu_daiops_trigger, 364 + .prepare = lpass_cpu_daiops_prepare, 362 365 }; 363 366 EXPORT_SYMBOL_GPL(asoc_qcom_lpass_cpu_dai_ops); 364 367
+4
sound/soc/qcom/lpass.h
··· 67 67 /* MI2S SD lines to use for playback/capture */ 68 68 unsigned int mi2s_playback_sd_mode[LPASS_MAX_MI2S_PORTS]; 69 69 unsigned int mi2s_capture_sd_mode[LPASS_MAX_MI2S_PORTS]; 70 + 71 + /* The state of MI2S prepare dai_ops was called */ 72 + bool mi2s_was_prepared[LPASS_MAX_MI2S_PORTS]; 73 + 70 74 int hdmi_port_enable; 71 75 72 76 /* low-power audio interface (LPAIF) registers */
+2
sound/soc/soc-core.c
··· 2225 2225 return NULL; 2226 2226 2227 2227 name = devm_kstrdup(dev, devname, GFP_KERNEL); 2228 + if (!name) 2229 + return NULL; 2228 2230 2229 2231 /* are we a "%s.%d" name (platform and SPI components) */ 2230 2232 found = strstr(name, dev->driver->name);
+3 -3
sound/soc/soc-topology.c
··· 1901 1901 * @src: older version of pcm as a source 1902 1902 * @pcm: latest version of pcm created from the source 1903 1903 * 1904 - * Support from vesion 4. User should free the returned pcm manually. 1904 + * Support from version 4. User should free the returned pcm manually. 1905 1905 */ 1906 1906 static int pcm_new_ver(struct soc_tplg *tplg, 1907 1907 struct snd_soc_tplg_pcm *src, ··· 2089 2089 * @src: old version of phyical link config as a source 2090 2090 * @link: latest version of physical link config created from the source 2091 2091 * 2092 - * Support from vesion 4. User need free the returned link config manually. 2092 + * Support from version 4. User need free the returned link config manually. 2093 2093 */ 2094 2094 static int link_new_ver(struct soc_tplg *tplg, 2095 2095 struct snd_soc_tplg_link_config *src, ··· 2400 2400 * @src: old version of manifest as a source 2401 2401 * @manifest: latest version of manifest created from the source 2402 2402 * 2403 - * Support from vesion 4. Users need free the returned manifest manually. 2403 + * Support from version 4. Users need free the returned manifest manually. 2404 2404 */ 2405 2405 static int manifest_new_ver(struct soc_tplg *tplg, 2406 2406 struct snd_soc_tplg_manifest *src,
+1
sound/soc/sof/pm.c
··· 256 256 257 257 /* reset FW state */ 258 258 sdev->fw_state = SOF_FW_BOOT_NOT_STARTED; 259 + sdev->enabled_cores_mask = 0; 259 260 260 261 return ret; 261 262 }