From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Chen-Yu Tsai <wenst@chromium.org>
Cc: Rob Herring <robh@kernel.org>,
Saravana Kannan <saravanak@google.com>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
Wolfram Sang <wsa@kernel.org>, Benson Leung <bleung@chromium.org>,
Tzung-Bi Shih <tzungbi@kernel.org>,
chrome-platform@lists.linux.dev, devicetree@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org,
Douglas Anderson <dianders@chromium.org>,
Johan Hovold <johan@kernel.org>, Jiri Kosina <jikos@kernel.org>,
linux-i2c@vger.kernel.org
Subject: Re: [PATCH v8 7/8] platform/chrome: Introduce device tree hardware prober
Date: Tue, 15 Oct 2024 15:54:42 +0300 [thread overview]
Message-ID: <Zw5mEv_cnZzPUqII@smile.fi.intel.com> (raw)
In-Reply-To: <CAGXv+5FuMjSaUJ+qDrx7Vmr9o5vJ9VW=tss1ezvdJyaZZouHKw@mail.gmail.com>
On Tue, Oct 15, 2024 at 08:18:50PM +0800, Chen-Yu Tsai wrote:
> On Tue, Oct 15, 2024 at 7:24 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> > On Tue, Oct 15, 2024 at 02:32:54PM +0800, Chen-Yu Tsai wrote:
> > > On Mon, Oct 14, 2024 at 7:23 PM Andy Shevchenko
> > > <andriy.shevchenko@linux.intel.com> wrote:
> > > > On Mon, Oct 14, 2024 at 12:56:20PM +0800, Chen-Yu Tsai wrote:
> > > > > On Thu, Oct 10, 2024 at 11:32 PM Andy Shevchenko
> > > > > <andriy.shevchenko@linux.intel.com> wrote:
> > > > > > On Thu, Oct 10, 2024 at 06:29:44PM +0300, Andy Shevchenko wrote:
> > > > > > > On Tue, Oct 08, 2024 at 03:34:26PM +0800, Chen-Yu Tsai wrote:
...
> > > > > > > > + .cfg = &chromeos_i2c_probe_simple_trackpad_cfg,
> > > > > > >
> > > > > > > .cfg = DEFINE_I2C_OF_PROBE_CFG(trackpad, i2c_of_probe_simple_ops),
> > > > > > >
> > > > > > > Or even
> > > > > > >
> > > > > > > #define DEFINE_I2C_OF_PROBE_CFG_SIMPLE(_type_) \
> > > > > > > DEFINE_I2C_OF_PROBE_CFG(type, &i2c_of_probe_simple_ops)
> > > > >
> > > > > I'm not inclined on using compound literals here. "simple X cfg" will
> > > > > likely get shared between multiple |chromeos_i2c_probe_data| entries,
> > > > > and AFAIK the toolchain can't merge them. So we would end up with one
> > > > > compound literal per entry, even if their contents are the same.
> > > >
> > > > I'm not sure I follow, you are using compound literal _already_.
> > > > How does my proposal change that?
> > >
> > > I'm using it where it makes sense, i.e. where the embedded variable
> > > is not going to be shared with other instances.
> > >
> > > For the dumb probers, there's only going to be one instance per "type".
> > >
> > > For the simple probers, the config part is still one instance per "type",
> > > but the parameters are board and component specific. There will be
> > > multiple instances. Hence the config part can be shared, while the
> > > parameters likely won't be.
> > >
> > > > > > With that also looking at the above
> > > > > >
> > > > > > #define DEFINE_I2C_OF_PROBE_CFG_NONE(_type_) \
> > > > > > DEFINE_I2C_OF_PROBE_CFG(type, NULL)
> > > > >
> > > > > For the "dumb" case it makes sense though, since it would be one instance
> > > > > per type. But we could go further and just wrap the whole
> > > > > |chromeos_i2c_probe_data| declaration.
> > > >
> > > > Maybe it's too far from now...
> > >
> > > This is what I have:
> > >
> > > #define DEFINE_CHROMEOS_I2C_PROBE_DATA_DUMB(_type)
> > > \
> > > static const struct chromeos_i2c_probe_data
> > > chromeos_i2c_probe_dumb_ ## _type = { \
> >
> > > .cfg = &(const struct i2c_of_probe_cfg) {
> >
> > But the below is static initializer, why do you need a compound literal here?
>
> Because .cfg takes a pointer to a struct. It's not an embedded struct.
> The compound literal creates the internal struct, and then its address
> is taken and assigned to the .cfg field.
>
> Does that make sense?
Okay, I see now. Yeah, I have no preferences here, I saw the code like in split
version or like in yours. I _slightly_ bend to non-compound literal variant,
but again here it might be not worth doing a such.
> > > \
> > > .type = #_type,
> > > \
> > > },
> > > \
> > > };
> > >
> > > DEFINE_CHROMEOS_I2C_PROBE_DATA_DUMB(touchscreen);
> >
> > s/dumb/simple/g
>
> "simple" is taken. This is "dumb" as in it does not need any helpers.
> Maybe "no-op" if you don't like the negative connotation?
_BY_TYPE ?
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2024-10-15 12:54 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-08 7:34 [PATCH v8 0/8] platform/chrome: Introduce DT hardware prober Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 1/8] of: dynamic: Add of_changeset_update_prop_string Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 2/8] of: base: Add for_each_child_of_node_with_prefix() Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 3/8] i2c: core: Remove extra space in Makefile Chen-Yu Tsai
2024-10-08 8:34 ` Wolfram Sang
2024-10-08 7:34 ` [PATCH v8 4/8] i2c: Introduce OF component probe function Chen-Yu Tsai
2024-10-10 15:16 ` Andy Shevchenko
2024-10-14 3:53 ` Chen-Yu Tsai
2024-10-14 11:16 ` Andy Shevchenko
2024-10-15 5:22 ` Chen-Yu Tsai
2024-10-15 17:58 ` Doug Anderson
2024-10-15 18:03 ` Andy Shevchenko
2024-10-16 7:01 ` Chen-Yu Tsai
2024-10-16 9:28 ` Chen-Yu Tsai
2024-10-16 10:29 ` Andy Shevchenko
2024-10-08 7:34 ` [PATCH v8 5/8] i2c: of-prober: Add simple helpers for regulator support Chen-Yu Tsai
2024-10-15 17:58 ` Doug Anderson
2024-10-15 18:04 ` Andy Shevchenko
2024-10-16 7:39 ` Chen-Yu Tsai
2024-10-08 7:34 ` [PATCH v8 6/8] i2c: of-prober: Add GPIO support to simple helpers Chen-Yu Tsai
2024-10-10 15:20 ` Andy Shevchenko
2024-10-14 4:06 ` Chen-Yu Tsai
2024-10-14 11:20 ` Andy Shevchenko
2024-10-15 5:31 ` Chen-Yu Tsai
2024-10-15 11:19 ` Andy Shevchenko
2024-10-15 12:05 ` Chen-Yu Tsai
2024-10-15 5:34 ` Chen-Yu Tsai
2024-10-15 11:21 ` Andy Shevchenko
2024-10-15 17:58 ` Doug Anderson
2024-10-16 7:49 ` Chen-Yu Tsai
2024-10-16 15:34 ` Doug Anderson
2024-10-08 7:34 ` [PATCH v8 7/8] platform/chrome: Introduce device tree hardware prober Chen-Yu Tsai
2024-10-10 15:29 ` Andy Shevchenko
2024-10-10 15:32 ` Andy Shevchenko
2024-10-14 4:56 ` Chen-Yu Tsai
2024-10-14 11:23 ` Andy Shevchenko
2024-10-15 6:32 ` Chen-Yu Tsai
2024-10-15 11:23 ` Andy Shevchenko
2024-10-15 12:18 ` Chen-Yu Tsai
2024-10-15 12:54 ` Andy Shevchenko [this message]
2024-10-14 7:04 ` Chen-Yu Tsai
2024-10-14 11:25 ` Andy Shevchenko
2024-10-15 7:51 ` Chen-Yu Tsai
2024-10-15 17:59 ` Doug Anderson
2024-10-08 7:34 ` [PATCH v8 8/8] arm64: dts: mediatek: mt8173-elm-hana: Mark touchscreens and trackpads as fail Chen-Yu Tsai
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=Zw5mEv_cnZzPUqII@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=bleung@chromium.org \
--cc=chrome-platform@lists.linux.dev \
--cc=devicetree@vger.kernel.org \
--cc=dianders@chromium.org \
--cc=jikos@kernel.org \
--cc=johan@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=robh@kernel.org \
--cc=saravanak@google.com \
--cc=tzungbi@kernel.org \
--cc=wenst@chromium.org \
--cc=wsa@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.