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

ASoC: Merge up fixes

For the benefit of CI

+35 -19
+5 -4
sound/soc/codecs/max98363.c
··· 174 174 pm_runtime_get_noresume(dev); 175 175 176 176 ret = regmap_read(max98363->regmap, MAX98363_R21FF_REV_ID, &reg); 177 - if (!ret) { 177 + if (!ret) 178 178 dev_info(dev, "Revision ID: %X\n", reg); 179 - return ret; 180 - } 179 + else 180 + goto out; 181 181 182 182 if (max98363->first_hw_init) { 183 183 regcache_cache_bypass(max98363->regmap, false); ··· 187 187 max98363->first_hw_init = true; 188 188 max98363->hw_init = true; 189 189 190 + out: 190 191 pm_runtime_mark_last_busy(dev); 191 192 pm_runtime_put_autosuspend(dev); 192 193 193 - return 0; 194 + return ret; 194 195 } 195 196 196 197 #define MAX98363_RATES SNDRV_PCM_RATE_8000_192000
+2
sound/soc/codecs/rt5665.c
··· 4472 4472 struct rt5665_priv *rt5665 = snd_soc_component_get_drvdata(component); 4473 4473 4474 4474 regmap_write(rt5665->regmap, RT5665_RESET, 0); 4475 + 4476 + regulator_bulk_disable(ARRAY_SIZE(rt5665->supplies), rt5665->supplies); 4475 4477 } 4476 4478 4477 4479 #ifdef CONFIG_PM
+2 -2
sound/soc/fsl/fsl_micfil.c
··· 1 - // SPDX-License-Identifier: GPL-2.0 1 + // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 2 2 // Copyright 2018 NXP 3 3 4 4 #include <linux/bitfield.h> ··· 1318 1318 1319 1319 MODULE_AUTHOR("Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com>"); 1320 1320 MODULE_DESCRIPTION("NXP PDM Microphone Interface (MICFIL) driver"); 1321 - MODULE_LICENSE("GPL v2"); 1321 + MODULE_LICENSE("Dual BSD/GPL");
+1 -1
sound/soc/fsl/fsl_micfil.h
··· 1 - /* SPDX-License-Identifier: GPL-2.0 */ 1 + /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2 2 /* 3 3 * PDM Microphone Interface for the NXP i.MX SoC 4 4 * Copyright 2018 NXP
+1 -1
sound/soc/intel/boards/sof_sdw.c
··· 488 488 DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), 489 489 DMI_MATCH(DMI_PRODUCT_NAME, "Lunar Lake Client Platform"), 490 490 }, 491 - .driver_data = (void *)(RT711_JD2_100K), 491 + .driver_data = (void *)(RT711_JD2), 492 492 }, 493 493 {} 494 494 };
+3 -3
sound/soc/intel/boards/sof_sdw_cs42l42.c
··· 99 99 jack = &ctx->sdw_headset; 100 100 101 101 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); 102 - snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); 103 - snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); 104 - snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); 102 + snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); 103 + snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); 104 + snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); 105 105 106 106 ret = snd_soc_component_set_jack(component, jack, NULL); 107 107
+10 -1
sound/soc/sof/intel/hda-dai-ops.c
··· 524 524 static int hda_ipc3_post_trigger(struct snd_sof_dev *sdev, struct snd_soc_dai *cpu_dai, 525 525 struct snd_pcm_substream *substream, int cmd) 526 526 { 527 + struct hdac_ext_stream *hext_stream = hda_get_hext_stream(sdev, cpu_dai, substream); 527 528 struct snd_soc_dapm_widget *w = snd_soc_dai_get_widget(cpu_dai, substream->stream); 528 529 529 530 switch (cmd) { ··· 532 531 case SNDRV_PCM_TRIGGER_STOP: 533 532 { 534 533 struct snd_sof_dai_config_data data = { 0 }; 534 + int ret; 535 535 536 536 data.dai_data = DMA_CHAN_INVALID; 537 - return hda_dai_config(w, SOF_DAI_CONFIG_FLAGS_HW_FREE, &data); 537 + ret = hda_dai_config(w, SOF_DAI_CONFIG_FLAGS_HW_FREE, &data); 538 + if (ret < 0) 539 + return ret; 540 + 541 + if (cmd == SNDRV_PCM_TRIGGER_STOP) 542 + return hda_link_dma_cleanup(substream, hext_stream, cpu_dai); 543 + 544 + break; 538 545 } 539 546 case SNDRV_PCM_TRIGGER_PAUSE_PUSH: 540 547 return hda_dai_config(w, SOF_DAI_CONFIG_FLAGS_PAUSE, NULL);
+2 -3
sound/soc/sof/intel/hda-dai.c
··· 109 109 return sdai->platform_private; 110 110 } 111 111 112 - static int hda_link_dma_cleanup(struct snd_pcm_substream *substream, 113 - struct hdac_ext_stream *hext_stream, 114 - struct snd_soc_dai *cpu_dai) 112 + int hda_link_dma_cleanup(struct snd_pcm_substream *substream, struct hdac_ext_stream *hext_stream, 113 + struct snd_soc_dai *cpu_dai) 115 114 { 116 115 const struct hda_dai_widget_dma_ops *ops = hda_dai_get_ops(substream, cpu_dai); 117 116 struct sof_intel_hda_stream *hda_stream;
+2
sound/soc/sof/intel/hda.h
··· 984 984 hda_select_dai_widget_ops(struct snd_sof_dev *sdev, struct snd_sof_widget *swidget); 985 985 int hda_dai_config(struct snd_soc_dapm_widget *w, unsigned int flags, 986 986 struct snd_sof_dai_config_data *data); 987 + int hda_link_dma_cleanup(struct snd_pcm_substream *substream, struct hdac_ext_stream *hext_stream, 988 + struct snd_soc_dai *cpu_dai); 987 989 988 990 #endif
+1 -1
sound/soc/sof/ipc3.c
··· 1001 1001 1002 1002 ipc3_log_header(sdev->dev, "ipc rx", hdr->cmd); 1003 1003 1004 - if (hdr->size < sizeof(hdr) || hdr->size > SOF_IPC_MSG_MAX_SIZE) { 1004 + if (hdr->size < sizeof(*hdr) || hdr->size > SOF_IPC_MSG_MAX_SIZE) { 1005 1005 dev_err(sdev->dev, "The received message size is invalid: %u\n", 1006 1006 hdr->size); 1007 1007 return;
+6 -3
sound/soc/sof/ipc4-topology.c
··· 1731 1731 1732 1732 *ipc_config_size = ipc_size; 1733 1733 1734 + /* update pipeline memory usage */ 1735 + sof_ipc4_update_resource_usage(sdev, swidget, &copier_data->base_config); 1736 + 1737 + /* update pipeline memory usage */ 1738 + sof_ipc4_update_resource_usage(sdev, swidget, &copier_data->base_config); 1739 + 1734 1740 /* copy IPC data */ 1735 1741 memcpy(*ipc_config_data, (void *)copier_data, sizeof(*copier_data)); 1736 1742 if (gtw_cfg_config_length) ··· 1748 1742 memcpy(*ipc_config_data + sizeof(*copier_data) + 1749 1743 gtw_cfg_config_length, 1750 1744 &ipc4_copier->dma_config_tlv, dma_config_tlv_size); 1751 - 1752 - /* update pipeline memory usage */ 1753 - sof_ipc4_update_resource_usage(sdev, swidget, &copier_data->base_config); 1754 1745 1755 1746 /* 1756 1747 * Restore gateway config length now that IPC payload is prepared. This avoids