Present definition for module_i3c_i2c_driver uses only the 1st argument i.e., struct i3c_driver. Irrespective of CONFIG_I3C being enabled/disabled, struct i2c_driver is never passed to module_driver() Passing struct i2c_driver as the 4th argument works.
Unified · Split
| @@ -287,7 +287,8 @@ static inline void i3c_i2c_driver_unregister(struct i3c_driver *i3cdrv, · 286 unmodified lines | |||
| 287 | #define module_i3c_i2c_driver(__i3cdrv, __i2cdrv) \ | 287 | #define module_i3c_i2c_driver(__i3cdrv, __i2cdrv) \ |
| 288 | module_driver(__i3cdrv, \ | 288 | module_driver(__i3cdrv, \ |
| 289 | i3c_i2c_driver_register, \ | 289 | i3c_i2c_driver_register, \ |
| 290 | i3c_i2c_driver_unregister) | 290 | i3c_i2c_driver_unregister, \ |
| 291 | __i2cdrv) | ||
| 291 | 292 | ||
| 292 | int i3c_device_do_priv_xfers(struct i3c_device *dev, | 293 | int i3c_device_do_priv_xfers(struct i3c_device *dev, |
| 293 | struct i3c_priv_xfer *xfers, | 294 | struct i3c_priv_xfer *xfers, |