Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6106d129 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown
Browse files

ASoC: Add component pointer to the DAI struct



Keep track of which component registered a DAI. We'll need this as
componentization progresses.

Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 5c898e74
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -270,6 +270,7 @@ struct snd_soc_dai {
	/* parent platform/codec */
	struct snd_soc_platform *platform;
	struct snd_soc_codec *codec;
	struct snd_soc_component *component;

	struct snd_soc_card *card;

+12 −6
Original line number Diff line number Diff line
@@ -3884,11 +3884,13 @@ static inline char *fmt_multiple_name(struct device *dev,
/**
 * snd_soc_register_dai - Register a DAI with the ASoC core
 *
 * @dai: DAI to register
 * @component: The component the DAIs are registered for
 * @dai_drv: DAI driver to use for the DAIs
 */
static int snd_soc_register_dai(struct device *dev,
static int snd_soc_register_dai(struct snd_soc_component *component,
		struct snd_soc_dai_driver *dai_drv)
{
	struct device *dev = component->dev;
	struct snd_soc_codec *codec;
	struct snd_soc_dai *dai;

@@ -3905,6 +3907,7 @@ static int snd_soc_register_dai(struct device *dev,
		return -ENOMEM;
	}

	dai->component = component;
	dai->dev = dev;
	dai->driver = dai_drv;
	dai->dapm.dev = dev;
@@ -3962,12 +3965,14 @@ found:
/**
 * snd_soc_register_dais - Register multiple DAIs with the ASoC core
 *
 * @dai: Array of DAIs to register
 * @component: The component the DAIs are registered for
 * @dai_drv: DAI driver to use for the DAIs
 * @count: Number of DAIs
 */
static int snd_soc_register_dais(struct device *dev,
static int snd_soc_register_dais(struct snd_soc_component *component,
		struct snd_soc_dai_driver *dai_drv, size_t count)
{
	struct device *dev = component->dev;
	struct snd_soc_codec *codec;
	struct snd_soc_dai *dai;
	int i, ret = 0;
@@ -3990,6 +3995,7 @@ static int snd_soc_register_dais(struct device *dev,
			goto err;
		}

		dai->component = component;
		dai->dev = dev;
		dai->driver = &dai_drv[i];
		if (dai->driver->id)
@@ -4086,9 +4092,9 @@ __snd_soc_register_component(struct device *dev,
	 * since it had been used snd_soc_register_dais(),
	 */
	if ((1 == num_dai) && allow_single_dai)
		ret = snd_soc_register_dai(dev, dai_drv);
		ret = snd_soc_register_dai(cmpnt, dai_drv);
	else
		ret = snd_soc_register_dais(dev, dai_drv, num_dai);
		ret = snd_soc_register_dais(cmpnt, dai_drv, num_dai);
	if (ret < 0) {
		dev_err(dev, "ASoC: Failed to regster DAIs: %d\n", ret);
		goto error_component_name;