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

2015-07-17 Thread zhengxing
+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()

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

2015-07-17 Thread zhengxing
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 =

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

2015-07-17 Thread Mark Brown
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

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

2015-07-17 Thread Mark Brown
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 =

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

2015-07-17 Thread zhengxing
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 =

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

2015-07-17 Thread zhengxing
+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()

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

2015-07-16 Thread zhengxing
Hi Paul, On 2015年07月16日 22:15, Paul Bolle wrote: That's exactly how I understood MODULE_ALIAS() to work. And it works, in short, because a platform device fires a "MODALIAS=platform:[...]" uevent when it's created. And userspace uses that uevent to load the module carrying that alias. Let's

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 06:22:45PM +0200, Paul Bolle wrote: > On do, 2015-07-16 at 16:05 +0100, Mark Brown wrote: > > Why would this not be the case - what is the difference you beleive > > this driver has to other platform drivers? > It's my believe that for MODULE_ALIAS("platform:[...]") to be

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

2015-07-16 Thread Paul Bolle
On do, 2015-07-16 at 16:05 +0100, Mark Brown wrote: > Why would this not be the case - what is the difference you beleive > this driver has to other platform drivers? It's my believe that for MODULE_ALIAS("platform:[...]") to be useful there needs to be corresponding struct platform_device. For

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

2015-07-16 Thread Paul Bolle
Hi Gerry, On do, 2015-07-16 at 23:25 +0800, Jiang Liu wrote: > May be that is hidden in some device tree files. > MODULE_ALIAS() is used by a driver to announce that it supports > such types of devices. And bus enumerator will create those > devices by probing hardware or parsing some

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

2015-07-16 Thread Jiang Liu
On 2015/7/16 22:19, Paul Bolle wrote: > Hi, > > On do, 2015-07-16 at 19:59 +0800, zhengxing wrote: >> I mean that the use of MODALIAS() in this patch, and I refered to >> tegra_max98090.c(have been upstreamed) that used it like this also. So >> I didn't care the using. > > And I think the same

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 04:15:16PM +0200, Paul Bolle wrote: > Let's put it this was. If one does > sudo find /sys -perm -o=r -name uevent -exec grep -H MODALIAS=platform: > {} \; > > or > sudo find /sys -perm -o=r -name modalias -exec grep -H platform: {} \; > (both lists should be

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

2015-07-16 Thread Paul Bolle
Hi, On do, 2015-07-16 at 19:59 +0800, zhengxing wrote: > I mean that the use of MODALIAS() in this patch, and I refered to > tegra_max98090.c(have been upstreamed) that used it like this also. So > I didn't care the using. And I think the same problem with MODULE_ALIAS() can be found in that

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

2015-07-16 Thread Paul Bolle
On do, 2015-07-16 at 13:55 +0100, Mark Brown wrote: > No, in that case you've not understood what the MODULE_ALIAS is > for. It's there so that userspace knows which module to load if it > gets > a device with no driver, it goes in the driver not in the code > registering the device. That's

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 01:47:41PM +0200, Paul Bolle wrote: > On do, 2015-07-16 at 12:00 +0100, Mark Brown wrote: > > You've got platform_device and platform_driver confused I think. > I did? You mean that creating a platform_DRIVER triggers that > MODALIAS=platform:{...] uevent? No, in that

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

2015-07-16 Thread zhengxing
Hi Paul, I mean that the use of MODALIAS() in this patch, and I refered to tegra_max98090.c(have been upstreamed) that used it like this also. So I didn't care the using. Thanks. On 2015年07月16日 19:49, Paul Bolle wrote: Hi, On do, 2015-07-16 at 19:20 +0800, zhengxing wrote: Did I miss

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

2015-07-16 Thread Paul Bolle
Hi, On do, 2015-07-16 at 19:20 +0800, zhengxing wrote: > > Did I miss something? Or is there another way this alias is useful > > here? > Yes, I didn't care about this but I think it maybe correct. What is correct: my comment or the use of MODALIAS() in this patch? Thanks, Paul Bolle -- To

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

2015-07-16 Thread Paul Bolle
On do, 2015-07-16 at 12:00 +0100, Mark Brown wrote: > You've got platform_device and platform_driver confused I think. I did? You mean that creating a platform_DRIVER triggers that MODALIAS=platform:{...] uevent? Paul Bolle -- To unsubscribe from this list: send the line "unsubscribe

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

2015-07-16 Thread zhengxing
On 2015年07月16日 19:00, Mark Brown wrote: On Thu, Jul 16, 2015 at 10:05:44AM +0200, Paul Bolle wrote: +static struct platform_driver snd_rk_mc_driver = { + .probe = snd_rk_mc_probe, + .remove = snd_rk_mc_remove, + .driver = { + .name = DRV_NAME,

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

2015-07-16 Thread zhengxing
Hi Paul, Thank you for your reply. On 2015年07月16日 16:05, Paul Bolle wrote: On wo, 2015-07-15 at 11:15 +0800, Xing Zheng wrote: +static const struct of_device_id rockchip_max98090_of_match[] = { + { .compatible = "rockchip,rockchip-audio-max98090", }, + {}, +}; + +static struct

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 10:05:44AM +0200, Paul Bolle wrote: > > +static struct platform_driver snd_rk_mc_driver = { > > + .probe = snd_rk_mc_probe, > > + .remove = snd_rk_mc_remove, > > + .driver = { > > + .name = DRV_NAME, > > +MODULE_ALIAS("platform:" DRV_NAME); > This seems

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

2015-07-16 Thread Paul Bolle
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", }, > +

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 10:05:44AM +0200, Paul Bolle wrote: +static struct platform_driver snd_rk_mc_driver = { + .probe = snd_rk_mc_probe, + .remove = snd_rk_mc_remove, + .driver = { + .name = DRV_NAME, +MODULE_ALIAS(platform: DRV_NAME); This seems only useful if

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

2015-07-16 Thread Paul Bolle
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, }, + {},

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

2015-07-16 Thread Paul Bolle
On do, 2015-07-16 at 12:00 +0100, Mark Brown wrote: You've got platform_device and platform_driver confused I think. I did? You mean that creating a platform_DRIVER triggers that MODALIAS=platform:{...] uevent? Paul Bolle -- To unsubscribe from this list: send the line unsubscribe linux-kernel

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

2015-07-16 Thread zhengxing
On 2015年07月16日 19:00, Mark Brown wrote: On Thu, Jul 16, 2015 at 10:05:44AM +0200, Paul Bolle wrote: +static struct platform_driver snd_rk_mc_driver = { + .probe = snd_rk_mc_probe, + .remove = snd_rk_mc_remove, + .driver = { + .name = DRV_NAME,

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

2015-07-16 Thread zhengxing
Hi Paul, Thank you for your reply. On 2015年07月16日 16:05, Paul Bolle wrote: On wo, 2015-07-15 at 11:15 +0800, Xing Zheng wrote: +static const struct of_device_id rockchip_max98090_of_match[] = { + { .compatible = rockchip,rockchip-audio-max98090, }, + {}, +}; + +static struct

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

2015-07-16 Thread Paul Bolle
Hi, On do, 2015-07-16 at 19:20 +0800, zhengxing wrote: Did I miss something? Or is there another way this alias is useful here? Yes, I didn't care about this but I think it maybe correct. What is correct: my comment or the use of MODALIAS() in this patch? Thanks, Paul Bolle -- To

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

2015-07-16 Thread Paul Bolle
On do, 2015-07-16 at 13:55 +0100, Mark Brown wrote: No, in that case you've not understood what the MODULE_ALIAS is for. It's there so that userspace knows which module to load if it gets a device with no driver, it goes in the driver not in the code registering the device. That's exactly

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

2015-07-16 Thread Paul Bolle
Hi, On do, 2015-07-16 at 19:59 +0800, zhengxing wrote: I mean that the use of MODALIAS() in this patch, and I refered to tegra_max98090.c(have been upstreamed) that used it like this also. So I didn't care the using. And I think the same problem with MODULE_ALIAS() can be found in that

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 04:15:16PM +0200, Paul Bolle wrote: Let's put it this was. If one does sudo find /sys -perm -o=r -name uevent -exec grep -H MODALIAS=platform: {} \; or sudo find /sys -perm -o=r -name modalias -exec grep -H platform: {} \; (both lists should be similar)

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

2015-07-16 Thread Jiang Liu
On 2015/7/16 22:19, Paul Bolle wrote: Hi, On do, 2015-07-16 at 19:59 +0800, zhengxing wrote: I mean that the use of MODALIAS() in this patch, and I refered to tegra_max98090.c(have been upstreamed) that used it like this also. So I didn't care the using. And I think the same problem with

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

2015-07-16 Thread zhengxing
Hi Paul, I mean that the use of MODALIAS() in this patch, and I refered to tegra_max98090.c(have been upstreamed) that used it like this also. So I didn't care the using. Thanks. On 2015年07月16日 19:49, Paul Bolle wrote: Hi, On do, 2015-07-16 at 19:20 +0800, zhengxing wrote: Did I miss

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 01:47:41PM +0200, Paul Bolle wrote: On do, 2015-07-16 at 12:00 +0100, Mark Brown wrote: You've got platform_device and platform_driver confused I think. I did? You mean that creating a platform_DRIVER triggers that MODALIAS=platform:{...] uevent? No, in that case

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

2015-07-16 Thread Paul Bolle
Hi Gerry, On do, 2015-07-16 at 23:25 +0800, Jiang Liu wrote: May be that is hidden in some device tree files. MODULE_ALIAS() is used by a driver to announce that it supports such types of devices. And bus enumerator will create those devices by probing hardware or parsing some configuration

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

2015-07-16 Thread Paul Bolle
On do, 2015-07-16 at 16:05 +0100, Mark Brown wrote: Why would this not be the case - what is the difference you beleive this driver has to other platform drivers? It's my believe that for MODULE_ALIAS(platform:[...]) to be useful there needs to be corresponding struct platform_device. For this

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

2015-07-16 Thread Mark Brown
On Thu, Jul 16, 2015 at 06:22:45PM +0200, Paul Bolle wrote: On do, 2015-07-16 at 16:05 +0100, Mark Brown wrote: Why would this not be the case - what is the difference you beleive this driver has to other platform drivers? It's my believe that for MODULE_ALIAS(platform:[...]) to be useful

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

2015-07-16 Thread zhengxing
Hi Paul, On 2015年07月16日 22:15, Paul Bolle wrote: That's exactly how I understood MODULE_ALIAS() to work. And it works, in short, because a platform device fires a MODALIAS=platform:[...] uevent when it's created. And userspace uses that uevent to load the module carrying that alias. Let's put

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

2015-07-14 Thread Xing Zheng
From: zhengxing The driver is used for rockchip board using a max98090. Reviewed-by: Dylan Reid Signed-off-by: zhengxing --- sound/soc/rockchip/Kconfig | 10 ++ sound/soc/rockchip/Makefile|4 + sound/soc/rockchip/rockchip_max98090.c | 246

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

2015-07-14 Thread Xing Zheng
From: zhengxing zhengx...@rock-chips.com The driver is used for rockchip board using a max98090. Reviewed-by: Dylan Reid dgr...@chromium.org Signed-off-by: zhengxing zhengx...@rock-chips.com --- sound/soc/rockchip/Kconfig | 10 ++ sound/soc/rockchip/Makefile|4 +