2019-10-11 15:06:50

by Thomas Bogendoerfer

[permalink] [raw]
Subject: [PATCH 2/3] rtc: ds1685: use devm_platform_ioremap_resource helper

Simplify ioremapping of registers by using devm_platform_ioremap_resource.

Signed-off-by: Thomas Bogendoerfer <[email protected]>
---
drivers/rtc/rtc-ds1685.c | 23 +++--------------------
include/linux/rtc/ds1685.h | 1 -
2 files changed, 3 insertions(+), 21 deletions(-)

diff --git a/drivers/rtc/rtc-ds1685.c b/drivers/rtc/rtc-ds1685.c
index 51f568473de8..349a8d1caca1 100644
--- a/drivers/rtc/rtc-ds1685.c
+++ b/drivers/rtc/rtc-ds1685.c
@@ -1040,7 +1040,6 @@ static int
ds1685_rtc_probe(struct platform_device *pdev)
{
struct rtc_device *rtc_dev;
- struct resource *res;
struct ds1685_priv *rtc;
struct ds1685_rtc_platform_data *pdata;
u8 ctrla, ctrlb, hours;
@@ -1070,25 +1069,9 @@ ds1685_rtc_probe(struct platform_device *pdev)
* that sits behind the IOC3 PCI metadevice.
*/
if (pdata->alloc_io_resources) {
- /* Get the platform resources. */
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res)
- return -ENXIO;
- rtc->size = resource_size(res);
-
- /* Request a memory region. */
- /* XXX: mmio-only for now. */
- if (!devm_request_mem_region(&pdev->dev, res->start, rtc->size,
- pdev->name))
- return -EBUSY;
-
- /*
- * Set the base address for the rtc, and ioremap its
- * registers.
- */
- rtc->regs = devm_ioremap(&pdev->dev, res->start, rtc->size);
- if (!rtc->regs)
- return -ENOMEM;
+ rtc->regs = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(rtc->regs))
+ return PTR_ERR(rtc->regs);
}

/* Get the register step size. */
diff --git a/include/linux/rtc/ds1685.h b/include/linux/rtc/ds1685.h
index b9671d00d964..101c7adc05a2 100644
--- a/include/linux/rtc/ds1685.h
+++ b/include/linux/rtc/ds1685.h
@@ -43,7 +43,6 @@ struct ds1685_priv {
struct rtc_device *dev;
void __iomem *regs;
u32 regstep;
- size_t size;
int irq_num;
bool bcd_mode;
bool no_irq;
--
2.16.4


2019-10-12 22:52:29

by Joshua Kinard

[permalink] [raw]
Subject: Re: [PATCH 2/3] rtc: ds1685: use devm_platform_ioremap_resource helper

On 10/11/2019 11:05, Thomas Bogendoerfer wrote:
> Simplify ioremapping of registers by using devm_platform_ioremap_resource.
>
> Signed-off-by: Thomas Bogendoerfer <[email protected]>
> ---
> drivers/rtc/rtc-ds1685.c | 23 +++--------------------
> include/linux/rtc/ds1685.h | 1 -
> 2 files changed, 3 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/rtc/rtc-ds1685.c b/drivers/rtc/rtc-ds1685.c
> index 51f568473de8..349a8d1caca1 100644
> --- a/drivers/rtc/rtc-ds1685.c
> +++ b/drivers/rtc/rtc-ds1685.c
> @@ -1040,7 +1040,6 @@ static int
> ds1685_rtc_probe(struct platform_device *pdev)
> {
> struct rtc_device *rtc_dev;
> - struct resource *res;
> struct ds1685_priv *rtc;
> struct ds1685_rtc_platform_data *pdata;
> u8 ctrla, ctrlb, hours;
> @@ -1070,25 +1069,9 @@ ds1685_rtc_probe(struct platform_device *pdev)
> * that sits behind the IOC3 PCI metadevice.
> */
> if (pdata->alloc_io_resources) {
> - /* Get the platform resources. */
> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> - if (!res)
> - return -ENXIO;
> - rtc->size = resource_size(res);
> -
> - /* Request a memory region. */
> - /* XXX: mmio-only for now. */
> - if (!devm_request_mem_region(&pdev->dev, res->start, rtc->size,
> - pdev->name))
> - return -EBUSY;
> -
> - /*
> - * Set the base address for the rtc, and ioremap its
> - * registers.
> - */
> - rtc->regs = devm_ioremap(&pdev->dev, res->start, rtc->size);
> - if (!rtc->regs)
> - return -ENOMEM;
> + rtc->regs = devm_platform_ioremap_resource(pdev, 0);
> + if (IS_ERR(rtc->regs))
> + return PTR_ERR(rtc->regs);
> }
>
> /* Get the register step size. */
> diff --git a/include/linux/rtc/ds1685.h b/include/linux/rtc/ds1685.h
> index b9671d00d964..101c7adc05a2 100644
> --- a/include/linux/rtc/ds1685.h
> +++ b/include/linux/rtc/ds1685.h
> @@ -43,7 +43,6 @@ struct ds1685_priv {
> struct rtc_device *dev;
> void __iomem *regs;
> u32 regstep;
> - size_t size;
> int irq_num;
> bool bcd_mode;
> bool no_irq;
>


Acked-by: Joshua Kinard <[email protected]>

2019-10-14 16:28:55

by Alexandre Belloni

[permalink] [raw]
Subject: Re: [PATCH 2/3] rtc: ds1685: use devm_platform_ioremap_resource helper

On 11/10/2019 17:05:44+0200, Thomas Bogendoerfer wrote:
> Simplify ioremapping of registers by using devm_platform_ioremap_resource.
>
> Signed-off-by: Thomas Bogendoerfer <[email protected]>
> ---
> drivers/rtc/rtc-ds1685.c | 23 +++--------------------
> include/linux/rtc/ds1685.h | 1 -
> 2 files changed, 3 insertions(+), 21 deletions(-)
>
Applied, thanks.

--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com