Merge tag 'libata-5.6-2020-02-05' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / drivers / rtc / rtc-rx8010.c
index 8102469..fe01015 100644 (file)
@@ -389,9 +389,8 @@ static int rx8010_alarm_irq_enable(struct device *dev,
 
 static int rx8010_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
 {
-       struct i2c_client *client = to_i2c_client(dev);
        struct rx8010_data *rx8010 = dev_get_drvdata(dev);
-       int ret, tmp;
+       int tmp;
        int flagreg;
 
        switch (cmd) {
@@ -400,24 +399,8 @@ static int rx8010_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
                if (flagreg < 0)
                        return flagreg;
 
-               tmp = !!(flagreg & RX8010_FLAG_VLF);
-               if (copy_to_user((void __user *)arg, &tmp, sizeof(int)))
-                       return -EFAULT;
-
-               return 0;
-
-       case RTC_VL_CLR:
-               flagreg = i2c_smbus_read_byte_data(rx8010->client, RX8010_FLAG);
-               if (flagreg < 0) {
-                       return flagreg;
-               }
-
-               flagreg &= ~RX8010_FLAG_VLF;
-               ret = i2c_smbus_write_byte_data(client, RX8010_FLAG, flagreg);
-               if (ret < 0)
-                       return ret;
-
-               return 0;
+               tmp = flagreg & RX8010_FLAG_VLF ? RTC_VL_DATA_INVALID : 0;
+               return put_user(tmp, (unsigned int __user *)arg);
 
        default:
                return -ENOIOCTLCMD;
@@ -482,7 +465,7 @@ static int rx8010_probe(struct i2c_client *client,
 
        rx8010->rtc->max_user_freq = 1;
 
-       return err;
+       return 0;
 }
 
 static struct i2c_driver rx8010_driver = {