Message ID | 20210603165835.3594557-1-jic23@kernel.org (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | i2c: core: Add stub for i2c_verify_client() if !CONFIG_I2C | expand |
On Thu, Jun 03, 2021 at 05:58:35PM +0100, Jonathan Cameron wrote: > From: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > If I2C is not compiled, there is no way we should see a call to > i2c_verify_client() on a device that is an i2c client. As such, > provide a stub to return NULL to resolve an associated build failure. > > The build is failing with this link error > ld: fxls8962af-core.o: in function `fxls8962af_fifo_transfer': > fxls8962af-core.c: undefined reference to `i2c_verify_client' > > Reported-by: Tom Rix <trix@redhat.com> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Fixes: 68068fad0e1c ("iio: accel: fxls8962af: fix errata bug E3 - I2C burst reads") > Reviewed-by: Sean Nyekjaer <sean@geanix.com> > Cc: Wolfram Sang <wsa@kernel.org> Thanks for doing this! Acked-by: Wolfram Sang <wsa@kernel.org>
On Thu, 3 Jun 2021 21:55:51 +0200 Wolfram Sang <wsa@kernel.org> wrote: > On Thu, Jun 03, 2021 at 05:58:35PM +0100, Jonathan Cameron wrote: > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > > > If I2C is not compiled, there is no way we should see a call to > > i2c_verify_client() on a device that is an i2c client. As such, > > provide a stub to return NULL to resolve an associated build failure. > > > > The build is failing with this link error > > ld: fxls8962af-core.o: in function `fxls8962af_fifo_transfer': > > fxls8962af-core.c: undefined reference to `i2c_verify_client' > > > > Reported-by: Tom Rix <trix@redhat.com> > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > Fixes: 68068fad0e1c ("iio: accel: fxls8962af: fix errata bug E3 - I2C burst reads") > > Reviewed-by: Sean Nyekjaer <sean@geanix.com> > > Cc: Wolfram Sang <wsa@kernel.org> > > Thanks for doing this! > > Acked-by: Wolfram Sang <wsa@kernel.org> > immutable branch at: ib-iio-i2c-5.13rc1 https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git I let this sit in next (via a merge with IIO togreg branch) for a day to shake out any ways in which I messed it up. As it turns out, that was a good plan given the fixes tag had gone stale. Now fixed that and will be sending a pull request to Greg KH including the update IIO merge shortly (which is in linux-next today). Thanks, Jonathan
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index e8f2ac8c9c3d..7d71131c394e 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h @@ -343,7 +343,6 @@ struct i2c_client { }; #define to_i2c_client(d) container_of(d, struct i2c_client, dev) -struct i2c_client *i2c_verify_client(struct device *dev); struct i2c_adapter *i2c_verify_adapter(struct device *dev); const struct i2c_device_id *i2c_match_id(const struct i2c_device_id *id, const struct i2c_client *client); @@ -477,6 +476,13 @@ i2c_new_ancillary_device(struct i2c_client *client, u16 default_addr); void i2c_unregister_device(struct i2c_client *client); + +struct i2c_client *i2c_verify_client(struct device *dev); +#else +static inline struct i2c_client *i2c_verify_client(struct device *dev) +{ + return NULL; +} #endif /* I2C */ /* Mainboard arch_initcall() code should register all its I2C devices.