]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
rtc: s35390a: use u8 instead of char for register buffer
authorNick Huang <sef1548@gmail.com>
Sat, 20 Sep 2025 17:42:23 +0000 (01:42 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Mon, 8 Dec 2025 21:23:24 +0000 (22:23 +0100)
The register buffer in s35390a_get_reg() was previously defined as
`char *buf`. This is not ideal since register data represents raw
binary values rather than textual data.

Switch the type to `u8 *buf` to better reflect its intended usage and
to avoid potential issues with sign extension when handling register
values on platforms where `char` is signed by default.

This change improves type safety and makes the code consistent with
other RTC drivers that operate on raw register data.

Signed-off-by: Nick Huang <sef1548@gmail.com>
Link: https://patch.msgid.link/20250920174224.108795-1-sef1548@gmail.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-s35390a.c

index 3408d2ab274194e39cde38a83567d37bd53f6632..07bd983b569296b3ec7decb52a0c402e464be914 100644 (file)
@@ -66,7 +66,7 @@ struct s35390a {
        int twentyfourhour;
 };
 
-static int s35390a_set_reg(struct s35390a *s35390a, int reg, char *buf, int len)
+static int s35390a_set_reg(struct s35390a *s35390a, int reg, u8  *buf, int len)
 {
        struct i2c_client *client = s35390a->client[reg];
        struct i2c_msg msg[] = {
@@ -83,7 +83,7 @@ static int s35390a_set_reg(struct s35390a *s35390a, int reg, char *buf, int len)
        return 0;
 }
 
-static int s35390a_get_reg(struct s35390a *s35390a, int reg, char *buf, int len)
+static int s35390a_get_reg(struct s35390a *s35390a, int reg, u8 *buf, int len)
 {
        struct i2c_client *client = s35390a->client[reg];
        struct i2c_msg msg[] = {
@@ -168,7 +168,7 @@ static int s35390a_read_status(struct s35390a *s35390a, char *status1)
 
 static int s35390a_disable_test_mode(struct s35390a *s35390a)
 {
-       char buf[1];
+       u8 buf[1];
 
        if (s35390a_get_reg(s35390a, S35390A_CMD_STATUS2, buf, sizeof(buf)) < 0)
                return -EIO;
@@ -210,7 +210,7 @@ static int s35390a_rtc_set_time(struct device *dev, struct rtc_time *tm)
        struct i2c_client *client = to_i2c_client(dev);
        struct s35390a  *s35390a = i2c_get_clientdata(client);
        int i;
-       char buf[7], status;
+       u8 buf[7], status;
 
        dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d mday=%d, "
                "mon=%d, year=%d, wday=%d\n", __func__, tm->tm_sec,
@@ -239,7 +239,7 @@ static int s35390a_rtc_read_time(struct device *dev, struct rtc_time *tm)
 {
        struct i2c_client *client = to_i2c_client(dev);
        struct s35390a *s35390a = i2c_get_clientdata(client);
-       char buf[7], status;
+       u8 buf[7], status;
        int i, err;
 
        if (s35390a_read_status(s35390a, &status) == 1)
@@ -273,7 +273,7 @@ static int s35390a_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alm)
 {
        struct i2c_client *client = to_i2c_client(dev);
        struct s35390a *s35390a = i2c_get_clientdata(client);
-       char buf[3], sts = 0;
+       u8 buf[3], sts = 0;
        int err, i;
 
        dev_dbg(&client->dev, "%s: alm is secs=%d, mins=%d, hours=%d mday=%d, "\
@@ -326,7 +326,7 @@ static int s35390a_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alm)
 {
        struct i2c_client *client = to_i2c_client(dev);
        struct s35390a *s35390a = i2c_get_clientdata(client);
-       char buf[3], sts;
+       u8 buf[3], sts;
        int i, err;
 
        err = s35390a_get_reg(s35390a, S35390A_CMD_STATUS2, &sts, sizeof(sts));
@@ -383,7 +383,7 @@ static int s35390a_rtc_ioctl(struct device *dev, unsigned int cmd,
 {
        struct i2c_client *client = to_i2c_client(dev);
        struct s35390a *s35390a = i2c_get_clientdata(client);
-       char sts;
+       u8 sts;
        int err;
 
        switch (cmd) {
@@ -422,7 +422,7 @@ static int s35390a_probe(struct i2c_client *client)
        unsigned int i;
        struct s35390a *s35390a;
        struct rtc_device *rtc;
-       char buf, status1;
+       u8 buf, status1;
        struct device *dev = &client->dev;
 
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C))