Loading include/sound/rt5670.h +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ struct rt5670_platform_data { int jd_mode; bool in2_diff; bool dev_gpio; bool gpio1_is_ext_spk_en; bool dmic_en; unsigned int dmic1_data_pin; Loading sound/hda/intel-dsp-config.c +1 −3 Original line number Diff line number Diff line Loading @@ -208,8 +208,8 @@ static const struct config_entry config_table[] = { }, #endif #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE) /* Cometlake-LP */ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP) { .flags = FLAG_SOF, .device = 0x02c8, Loading Loading @@ -240,9 +240,7 @@ static const struct config_entry config_table[] = { .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE, .device = 0x02c8, }, #endif /* Cometlake-H */ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H) { .flags = FLAG_SOF, .device = 0x06c8, Loading sound/soc/amd/raven/acp3x-pcm-dma.c +23 −7 Original line number Diff line number Diff line Loading @@ -342,25 +342,41 @@ static int acp3x_dma_close(struct snd_soc_component *component, { struct snd_soc_pcm_runtime *prtd; struct i2s_dev_data *adata; struct i2s_stream_instance *ins; prtd = substream->private_data; component = snd_soc_rtdcom_lookup(prtd, DRV_NAME); adata = dev_get_drvdata(component->dev); ins = substream->runtime->private_data; if (!ins) return -EINVAL; /* Disable ACP irq, when the current stream is being closed and * another stream is also not active. */ if (!adata->play_stream && !adata->capture_stream && !adata->i2ssp_play_stream && !adata->i2ssp_capture_stream) rv_writel(0, adata->acp3x_base + mmACP_EXTERNAL_INTR_ENB); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { switch (ins->i2s_instance) { case I2S_BT_INSTANCE: adata->play_stream = NULL; break; case I2S_SP_INSTANCE: default: adata->i2ssp_play_stream = NULL; } } else { switch (ins->i2s_instance) { case I2S_BT_INSTANCE: adata->capture_stream = NULL; break; case I2S_SP_INSTANCE: default: adata->i2ssp_capture_stream = NULL; } } /* Disable ACP irq, when the current stream is being closed and * another stream is also not active. */ if (!adata->play_stream && !adata->capture_stream && !adata->i2ssp_play_stream && !adata->i2ssp_capture_stream) rv_writel(0, adata->acp3x_base + mmACP_EXTERNAL_INTR_ENB); return 0; } Loading sound/soc/amd/renoir/Makefile +4 −3 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ # Renoir platform Support snd-rn-pci-acp3x-objs := rn-pci-acp3x.o snd-acp3x-pdm-dma-objs := acp3x-pdm-dma.o snd-acp3x-rn-objs := acp3x-rn.o obj-$(CONFIG_SND_SOC_AMD_RENOIR) += snd-rn-pci-acp3x.o obj-$(CONFIG_SND_SOC_AMD_RENOIR) += snd-acp3x-pdm-dma.o obj-$(CONFIG_SND_SOC_AMD_RENOIR_MACH) += acp3x-rn.o obj-$(CONFIG_SND_SOC_AMD_RENOIR_MACH) += snd-acp3x-rn.o sound/soc/codecs/hdac_hda.c +10 −6 Original line number Diff line number Diff line Loading @@ -441,13 +441,13 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) ret = snd_hda_codec_set_name(hcodec, hcodec->preset->name); if (ret < 0) { dev_err(&hdev->dev, "name failed %s\n", hcodec->preset->name); goto error; goto error_pm; } ret = snd_hdac_regmap_init(&hcodec->core); if (ret < 0) { dev_err(&hdev->dev, "regmap init failed\n"); goto error; goto error_pm; } patch = (hda_codec_patch_t)hcodec->preset->driver_data; Loading @@ -455,7 +455,7 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) ret = patch(hcodec); if (ret < 0) { dev_err(&hdev->dev, "patch failed %d\n", ret); goto error; goto error_regmap; } } else { dev_dbg(&hdev->dev, "no patch file found\n"); Loading @@ -467,7 +467,7 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) ret = snd_hda_codec_parse_pcms(hcodec); if (ret < 0) { dev_err(&hdev->dev, "unable to map pcms to dai %d\n", ret); goto error; goto error_regmap; } /* HDMI controls need to be created in machine drivers */ Loading @@ -476,7 +476,7 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) if (ret < 0) { dev_err(&hdev->dev, "unable to create controls %d\n", ret); goto error; goto error_regmap; } } Loading @@ -496,7 +496,9 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) return 0; error: error_regmap: snd_hdac_regmap_exit(hdev); error_pm: pm_runtime_put(&hdev->dev); error_no_pm: snd_hdac_ext_bus_link_put(hdev->bus, hlink); Loading @@ -518,6 +520,8 @@ static void hdac_hda_codec_remove(struct snd_soc_component *component) pm_runtime_disable(&hdev->dev); snd_hdac_ext_bus_link_put(hdev->bus, hlink); snd_hdac_regmap_exit(hdev); } static const struct snd_soc_dapm_route hdac_hda_dapm_routes[] = { Loading Loading
include/sound/rt5670.h +1 −0 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ struct rt5670_platform_data { int jd_mode; bool in2_diff; bool dev_gpio; bool gpio1_is_ext_spk_en; bool dmic_en; unsigned int dmic1_data_pin; Loading
sound/hda/intel-dsp-config.c +1 −3 Original line number Diff line number Diff line Loading @@ -208,8 +208,8 @@ static const struct config_entry config_table[] = { }, #endif #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE) /* Cometlake-LP */ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP) { .flags = FLAG_SOF, .device = 0x02c8, Loading Loading @@ -240,9 +240,7 @@ static const struct config_entry config_table[] = { .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE, .device = 0x02c8, }, #endif /* Cometlake-H */ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H) { .flags = FLAG_SOF, .device = 0x06c8, Loading
sound/soc/amd/raven/acp3x-pcm-dma.c +23 −7 Original line number Diff line number Diff line Loading @@ -342,25 +342,41 @@ static int acp3x_dma_close(struct snd_soc_component *component, { struct snd_soc_pcm_runtime *prtd; struct i2s_dev_data *adata; struct i2s_stream_instance *ins; prtd = substream->private_data; component = snd_soc_rtdcom_lookup(prtd, DRV_NAME); adata = dev_get_drvdata(component->dev); ins = substream->runtime->private_data; if (!ins) return -EINVAL; /* Disable ACP irq, when the current stream is being closed and * another stream is also not active. */ if (!adata->play_stream && !adata->capture_stream && !adata->i2ssp_play_stream && !adata->i2ssp_capture_stream) rv_writel(0, adata->acp3x_base + mmACP_EXTERNAL_INTR_ENB); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { switch (ins->i2s_instance) { case I2S_BT_INSTANCE: adata->play_stream = NULL; break; case I2S_SP_INSTANCE: default: adata->i2ssp_play_stream = NULL; } } else { switch (ins->i2s_instance) { case I2S_BT_INSTANCE: adata->capture_stream = NULL; break; case I2S_SP_INSTANCE: default: adata->i2ssp_capture_stream = NULL; } } /* Disable ACP irq, when the current stream is being closed and * another stream is also not active. */ if (!adata->play_stream && !adata->capture_stream && !adata->i2ssp_play_stream && !adata->i2ssp_capture_stream) rv_writel(0, adata->acp3x_base + mmACP_EXTERNAL_INTR_ENB); return 0; } Loading
sound/soc/amd/renoir/Makefile +4 −3 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ # Renoir platform Support snd-rn-pci-acp3x-objs := rn-pci-acp3x.o snd-acp3x-pdm-dma-objs := acp3x-pdm-dma.o snd-acp3x-rn-objs := acp3x-rn.o obj-$(CONFIG_SND_SOC_AMD_RENOIR) += snd-rn-pci-acp3x.o obj-$(CONFIG_SND_SOC_AMD_RENOIR) += snd-acp3x-pdm-dma.o obj-$(CONFIG_SND_SOC_AMD_RENOIR_MACH) += acp3x-rn.o obj-$(CONFIG_SND_SOC_AMD_RENOIR_MACH) += snd-acp3x-rn.o
sound/soc/codecs/hdac_hda.c +10 −6 Original line number Diff line number Diff line Loading @@ -441,13 +441,13 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) ret = snd_hda_codec_set_name(hcodec, hcodec->preset->name); if (ret < 0) { dev_err(&hdev->dev, "name failed %s\n", hcodec->preset->name); goto error; goto error_pm; } ret = snd_hdac_regmap_init(&hcodec->core); if (ret < 0) { dev_err(&hdev->dev, "regmap init failed\n"); goto error; goto error_pm; } patch = (hda_codec_patch_t)hcodec->preset->driver_data; Loading @@ -455,7 +455,7 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) ret = patch(hcodec); if (ret < 0) { dev_err(&hdev->dev, "patch failed %d\n", ret); goto error; goto error_regmap; } } else { dev_dbg(&hdev->dev, "no patch file found\n"); Loading @@ -467,7 +467,7 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) ret = snd_hda_codec_parse_pcms(hcodec); if (ret < 0) { dev_err(&hdev->dev, "unable to map pcms to dai %d\n", ret); goto error; goto error_regmap; } /* HDMI controls need to be created in machine drivers */ Loading @@ -476,7 +476,7 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) if (ret < 0) { dev_err(&hdev->dev, "unable to create controls %d\n", ret); goto error; goto error_regmap; } } Loading @@ -496,7 +496,9 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component) return 0; error: error_regmap: snd_hdac_regmap_exit(hdev); error_pm: pm_runtime_put(&hdev->dev); error_no_pm: snd_hdac_ext_bus_link_put(hdev->bus, hlink); Loading @@ -518,6 +520,8 @@ static void hdac_hda_codec_remove(struct snd_soc_component *component) pm_runtime_disable(&hdev->dev); snd_hdac_ext_bus_link_put(hdev->bus, hlink); snd_hdac_regmap_exit(hdev); } static const struct snd_soc_dapm_route hdac_hda_dapm_routes[] = { Loading