[alsa-devel] codec->card removed
Lars-Peter Clausen
lars at metafoo.de
Fri Sep 26 21:25:10 CEST 2014
On 09/26/2014 09:19 PM, jonsmirl at gmail.com wrote:
> How should I rewrite this to reflect that codec->card has been removed?
> This is codec is on the SOC chip, not an external one.
>
> static int sunxi_codec_trigger(struct snd_pcm_substream *substream, int
> cmd, struct snd_soc_dai *dai) {
> struct snd_soc_pcm_runtime *rtd = substream->private_data;
> struct snd_soc_dai *codec_dai = rtd->codec_dai;
> struct snd_soc_codec *codec = codec_dai->codec;
> struct snd_soc_card *card = codec->card;
> struct sunxi_priv *priv = snd_soc_card_get_drvdata(card);
It was moved to the component sub-structure in the CODEC struct. So
codec->component.card
But you really shouldn't access the card from the CODEC driver, that is a
layering violation.
Similarly accessing rtd->codec_dai from the CODEC driver is not correct,
since codec_dai may not necessarily point to the CODEC DAI of your CODEC.
(E.g. for multi-codec links or codec-to-codec links).
- Lars
More information about the Alsa-devel
mailing list