projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PNP: remove unused interfaces using pnp_resource_table
[cascardo/linux.git]
/
drivers
/
rtc
/
rtc-pcf8583.c
diff --git
a/drivers/rtc/rtc-pcf8583.c
b/drivers/rtc/rtc-pcf8583.c
index
556d0e7
..
3d09d8f
100644
(file)
--- a/
drivers/rtc/rtc-pcf8583.c
+++ b/
drivers/rtc/rtc-pcf8583.c
@@
-15,7
+15,7
@@
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/i2c.h>
#include <linux/slab.h>
#include <linux/string.h>
-#include <linux/
mc146818
rtc.h>
+#include <linux/rtc.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/bcd.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/bcd.h>
@@
-40,7
+40,7
@@
struct pcf8583 {
#define CTRL_ALARM 0x02
#define CTRL_TIMER 0x01
#define CTRL_ALARM 0x02
#define CTRL_TIMER 0x01
-static unsigned short normal_i2c[] = { 0x50, I2C_CLIENT_END };
+static
const
unsigned short normal_i2c[] = { 0x50, I2C_CLIENT_END };
/* Module parameters */
I2C_CLIENT_INSMOD;
/* Module parameters */
I2C_CLIENT_INSMOD;
@@
-163,27
+163,17
@@
static int pcf8583_read_mem(struct i2c_client *client, struct rtc_mem *mem)
static int pcf8583_write_mem(struct i2c_client *client, struct rtc_mem *mem)
{
static int pcf8583_write_mem(struct i2c_client *client, struct rtc_mem *mem)
{
- unsigned char addr[1];
- struct i2c_msg msgs[2] = {
- {
- .addr = client->addr,
- .flags = 0,
- .len = 1,
- .buf = addr,
- }, {
- .addr = client->addr,
- .flags = I2C_M_NOSTART,
- .len = mem->nr,
- .buf = mem->data,
- }
- };
+ unsigned char buf[9];
+ int ret;
- if (mem->loc < 8)
+ if (mem->loc < 8
|| mem->nr > 8
)
return -EINVAL;
return -EINVAL;
- addr[0] = mem->loc;
+ buf[0] = mem->loc;
+ memcpy(buf + 1, mem->data, mem->nr);
- return i2c_transfer(client->adapter, msgs, 2) == 2 ? 0 : -EIO;
+ ret = i2c_master_send(client, buf, mem->nr + 1);
+ return ret == mem->nr + 1 ? 0 : -EIO;
}
static int pcf8583_rtc_read_time(struct device *dev, struct rtc_time *tm)
}
static int pcf8583_rtc_read_time(struct device *dev, struct rtc_time *tm)