git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
HID: roccat: fix build failure if built as module
[safe/jmp/linux-2.6]
/
drivers
/
rtc
/
rtc-ds1305.c
diff --git
a/drivers/rtc/rtc-ds1305.c
b/drivers/rtc/rtc-ds1305.c
index
2736b11
..
48da85e
100644
(file)
--- a/
drivers/rtc/rtc-ds1305.c
+++ b/
drivers/rtc/rtc-ds1305.c
@@
-11,6
+11,7
@@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/bcd.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/bcd.h>
+#include <linux/slab.h>
#include <linux/rtc.h>
#include <linux/workqueue.h>
#include <linux/rtc.h>
#include <linux/workqueue.h>
@@
-541,7
+542,8
@@
static void msg_init(struct spi_message *m, struct spi_transfer *x,
}
static ssize_t
}
static ssize_t
-ds1305_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
+ds1305_nvram_read(struct file *filp, struct kobject *kobj,
+ struct bin_attribute *attr,
char *buf, loff_t off, size_t count)
{
struct spi_device *spi;
char *buf, loff_t off, size_t count)
{
struct spi_device *spi;
@@
-571,7
+573,8
@@
ds1305_nvram_read(struct kobject *kobj, struct bin_attribute *attr,
}
static ssize_t
}
static ssize_t
-ds1305_nvram_write(struct kobject *kobj, struct bin_attribute *attr,
+ds1305_nvram_write(struct file *filp, struct kobject *kobj,
+ struct bin_attribute *attr,
char *buf, loff_t off, size_t count)
{
struct spi_device *spi;
char *buf, loff_t off, size_t count)
{
struct spi_device *spi;
@@
-617,7
+620,6
@@
static struct bin_attribute nvram = {
static int __devinit ds1305_probe(struct spi_device *spi)
{
struct ds1305 *ds1305;
static int __devinit ds1305_probe(struct spi_device *spi)
{
struct ds1305 *ds1305;
- struct rtc_device *rtc;
int status;
u8 addr, value;
struct ds1305_platform_data *pdata = spi->dev.platform_data;
int status;
u8 addr, value;
struct ds1305_platform_data *pdata = spi->dev.platform_data;
@@
-756,14
+758,13
@@
static int __devinit ds1305_probe(struct spi_device *spi)
dev_dbg(&spi->dev, "AM/PM\n");
/* register RTC ... from here on, ds1305->ctrl needs locking */
dev_dbg(&spi->dev, "AM/PM\n");
/* register RTC ... from here on, ds1305->ctrl needs locking */
- rtc = rtc_device_register("ds1305", &spi->dev,
+
ds1305->
rtc = rtc_device_register("ds1305", &spi->dev,
&ds1305_ops, THIS_MODULE);
&ds1305_ops, THIS_MODULE);
- if (IS_ERR(rtc)) {
- status = PTR_ERR(rtc);
+ if (IS_ERR(
ds1305->
rtc)) {
+ status = PTR_ERR(
ds1305->
rtc);
dev_dbg(&spi->dev, "register rtc --> %d\n", status);
goto fail0;
}
dev_dbg(&spi->dev, "register rtc --> %d\n", status);
goto fail0;
}
- ds1305->rtc = rtc;
/* Maybe set up alarm IRQ; be ready to handle it triggering right
* away. NOTE that we don't share this. The signal is active low,
/* Maybe set up alarm IRQ; be ready to handle it triggering right
* away. NOTE that we don't share this. The signal is active low,
@@
-774,12
+775,14
@@
static int __devinit ds1305_probe(struct spi_device *spi)
if (spi->irq) {
INIT_WORK(&ds1305->work, ds1305_work);
status = request_irq(spi->irq, ds1305_irq,
if (spi->irq) {
INIT_WORK(&ds1305->work, ds1305_work);
status = request_irq(spi->irq, ds1305_irq,
- 0, dev_name(&rtc->dev), ds1305);
+ 0, dev_name(&
ds1305->
rtc->dev), ds1305);
if (status < 0) {
dev_dbg(&spi->dev, "request_irq %d --> %d\n",
spi->irq, status);
goto fail1;
}
if (status < 0) {
dev_dbg(&spi->dev, "request_irq %d --> %d\n",
spi->irq, status);
goto fail1;
}
+
+ device_set_wakeup_capable(&spi->dev, 1);
}
/* export NVRAM */
}
/* export NVRAM */
@@
-794,7
+797,7
@@
static int __devinit ds1305_probe(struct spi_device *spi)
fail2:
free_irq(spi->irq, ds1305);
fail1:
fail2:
free_irq(spi->irq, ds1305);
fail1:
- rtc_device_unregister(rtc);
+ rtc_device_unregister(
ds1305->
rtc);
fail0:
kfree(ds1305);
return status;
fail0:
kfree(ds1305);
return status;
@@
-802,7
+805,7
@@
fail0:
static int __devexit ds1305_remove(struct spi_device *spi)
{
static int __devexit ds1305_remove(struct spi_device *spi)
{
- struct ds1305
*ds1305 = spi_get_drvdata(spi);
+ struct ds1305 *ds1305 = spi_get_drvdata(spi);
sysfs_remove_bin_file(&spi->dev.kobj, &nvram);
sysfs_remove_bin_file(&spi->dev.kobj, &nvram);