projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'fix/hda' into topic/hda
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
rtc
/
rtc-test.c
diff --git
a/drivers/rtc/rtc-test.c
b/drivers/rtc/rtc-test.c
index bc4bd24508a2d4beb23458c3b6ee3a86b7e41e26..bc930022004a58fc2dcb344c86bf9da180abd317 100644
(file)
--- a/
drivers/rtc/rtc-test.c
+++ b/
drivers/rtc/rtc-test.c
@@
-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)
@@
-138,7
+147,7
@@
static int __devexit test_remove(struct platform_device *plat_dev)
return 0;
}
return 0;
}
-static struct platform_driver test_dr
v
= {
+static struct platform_driver test_dr
iver
= {
.probe = test_probe,
.remove = __devexit_p(test_remove),
.driver = {
.probe = test_probe,
.remove = __devexit_p(test_remove),
.driver = {
@@
-151,7
+160,7
@@
static int __init test_init(void)
{
int err;
{
int err;
- if ((err = platform_driver_register(&test_dr
v
)))
+ if ((err = platform_driver_register(&test_dr
iver
)))
return err;
if ((test0 = platform_device_alloc("rtc-test", 0)) == NULL) {
return err;
if ((test0 = platform_device_alloc("rtc-test", 0)) == NULL) {
@@
-182,7
+191,7
@@
exit_free_test0:
platform_device_put(test0);
exit_driver_unregister:
platform_device_put(test0);
exit_driver_unregister:
- platform_driver_unregister(&test_dr
v
);
+ platform_driver_unregister(&test_dr
iver
);
return err;
}
return err;
}
@@
-190,7
+199,7
@@
static void __exit test_exit(void)
{
platform_device_unregister(test0);
platform_device_unregister(test1);
{
platform_device_unregister(test0);
platform_device_unregister(test1);
- platform_driver_unregister(&test_dr
v
);
+ platform_driver_unregister(&test_dr
iver
);
}
MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
}
MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");