[PATCH 1/2] ASoC: rockchip: Add machine driver for max98090 codec

zhengxing zhengxing at rock-chips.com
Fri Jul 17 20:51:24 PDT 2015


On 2015年07月18日 02:04, Mark Brown wrote:
> On Wed, Jul 15, 2015 at 11:15:42AM +0800, Xing Zheng wrote:
>
> This looks pretty good, a couple of minor points below which should be
> quick to fix.
>
>> +static int rk_init(struct snd_soc_pcm_runtime *runtime)
>> +{
>> +	struct snd_soc_card *card = runtime->card;
>> +
>> +	card->dapm.idle_bias_off = true;
> You shouldn't need to do this?  If you do need to do it we should make
> it possible to do it from the card struct.
Done, we don't need it in the machine driver.
>> +	ret = snd_soc_register_card(card);
>> +	if (ret) {
>> +		pr_err("snd_soc_register_card failed %d\n", ret);
>> +		return ret;
>> +	}
>> +
>> +	ret = snd_soc_of_parse_card_name(card, "rockchip,model");
>> +	if (ret)
>> +		return ret;
> This should be devm_snd_soc_register_card() and you need to parse the
> card name before registering it, otherwise the card might instantiate
> before the name is set.
Done.
>> +static int snd_rk_mc_remove(struct platform_device *pdev)
>> +{
>> +	struct snd_soc_card *soc_card = platform_get_drvdata(pdev);
>> +
>> +	snd_soc_card_set_drvdata(soc_card, NULL);
>> +	snd_soc_unregister_card(soc_card);
>> +	platform_set_drvdata(pdev, NULL);
> No need for any of the _set_drvdata() calls, the core does them and they
> shouldn't make any difference anyway.
Done. I will remove *_set_drvdata and *get_drvdata because we don't need 
them any more.

Thanks.





More information about the Linux-rockchip mailing list