These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / i2c / i2c-dev.c
index 71c7a39..2413ec9 100644 (file)
@@ -235,7 +235,7 @@ static int i2cdev_check_addr(struct i2c_adapter *adapter, unsigned int addr)
        return result;
 }
 
-static noinline int i2cdev_ioctl_rdrw(struct i2c_client *client,
+static noinline int i2cdev_ioctl_rdwr(struct i2c_client *client,
                unsigned long arg)
 {
        struct i2c_rdwr_ioctl_data rdwr_arg;
@@ -250,7 +250,7 @@ static noinline int i2cdev_ioctl_rdrw(struct i2c_client *client,
 
        /* Put an arbitrary limit on the number of messages that can
         * be sent at once */
-       if (rdwr_arg.nmsgs > I2C_RDRW_IOCTL_MAX_MSGS)
+       if (rdwr_arg.nmsgs > I2C_RDWR_IOCTL_MAX_MSGS)
                return -EINVAL;
 
        rdwr_pa = memdup_user(rdwr_arg.msgs,
@@ -421,16 +421,6 @@ static long i2cdev_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
        switch (cmd) {
        case I2C_SLAVE:
        case I2C_SLAVE_FORCE:
-               /* NOTE:  devices set up to work with "new style" drivers
-                * can't use I2C_SLAVE, even when the device node is not
-                * bound to a driver.  Only I2C_SLAVE_FORCE will work.
-                *
-                * Setting the PEC flag here won't affect kernel drivers,
-                * which will be using the i2c_client node registered with
-                * the driver model core.  Likewise, when that client has
-                * the PEC flag already set, the i2c-dev driver won't see
-                * (or use) this setting.
-                */
                if ((arg > 0x3ff) ||
                    (((client->flags & I2C_M_TEN) == 0) && arg > 0x7f))
                        return -EINVAL;
@@ -446,6 +436,13 @@ static long i2cdev_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                        client->flags &= ~I2C_M_TEN;
                return 0;
        case I2C_PEC:
+               /*
+                * Setting the PEC flag here won't affect kernel drivers,
+                * which will be using the i2c_client node registered with
+                * the driver model core.  Likewise, when that client has
+                * the PEC flag already set, the i2c-dev driver won't see
+                * (or use) this setting.
+                */
                if (arg)
                        client->flags |= I2C_CLIENT_PEC;
                else
@@ -456,7 +453,7 @@ static long i2cdev_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                return put_user(funcs, (unsigned long __user *)arg);
 
        case I2C_RDWR:
-               return i2cdev_ioctl_rdrw(client, arg);
+               return i2cdev_ioctl_rdwr(client, arg);
 
        case I2C_SMBUS:
                return i2cdev_ioctl_smbus(client, arg);