Commit fbca72c1 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-fix-v5.5-rc5' of...

Merge tag 'asoc-fix-v5.5-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v5.5

More fixes that have been collected, nothing super remarkable here - the
few core fixes are mainly error handling related as are many of the
driver fixes.
parents 51d4efab ff3b5741
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -505,15 +505,20 @@ static int fsl_audmix_probe(struct platform_device *pdev)
					      ARRAY_SIZE(fsl_audmix_dai));
	if (ret) {
		dev_err(dev, "failed to register ASoC DAI\n");
		return ret;
		goto err_disable_pm;
	}

	priv->pdev = platform_device_register_data(dev, mdrv, 0, NULL, 0);
	if (IS_ERR(priv->pdev)) {
		ret = PTR_ERR(priv->pdev);
		dev_err(dev, "failed to register platform %s: %d\n", mdrv, ret);
		goto err_disable_pm;
	}

	return 0;

err_disable_pm:
	pm_runtime_disable(dev);
	return ret;
}

@@ -521,6 +526,8 @@ static int fsl_audmix_remove(struct platform_device *pdev)
{
	struct fsl_audmix *priv = dev_get_drvdata(&pdev->dev);

	pm_runtime_disable(&pdev->dev);

	if (priv->pdev)
		platform_device_unregister(priv->pdev);

+0 −1
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@
#include <linux/clk.h>
#include <linux/dmi.h>
#include <linux/slab.h>
#include <asm/cpu_device_id.h>
#include <linux/acpi.h>
#include <sound/core.h>
#include <sound/jack.h>
+8 −6
Original line number Diff line number Diff line
@@ -479,6 +479,12 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
		goto free_rtd;

	rtd->dev = dev;
	INIT_LIST_HEAD(&rtd->list);
	INIT_LIST_HEAD(&rtd->component_list);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].be_clients);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].be_clients);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].fe_clients);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].fe_clients);
	dev_set_drvdata(dev, rtd);
	INIT_DELAYED_WORK(&rtd->delayed_work, close_delayed_work);

@@ -494,12 +500,6 @@ static struct snd_soc_pcm_runtime *soc_new_pcm_runtime(
	/*
	 * rtd remaining settings
	 */
	INIT_LIST_HEAD(&rtd->component_list);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].be_clients);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].be_clients);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_PLAYBACK].fe_clients);
	INIT_LIST_HEAD(&rtd->dpcm[SNDRV_PCM_STREAM_CAPTURE].fe_clients);

	rtd->card = card;
	rtd->dai_link = dai_link;
	if (!rtd->dai_link->ops)
@@ -1871,6 +1871,8 @@ match:

			/* convert non BE into BE */
			dai_link->no_pcm = 1;
			dai_link->dpcm_playback = 1;
			dai_link->dpcm_capture = 1;

			/* override any BE fixups */
			dai_link->be_hw_params_fixup =
+3 −3
Original line number Diff line number Diff line
@@ -548,12 +548,12 @@ static void remove_link(struct snd_soc_component *comp,
	if (dobj->ops && dobj->ops->link_unload)
		dobj->ops->link_unload(comp, dobj);

	list_del(&dobj->list);
	snd_soc_remove_dai_link(comp->card, link);

	kfree(link->name);
	kfree(link->stream_name);
	kfree(link->cpus->dai_name);

	list_del(&dobj->list);
	snd_soc_remove_dai_link(comp->card, link);
	kfree(link);
}

+4 −1
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ static int imx8_probe(struct snd_sof_dev *sdev)

	priv->pd_dev = devm_kmalloc_array(&pdev->dev, priv->num_domains,
					  sizeof(*priv->pd_dev), GFP_KERNEL);
	if (!priv)
	if (!priv->pd_dev)
		return -ENOMEM;

	priv->link = devm_kmalloc_array(&pdev->dev, priv->num_domains,
@@ -304,6 +304,9 @@ static int imx8_probe(struct snd_sof_dev *sdev)
	}
	sdev->mailbox_bar = SOF_FW_BLK_TYPE_SRAM;

	/* set default mailbox offset for FW ready message */
	sdev->dsp_box.offset = MBOX_OFFSET;

	return 0;

exit_pdev_unregister:
Loading