mirror of https://gitee.com/openkylin/linux.git
rtc: rx8010: don't use magic values for time buffer length
The time buffer len is used directly in this driver. For readability it's better to define it as the difference between the date register offsets and use sizeof() whenever referencing it. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Link: https://lore.kernel.org/r/20200914154601.32245-8-brgl@bgdev.pl
This commit is contained in:
parent
13952c9e35
commit
f702699c67
|
@ -108,7 +108,7 @@ static irqreturn_t rx8010_irq_1_handler(int irq, void *dev_id)
|
||||||
static int rx8010_get_time(struct device *dev, struct rtc_time *dt)
|
static int rx8010_get_time(struct device *dev, struct rtc_time *dt)
|
||||||
{
|
{
|
||||||
struct rx8010_data *rx8010 = dev_get_drvdata(dev);
|
struct rx8010_data *rx8010 = dev_get_drvdata(dev);
|
||||||
u8 date[7];
|
u8 date[RX8010_YEAR - RX8010_SEC + 1];
|
||||||
int flagreg, err;
|
int flagreg, err;
|
||||||
|
|
||||||
flagreg = i2c_smbus_read_byte_data(rx8010->client, RX8010_FLAG);
|
flagreg = i2c_smbus_read_byte_data(rx8010->client, RX8010_FLAG);
|
||||||
|
@ -121,8 +121,8 @@ static int rx8010_get_time(struct device *dev, struct rtc_time *dt)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = i2c_smbus_read_i2c_block_data(rx8010->client, RX8010_SEC,
|
err = i2c_smbus_read_i2c_block_data(rx8010->client, RX8010_SEC,
|
||||||
7, date);
|
sizeof(date), date);
|
||||||
if (err != 7)
|
if (err != sizeof(date))
|
||||||
return err < 0 ? err : -EIO;
|
return err < 0 ? err : -EIO;
|
||||||
|
|
||||||
dt->tm_sec = bcd2bin(date[RX8010_SEC - RX8010_SEC] & 0x7f);
|
dt->tm_sec = bcd2bin(date[RX8010_SEC - RX8010_SEC] & 0x7f);
|
||||||
|
@ -139,7 +139,7 @@ static int rx8010_get_time(struct device *dev, struct rtc_time *dt)
|
||||||
static int rx8010_set_time(struct device *dev, struct rtc_time *dt)
|
static int rx8010_set_time(struct device *dev, struct rtc_time *dt)
|
||||||
{
|
{
|
||||||
struct rx8010_data *rx8010 = dev_get_drvdata(dev);
|
struct rx8010_data *rx8010 = dev_get_drvdata(dev);
|
||||||
u8 date[7];
|
u8 date[RX8010_YEAR - RX8010_SEC + 1];
|
||||||
int ctrl, flagreg, err;
|
int ctrl, flagreg, err;
|
||||||
|
|
||||||
if ((dt->tm_year < 100) || (dt->tm_year > 199))
|
if ((dt->tm_year < 100) || (dt->tm_year > 199))
|
||||||
|
@ -164,7 +164,8 @@ static int rx8010_set_time(struct device *dev, struct rtc_time *dt)
|
||||||
date[RX8010_WDAY - RX8010_SEC] = bin2bcd(1 << dt->tm_wday);
|
date[RX8010_WDAY - RX8010_SEC] = bin2bcd(1 << dt->tm_wday);
|
||||||
|
|
||||||
err = i2c_smbus_write_i2c_block_data(rx8010->client,
|
err = i2c_smbus_write_i2c_block_data(rx8010->client,
|
||||||
RX8010_SEC, 7, date);
|
RX8010_SEC, sizeof(date),
|
||||||
|
date);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue