The 05/10/2023 14:32, Simon Horman wrote: > > Rather than casting pci1xxxx_i2c_shutdown to an incompatible function type, > update the type to match that expected by __devm_add_action. > > Reported by clang-16 with W-1: > > .../i2c-mchp-pci1xxxx.c:1159:29: error: cast from 'void (*)(struct pci1xxxx_i2c *)' to 'void (*)(void *)' converts to incompatible function type [-Werror,-Wcast-function-type-strict] > ret = devm_add_action(dev, (void (*)(void *))pci1xxxx_i2c_shutdown, i2c); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ./include/linux/device.h:251:29: note: expanded from macro 'devm_add_action' > __devm_add_action(release, action, data, #action) > ^~~~~~ > > No functional change intended. > Compile tested only. Reviewed-by: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> > > Signed-off-by: Simon Horman <horms@xxxxxxxxxx> > --- > drivers/i2c/busses/i2c-mchp-pci1xxxx.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-mchp-pci1xxxx.c b/drivers/i2c/busses/i2c-mchp-pci1xxxx.c > index b21ffd6df927..5ef136c3ecb1 100644 > --- a/drivers/i2c/busses/i2c-mchp-pci1xxxx.c > +++ b/drivers/i2c/busses/i2c-mchp-pci1xxxx.c > @@ -1118,8 +1118,10 @@ static int pci1xxxx_i2c_resume(struct device *dev) > static DEFINE_SIMPLE_DEV_PM_OPS(pci1xxxx_i2c_pm_ops, pci1xxxx_i2c_suspend, > pci1xxxx_i2c_resume); > > -static void pci1xxxx_i2c_shutdown(struct pci1xxxx_i2c *i2c) > +static void pci1xxxx_i2c_shutdown(void *data) > { > + struct pci1xxxx_i2c *i2c = data; > + > pci1xxxx_i2c_config_padctrl(i2c, false); > pci1xxxx_i2c_configure_core_reg(i2c, false); > } > @@ -1156,7 +1158,7 @@ static int pci1xxxx_i2c_probe_pci(struct pci_dev *pdev, > init_completion(&i2c->i2c_xfer_done); > pci1xxxx_i2c_init(i2c); > > - ret = devm_add_action(dev, (void (*)(void *))pci1xxxx_i2c_shutdown, i2c); > + ret = devm_add_action(dev, pci1xxxx_i2c_shutdown, i2c); > if (ret) > return ret; > > -- /Horatiu