From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> To: Pavel Machek <pavel@ucw.cz> Cc: <lgirdwood@gmail.com>, <broonie@kernel.org>, <perex@perex.cz>, <tiwai@suse.de>, <patches@opensource.wolfsonmicro.com>, <alsa-devel@alsa-project.org>, <linux-kernel@vger.kernel.org> Subject: Re: multi-codec support for arizona-ldo1 was Re: System with multiple arizona (wm5102) codecs Date: Mon, 12 Oct 2015 12:37:02 +0100 [thread overview] Message-ID: <20151012113702.GC8805@ck-lbox> (raw) In-Reply-To: <20151012090045.GA7448@amd> On Mon, Oct 12, 2015 at 11:00:45AM +0200, Pavel Machek wrote: > Hi! > > > I guess you would need to be careful with the machine driver as > > well, you will need to use a snd_soc_codec_conf structure for at > > least one (although I would do both) of the CODECs to give a > > prefix for all the widget/control names, otherwise those will > > clash and everything will probably behave very strangely. See > > sound/soc/samsung/bells.c for an example doing this for wm9081. > > wm9081 is indeed useful example. > > Does this look like a step in right direction? Yeah looks reasonable a few comments added. > > Thanks, > Pavel > > diff --git a/drivers/regulator/arizona-ldo1.c b/drivers/regulator/arizona-ldo1.c > index 81d8681..2be9513 100644 > --- a/drivers/regulator/arizona-ldo1.c > +++ b/drivers/regulator/arizona-ldo1.c > @@ -27,13 +27,17 @@ > #include <linux/mfd/arizona/registers.h> > > struct arizona_ldo1 { > + char name[99]; Can probably use a much smaller buffer here only really need a couple of characters room on it. > struct regulator_dev *regulator; > struct arizona *arizona; > + struct regulator_desc desc; > > struct regulator_consumer_supply supply; > struct regulator_init_data init_data; > }; > > + > + > static int arizona_ldo1_hc_list_voltage(struct regulator_dev *rdev, > unsigned int selector) > { > @@ -121,7 +125,6 @@ static struct regulator_ops arizona_ldo1_hc_ops = { > }; > > static const struct regulator_desc arizona_ldo1_hc = { > - .name = "LDO1", > .supply_name = "LDOVDD", > .type = REGULATOR_VOLTAGE, > .ops = &arizona_ldo1_hc_ops, > @@ -146,7 +149,6 @@ static struct regulator_ops arizona_ldo1_ops = { > }; > > static const struct regulator_desc arizona_ldo1 = { > - .name = "LDO1", > .supply_name = "LDOVDD", > .type = REGULATOR_VOLTAGE, > .ops = &arizona_ldo1_ops, > @@ -183,8 +185,8 @@ static const struct regulator_init_data arizona_ldo1_default = { > static int arizona_ldo1_probe(struct platform_device *pdev) > { > struct arizona *arizona = dev_get_drvdata(pdev->dev.parent); > - const struct regulator_desc *desc; > struct regulator_config config = { }; > + int id = 0; Should the id not be coming from the pdev? > struct arizona_ldo1 *ldo1; > int ret; > > @@ -194,8 +196,10 @@ static int arizona_ldo1_probe(struct platform_device *pdev) > return -ENOMEM; > } > > + > + > + printk("Initializing arizona-ldo1 for codec %d\n", id); > ldo1->arizona = arizona; > - > /* > * Since the chip usually supplies itself we provide some > * default init_data for it. This will be overridden with > @@ -203,15 +207,18 @@ static int arizona_ldo1_probe(struct platform_device *pdev) > */ > switch (arizona->type) { > case WM5102: > - desc = &arizona_ldo1_hc; > ldo1->init_data = arizona_ldo1_dvfs; > + ldo1->desc = arizona_ldo1_hc; > break; > default: > - desc = &arizona_ldo1; > ldo1->init_data = arizona_ldo1_default; > + ldo1->desc = arizona_ldo1; > break; > } > > + ldo1->desc.name = ldo1->name; > + sprintf(ldo1->name, "LDO1_%d", id); Would be nice to use an snprintf here. Thanks, Charles
WARNING: multiple messages have this Message-ID (diff)
From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> To: Pavel Machek <pavel@ucw.cz> Cc: lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.de, patches@opensource.wolfsonmicro.com, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: multi-codec support for arizona-ldo1 was Re: System with multiple arizona (wm5102) codecs Date: Mon, 12 Oct 2015 12:37:02 +0100 [thread overview] Message-ID: <20151012113702.GC8805@ck-lbox> (raw) In-Reply-To: <20151012090045.GA7448@amd> On Mon, Oct 12, 2015 at 11:00:45AM +0200, Pavel Machek wrote: > Hi! > > > I guess you would need to be careful with the machine driver as > > well, you will need to use a snd_soc_codec_conf structure for at > > least one (although I would do both) of the CODECs to give a > > prefix for all the widget/control names, otherwise those will > > clash and everything will probably behave very strangely. See > > sound/soc/samsung/bells.c for an example doing this for wm9081. > > wm9081 is indeed useful example. > > Does this look like a step in right direction? Yeah looks reasonable a few comments added. > > Thanks, > Pavel > > diff --git a/drivers/regulator/arizona-ldo1.c b/drivers/regulator/arizona-ldo1.c > index 81d8681..2be9513 100644 > --- a/drivers/regulator/arizona-ldo1.c > +++ b/drivers/regulator/arizona-ldo1.c > @@ -27,13 +27,17 @@ > #include <linux/mfd/arizona/registers.h> > > struct arizona_ldo1 { > + char name[99]; Can probably use a much smaller buffer here only really need a couple of characters room on it. > struct regulator_dev *regulator; > struct arizona *arizona; > + struct regulator_desc desc; > > struct regulator_consumer_supply supply; > struct regulator_init_data init_data; > }; > > + > + > static int arizona_ldo1_hc_list_voltage(struct regulator_dev *rdev, > unsigned int selector) > { > @@ -121,7 +125,6 @@ static struct regulator_ops arizona_ldo1_hc_ops = { > }; > > static const struct regulator_desc arizona_ldo1_hc = { > - .name = "LDO1", > .supply_name = "LDOVDD", > .type = REGULATOR_VOLTAGE, > .ops = &arizona_ldo1_hc_ops, > @@ -146,7 +149,6 @@ static struct regulator_ops arizona_ldo1_ops = { > }; > > static const struct regulator_desc arizona_ldo1 = { > - .name = "LDO1", > .supply_name = "LDOVDD", > .type = REGULATOR_VOLTAGE, > .ops = &arizona_ldo1_ops, > @@ -183,8 +185,8 @@ static const struct regulator_init_data arizona_ldo1_default = { > static int arizona_ldo1_probe(struct platform_device *pdev) > { > struct arizona *arizona = dev_get_drvdata(pdev->dev.parent); > - const struct regulator_desc *desc; > struct regulator_config config = { }; > + int id = 0; Should the id not be coming from the pdev? > struct arizona_ldo1 *ldo1; > int ret; > > @@ -194,8 +196,10 @@ static int arizona_ldo1_probe(struct platform_device *pdev) > return -ENOMEM; > } > > + > + > + printk("Initializing arizona-ldo1 for codec %d\n", id); > ldo1->arizona = arizona; > - > /* > * Since the chip usually supplies itself we provide some > * default init_data for it. This will be overridden with > @@ -203,15 +207,18 @@ static int arizona_ldo1_probe(struct platform_device *pdev) > */ > switch (arizona->type) { > case WM5102: > - desc = &arizona_ldo1_hc; > ldo1->init_data = arizona_ldo1_dvfs; > + ldo1->desc = arizona_ldo1_hc; > break; > default: > - desc = &arizona_ldo1; > ldo1->init_data = arizona_ldo1_default; > + ldo1->desc = arizona_ldo1; > break; > } > > + ldo1->desc.name = ldo1->name; > + sprintf(ldo1->name, "LDO1_%d", id); Would be nice to use an snprintf here. Thanks, Charles
next prev parent reply other threads:[~2015-10-12 11:57 UTC|newest] Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-09-14 11:54 System with multiple arizona (wm5102) codecs Pavel Machek 2015-09-14 11:52 ` Charles Keepax 2015-09-14 11:52 ` Charles Keepax 2015-09-14 13:31 ` Charles Keepax 2015-09-14 13:31 ` Charles Keepax 2015-09-14 20:11 ` Pavel Machek 2015-09-15 6:18 ` Pavel Machek 2015-09-15 8:06 ` Charles Keepax 2015-09-15 8:06 ` Charles Keepax 2015-09-15 8:35 ` Pavel Machek 2015-09-15 13:56 ` [alsa-devel] " Caleb Crome 2015-09-15 13:56 ` Caleb Crome 2015-09-15 14:09 ` [alsa-devel] " Mark Brown 2015-09-15 14:09 ` Mark Brown 2015-09-15 15:26 ` [alsa-devel] " Caleb Crome 2015-09-19 18:21 ` Mark Brown 2015-09-21 12:36 ` Pavel Machek 2015-10-12 9:00 ` multi-codec support for arizona-ldo1 was " Pavel Machek 2015-10-12 11:37 ` Charles Keepax [this message] 2015-10-12 11:37 ` Charles Keepax 2015-11-30 11:33 ` multi-card support for davinci-evm Pavel Machek 2015-11-30 11:37 ` multi-card support for arizona-core Pavel Machek 2015-11-30 11:37 ` Pavel Machek 2015-11-30 11:54 ` Mark Brown 2015-10-12 15:47 ` multi-codec support for arizona-ldo1 was Re: System with multiple arizona (wm5102) codecs Mark Brown 2015-10-12 20:11 ` Pavel Machek 2015-10-13 11:53 ` Mark Brown 2015-10-13 11:53 ` Mark Brown 2015-11-13 21:58 ` Pavel Machek 2015-11-13 22:53 ` Mark Brown 2015-11-14 7:44 ` Pavel Machek 2015-11-14 7:44 ` Pavel Machek 2015-11-14 12:39 ` Mark Brown 2015-11-14 17:59 ` Pavel Machek 2015-11-14 17:59 ` Pavel Machek 2015-11-14 18:49 ` Mark Brown 2015-11-14 21:16 ` Pavel Machek 2015-11-14 21:16 ` Pavel Machek 2015-11-15 0:14 ` Mark Brown 2015-11-15 0:14 ` Mark Brown 2015-11-16 7:45 ` Pavel Machek 2015-11-16 10:50 ` Mark Brown 2015-11-16 12:29 ` Pavel Machek 2015-11-16 12:29 ` Pavel Machek 2015-11-16 13:57 ` Charles Keepax 2015-11-16 13:57 ` Charles Keepax 2015-11-16 14:28 ` Charles Keepax 2015-11-16 14:28 ` Charles Keepax 2015-11-16 17:33 ` Mark Brown 2015-11-16 14:11 ` Charles Keepax 2015-11-16 14:11 ` Charles Keepax 2015-11-22 6:51 ` Pavel Machek 2015-11-22 6:51 ` Pavel Machek 2015-11-23 8:18 ` Lee Jones 2015-11-23 8:18 ` Lee Jones 2015-11-23 10:11 ` Pavel Machek 2015-11-23 10:25 ` Richard Fitzgerald 2015-11-23 10:25 ` Richard Fitzgerald 2015-11-23 11:30 ` Mark Brown 2015-11-23 11:46 ` Charles Keepax 2015-11-23 11:46 ` Charles Keepax 2015-11-23 14:31 ` Lee Jones 2015-11-23 15:00 ` Pavel Machek 2015-11-16 14:05 ` Charles Keepax 2015-11-16 14:05 ` Charles Keepax
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20151012113702.GC8805@ck-lbox \ --to=ckeepax@opensource.wolfsonmicro.com \ --cc=alsa-devel@alsa-project.org \ --cc=broonie@kernel.org \ --cc=lgirdwood@gmail.com \ --cc=linux-kernel@vger.kernel.org \ --cc=patches@opensource.wolfsonmicro.com \ --cc=pavel@ucw.cz \ --cc=perex@perex.cz \ --cc=tiwai@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.