From: Suman Anna <s-anna@ti.com>
To: Bjorn Andersson <bjorn@kryo.se>, Ohad Ben-Cohen <ohad@wizery.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
Tony Lindgren <tony@atomide.com>,
Kumar Gala <galak@codeaurora.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
linux-omap@vger.kernel.org,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCHv4 4/7] hwspinlock/core: add common OF helpers
Date: Mon, 10 Feb 2014 13:14:44 -0600 [thread overview]
Message-ID: <52F92524.3080402@ti.com> (raw)
In-Reply-To: <CAJAp7Oi7wD+VsMAd37gT04yZ4TH4ygXFmheDhvmWuanUjpBmVQ@mail.gmail.com>
Bjorn,
On 02/07/2014 04:49 PM, Bjorn Andersson wrote:
> On Mon, Jan 13, 2014 at 4:19 PM, Suman Anna <s-anna@ti.com> wrote:
>> This patch adds three new OF helper functions to use/request
>> locks from a hwspinlock device instantiated through a
>> device-tree blob.
>
> Nice, I ran in to the problem of needing a probe deferral on a
> hwspinlock earlier this week so I implemented this yesterday...then I
> got a pointer to your series.
>
> [snip]
>> /**
>> + * of_hwspin_lock_request_specific() - request a OF phandle-based specific lock
>> + * @np: device node from which to request the specific hwlock
>> + * @propname: property name containing hwlock specifier(s)
>> + * @index: index of the hwlock
>> + *
>> + * This function is the OF equivalent of hwspin_lock_request_specific(). This
>> + * function provides a means for users of the hwspinlock module to request a
>> + * specific hwspinlock using the phandle of the hwspinlock device. The requested
>> + * lock number is indexed relative to the hwspinlock device, unlike the
>> + * hwspin_lock_request_specific() which is an absolute lock number.
>> + *
>> + * Returns the address of the assigned hwspinlock, or NULL on error
>> + */
>> +struct hwspinlock *of_hwspin_lock_request_specific(struct device_node *np,
>> + const char *propname, int index)
>> +{
>> + struct hwspinlock_device *bank;
>> + struct of_phandle_args args;
>> + int id;
>> + int ret;
>> +
>> + ret = of_parse_phandle_with_args(np, propname, "#hwlock-cells", index,
>> + &args);
>> + if (ret) {
>> + pr_warn("%s: can't parse hwlocks property of node '%s[%d]' ret = %d\n",
>> + __func__, np->full_name, index, ret);
>> + return NULL;
>> + }
>
> of_parse_phandle_with_args() already does pr_err if it can't find the
> phandle and on some of the issues related to arguments. So please
> remove this pr_warn().
Yes, I will clean this up.
>
> It seems to be standard practice to pass the error value back to the
> consumer, so you should
> return ERR_PTR(ret); here instead of the NULL...
I have modelled the return values in this function based on the return
values in the existing hwspin_lock_request interfaces. I would need to
change those functions as well.
Ohad,
Do you have any objections to the return code convention change? I agree
with Bjorn on the changes. If you are ok, then I will add a separate
patch for the existing functions and revise this patch as well.
>
>> +
>> + mutex_lock(&hwspinlock_tree_lock);
>> + list_for_each_entry(bank, &hwspinlock_devices, list)
>> + if (bank->dev->of_node == args.np)
>> + break;
>> + mutex_unlock(&hwspinlock_tree_lock);
>> + if (&bank->list == &hwspinlock_devices) {
>> + pr_warn("%s: requested hwspinlock device %s is not registered\n",
>> + __func__, args.np->full_name);
>> + return NULL;
>
> ...especially since you want the consumer to have the ability to
> identify this error. Here you should
> return ERR_PTR(-EPROBE_DEFER); so that the consumer knows that this
> lock is not _yet_ registered, but will be in the future.
>
> You should remove this pr_warn as well. The standard use of this
> function would be in a probe() and just returning this error value
> from that probe will give you a line in the log indicating that this
> was in fact the issue.
OK.
>
>> + }
>> +
>> + id = bank->ops->of_xlate(bank, &args);
>> + if (id < 0 || id >= bank->num_locks) {
>> + pr_warn("%s: requested lock %d is either out of range [0, %d] or failed translation\n",
>> + __func__, id, bank->num_locks - 1);
>> + return NULL;
>
> Please return ERR_PTR(-EINVAL); here.
OK, will change this based on Ohad's ack/nack.
>
> Looking forward to your next spin, as I will actually use this interface :)
Thanks for your comments. I will wait to see if there are any additional
comments before I refresh the series later this week.
regards
Suman
WARNING: multiple messages have this Message-ID (diff)
From: s-anna@ti.com (Suman Anna)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv4 4/7] hwspinlock/core: add common OF helpers
Date: Mon, 10 Feb 2014 13:14:44 -0600 [thread overview]
Message-ID: <52F92524.3080402@ti.com> (raw)
In-Reply-To: <CAJAp7Oi7wD+VsMAd37gT04yZ4TH4ygXFmheDhvmWuanUjpBmVQ@mail.gmail.com>
Bjorn,
On 02/07/2014 04:49 PM, Bjorn Andersson wrote:
> On Mon, Jan 13, 2014 at 4:19 PM, Suman Anna <s-anna@ti.com> wrote:
>> This patch adds three new OF helper functions to use/request
>> locks from a hwspinlock device instantiated through a
>> device-tree blob.
>
> Nice, I ran in to the problem of needing a probe deferral on a
> hwspinlock earlier this week so I implemented this yesterday...then I
> got a pointer to your series.
>
> [snip]
>> /**
>> + * of_hwspin_lock_request_specific() - request a OF phandle-based specific lock
>> + * @np: device node from which to request the specific hwlock
>> + * @propname: property name containing hwlock specifier(s)
>> + * @index: index of the hwlock
>> + *
>> + * This function is the OF equivalent of hwspin_lock_request_specific(). This
>> + * function provides a means for users of the hwspinlock module to request a
>> + * specific hwspinlock using the phandle of the hwspinlock device. The requested
>> + * lock number is indexed relative to the hwspinlock device, unlike the
>> + * hwspin_lock_request_specific() which is an absolute lock number.
>> + *
>> + * Returns the address of the assigned hwspinlock, or NULL on error
>> + */
>> +struct hwspinlock *of_hwspin_lock_request_specific(struct device_node *np,
>> + const char *propname, int index)
>> +{
>> + struct hwspinlock_device *bank;
>> + struct of_phandle_args args;
>> + int id;
>> + int ret;
>> +
>> + ret = of_parse_phandle_with_args(np, propname, "#hwlock-cells", index,
>> + &args);
>> + if (ret) {
>> + pr_warn("%s: can't parse hwlocks property of node '%s[%d]' ret = %d\n",
>> + __func__, np->full_name, index, ret);
>> + return NULL;
>> + }
>
> of_parse_phandle_with_args() already does pr_err if it can't find the
> phandle and on some of the issues related to arguments. So please
> remove this pr_warn().
Yes, I will clean this up.
>
> It seems to be standard practice to pass the error value back to the
> consumer, so you should
> return ERR_PTR(ret); here instead of the NULL...
I have modelled the return values in this function based on the return
values in the existing hwspin_lock_request interfaces. I would need to
change those functions as well.
Ohad,
Do you have any objections to the return code convention change? I agree
with Bjorn on the changes. If you are ok, then I will add a separate
patch for the existing functions and revise this patch as well.
>
>> +
>> + mutex_lock(&hwspinlock_tree_lock);
>> + list_for_each_entry(bank, &hwspinlock_devices, list)
>> + if (bank->dev->of_node == args.np)
>> + break;
>> + mutex_unlock(&hwspinlock_tree_lock);
>> + if (&bank->list == &hwspinlock_devices) {
>> + pr_warn("%s: requested hwspinlock device %s is not registered\n",
>> + __func__, args.np->full_name);
>> + return NULL;
>
> ...especially since you want the consumer to have the ability to
> identify this error. Here you should
> return ERR_PTR(-EPROBE_DEFER); so that the consumer knows that this
> lock is not _yet_ registered, but will be in the future.
>
> You should remove this pr_warn as well. The standard use of this
> function would be in a probe() and just returning this error value
> from that probe will give you a line in the log indicating that this
> was in fact the issue.
OK.
>
>> + }
>> +
>> + id = bank->ops->of_xlate(bank, &args);
>> + if (id < 0 || id >= bank->num_locks) {
>> + pr_warn("%s: requested lock %d is either out of range [0, %d] or failed translation\n",
>> + __func__, id, bank->num_locks - 1);
>> + return NULL;
>
> Please return ERR_PTR(-EINVAL); here.
OK, will change this based on Ohad's ack/nack.
>
> Looking forward to your next spin, as I will actually use this interface :)
Thanks for your comments. I will wait to see if there are any additional
comments before I refresh the series later this week.
regards
Suman
WARNING: multiple messages have this Message-ID (diff)
From: Suman Anna <s-anna@ti.com>
To: Bjorn Andersson <bjorn@kryo.se>, Ohad Ben-Cohen <ohad@wizery.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
Tony Lindgren <tony@atomide.com>,
Kumar Gala <galak@codeaurora.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
<linux-omap@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCHv4 4/7] hwspinlock/core: add common OF helpers
Date: Mon, 10 Feb 2014 13:14:44 -0600 [thread overview]
Message-ID: <52F92524.3080402@ti.com> (raw)
In-Reply-To: <CAJAp7Oi7wD+VsMAd37gT04yZ4TH4ygXFmheDhvmWuanUjpBmVQ@mail.gmail.com>
Bjorn,
On 02/07/2014 04:49 PM, Bjorn Andersson wrote:
> On Mon, Jan 13, 2014 at 4:19 PM, Suman Anna <s-anna@ti.com> wrote:
>> This patch adds three new OF helper functions to use/request
>> locks from a hwspinlock device instantiated through a
>> device-tree blob.
>
> Nice, I ran in to the problem of needing a probe deferral on a
> hwspinlock earlier this week so I implemented this yesterday...then I
> got a pointer to your series.
>
> [snip]
>> /**
>> + * of_hwspin_lock_request_specific() - request a OF phandle-based specific lock
>> + * @np: device node from which to request the specific hwlock
>> + * @propname: property name containing hwlock specifier(s)
>> + * @index: index of the hwlock
>> + *
>> + * This function is the OF equivalent of hwspin_lock_request_specific(). This
>> + * function provides a means for users of the hwspinlock module to request a
>> + * specific hwspinlock using the phandle of the hwspinlock device. The requested
>> + * lock number is indexed relative to the hwspinlock device, unlike the
>> + * hwspin_lock_request_specific() which is an absolute lock number.
>> + *
>> + * Returns the address of the assigned hwspinlock, or NULL on error
>> + */
>> +struct hwspinlock *of_hwspin_lock_request_specific(struct device_node *np,
>> + const char *propname, int index)
>> +{
>> + struct hwspinlock_device *bank;
>> + struct of_phandle_args args;
>> + int id;
>> + int ret;
>> +
>> + ret = of_parse_phandle_with_args(np, propname, "#hwlock-cells", index,
>> + &args);
>> + if (ret) {
>> + pr_warn("%s: can't parse hwlocks property of node '%s[%d]' ret = %d\n",
>> + __func__, np->full_name, index, ret);
>> + return NULL;
>> + }
>
> of_parse_phandle_with_args() already does pr_err if it can't find the
> phandle and on some of the issues related to arguments. So please
> remove this pr_warn().
Yes, I will clean this up.
>
> It seems to be standard practice to pass the error value back to the
> consumer, so you should
> return ERR_PTR(ret); here instead of the NULL...
I have modelled the return values in this function based on the return
values in the existing hwspin_lock_request interfaces. I would need to
change those functions as well.
Ohad,
Do you have any objections to the return code convention change? I agree
with Bjorn on the changes. If you are ok, then I will add a separate
patch for the existing functions and revise this patch as well.
>
>> +
>> + mutex_lock(&hwspinlock_tree_lock);
>> + list_for_each_entry(bank, &hwspinlock_devices, list)
>> + if (bank->dev->of_node == args.np)
>> + break;
>> + mutex_unlock(&hwspinlock_tree_lock);
>> + if (&bank->list == &hwspinlock_devices) {
>> + pr_warn("%s: requested hwspinlock device %s is not registered\n",
>> + __func__, args.np->full_name);
>> + return NULL;
>
> ...especially since you want the consumer to have the ability to
> identify this error. Here you should
> return ERR_PTR(-EPROBE_DEFER); so that the consumer knows that this
> lock is not _yet_ registered, but will be in the future.
>
> You should remove this pr_warn as well. The standard use of this
> function would be in a probe() and just returning this error value
> from that probe will give you a line in the log indicating that this
> was in fact the issue.
OK.
>
>> + }
>> +
>> + id = bank->ops->of_xlate(bank, &args);
>> + if (id < 0 || id >= bank->num_locks) {
>> + pr_warn("%s: requested lock %d is either out of range [0, %d] or failed translation\n",
>> + __func__, id, bank->num_locks - 1);
>> + return NULL;
>
> Please return ERR_PTR(-EINVAL); here.
OK, will change this based on Ohad's ack/nack.
>
> Looking forward to your next spin, as I will actually use this interface :)
Thanks for your comments. I will wait to see if there are any additional
comments before I refresh the series later this week.
regards
Suman
next prev parent reply other threads:[~2014-02-10 19:15 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-14 0:19 [PATCHv4 0/7] omap hwspinlock dt support Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` [PATCHv4 1/7] Documentation: dt: add common bindings for hwspinlock Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` [PATCHv4 2/7] Documentation: dt: add the omap hwspinlock bindings document Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` [PATCHv4 3/7] hwspinlock/core: maintain a list of registered hwspinlock banks Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` [PATCHv4 4/7] hwspinlock/core: add common OF helpers Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-02-07 22:49 ` Bjorn Andersson
2014-02-07 22:49 ` Bjorn Andersson
2014-02-10 19:14 ` Suman Anna [this message]
2014-02-10 19:14 ` Suman Anna
2014-02-10 19:14 ` Suman Anna
2014-03-02 5:14 ` Ohad Ben-Cohen
2014-03-02 5:14 ` Ohad Ben-Cohen
2014-03-02 20:19 ` Bjorn Andersson
2014-03-02 20:19 ` Bjorn Andersson
2014-03-03 18:46 ` Suman Anna
2014-03-03 18:46 ` Suman Anna
[not found] ` <CAJAp7Ohf43hbKatCwS5Y1+OfEkJYWOkuhZhW-E_=t_9mfM+UaA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-04 17:38 ` Suman Anna
2014-03-04 17:38 ` Suman Anna
2014-03-04 17:38 ` Suman Anna
[not found] ` <53160F8F.9060405-l0cyMroinI0@public.gmane.org>
2014-03-13 16:43 ` Josh Cartwright
2014-03-13 16:43 ` Josh Cartwright
2014-03-13 16:43 ` Josh Cartwright
2014-03-14 8:58 ` Ohad Ben-Cohen
2014-03-14 8:58 ` Ohad Ben-Cohen
2014-03-14 8:58 ` Ohad Ben-Cohen
2014-03-14 13:12 ` Ohad Ben-Cohen
2014-03-14 13:12 ` Ohad Ben-Cohen
2014-03-14 15:23 ` Josh Cartwright
2014-03-14 15:23 ` Josh Cartwright
2014-03-15 17:32 ` Ohad Ben-Cohen
2014-03-15 17:32 ` Ohad Ben-Cohen
2014-09-26 14:40 ` Bjorn Andersson
2014-09-26 14:40 ` Bjorn Andersson
2014-09-26 16:25 ` Suman Anna
2014-09-26 16:25 ` Suman Anna
[not found] ` <5425938C.6070007-l0cyMroinI0@public.gmane.org>
2014-10-06 9:44 ` Ohad Ben-Cohen
2014-10-06 9:44 ` Ohad Ben-Cohen
2014-10-06 9:44 ` Ohad Ben-Cohen
[not found] ` <CAK=WgbYf3++K4MVXW_n4zj-8fMEee61XG5+r40cW=trapRtJ7w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-06 18:24 ` Suman Anna
2014-11-06 18:24 ` Suman Anna
2014-11-06 18:24 ` Suman Anna
[not found] ` <545BBCCB.7030107-l0cyMroinI0@public.gmane.org>
2014-11-07 5:06 ` Ohad Ben-Cohen
2014-11-07 5:06 ` Ohad Ben-Cohen
2014-11-07 5:06 ` Ohad Ben-Cohen
[not found] ` <1389658764-39199-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
2014-01-14 0:19 ` [PATCHv4 5/7] hwspinlock/omap: add support for dt nodes Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-02-10 19:27 ` [PATCHv4 0/7] omap hwspinlock dt support Suman Anna
2014-02-10 19:27 ` Suman Anna
2014-02-10 19:27 ` Suman Anna
2014-02-24 18:14 ` Suman Anna
2014-02-24 18:14 ` Suman Anna
2014-02-24 18:14 ` Suman Anna
[not found] ` <530B8C00.8020001-l0cyMroinI0@public.gmane.org>
2014-03-14 20:10 ` Ohad Ben-Cohen
2014-03-14 20:10 ` Ohad Ben-Cohen
2014-03-14 20:10 ` Ohad Ben-Cohen
[not found] ` <CAK=WgbZp_RQPCeZJyMRkNTQxaJsnGZ3DnjhSkYYR_-PAE_Kp4g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-14 23:58 ` Suman Anna
2014-03-14 23:58 ` Suman Anna
2014-03-14 23:58 ` Suman Anna
2014-03-17 14:23 ` Ohad Ben-Cohen
2014-03-17 14:23 ` Ohad Ben-Cohen
[not found] ` <CAK=WgbZCzA7JovSxnysHCQRZZWc3Z2j3AS8ekpM9fOZ160rmCA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-03-17 19:10 ` Suman Anna
2014-03-17 19:10 ` Suman Anna
2014-03-17 19:10 ` Suman Anna
[not found] ` <532748B7.1080606-l0cyMroinI0@public.gmane.org>
2014-03-17 19:47 ` Ohad Ben-Cohen
2014-03-17 19:47 ` Ohad Ben-Cohen
2014-03-17 19:47 ` Ohad Ben-Cohen
2014-03-17 23:46 ` Suman Anna
2014-03-17 23:46 ` Suman Anna
2014-03-17 23:46 ` Suman Anna
[not found] ` <53278950.5030905-l0cyMroinI0@public.gmane.org>
2014-03-18 13:35 ` Ohad Ben-Cohen
2014-03-18 13:35 ` Ohad Ben-Cohen
2014-03-18 13:35 ` Ohad Ben-Cohen
2014-03-31 22:45 ` Suman Anna
2014-03-31 22:45 ` Suman Anna
2014-01-14 0:19 ` [PATCHv4 6/7] hwspinlock/omap: enable module before reading SYSSTATUS register Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 13:10 ` Felipe Balbi
2014-01-14 13:10 ` Felipe Balbi
2014-01-14 13:10 ` Felipe Balbi
2014-01-14 14:04 ` Felipe Balbi
2014-01-14 14:04 ` Felipe Balbi
2014-01-14 14:04 ` Felipe Balbi
[not found] ` <20140114140440.GA15785-HgARHv6XitL9zxVx7UNMDg@public.gmane.org>
2014-01-14 16:56 ` Anna, Suman
2014-01-14 16:56 ` Anna, Suman
2014-01-14 16:56 ` Anna, Suman
2014-01-15 23:46 ` Anna, Suman
2014-01-15 23:46 ` Anna, Suman
2014-01-15 23:46 ` Anna, Suman
2014-01-15 23:36 ` [UPDATED PATCHv4 " Suman Anna
2014-01-15 23:36 ` Suman Anna
2014-01-15 23:36 ` Suman Anna
2014-01-14 0:19 ` [PATCHv4 7/7] hwspinlock/omap: enable build for AM33xx, AM43xx & DRA7xx Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 0:19 ` Suman Anna
2014-01-14 13:12 ` Felipe Balbi
2014-01-14 13:12 ` Felipe Balbi
2014-01-14 13:12 ` Felipe Balbi
2014-01-14 16:51 ` Anna, Suman
2014-01-14 16:51 ` Anna, Suman
2014-01-14 16:51 ` Anna, Suman
2014-01-14 17:29 ` Felipe Balbi
2014-01-14 17:29 ` Felipe Balbi
2014-01-14 17:29 ` Felipe Balbi
2014-01-14 18:36 ` Anna, Suman
2014-01-14 18:36 ` Anna, Suman
2014-01-14 18:36 ` Anna, Suman
2014-01-14 13:12 ` [PATCHv4 0/7] omap hwspinlock dt support Felipe Balbi
2014-01-14 13:12 ` Felipe Balbi
2014-01-14 13:12 ` Felipe Balbi
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=52F92524.3080402@ti.com \
--to=s-anna@ti.com \
--cc=bjorn@kryo.se \
--cc=devicetree@vger.kernel.org \
--cc=galak@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=ohad@wizery.com \
--cc=tony@atomide.com \
/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.