diff options
Diffstat (limited to 'sound/soc/atmel/mikroe-proto.c')
| -rw-r--r-- | sound/soc/atmel/mikroe-proto.c | 21 | 
1 files changed, 17 insertions, 4 deletions
diff --git a/sound/soc/atmel/mikroe-proto.c b/sound/soc/atmel/mikroe-proto.c index e77d89a9781e..aa6d0d78566f 100644 --- a/sound/soc/atmel/mikroe-proto.c +++ b/sound/soc/atmel/mikroe-proto.c @@ -63,6 +63,7 @@ static struct snd_soc_card snd_proto = {  static int snd_proto_probe(struct platform_device *pdev)  {  	struct snd_soc_dai_link *dai; +	struct snd_soc_dai_link_component *comp;  	struct device_node *np = pdev->dev.of_node;  	struct device_node *codec_np, *cpu_np;  	struct device_node *bitclkmaster = NULL; @@ -84,12 +85,24 @@ static int snd_proto_probe(struct platform_device *pdev)  	if (!dai)  		return -ENOMEM; +	/* for cpus/codecs/platforms */ +	comp = devm_kzalloc(&pdev->dev, 3 * sizeof(*comp), GFP_KERNEL); +	if (!comp) +		return -ENOMEM; +  	snd_proto.dai_link = dai;  	snd_proto.num_links = 1; +	dai->cpus = &comp[0]; +	dai->num_cpus = 1; +	dai->codecs = &comp[1]; +	dai->num_codecs = 1; +	dai->platforms = &comp[2]; +	dai->num_platforms = 1; +  	dai->name = "WM8731";  	dai->stream_name = "WM8731 HiFi"; -	dai->codec_dai_name = "wm8731-hifi"; +	dai->codecs->dai_name = "wm8731-hifi";  	dai->init = &snd_proto_init;  	codec_np = of_parse_phandle(np, "audio-codec", 0); @@ -97,15 +110,15 @@ static int snd_proto_probe(struct platform_device *pdev)  		dev_err(&pdev->dev, "audio-codec node missing\n");  		return -EINVAL;  	} -	dai->codec_of_node = codec_np; +	dai->codecs->of_node = codec_np;  	cpu_np = of_parse_phandle(np, "i2s-controller", 0);  	if (!cpu_np) {  		dev_err(&pdev->dev, "i2s-controller missing\n");  		return -EINVAL;  	} -	dai->cpu_of_node = cpu_np; -	dai->platform_of_node = cpu_np; +	dai->cpus->of_node = cpu_np; +	dai->platforms->of_node = cpu_np;  	dai_fmt = snd_soc_of_parse_daifmt(np, NULL,  					  &bitclkmaster, &framemaster);  | 
