Re: [PATCH v2 2/2] i2c: Add i2c_device_get_match_data() callback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 26, 2023 at 10:56:41AM -0700, Dmitry Torokhov wrote:
> On Wed, Jul 26, 2023 at 07:44:17PM +0300, Andy Shevchenko wrote:
> > On Wed, Jul 26, 2023 at 02:08:04PM +0100, Biju Das wrote:

...

> > > +static const void *i2c_device_get_match_data(const struct device *dev)
> > > +{
> > > +   const struct i2c_client *client = (dev->type == &i2c_client_type) ?
> > > +                                     to_i2c_client(dev) : NULL;
> >
> > There is an API i2c_verify_client() or something like this, I don't remember
> > by heart.
> 
> It's been discussed in a separate thread. i2c_verify_client() needs a
> non-const pointer. It would be nice to clean up i2c_verify_client() to
> accept both variants, but that can be done later.

Then this code needs a TODO comment:

	/* TODO: use i2c_verify_client() when it accepts const pointer */


> > > +   if (!dev->driver)
> > > +           return NULL;
> > > +
> > > +   return i2c_get_match_data_helper(to_i2c_driver(dev->driver), client);
> > > +}

...

> > Side question, what is the idea for i2c_of_match_device()? Shouldn't you also
> > take it into consideration?
> 
> Good call. I think we need to add something like
> 
>         if (!data && driver->driver.of_match_table) {
>                 match =
> i2c_of_match_device_sysfs(driver->driver.of_match_table, client);
>                 if (match)
>                         data = match->data;
>         }
> 
> to i2c_device_get_match_data().

Haven't checked myself, by I trust your suggestion. Let's see it in v3 then.

-- 
With Best Regards,
Andy Shevchenko





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux