2015-11-19 10:51:41

by Corentin Labbe

[permalink] [raw]
Subject: [PATCH 1/3] rtc: sunxi: fix signedness issues

The variable year must be set as unsigned since it is used with
sunxi_rtc_data_year{.min|.max} and as parameter of is_leap_year() which
wait for unsigned int.
Only tm_year is not unsigned, but it is long.
This patch fix also the format of printing of min/max. (must use %u since
they are unsigned)

The parameter to of sunxi_rtc_setaie() must be set to uint since callers
give always uint data.

Signed-off-by: LABBE Corentin <[email protected]>
---
drivers/rtc/rtc-sunxi.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/rtc/rtc-sunxi.c b/drivers/rtc/rtc-sunxi.c
index 52543ae..b4f35ac 100644
--- a/drivers/rtc/rtc-sunxi.c
+++ b/drivers/rtc/rtc-sunxi.c
@@ -175,7 +175,7 @@ static irqreturn_t sunxi_rtc_alarmirq(int irq, void *id)
return IRQ_NONE;
}

-static void sunxi_rtc_setaie(int to, struct sunxi_rtc_dev *chip)
+static void sunxi_rtc_setaie(unsigned int to, struct sunxi_rtc_dev *chip)
{
u32 alrm_val = 0;
u32 alrm_irq_val = 0;
@@ -343,7 +343,7 @@ static int sunxi_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)
struct sunxi_rtc_dev *chip = dev_get_drvdata(dev);
u32 date = 0;
u32 time = 0;
- int year;
+ unsigned int year;

/*
* the input rtc_tm->tm_year is the offset relative to 1900. We use
@@ -353,8 +353,8 @@ static int sunxi_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)

year = rtc_tm->tm_year + 1900;
if (year < chip->data_year->min || year > chip->data_year->max) {
- dev_err(dev, "rtc only supports year in range %d - %d\n",
- chip->data_year->min, chip->data_year->max);
+ dev_err(dev, "rtc only supports year in range %u - %u\n",
+ chip->data_year->min, chip->data_year->max);
return -EINVAL;
}

--
2.4.10


2015-11-19 10:51:59

by Corentin Labbe

[permalink] [raw]
Subject: [PATCH 2/3] rtc: sunxi: constify the data_year_param structure

The data_year_param struct is never modified, so lets constify it.
This permit to remove cast since of_device_id is const also.

Signed-off-by: LABBE Corentin <[email protected]>
---
drivers/rtc/rtc-sunxi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/rtc/rtc-sunxi.c b/drivers/rtc/rtc-sunxi.c
index b4f35ac..0c08a5b 100644
--- a/drivers/rtc/rtc-sunxi.c
+++ b/drivers/rtc/rtc-sunxi.c
@@ -133,7 +133,7 @@ struct sunxi_rtc_data_year {
unsigned char leap_shift; /* bit shift to get the leap year */
};

