diff --git a/nfc/i2c_drv.c b/nfc/i2c_drv.c index b00794dd94..0623e5c390 100644 --- a/nfc/i2c_drv.c +++ b/nfc/i2c_drv.c @@ -461,21 +461,27 @@ err: return ret; } +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +void nfc_i2c_dev_remove(struct i2c_client *client) +#else int nfc_i2c_dev_remove(struct i2c_client *client) +#endif { - int ret = 0; struct nfc_dev *nfc_dev = NULL; pr_info("%s: remove device\n", __func__); nfc_dev = i2c_get_clientdata(client); if (!nfc_dev) { pr_err("%s: device doesn't exist anymore\n", __func__); - ret = -ENODEV; - return ret; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0)) + return -ENODEV; +#endif } if (nfc_dev->dev_ref_count > 0) { pr_err("%s: device already in use\n", __func__); +#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0)) return -EBUSY; +#endif } gpio_set_value(nfc_dev->configs.gpio.ven, 0); @@ -496,7 +502,9 @@ int nfc_i2c_dev_remove(struct i2c_client *client) kfree(nfc_dev->read_kbuf); kfree(nfc_dev->write_kbuf); kfree(nfc_dev); - return ret; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 1, 0)) + return 0; +#endif } int nfc_i2c_dev_suspend(struct device *device) diff --git a/nfc/i2c_drv.h b/nfc/i2c_drv.h index 3abb56bd0f..3809c44fdb 100644 --- a/nfc/i2c_drv.h +++ b/nfc/i2c_drv.h @@ -25,6 +25,7 @@ #define _I2C_DRV_H_ #include +#include #define NFC_I2C_DRV_STR "qcom,sn-nci" /*kept same as dts */ #define NFC_I2C_DEV_ID "sn-i2c" @@ -44,7 +45,11 @@ struct i2c_dev { long nfc_i2c_dev_ioctl(struct file *pfile, unsigned int cmd, unsigned long arg); int nfc_i2c_dev_probe(struct i2c_client *client, const struct i2c_device_id *id); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0)) +void nfc_i2c_dev_remove(struct i2c_client *client); +#else int nfc_i2c_dev_remove(struct i2c_client *client); +#endif int nfc_i2c_dev_suspend(struct device *device); int nfc_i2c_dev_resume(struct device *device);