rtc-ds1307: remove legacy probe() checks
authorJüri Reitel <juri.reitel@liewenthal.ee>
Thu, 8 Jan 2009 02:07:16 +0000 (18:07 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 8 Jan 2009 16:31:00 +0000 (08:31 -0800)
Remove RTC register value checks from the rtc-ds1307 probe() function.
They were left over from the legacy style I2C driver, which had to defend
against finding a non-RTC chip when the driver was probed.

Also fix a minor glitch in the alarm support: DS1307 chips don't have
alarms, so name those methods after one of the chips which actually *do*
have alarms (DS1337).

Signed-off-by: Jüri Reitel <juri.reitel@liewenthal.ee>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Sebastien Barre <sbarre@sdelcc.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Acked-by: Jean Delvare <khali@linux-fr.org>
Cc: Rodolfo Giometti <giometti@enneenne.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-ds1307.c

index fec13e7..7e5155e 100644 (file)
@@ -287,7 +287,7 @@ static int ds1307_set_time(struct device *dev, struct rtc_time *t)
        return 0;
 }
 
-static int ds1307_read_alarm(struct device *dev, struct rtc_wkalrm *t)
+static int ds1337_read_alarm(struct device *dev, struct rtc_wkalrm *t)
 {
        struct i2c_client       *client = to_i2c_client(dev);
        struct ds1307           *ds1307 = i2c_get_clientdata(client);
@@ -338,7 +338,7 @@ static int ds1307_read_alarm(struct device *dev, struct rtc_wkalrm *t)
        return 0;
 }
 
-static int ds1307_set_alarm(struct device *dev, struct rtc_wkalrm *t)
+static int ds1337_set_alarm(struct device *dev, struct rtc_wkalrm *t)
 {
        struct i2c_client       *client = to_i2c_client(dev);
        struct ds1307           *ds1307 = i2c_get_clientdata(client);
@@ -452,8 +452,8 @@ static int ds1307_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
 static const struct rtc_class_ops ds13xx_rtc_ops = {
        .read_time      = ds1307_get_time,
        .set_time       = ds1307_set_time,
-       .read_alarm     = ds1307_read_alarm,
-       .set_alarm      = ds1307_set_alarm,
+       .read_alarm     = ds1337_read_alarm,
+       .set_alarm      = ds1337_set_alarm,
        .ioctl          = ds1307_ioctl,
 };
 
@@ -654,22 +654,6 @@ read_rtc:
                break;
        }
 
-       tmp = ds1307->regs[DS1307_REG_SECS];
-       tmp = bcd2bin(tmp & 0x7f);
-       if (tmp > 60)
-               goto exit_bad;
-       tmp = bcd2bin(ds1307->regs[DS1307_REG_MIN] & 0x7f);
-       if (tmp > 60)
-               goto exit_bad;
-
-       tmp = bcd2bin(ds1307->regs[DS1307_REG_MDAY] & 0x3f);
-       if (tmp == 0 || tmp > 31)
-               goto exit_bad;
-
-       tmp = bcd2bin(ds1307->regs[DS1307_REG_MONTH] & 0x1f);
-       if (tmp == 0 || tmp > 12)
-               goto exit_bad;
-
        tmp = ds1307->regs[DS1307_REG_HOUR];
        switch (ds1307->type) {
        case ds_1340:
@@ -726,13 +710,6 @@ read_rtc:
 
        return 0;
 
-exit_bad:
-       dev_dbg(&client->dev, "%s: %02x %02x %02x %02x %02x %02x %02x\n",
-                       "bogus register",
-                       ds1307->regs[0], ds1307->regs[1],
-                       ds1307->regs[2], ds1307->regs[3],
-                       ds1307->regs[4], ds1307->regs[5],
-                       ds1307->regs[6]);
 exit_irq:
        if (ds1307->rtc)
                rtc_device_unregister(ds1307->rtc);