From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Linus Walleij <linus.walleij@linaro.org>,
linux-kernel@vger.kernel.org,
platform-driver-x86@vger.kernel.org
Subject: Re: [PATCH 1/3] software node: implement reference properties
Date: Fri, 6 Sep 2019 15:34:26 -0700 [thread overview]
Message-ID: <20190906223426.GT187474@dtor-ws> (raw)
In-Reply-To: <20190906122743.GQ2680@smile.fi.intel.com>
On Fri, Sep 06, 2019 at 03:27:43PM +0300, Andy Shevchenko wrote:
> On Thu, Sep 05, 2019 at 09:38:07PM -0700, Dmitry Torokhov wrote:
> > It is possible to store references to software nodes in the same fashion as
> > other static properties, so that users do not need to define separate
> > structures:
> >
> > const struct software_node gpio_bank_b_node = {
> > .name = "B",
> > };
>
> Why this can't be __initconst?
It may or it may not. I'll remove __inticonst from below as well to not
confuse things.
>
> > const struct property_entry simone_key_enter_props[] __initconst = {
> > PROPERTY_ENTRY_U32("linux,code", KEY_ENTER),
> > PROPERTY_ENTRY_STRING("label", "enter"),
> > PROPERTY_ENTRY_REF("gpios", &gpio_bank_b_node, 123, GPIO_ACTIVE_LOW),
> > { }
> > };
>
> So it's basically mimics the concept of phandle, right?
Yes.
>
> > + ref_args = prop->is_array ?
> > + &prop->pointer.ref[index] : &prop->value.ref;
>
> Better to do if with explicit 'if ()' as it's done in the rest of the code.
>
> if (prop->is_array)
> ref_args = ...;
> else
> ref_args = ...;
OK, it will be gone actually.
>
> > - DEV_PROP_MAX,
> > + DEV_PROP_MAX
>
> It seems it wasn't ever used, so, can be dropped completely.
OK.
>
> > @@ -240,6 +255,7 @@ struct property_entry {
> > const u32 *u32_data;
> > const u64 *u64_data;
> > const char * const *str;
> > + const struct software_node_ref_args *ref;
> > } pointer;
> > union {
> > u8 u8_data;
> > @@ -247,6 +263,7 @@ struct property_entry {
> > u32 u32_data;
> > u64 u64_data;
> > const char *str;
> > + struct software_node_ref_args ref;
>
> Hmm... This bumps the size of union a lot for each existing property_entry.
> Is there any other way? Maybe we can keep pointer and allocate memory for it
> when copying?
Right, I think we can always store references as arrays, even when we
only need single entry, thus we do not need to increase the size of the
structure.
I just posted v2 implementing that, please take another look.
Thanks.
--
Dmitry
prev parent reply other threads:[~2019-09-06 22:34 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-06 4:38 [PATCH 1/3] software node: implement reference properties Dmitry Torokhov
2019-09-06 4:38 ` [PATCH 2/3] platform/x86: intel_cht_int33fe: use inline " Dmitry Torokhov
2019-09-06 11:22 ` Heikki Krogerus
2019-09-06 21:34 ` Dmitry Torokhov
2019-09-06 4:38 ` [PATCH 3/3] software node: remove separate handling of references Dmitry Torokhov
2019-09-06 12:38 ` Andy Shevchenko
2019-09-06 11:17 ` [PATCH 1/3] software node: implement reference properties Heikki Krogerus
2019-09-06 12:40 ` Andy Shevchenko
2019-09-06 13:31 ` Heikki Krogerus
2019-09-06 12:27 ` Andy Shevchenko
2019-09-06 22:34 ` Dmitry Torokhov [this message]
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=20190906223426.GT187474@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=heikki.krogerus@linux.intel.com \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rafael@kernel.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 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.