mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
ASoC: Fixes for v6.3
A few remaining small fixes for v6.3, all small driver specific ones. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmRATGwACgkQJNaLcl1U h9B1eQf+Miu2/EzjXoZ5nW3yxU3zJmu7BINhvb3pLlUxkNNxz/FG6chZgO+K17F4 VlaOc8UkhjXPe2BRZljF34qHPLMdyUlX4bi4NmCMikzC8h7xDvpIONYt66v4y2Du bMEYbmbrVjkK83ZKjnHaSX9iC/qXkV/WQKyMTe7gR/pz2M5epwK6Q8iCtxITfYZt tlKnp4MjdFiEbzvVcylaJi0sDHozRYtT5kFpKrJQNVLjgnISUbkR03wME3wYG69m wlQbdDlkU+JOyiwLCkt+U5z4nLmPIgFHnb8frZTBUpSu4iqFesY69Jbh7XUWQyHi dwiDoyR80CKV5ILmoeIzzzBgDXQV2g== =EK/5 -----END PGP SIGNATURE----- Merge tag 'asoc-fix-v6.3-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v6.3 A few remaining small fixes for v6.3, all small driver specific ones.
This commit is contained in:
commit
990cbca002
@ -31,7 +31,7 @@ static int max98373_dac_event(struct snd_soc_dapm_widget *w,
|
||||
MAX98373_GLOBAL_EN_MASK, 1);
|
||||
usleep_range(30000, 31000);
|
||||
break;
|
||||
case SND_SOC_DAPM_POST_PMD:
|
||||
case SND_SOC_DAPM_PRE_PMD:
|
||||
regmap_update_bits(max98373->regmap,
|
||||
MAX98373_R20FF_GLOBAL_SHDN,
|
||||
MAX98373_GLOBAL_EN_MASK, 0);
|
||||
@ -64,7 +64,7 @@ static const struct snd_kcontrol_new max98373_spkfb_control =
|
||||
static const struct snd_soc_dapm_widget max98373_dapm_widgets[] = {
|
||||
SND_SOC_DAPM_DAC_E("Amp Enable", "HiFi Playback",
|
||||
MAX98373_R202B_PCM_RX_EN, 0, 0, max98373_dac_event,
|
||||
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
|
||||
SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
|
||||
SND_SOC_DAPM_MUX("DAI Sel Mux", SND_SOC_NOPM, 0, 0,
|
||||
&max98373_dai_controls),
|
||||
SND_SOC_DAPM_OUTPUT("BE_OUT"),
|
||||
|
@ -209,14 +209,19 @@ static int fsl_asrc_dma_hw_params(struct snd_soc_component *component,
|
||||
be_chan = soc_component_to_pcm(component_be)->chan[substream->stream];
|
||||
tmp_chan = be_chan;
|
||||
}
|
||||
if (!tmp_chan)
|
||||
tmp_chan = dma_request_slave_channel(dev_be, tx ? "tx" : "rx");
|
||||
if (!tmp_chan) {
|
||||
tmp_chan = dma_request_chan(dev_be, tx ? "tx" : "rx");
|
||||
if (IS_ERR(tmp_chan)) {
|
||||
dev_err(dev, "failed to request DMA channel for Back-End\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* An EDMA DEV_TO_DEV channel is fixed and bound with DMA event of each
|
||||
* peripheral, unlike SDMA channel that is allocated dynamically. So no
|
||||
* need to configure dma_request and dma_request2, but get dma_chan of
|
||||
* Back-End device directly via dma_request_slave_channel.
|
||||
* Back-End device directly via dma_request_chan.
|
||||
*/
|
||||
if (!asrc->use_edma) {
|
||||
/* Get DMA request of Back-End */
|
||||
|
@ -1546,7 +1546,7 @@ static const struct fsl_sai_soc_data fsl_sai_imx8qm_data = {
|
||||
.use_imx_pcm = true,
|
||||
.use_edma = true,
|
||||
.fifo_depth = 64,
|
||||
.pins = 1,
|
||||
.pins = 4,
|
||||
.reg_offset = 0,
|
||||
.mclk0_is_mclk1 = false,
|
||||
.flags = 0,
|
||||
|
@ -1806,10 +1806,12 @@ static int sof_ipc4_route_setup(struct snd_sof_dev *sdev, struct snd_sof_route *
|
||||
int ret;
|
||||
|
||||
if (!src_fw_module || !sink_fw_module) {
|
||||
/* The NULL module will print as "(efault)" */
|
||||
dev_err(sdev->dev, "source %s or sink %s widget weren't set up properly\n",
|
||||
src_fw_module->man4_module_entry.name,
|
||||
sink_fw_module->man4_module_entry.name);
|
||||
dev_err(sdev->dev,
|
||||
"cannot bind %s -> %s, no firmware module for: %s%s\n",
|
||||
src_widget->widget->name, sink_widget->widget->name,
|
||||
src_fw_module ? "" : " source",
|
||||
sink_fw_module ? "" : " sink");
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
|
@ -183,6 +183,7 @@ static int sof_suspend(struct device *dev, bool runtime_suspend)
|
||||
const struct sof_ipc_tplg_ops *tplg_ops = sof_ipc_get_ops(sdev, tplg);
|
||||
pm_message_t pm_state;
|
||||
u32 target_state = snd_sof_dsp_power_target(sdev);
|
||||
u32 old_state = sdev->dsp_power_state.state;
|
||||
int ret;
|
||||
|
||||
/* do nothing if dsp suspend callback is not set */
|
||||
@ -192,7 +193,12 @@ static int sof_suspend(struct device *dev, bool runtime_suspend)
|
||||
if (runtime_suspend && !sof_ops(sdev)->runtime_suspend)
|
||||
return 0;
|
||||
|
||||
if (tplg_ops && tplg_ops->tear_down_all_pipelines)
|
||||
/* we need to tear down pipelines only if the DSP hardware is
|
||||
* active, which happens for PCI devices. if the device is
|
||||
* suspended, it is brought back to full power and then
|
||||
* suspended again
|
||||
*/
|
||||
if (tplg_ops && tplg_ops->tear_down_all_pipelines && (old_state == SOF_DSP_PM_D0))
|
||||
tplg_ops->tear_down_all_pipelines(sdev, false);
|
||||
|
||||
if (sdev->fw_state != SOF_FW_BOOT_COMPLETE)
|
||||
|
Loading…
Reference in New Issue
Block a user