diff options
Diffstat (limited to 'drivers/rtc/rtc-pcf8563.c')
| -rw-r--r-- | drivers/rtc/rtc-pcf8563.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/rtc/rtc-pcf8563.c b/drivers/rtc/rtc-pcf8563.c index c2ef0a22ee94..1a865c9f1127 100644 --- a/drivers/rtc/rtc-pcf8563.c +++ b/drivers/rtc/rtc-pcf8563.c | |||
| @@ -118,22 +118,21 @@ static int pcf8563_write_block_data(struct i2c_client *client, | |||
| 118 | 118 | ||
| 119 | static int pcf8563_set_alarm_mode(struct i2c_client *client, bool on) | 119 | static int pcf8563_set_alarm_mode(struct i2c_client *client, bool on) |
| 120 | { | 120 | { |
| 121 | unsigned char buf[2]; | 121 | unsigned char buf; |
| 122 | int err; | 122 | int err; |
| 123 | 123 | ||
| 124 | err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, buf + 1); | 124 | err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, &buf); |
| 125 | if (err < 0) | 125 | if (err < 0) |
| 126 | return err; | 126 | return err; |
| 127 | 127 | ||
| 128 | if (on) | 128 | if (on) |
| 129 | buf[1] |= PCF8563_BIT_AIE; | 129 | buf |= PCF8563_BIT_AIE; |
| 130 | else | 130 | else |
| 131 | buf[1] &= ~PCF8563_BIT_AIE; | 131 | buf &= ~PCF8563_BIT_AIE; |
| 132 | 132 | ||
| 133 | buf[1] &= ~PCF8563_BIT_AF; | 133 | buf &= ~PCF8563_BIT_AF; |
| 134 | buf[0] = PCF8563_REG_ST2; | ||
| 135 | 134 | ||
| 136 | err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, buf + 1); | 135 | err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, &buf); |
| 137 | if (err < 0) { | 136 | if (err < 0) { |
| 138 | dev_err(&client->dev, "%s: write error\n", __func__); | 137 | dev_err(&client->dev, "%s: write error\n", __func__); |
| 139 | return -EIO; | 138 | return -EIO; |