-static struct sunxi_rtc_data_year data_year_param[] = {
+static const struct sunxi_rtc_data_year data_year_param[] = {
[0] = {
.min = 2010,
.max = 2073,
@@ -151,7 +151,7 @@ static struct sunxi_rtc_data_year data_year_param[] = {
struct sunxi_rtc_dev {
struct rtc_device *rtc;
struct device *dev;
- struct sunxi_rtc_data_year *data_year;
+ const struct sunxi_rtc_data_year *data_year;
void __iomem *base;
int irq;
};
@@ -468,7 +468,7 @@ static int sunxi_rtc_probe(struct platform_device *pdev)
dev_err(&pdev->dev, "Unable to setup RTC data\n");
return -ENODEV;
}
- chip->data_year = (struct sunxi_rtc_data_year *) of_id->data;
+ chip->data_year = of_id->data;

/* clear the alarm count value */
writel(0, chip->base + SUNXI_ALRM_DHMS);
--
2.4.10

2015-11-19 10:52:01

by Corentin Labbe

[permalink] [raw]
Subject: [PATCH 3/3] rtc: sunxi: use of_device_get_match_data

The usage of of_device_get_match_data reduce the code size a bit.

Signed-off-by: LABBE Corentin <[email protected]>
---
drivers/rtc/rtc-sunxi.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/rtc/rtc-sunxi.c b/drivers/rtc/rtc-sunxi.c
index 0c08a5b..abada60 100644
--- a/drivers/rtc/rtc-sunxi.c
+++ b/drivers/rtc/rtc-sunxi.c
@@ -436,7 +436,6 @@ static int sunxi_rtc_probe(struct platform_device *pdev)
{
struct sunxi_rtc_dev *chip;
struct resource *res;
- const struct of_device_id *of_id;
int ret;

chip = devm_kzalloc(&pdev->dev, sizeof(*chip), GFP_KERNEL);
@@ -463,12 +462,11 @@ static int sunxi_rtc_probe(struct platform_device *pdev)
return ret;
}

- of_id = of_match_device(sunxi_rtc_dt_ids, &pdev->dev);
- if (!of_id) {
+ chip->data_year = of_device_get_match_data(&pdev->dev);
+ if (!chip->data_year) {
dev_err(&pdev->dev, "Unable to setup RTC data\n");
return -ENODEV;
}
- chip->data_year = of_id->data;

/* clear the alarm count value */
writel(0, chip->base + SUNXI_ALRM_DHMS);
--
2.4.10

2015-11-23 07:18:29

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH 1/3] rtc: sunxi: fix signedness issues

On Thu, Nov 19, 2015 at 6:50 PM, LABBE Corentin
<[email protected]> wrote:
> The variable year must be set as unsigned since it is used with
> sunxi_rtc_data_year{.min|.max} and as parameter of is_leap_year() which
> wait for unsigned int.
> Only tm_year is not unsigned, but it is long.
> This patch fix also the format of printing of min/max. (must use %u since
> they are unsigned)
>
> The parameter to of sunxi_rtc_setaie() must be set to uint since callers
> give always uint data.
>
> Signed-off-by: LABBE Corentin <[email protected]>

Acked-by: Chen-Yu Tsai <[email protected]>

Would've preferred you not changing the whitespace on the dev_err line though.

2015-11-23 07:19:03

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH 2/3] rtc: sunxi: constify the data_year_param structure

On Thu, Nov 19, 2015 at 6:50 PM, LABBE Corentin
<[email protected]> wrote:
> The data_year_param struct is never modified, so lets constify it.
> This permit to remove cast since of_device_id is const also.
>
> Signed-off-by: LABBE Corentin <[email protected]>

Acked-by: Chen-Yu Tsai <[email protected]>

2015-11-23 07:19:23

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH 3/3] rtc: sunxi: use of_device_get_match_data

On Thu, Nov 19, 2015 at 6:50 PM, LABBE Corentin
<[email protected]> wrote:
> The usage of of_device_get_match_data reduce the code size a bit.
>
> Signed-off-by: LABBE Corentin <[email protected]>

Acked-by: Chen-Yu Tsai <[email protected]>

2015-11-30 19:04:34

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH 1/3] rtc: sunxi: fix signedness issues

On 19/11/2015 at 11:50:08 +0100, LABBE Corentin wrote :
> The variable year must be set as unsigned since it is used with
> sunxi_rtc_data_year{.min|.max} and as parameter of is_leap_year() which
> wait for unsigned int.
> Only tm_year is not unsigned, but it is long.
> This patch fix also the format of printing of min/max. (must use %u since
> they are unsigned)
>
> The parameter to of sunxi_rtc_setaie() must be set to uint since callers
> give always uint data.
>
> Signed-off-by: LABBE Corentin <[email protected]>
> ---
> drivers/rtc/rtc-sunxi.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
Applied, thanks.

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

2015-11-30 19:04:49

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH 2/3] rtc: sunxi: constify the data_year_param structure

On 19/11/2015 at 11:50:09 +0100, LABBE Corentin wrote :
> The data_year_param struct is never modified, so lets constify it.
> This permit to remove cast since of_device_id is const also.
>
> Signed-off-by: LABBE Corentin <[email protected]>
> ---
> drivers/rtc/rtc-sunxi.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
Applied, thanks.

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

2015-11-30 19:05:14

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH 3/3] rtc: sunxi: use of_device_get_match_data

On 19/11/2015 at 11:50:10 +0100, LABBE Corentin wrote :
> The usage of of_device_get_match_data reduce the code size a bit.
>
> Signed-off-by: LABBE Corentin <[email protected]>
> ---
> drivers/rtc/rtc-sunxi.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
Applied, thanks.

--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com