Re: [PATCH v6 1/5] i3c: Add HDR API support

Frank Li
2025-10-24T14:03:34Z

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.

Frank

>
> --
> With Best Regards,
> Andy Shevchenko
>
>