mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 11:19:37 +00:00
ASoC: Merge up fixes
For the benefit of CI
This commit is contained in:
commit
8111310849
11 changed files with 35 additions and 19 deletions
|
@ -174,10 +174,10 @@ static int max98363_io_init(struct sdw_slave *slave)
|
|||
pm_runtime_get_noresume(dev);
|
||||
|
||||
ret = regmap_read(max98363->regmap, MAX98363_R21FF_REV_ID, ®);
|
||||
if (!ret) {
|
||||
if (!ret)
|
||||
dev_info(dev, "Revision ID: %X\n", reg);
|
||||
return ret;
|
||||
}
|
||||
else
|
||||
goto out;
|
||||
|
||||
if (max98363->first_hw_init) {
|
||||
regcache_cache_bypass(max98363->regmap, false);
|
||||
|
@ -187,10 +187,11 @@ static int max98363_io_init(struct sdw_slave *slave)
|
|||
max98363->first_hw_init = true;
|
||||
max98363->hw_init = true;
|
||||
|
||||
out:
|
||||
pm_runtime_mark_last_busy(dev);
|
||||
pm_runtime_put_autosuspend(dev);
|
||||
|
||||
return 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define MAX98363_RATES SNDRV_PCM_RATE_8000_192000
|
||||
|
|
|
@ -4472,6 +4472,8 @@ static void rt5665_remove(struct snd_soc_component *component)
|
|||
struct rt5665_priv *rt5665 = snd_soc_component_get_drvdata(component);
|
||||
|
||||
regmap_write(rt5665->regmap, RT5665_RESET, 0);
|
||||
|
||||
regulator_bulk_disable(ARRAY_SIZE(rt5665->supplies), rt5665->supplies);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
|
||||
// Copyright 2018 NXP
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
|
@ -1318,4 +1318,4 @@ module_platform_driver(fsl_micfil_driver);
|
|||
|
||||
MODULE_AUTHOR("Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com>");
|
||||
MODULE_DESCRIPTION("NXP PDM Microphone Interface (MICFIL) driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
MODULE_LICENSE("Dual BSD/GPL");
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
|
||||
/*
|
||||
* PDM Microphone Interface for the NXP i.MX SoC
|
||||
* Copyright 2018 NXP
|
||||
|
|
|
@ -488,7 +488,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
|
|||
DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Lunar Lake Client Platform"),
|
||||
},
|
||||
.driver_data = (void *)(RT711_JD2_100K),
|
||||
.driver_data = (void *)(RT711_JD2),
|
||||
},
|
||||
{}
|
||||
};
|
||||
|
|
|
@ -99,9 +99,9 @@ static int cs42l42_rtd_init(struct snd_soc_pcm_runtime *rtd)
|
|||
jack = &ctx->sdw_headset;
|
||||
|
||||
snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
|
||||
snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
|
||||
snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
|
||||
snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
|
||||
snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP);
|
||||
snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN);
|
||||
snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND);
|
||||
|
||||
ret = snd_soc_component_set_jack(component, jack, NULL);
|
||||
|
||||
|
|
|
@ -524,6 +524,7 @@ static const struct hda_dai_widget_dma_ops hda_ipc4_chain_dma_ops = {
|
|||
static int hda_ipc3_post_trigger(struct snd_sof_dev *sdev, struct snd_soc_dai *cpu_dai,
|
||||
struct snd_pcm_substream *substream, int cmd)
|
||||
{
|
||||
struct hdac_ext_stream *hext_stream = hda_get_hext_stream(sdev, cpu_dai, substream);
|
||||
struct snd_soc_dapm_widget *w = snd_soc_dai_get_widget(cpu_dai, substream->stream);
|
||||
|
||||
switch (cmd) {
|
||||
|
@ -531,9 +532,17 @@ static int hda_ipc3_post_trigger(struct snd_sof_dev *sdev, struct snd_soc_dai *c
|
|||
case SNDRV_PCM_TRIGGER_STOP:
|
||||
{
|
||||
struct snd_sof_dai_config_data data = { 0 };
|
||||
int ret;
|
||||
|
||||
data.dai_data = DMA_CHAN_INVALID;
|
||||
return hda_dai_config(w, SOF_DAI_CONFIG_FLAGS_HW_FREE, &data);
|
||||
ret = hda_dai_config(w, SOF_DAI_CONFIG_FLAGS_HW_FREE, &data);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (cmd == SNDRV_PCM_TRIGGER_STOP)
|
||||
return hda_link_dma_cleanup(substream, hext_stream, cpu_dai);
|
||||
|
||||
break;
|
||||
}
|
||||
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
|
||||
return hda_dai_config(w, SOF_DAI_CONFIG_FLAGS_PAUSE, NULL);
|
||||
|
|
|
@ -109,9 +109,8 @@ hda_dai_get_ops(struct snd_pcm_substream *substream, struct snd_soc_dai *cpu_dai
|
|||
return sdai->platform_private;
|
||||
}
|
||||
|
||||
static int hda_link_dma_cleanup(struct snd_pcm_substream *substream,
|
||||
struct hdac_ext_stream *hext_stream,
|
||||
struct snd_soc_dai *cpu_dai)
|
||||
int hda_link_dma_cleanup(struct snd_pcm_substream *substream, struct hdac_ext_stream *hext_stream,
|
||||
struct snd_soc_dai *cpu_dai)
|
||||
{
|
||||
const struct hda_dai_widget_dma_ops *ops = hda_dai_get_ops(substream, cpu_dai);
|
||||
struct sof_intel_hda_stream *hda_stream;
|
||||
|
|
|
@ -984,5 +984,7 @@ const struct hda_dai_widget_dma_ops *
|
|||
hda_select_dai_widget_ops(struct snd_sof_dev *sdev, struct snd_sof_widget *swidget);
|
||||
int hda_dai_config(struct snd_soc_dapm_widget *w, unsigned int flags,
|
||||
struct snd_sof_dai_config_data *data);
|
||||
int hda_link_dma_cleanup(struct snd_pcm_substream *substream, struct hdac_ext_stream *hext_stream,
|
||||
struct snd_soc_dai *cpu_dai);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1001,7 +1001,7 @@ void sof_ipc3_do_rx_work(struct snd_sof_dev *sdev, struct sof_ipc_cmd_hdr *hdr,
|
|||
|
||||
ipc3_log_header(sdev->dev, "ipc rx", hdr->cmd);
|
||||
|
||||
if (hdr->size < sizeof(hdr) || hdr->size > SOF_IPC_MSG_MAX_SIZE) {
|
||||
if (hdr->size < sizeof(*hdr) || hdr->size > SOF_IPC_MSG_MAX_SIZE) {
|
||||
dev_err(sdev->dev, "The received message size is invalid: %u\n",
|
||||
hdr->size);
|
||||
return;
|
||||
|
|
|
@ -1731,6 +1731,12 @@ sof_ipc4_prepare_copier_module(struct snd_sof_widget *swidget,
|
|||
|
||||
*ipc_config_size = ipc_size;
|
||||
|
||||
/* update pipeline memory usage */
|
||||
sof_ipc4_update_resource_usage(sdev, swidget, &copier_data->base_config);
|
||||
|
||||
/* update pipeline memory usage */
|
||||
sof_ipc4_update_resource_usage(sdev, swidget, &copier_data->base_config);
|
||||
|
||||
/* copy IPC data */
|
||||
memcpy(*ipc_config_data, (void *)copier_data, sizeof(*copier_data));
|
||||
if (gtw_cfg_config_length)
|
||||
|
@ -1743,9 +1749,6 @@ sof_ipc4_prepare_copier_module(struct snd_sof_widget *swidget,
|
|||
gtw_cfg_config_length,
|
||||
&ipc4_copier->dma_config_tlv, dma_config_tlv_size);
|
||||
|
||||
/* update pipeline memory usage */
|
||||
sof_ipc4_update_resource_usage(sdev, swidget, &copier_data->base_config);
|
||||
|
||||
/*
|
||||
* Restore gateway config length now that IPC payload is prepared. This avoids
|
||||
* counting the DMA CONFIG TLV multiple times
|
||||
|
|
Loading…
Reference in a new issue