From: broonie@opensource.wolfsonmicro.com (Mark Brown)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 5/5] regulator: map consumer regulator based on device tree
Date: Mon, 10 Oct 2011 18:35:07 +0100 [thread overview]
Message-ID: <20111010173506.GH3607@opensource.wolfsonmicro.com> (raw)
In-Reply-To: <1318263578-7407-6-git-send-email-rnayak@ti.com>
On Mon, Oct 10, 2011 at 09:49:38PM +0530, Rajendra Nayak wrote:
> Device nodes in DT can associate themselves with one or more
> regulators/supply by providing a list of phandles (to regulator nodes)
> and corresponding supply names.
Mostly looks good.
> +/**
> + * of_get_regulator - get a regulator device node based on supply name
> + * @dev: Device pointer for the consumer (of regulator) device
> + * @supply: regulator supply name
> + *
> + * Extract the regulator device node corresponding to the supply name.
> + * retruns the device node corresponding to the regulator if found, else
> + * returns NULL.
> + */
> +struct device_node *of_get_regulator(struct device *dev, const char *supply)
> +{
Should be static.
> @@ -1178,6 +1225,10 @@ static struct regulator *_regulator_get(struct device *dev, const char *id,
> goto found;
> }
> }
> + if (!dev)
> + list_for_each_entry(rdev, ®ulator_list, list)
> + if (strcmp(rdev_get_name(rdev), id))
> + goto found;
>
This looks really strange, we didn't remove any old lookup code and the
DT lookup jumps to found by iself so why are we adding code here?
> + if (supply) {
> + struct regulator_dev *r;
> + struct device_node *node;
> +
> + /* first do a dt based lookup */
> + if (dev) {
> + node = of_get_regulator(dev, supply);
> + if (node)
> + list_for_each_entry(r, ®ulator_list, list)
> + if (node == r->dev.parent->of_node)
> + goto found;
> }
>
> - if (!found) {
> - dev_err(dev, "Failed to find supply %s\n",
> - init_data->supply_regulator);
> - ret = -ENODEV;
> - goto scrub;
> - }
> + /* next try doing it non-dt way */
> + list_for_each_entry(r, ®ulator_list, list)
> + if (strcmp(rdev_get_name(r), supply) == 0)
> + goto found;
>
> + dev_err(dev, "Failed to find supply %s\n", supply);
> + ret = -ENODEV;
> + goto scrub;
> +
> +found:
This is all getting *really* complicated and illegible. I'm not sure
what the best way to structure is but erroring out early looks useful.
next prev parent reply other threads:[~2011-10-10 17:35 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-10 16:19 [PATCH v2 0/5] Device tree support for regulators Rajendra Nayak
2011-10-10 16:19 ` [PATCH v2 1/5] regulator: twl: Remove hardcoded board constraints from driver Rajendra Nayak
2011-10-10 16:25 ` Mark Brown
2011-10-10 16:34 ` Rajendra Nayak
2011-10-10 16:19 ` [PATCH v2 2/5] dt: add empty dt helpers for non-dt build Rajendra Nayak
2011-10-13 18:32 ` Grant Likely
2011-10-10 16:19 ` [PATCH v2 3/5] regulator: helper routine to extract regulator_init_data Rajendra Nayak
2011-10-10 17:22 ` Mark Brown
2011-10-11 5:59 ` Rajendra Nayak
2011-10-13 18:38 ` Grant Likely
2011-10-13 22:12 ` Mark Brown
2011-10-13 18:40 ` Grant Likely
2011-10-16 14:55 ` Shawn Guo
2011-10-17 4:17 ` Rajendra Nayak
2011-10-18 11:58 ` Shawn Guo
2011-10-18 16:00 ` Mark Brown
2011-10-19 5:33 ` Shawn Guo
2011-10-19 14:47 ` Mark Brown
2011-10-19 15:04 ` Shawn Guo
2011-10-19 15:10 ` Mark Brown
2011-10-20 3:42 ` Rajendra Nayak
2011-10-20 9:41 ` Mark Brown
2011-10-20 12:10 ` Rajendra Nayak
2011-10-20 16:27 ` Tony Lindgren
2011-10-20 16:40 ` Mark Brown
2011-10-20 17:05 ` Tony Lindgren
2011-10-20 17:22 ` Tony Lindgren
2011-10-20 19:57 ` Mark Brown
2011-10-20 20:10 ` Tony Lindgren
2011-10-20 21:42 ` Mark Brown
2011-10-20 22:09 ` Tony Lindgren
2011-10-24 9:07 ` Grant Likely
2011-10-20 19:56 ` Mark Brown
2011-10-18 13:20 ` Shawn Guo
2011-10-19 11:35 ` Rajendra Nayak
2011-10-19 14:42 ` Shawn Guo
2011-10-19 14:50 ` Mark Brown
2011-10-20 5:18 ` Rajendra Nayak
2011-10-20 6:14 ` Shawn Guo
2011-10-20 12:09 ` Rajendra Nayak
2011-10-21 8:23 ` Shawn Guo
2011-10-21 8:41 ` Rajendra Nayak
2011-10-21 11:58 ` Shawn Guo
2011-10-24 6:02 ` Rajendra Nayak
2011-10-24 7:34 ` Mark Brown
2011-10-24 8:17 ` Grant Likely
2011-10-24 8:53 ` Rajendra Nayak
2011-10-24 9:19 ` Mark Brown
2011-10-24 10:05 ` Rajendra Nayak
2011-10-24 9:23 ` Shawn Guo
2011-10-24 9:02 ` Shawn Guo
2011-10-24 8:56 ` Rajendra Nayak
2011-10-24 9:11 ` Shawn Guo
2011-10-24 9:13 ` Rajendra Nayak
2011-10-24 13:47 ` Shawn Guo
2011-10-25 6:00 ` Rajendra Nayak
2011-10-25 6:26 ` Rajendra Nayak
2011-10-25 6:52 ` Shawn Guo
2011-10-25 6:56 ` Rajendra Nayak
2011-10-25 7:20 ` Shawn Guo
2011-10-25 7:13 ` Rajendra Nayak
2011-10-25 7:42 ` Shawn Guo
2011-10-24 11:35 ` Grant Likely
2011-10-24 9:24 ` Grant Likely
2011-10-24 9:39 ` Mark Brown
2011-10-24 13:04 ` Shawn Guo
2011-10-24 13:06 ` Mark Brown
2011-10-24 13:40 ` Shawn Guo
2011-10-24 13:49 ` Mark Brown
2011-10-24 14:47 ` Shawn Guo
2011-10-25 7:11 ` Mark Brown
2011-10-24 13:59 ` Grant Likely
2011-10-24 14:51 ` Shawn Guo
2011-10-24 14:56 ` Grant Likely
2011-10-24 15:51 ` Shawn Guo
2011-10-24 22:21 ` Grant Likely
2011-10-25 6:10 ` Rajendra Nayak
2011-10-25 7:08 ` Shawn Guo
2011-10-25 7:01 ` Rajendra Nayak
2011-10-25 7:28 ` Shawn Guo
2011-10-10 16:19 ` [PATCH v2 4/5] regulator: adapt fixed regulator driver to dt Rajendra Nayak
2011-10-13 18:43 ` Grant Likely
2011-10-10 16:19 ` [PATCH v2 5/5] regulator: map consumer regulator based on device tree Rajendra Nayak
2011-10-10 17:35 ` Mark Brown [this message]
2011-10-11 5:49 ` Rajendra Nayak
2011-10-11 7:08 ` Nayak, Rajendra
2011-10-13 16:52 ` Mark Brown
2011-10-13 18:46 ` Grant Likely
2011-10-18 13:33 ` Shawn Guo
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=20111010173506.GH3607@opensource.wolfsonmicro.com \
--to=broonie@opensource.wolfsonmicro.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).