All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: Mark Brown <broonie@kernel.org>, <sameo@linux.intel.com>,
	<lee.jones@linaro.org>, <lgirdwood@gmail.com>, <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, 16 Nov 2015 14:28:13 +0000	[thread overview]
Message-ID: <20151116142813.GF18889@ck-lbox> (raw)
In-Reply-To: <20151116122947.GA9125@amd>

On Mon, Nov 16, 2015 at 01:29:47PM +0100, Pavel Machek wrote:
> Hi!
> 
> > > > Every single sound driver gets this right, none of them assume the name
> > > > is global.  What makes you say that they assume names are global?
> > 
> > > Ok, so you are saying that if I fix mfd initialization, sound will
> > > automagically switch from global regulators to device-specific
> > > regulators and things will start working?
> > 
> > Yes.
> 
> Ok, so something like this should be applied?
> 
> (I'm not sure how to test it, as audio works before and after the
> patch.)

Well I guess the first test is do these error messages you where
getting disappear:

> [    2.734198] wm5102-codec.1 supply MICVDD,spi32766.1 not found, using dummy regulator
> [    3.170912] wm5102-codec.2 supply MICVDD,spi32766.2 not found, using dummy regulator

I think what we are missing here is looking at why the lookup is
actually failing. I have had a look at the code, but I don't see
an obvious reason why having a second CODEC would cause the
supply lookup to fail.

Can you please apply this diff and provide a log so we can have a
look at what is going on with the supply aliasing:


diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 7181ffd..f1c8897 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1345,9 +1345,11 @@ static struct regulator_supply_alias *regulator_find_supply_alias(
 {
 	struct regulator_supply_alias *map;
 
-	list_for_each_entry(map, &regulator_supply_alias_list, list)
+	list_for_each_entry(map, &regulator_supply_alias_list, list) {
+		dev_err(dev, "Checking %s,%p\n", map->src_supply, map->src_dev);
 		if (map->src_dev == dev && strcmp(map->src_supply, supply) == 0)
 			return map;
+	}
 
 	return NULL;
 }
@@ -1356,11 +1358,12 @@ static void regulator_supply_alias(struct device **dev, const char **supply)
 {
 	struct regulator_supply_alias *map;
 
+	dev_err(*dev, "Looking for %s,%p\n", *supply, *dev);
 	map = regulator_find_supply_alias(*dev, *supply);
 	if (map) {
-		dev_dbg(*dev, "Mapping supply %s to %s,%s\n",
+		dev_err(*dev, "Mapping supply %s to %s,%p\n",
 				*supply, map->alias_supply,
-				dev_name(map->alias_dev));
+				map->alias_dev);
 		*dev = map->alias_dev;
 		*supply = map->alias_supply;
 	}
@@ -1796,8 +1799,8 @@ int regulator_register_supply_alias(struct device *dev, const char *id,
 
 	list_add(&map->list, &regulator_supply_alias_list);
 
-	pr_info("Adding alias for supply %s,%s -> %s,%s\n",
-		id, dev_name(dev), alias_id, dev_name(alias_dev));
+	pr_info("Adding alias for supply %s,%p -> %s,%p\n",
+		id, dev, alias_id, alias_dev);
 
 	return 0;
 }

Thanks,
Charles

WARNING: multiple messages have this Message-ID (diff)
From: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: Mark Brown <broonie@kernel.org>,
	sameo@linux.intel.com, lee.jones@linaro.org, lgirdwood@gmail.com,
	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, 16 Nov 2015 14:28:13 +0000	[thread overview]
Message-ID: <20151116142813.GF18889@ck-lbox> (raw)
In-Reply-To: <20151116122947.GA9125@amd>

On Mon, Nov 16, 2015 at 01:29:47PM +0100, Pavel Machek wrote:
> Hi!
> 
> > > > Every single sound driver gets this right, none of them assume the name
> > > > is global.  What makes you say that they assume names are global?
> > 
> > > Ok, so you are saying that if I fix mfd initialization, sound will
> > > automagically switch from global regulators to device-specific
> > > regulators and things will start working?
> > 
> > Yes.
> 
> Ok, so something like this should be applied?
> 
> (I'm not sure how to test it, as audio works before and after the
> patch.)

Well I guess the first test is do these error messages you where
getting disappear:

> [    2.734198] wm5102-codec.1 supply MICVDD,spi32766.1 not found, using dummy regulator
> [    3.170912] wm5102-codec.2 supply MICVDD,spi32766.2 not found, using dummy regulator

I think what we are missing here is looking at why the lookup is
actually failing. I have had a look at the code, but I don't see
an obvious reason why having a second CODEC would cause the
supply lookup to fail.

Can you please apply this diff and provide a log so we can have a
look at what is going on with the supply aliasing:


diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 7181ffd..f1c8897 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1345,9 +1345,11 @@ static struct regulator_supply_alias *regulator_find_supply_alias(
 {
 	struct regulator_supply_alias *map;
 
-	list_for_each_entry(map, &regulator_supply_alias_list, list)
+	list_for_each_entry(map, &regulator_supply_alias_list, list) {
+		dev_err(dev, "Checking %s,%p\n", map->src_supply, map->src_dev);
 		if (map->src_dev == dev && strcmp(map->src_supply, supply) == 0)
 			return map;
+	}
 
 	return NULL;
 }
@@ -1356,11 +1358,12 @@ static void regulator_supply_alias(struct device **dev, const char **supply)
 {
 	struct regulator_supply_alias *map;
 
+	dev_err(*dev, "Looking for %s,%p\n", *supply, *dev);
 	map = regulator_find_supply_alias(*dev, *supply);
 	if (map) {
-		dev_dbg(*dev, "Mapping supply %s to %s,%s\n",
+		dev_err(*dev, "Mapping supply %s to %s,%p\n",
 				*supply, map->alias_supply,
-				dev_name(map->alias_dev));
+				map->alias_dev);
 		*dev = map->alias_dev;
 		*supply = map->alias_supply;
 	}
@@ -1796,8 +1799,8 @@ int regulator_register_supply_alias(struct device *dev, const char *id,
 
 	list_add(&map->list, &regulator_supply_alias_list);
 
-	pr_info("Adding alias for supply %s,%s -> %s,%s\n",
-		id, dev_name(dev), alias_id, dev_name(alias_dev));
+	pr_info("Adding alias for supply %s,%p -> %s,%p\n",
+		id, dev, alias_id, alias_dev);
 
 	return 0;
 }

Thanks,
Charles

  parent reply	other threads:[~2015-11-16 14:44 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
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 [this message]
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=20151116142813.GF18889@ck-lbox \
    --to=ckeepax@opensource.wolfsonmicro.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lee.jones@linaro.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=sameo@linux.intel.com \
    --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: link
Be 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.