diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-10-01 02:28:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-01 03:39:25 -0400 |
commit | 391b1fe67d193df75144a92b146613c36491ef0d (patch) | |
tree | ea455c0b5b2ed29cf11a33ffecc85d58851d2ab7 /drivers/rtc/rtc-ds1742.c | |
parent | 90b4d648f02a653b192be7f0feb0a933b7525e6a (diff) |
[PATCH] RTC: rtc-ds1553, rtc-ds1742 update
Check return value of sysfs_create_bin_file(). Fix polarity of
RTC_BATT_FLAG bit in DS1742.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/rtc/rtc-ds1742.c')
-rw-r--r-- | drivers/rtc/rtc-ds1742.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/rtc/rtc-ds1742.c b/drivers/rtc/rtc-ds1742.c index 01da5ab15fbc..6273a3d240a2 100644 --- a/drivers/rtc/rtc-ds1742.c +++ b/drivers/rtc/rtc-ds1742.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | 19 | ||
20 | #define DRV_VERSION "0.1" | 20 | #define DRV_VERSION "0.2" |
21 | 21 | ||
22 | #define RTC_REG_SIZE 0x800 | 22 | #define RTC_REG_SIZE 0x800 |
23 | #define RTC_OFFSET 0x7f8 | 23 | #define RTC_OFFSET 0x7f8 |
@@ -196,7 +196,7 @@ static int __init ds1742_rtc_probe(struct platform_device *pdev) | |||
196 | writeb(sec, ioaddr + RTC_SECONDS); | 196 | writeb(sec, ioaddr + RTC_SECONDS); |
197 | writeb(cen & RTC_CENTURY_MASK, ioaddr + RTC_CONTROL); | 197 | writeb(cen & RTC_CENTURY_MASK, ioaddr + RTC_CONTROL); |
198 | } | 198 | } |
199 | if (readb(ioaddr + RTC_DAY) & RTC_BATT_FLAG) | 199 | if (!(readb(ioaddr + RTC_DAY) & RTC_BATT_FLAG)) |
200 | dev_warn(&pdev->dev, "voltage-low detected.\n"); | 200 | dev_warn(&pdev->dev, "voltage-low detected.\n"); |
201 | 201 | ||
202 | rtc = rtc_device_register(pdev->name, &pdev->dev, | 202 | rtc = rtc_device_register(pdev->name, &pdev->dev, |
@@ -208,9 +208,13 @@ static int __init ds1742_rtc_probe(struct platform_device *pdev) | |||
208 | pdata->rtc = rtc; | 208 | pdata->rtc = rtc; |
209 | pdata->last_jiffies = jiffies; | 209 | pdata->last_jiffies = jiffies; |
210 | platform_set_drvdata(pdev, pdata); | 210 | platform_set_drvdata(pdev, pdata); |
211 | sysfs_create_bin_file(&pdev->dev.kobj, &ds1742_nvram_attr); | 211 | ret = sysfs_create_bin_file(&pdev->dev.kobj, &ds1742_nvram_attr); |
212 | if (ret) | ||
213 | goto out; | ||
212 | return 0; | 214 | return 0; |
213 | out: | 215 | out: |
216 | if (pdata->rtc) | ||
217 | rtc_device_unregister(pdata->rtc); | ||
214 | if (ioaddr) | 218 | if (ioaddr) |
215 | iounmap(ioaddr); | 219 | iounmap(ioaddr); |
216 | if (pdata->baseaddr) | 220 | if (pdata->baseaddr) |