[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251024211205055af5b3@mail.local>
Date: Fri, 24 Oct 2025 23:12:05 +0200
From: Alexandre Belloni <alexandre.belloni@...tlin.com>
To: Frank Li <Frank.li@....com>
Cc: Andy Shevchenko <andriy.shevchenko@...el.com>,
Miquel Raynal <miquel.raynal@...tlin.com>,
Jonathan Cameron <jic23@...nel.org>,
David Lechner <dlechner@...libre.com>,
Nuno Sá <nuno.sa@...log.com>,
Andy Shevchenko <andy@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, linux-i3c@...ts.infradead.org,
linux-kernel@...r.kernel.org, imx@...ts.linux.dev,
linux-iio@...r.kernel.org, joshua.yeong@...rfivetech.com,
devicetree@...r.kernel.org
Subject: Re: [PATCH v6 1/5] i3c: Add HDR API support
On 24/10/2025 12:29:28-0400, Frank Li wrote:
> On Fri, Oct 24, 2025 at 07:03:41PM +0300, Andy Shevchenko wrote:
> > On Fri, Oct 24, 2025 at 10:03:22AM -0400, Frank Li wrote:
> > > On Fri, Oct 24, 2025 at 09:13:27AM +0300, Andy Shevchenko wrote:
> > > > On Thu, Oct 23, 2025 at 07:53:15PM -0400, Frank Li wrote:
> > > > > On Thu, Oct 23, 2025 at 09:22:55PM +0300, Andy Shevchenko wrote:
> > > > > > On Thu, Oct 23, 2025 at 11:18:37AM -0400, Frank Li wrote:
> > > > > > > On Thu, Oct 23, 2025 at 11:23:39AM +0300, Andy Shevchenko wrote:
> > > > > > > > On Tue, Oct 14, 2025 at 12:40:00PM -0400, Frank Li wrote:
> >
> > ...
> >
> > > > > > > > > +/* keep back compatible */
> > > > > > > > > +#define i3c_priv_xfer i3c_xfer
> > > > > > > >
> > > > > > > > How many of the current users do this? Can't we just rename treewide?
> > > > > > >
> > > > > > > git grep -r priv_xfer drivers/
> > > > > >
> > > > > > `git grep -lw ...` is a better approach :-)
> > > > > >
> > > > > > > drivers/base/regmap/regmap-i3c.c: struct i3c_priv_xfer xfers[] = {
> > > > > > > drivers/base/regmap/regmap-i3c.c: return i3c_device_do_priv_xfers(i3c, xfers, 1);
> > > > > > > drivers/base/regmap/regmap-i3c.c: struct i3c_priv_xfer xfers[2];
> > > > > > > drivers/base/regmap/regmap-i3c.c: return i3c_device_do_priv_xfers(i3c, xfers, 2);
> > > > > > > drivers/hwmon/lm75.c: struct i3c_priv_xfer xfers[] = {
> > > > > > > drivers/hwmon/lm75.c: ret = i3c_device_do_priv_xfers(i3cdev, xfers, 2);
> > > > > > > drivers/hwmon/lm75.c: struct i3c_priv_xfer xfers[] = {
> > > > > > > drivers/hwmon/lm75.c: return i3c_device_do_priv_xfers(i3cdev, xfers, 1);
> > > > > > > drivers/i3c/device.c:int i3c_device_do_xfers(struct i3c_device *dev, struct i3c_priv_xfer *xfers,
> > > > > > > drivers/i3c/master.c: if (!ops->priv_xfers && !ops->i3c_xfers)
> > > > > > > drivers/i3c/master.c: if (!master->ops->priv_xfers)
> > > > > > > drivers/i3c/master.c: return master->ops->priv_xfers(dev, xfers, nxfers);
> > > > > > > drivers/i3c/master/dw-i3c-master.c:static int dw_i3c_master_priv_xfers(struct i3c_dev_desc *dev,
> > > > > > > drivers/i3c/master/dw-i3c-master.c: struct i3c_priv_xfer *i3c_xfers,
> > > > > > > drivers/i3c/master/dw-i3c-master.c: .priv_xfers = dw_i3c_master_priv_xfers,
> > > > > > > drivers/i3c/master/i3c-master-cdns.c:static int cdns_i3c_master_priv_xfers(struct i3c_dev_desc *dev,
> > > > > > > drivers/i3c/master/i3c-master-cdns.c: struct i3c_priv_xfer *xfers,
> > > > > > > drivers/i3c/master/i3c-master-cdns.c: .priv_xfers = cdns_i3c_master_priv_xfers,
> > > > > > > drivers/i3c/master/mipi-i3c-hci/core.c:static int i3c_hci_priv_xfers(struct i3c_dev_desc *dev,
> > > > > > > drivers/i3c/master/mipi-i3c-hci/core.c: struct i3c_priv_xfer *i3c_xfers,
> > > > > > > drivers/i3c/master/mipi-i3c-hci/core.c: .priv_xfers = i3c_hci_priv_xfers,
> > > > > > > drivers/i3c/master/renesas-i3c.c:static int renesas_i3c_priv_xfers(struct i3c_dev_desc *dev, struct i3c_priv_xfer *i3c_xfers,
> > > > > > > drivers/i3c/master/renesas-i3c.c: .priv_xfers = renesas_i3c_priv_xfers,
> > > > > > > drivers/i3c/master/svc-i3c-master.c: struct i3c_priv_xfer *xfer;
> > > > > > > drivers/i3c/master/svc-i3c-master.c: * at svc_i3c_master_priv_xfers().
> > > > > > > drivers/i3c/master/svc-i3c-master.c:static int svc_i3c_master_i3c_xfers(struct i3c_dev_desc *dev, struct i3c_priv_xfer *xfers,
> > > > > > > drivers/net/mctp/mctp-i3c.c: struct i3c_priv_xfer xfer = { .rnw = 1, .len = mi->mrl };
> > > > > > > drivers/net/mctp/mctp-i3c.c: rc = i3c_device_do_priv_xfers(mi->i3c, &xfer, 1);
> > > > > > > drivers/net/mctp/mctp-i3c.c: struct i3c_priv_xfer xfer = { .rnw = false };
> > > > > > > drivers/net/mctp/mctp-i3c.c: rc = i3c_device_do_priv_xfers(mi->i3c, &xfer, 1);
> > > > > > >
> > > > > > > After this patch merged, I can clean up it at difference subsytem. After
> > > > > > > all cleanup done, we can safely remove this define.
> > > > > >
> > > > > > I counted 9. I think it's not a big deal to convert all of them at once without
> > > > > > leaving an intermediate state. But this is a call for the I³C subsystem maintaiiner.
> > > > >
> > > > > There also are other cleanup works. The key point is that everyone agree my
> > > > > HDR solution. Cleanup these is not big deal. I am not sure how to avoid
> > > > > build broken at difference subsystem.
> > > > >
> > > > > After this patch merge, cleanup will be easier and safer.
> > > >
> > > > Then leave that renaming to the cleanup series. No need to use a define, just
> > > > use the old function name.
> > >
> > > Using old function name for HDR will be very strange and conflict with
> > > spec's name convention.
> > >
> > > The term 'private' transfer in i3c spec is specific for SDR transfer. It
> > > is neccessary steps to complete whole naming switches.
> >
> > Right, but this out of scope OR a prerequisite to this series. My point that
> > these two shouldn't be mixed and one left half-baked.
>
> It doesn't make sense that the new iio driver still use old interface, then
> replace new one later.
>
> Is it okay I create new patch serial, which switch to new interface, but
> it's depend on this one. Let each maintainers decide how/when merge it?
>
I'm fine with the define as I believe you are going to send the series
switching to the new name quickly enough.
I'll provide an immutable branch so the various subsystem maintainers
can apply that on their own.
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists