On wo, 2015-07-15 at 11:15 +0800, Xing Zheng wrote: > --- /dev/null > +++ b/sound/soc/rockchip/rockchip_max98090.c > +#define DRV_NAME "rockchip-snd-max98090" > +static const struct of_device_id rockchip_max98090_of_match[] = { > + { .compatible = "rockchip,rockchip-audio-max98090", }, > + {}, > +}; > + > +static struct platform_driver snd_rk_mc_driver = { > + .probe = snd_rk_mc_probe, > + .remove = snd_rk_mc_remove, > + .driver = { > + .name = DRV_NAME, > + .owner = THIS_MODULE, > + .pm = &snd_soc_pm_ops, > + .of_match_table = rockchip_max98090_of_match, > + }, > +}; > + > +module_platform_driver(snd_rk_mc_driver); Nit: empty line here. > +MODULE_AUTHOR("jianqun <jay.xu at rock-chips.com>"); > +MODULE_DESCRIPTION("Rockchip max98090 machine ASoC driver"); > +MODULE_LICENSE("GPL v2"); > +MODULE_ALIAS("platform:" DRV_NAME); This seems only useful if there's a corresponding struct platform_device. Ie, a platform_device with a "rockchip-snd-max98090" .name, which will trigger a "MODALIAS=platform:rockchip-snd-max98090" uevent when it's created. But I couldn't find where such a platform_device is created. Did I miss something? Or is there another way this alias is useful here? > +MODULE_DEVICE_TABLE(of, rockchip_max98090_of_match); The common pattern is to put MODULE_DEVICE_TABLE() directly after the table it exports. Likewise for 2/2 (except the empty line nit, that is). Thanks, Paul Bolle