* [PATCH] rtc: pcf85063: preserve control register value between stop and start
@ 2018-07-15 21:31 Alvin Šipraga
2018-07-28 12:51 ` Alexandre Belloni
0 siblings, 1 reply; 2+ messages in thread
From: Alvin Šipraga @ 2018-07-15 21:31 UTC (permalink / raw)
To: a.zummo, alexandre.belloni
Cc: linux-rtc, rkhudolii, attila, Alvin Šipraga
Fix a bug that caused the Control_1 register to get zeroed whenever the
RTC time is set. The problem occurred between stopping and starting the
RTC clock, wherein the return value of a successful I2C write function
would get written to the register.
Also update variables of the start and stop functions to be more
consistent with the rest of the driver.
Signed-off-by: Alvin Šipraga <alvin@airtame.com>
---
drivers/rtc/rtc-pcf85063.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/drivers/rtc/rtc-pcf85063.c b/drivers/rtc/rtc-pcf85063.c
index 49bcbb3d4a69..283c2335b01b 100644
--- a/drivers/rtc/rtc-pcf85063.c
+++ b/drivers/rtc/rtc-pcf85063.c
@@ -43,37 +43,38 @@ static struct i2c_driver pcf85063_driver;
static int pcf85063_stop_clock(struct i2c_client *client, u8 *ctrl1)
{
- s32 ret;
+ int rc;
+ u8 reg;
- ret = i2c_smbus_read_byte_data(client, PCF85063_REG_CTRL1);
- if (ret < 0) {
+ rc = i2c_smbus_read_byte_data(client, PCF85063_REG_CTRL1);
+ if (rc < 0) {
dev_err(&client->dev, "Failing to stop the clock\n");
return -EIO;
}
/* stop the clock */
- ret |= PCF85063_REG_CTRL1_STOP;
+ reg = rc | PCF85063_REG_CTRL1_STOP;
- ret = i2c_smbus_write_byte_data(client, PCF85063_REG_CTRL1, ret);
- if (ret < 0) {
+ rc = i2c_smbus_write_byte_data(client, PCF85063_REG_CTRL1, reg);
+ if (rc < 0) {
dev_err(&client->dev, "Failing to stop the clock\n");
return -EIO;
}
- *ctrl1 = ret;
+ *ctrl1 = reg;
return 0;
}
static int pcf85063_start_clock(struct i2c_client *client, u8 ctrl1)
{
- s32 ret;
+ int rc;
/* start the clock */
ctrl1 &= ~PCF85063_REG_CTRL1_STOP;
- ret = i2c_smbus_write_byte_data(client, PCF85063_REG_CTRL1, ctrl1);
- if (ret < 0) {
+ rc = i2c_smbus_write_byte_data(client, PCF85063_REG_CTRL1, ctrl1);
+ if (rc < 0) {
dev_err(&client->dev, "Failing to start the clock\n");
return -EIO;
}
--
2.11.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] rtc: pcf85063: preserve control register value between stop and start
2018-07-15 21:31 [PATCH] rtc: pcf85063: preserve control register value between stop and start Alvin Šipraga
@ 2018-07-28 12:51 ` Alexandre Belloni
0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Belloni @ 2018-07-28 12:51 UTC (permalink / raw)
To: Alvin Šipraga; +Cc: a.zummo, linux-rtc, rkhudolii, attila
On 15/07/2018 23:31:53+0200, Alvin Šipraga wrote:
> Fix a bug that caused the Control_1 register to get zeroed whenever the
> RTC time is set. The problem occurred between stopping and starting the
> RTC clock, wherein the return value of a successful I2C write function
> would get written to the register.
>
> Also update variables of the start and stop functions to be more
> consistent with the rest of the driver.
>
> Signed-off-by: Alvin Šipraga <alvin@airtame.com>
> ---
> drivers/rtc/rtc-pcf85063.c | 21 +++++++++++----------
> 1 file changed, 11 insertions(+), 10 deletions(-)
>
Applied, thanks.
--
Alexandre Belloni, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-07-28 14:17 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-15 21:31 [PATCH] rtc: pcf85063: preserve control register value between stop and start Alvin Šipraga
2018-07-28 12:51 ` Alexandre Belloni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).