projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rtc: rtc-sh: Fix rtc_dev pointer for rtc_update_irq().
[powerpc.git]
/
drivers
/
rtc
/
rtc-test.c
diff --git
a/drivers/rtc/rtc-test.c
b/drivers/rtc/rtc-test.c
index
e1fa5fe
..
254c9fc
100644
(file)
--- a/
drivers/rtc/rtc-test.c
+++ b/
drivers/rtc/rtc-test.c
@@
-75,7
+75,7
@@
static int test_rtc_ioctl(struct device *dev, unsigned int cmd,
}
}
}
}
-static struct rtc_class_ops test_rtc_ops = {
+static
const
struct rtc_class_ops test_rtc_ops = {
.proc = test_rtc_proc,
.read_time = test_rtc_read_time,
.set_time = test_rtc_set_time,
.proc = test_rtc_proc,
.read_time = test_rtc_read_time,
.set_time = test_rtc_set_time,
@@
-99,14
+99,16
@@
static ssize_t test_irq_store(struct device *dev,
struct rtc_device *rtc = platform_get_drvdata(plat_dev);
retval = count;
struct rtc_device *rtc = platform_get_drvdata(plat_dev);
retval = count;
+ local_irq_disable();
if (strncmp(buf, "tick", 4) == 0)
if (strncmp(buf, "tick", 4) == 0)
- rtc_update_irq(
&rtc->class_dev
, 1, RTC_PF | RTC_IRQF);
+ rtc_update_irq(
rtc
, 1, RTC_PF | RTC_IRQF);
else if (strncmp(buf, "alarm", 5) == 0)
else if (strncmp(buf, "alarm", 5) == 0)
- rtc_update_irq(
&rtc->class_dev
, 1, RTC_AF | RTC_IRQF);
+ rtc_update_irq(
rtc
, 1, RTC_AF | RTC_IRQF);
else if (strncmp(buf, "update", 6) == 0)
else if (strncmp(buf, "update", 6) == 0)
- rtc_update_irq(
&rtc->class_dev
, 1, RTC_UF | RTC_IRQF);
+ rtc_update_irq(
rtc
, 1, RTC_UF | RTC_IRQF);
else
retval = -EINVAL;
else
retval = -EINVAL;
+ local_irq_enable();
return retval;
}
return retval;
}
@@
-121,11
+123,18
@@
static int test_probe(struct platform_device *plat_dev)
err = PTR_ERR(rtc);
return err;
}
err = PTR_ERR(rtc);
return err;
}
- device_create_file(&plat_dev->dev, &dev_attr_irq);
+
+ err = device_create_file(&plat_dev->dev, &dev_attr_irq);
+ if (err)
+ goto err;
platform_set_drvdata(plat_dev, rtc);
return 0;
platform_set_drvdata(plat_dev, rtc);
return 0;
+
+err:
+ rtc_device_unregister(rtc);
+ return err;
}
static int __devexit test_remove(struct platform_device *plat_dev)
}
static int __devexit test_remove(struct platform_device *plat_dev)