linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
@ 2019-04-02 19:01 Guenter Roeck
  2019-04-02 21:29 ` Alexandre Belloni
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Guenter Roeck @ 2019-04-02 19:01 UTC (permalink / raw)
  To: Wim Van Sebroeck
  Cc: linux-watchdog, linux-kernel, Guenter Roeck, Joel Stanley,
	Nicolas Ferre, Alexandre Belloni, Florian Fainelli,
	Linus Walleij, Baruch Siach, Keguang Zhang, Vladimir Zapolskiy,
	Kevin Hilman, Matthias Brugger, Avi Fishman, Nancy Yuen,
	Brendan Higgins, Wan ZongShun, Michal Simek, Sylvain Lemieux,
	Kukjin Kim, Barry Song, Orson Zhai, Patrice Chotard,
	Maxime Coquelin, Maxime Ripard, Chen-Yu Tsai, Marc Gonzalez,
	Thierry Reding, Shawn Guo

Use devm_platform_ioremap_resource to reduce source code size,
improve readability, and reduce the likelyhood of bugs.

The conversion was done automatically with coccinelle using the
following semantic patch.

@r@
identifier res, pdev;
expression a;
expression index;
expression e;
@@

<+...
- res = platform_get_resource(pdev, IORESOURCE_MEM, index);
- a = devm_ioremap_resource(e, res);
+ a = devm_platform_ioremap_resource(pdev, index);
...+>

@depends on r@
identifier r.res;
@@
- struct resource *res;
  ... when != res

@@
identifier res, pdev;
expression index;
expression a;
@@
- struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index);
- a = devm_ioremap_resource(&pdev->dev, res);
+ a = devm_platform_ioremap_resource(pdev, index);

Cc: Joel Stanley <joel@jms.id.au>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Keguang Zhang <keguang.zhang@gmail.com>
Cc: Vladimir Zapolskiy <vz@mleia.com>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Avi Fishman <avifishman70@gmail.com>
Cc: Nancy Yuen <yuenn@google.com>
Cc: Brendan Higgins <brendanhiggins@google.com>
Cc: Wan ZongShun <mcuos.com@gmail.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Sylvain Lemieux <slemieux.tyco@gmail.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Barry Song <baohua@kernel.org>
Cc: Orson Zhai <orsonzhai@gmail.com>
Cc: Patrice Chotard <patrice.chotard@st.com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Chen-Yu Tsai <wens@csie.org>
Cc: Marc Gonzalez <marc.w.gonzalez@free.fr>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/watchdog/asm9260_wdt.c    | 4 +---
 drivers/watchdog/aspeed_wdt.c     | 4 +---
 drivers/watchdog/at91sam9_wdt.c   | 4 +---
 drivers/watchdog/ath79_wdt.c      | 4 +---
 drivers/watchdog/atlas7_wdt.c     | 4 +---
 drivers/watchdog/bcm7038_wdt.c    | 4 +---
 drivers/watchdog/bcm_kona_wdt.c   | 4 +---
 drivers/watchdog/cadence_wdt.c    | 4 +---
 drivers/watchdog/coh901327_wdt.c  | 4 +---
 drivers/watchdog/davinci_wdt.c    | 4 +---
 drivers/watchdog/digicolor_wdt.c  | 4 +---
 drivers/watchdog/dw_wdt.c         | 4 +---
 drivers/watchdog/ep93xx_wdt.c     | 4 +---
 drivers/watchdog/ftwdt010_wdt.c   | 4 +---
 drivers/watchdog/imgpdc_wdt.c     | 4 +---
 drivers/watchdog/jz4740_wdt.c     | 4 +---
 drivers/watchdog/lantiq_wdt.c     | 4 +---
 drivers/watchdog/loongson1_wdt.c  | 4 +---
 drivers/watchdog/lpc18xx_wdt.c    | 4 +---
 drivers/watchdog/max63xx_wdt.c    | 4 +---
 drivers/watchdog/meson_gxbb_wdt.c | 4 +---
 drivers/watchdog/meson_wdt.c      | 4 +---
 drivers/watchdog/moxart_wdt.c     | 4 +---
 drivers/watchdog/mpc8xxx_wdt.c    | 3 +--
 drivers/watchdog/mt7621_wdt.c     | 5 +----
 drivers/watchdog/mtk_wdt.c        | 4 +---
 drivers/watchdog/npcm_wdt.c       | 4 +---
 drivers/watchdog/nuc900_wdt.c     | 4 +---
 drivers/watchdog/of_xilinx_wdt.c  | 4 +---
 drivers/watchdog/omap_wdt.c       | 4 +---
 drivers/watchdog/orion_wdt.c      | 6 ++----
 drivers/watchdog/pic32-dmt.c      | 4 +---
 drivers/watchdog/pic32-wdt.c      | 4 +---
 drivers/watchdog/pnx4008_wdt.c    | 4 +---
 drivers/watchdog/renesas_wdt.c    | 4 +---
 drivers/watchdog/rt2880_wdt.c     | 4 +---
 drivers/watchdog/rtd119x_wdt.c    | 4 +---
 drivers/watchdog/rza_wdt.c        | 4 +---
 drivers/watchdog/s3c2410_wdt.c    | 4 +---
 drivers/watchdog/sama5d4_wdt.c    | 4 +---
 drivers/watchdog/sbsa_gwdt.c      | 7 ++-----
 drivers/watchdog/shwdt.c          | 4 +---
 drivers/watchdog/sirfsoc_wdt.c    | 4 +---
 drivers/watchdog/sprd_wdt.c       | 4 +---
 drivers/watchdog/st_lpc_wdt.c     | 4 +---
 drivers/watchdog/stm32_iwdg.c     | 4 +---
 drivers/watchdog/sunxi_wdt.c      | 4 +---
 drivers/watchdog/tangox_wdt.c     | 4 +---
 drivers/watchdog/tegra_wdt.c      | 4 +---
 drivers/watchdog/ts72xx_wdt.c     | 7 ++-----
 drivers/watchdog/txx9wdt.c        | 4 +---
 drivers/watchdog/zx2967_wdt.c     | 4 +---
 52 files changed, 55 insertions(+), 161 deletions(-)

diff --git a/drivers/watchdog/asm9260_wdt.c b/drivers/watchdog/asm9260_wdt.c
index 9768e44ffeb8..1de272bb2070 100644
--- a/drivers/watchdog/asm9260_wdt.c
+++ b/drivers/watchdog/asm9260_wdt.c
@@ -276,7 +276,6 @@ static int asm9260_wdt_probe(struct platform_device *pdev)
 {
 	struct asm9260_wdt_priv *priv;
 	struct watchdog_device *wdd;
-	struct resource *res;
 	int ret;
 	static const char * const mode_name[] = { "hw", "sw", "debug", };
 
@@ -287,8 +286,7 @@ static int asm9260_wdt_probe(struct platform_device *pdev)
 
 	priv->dev = &pdev->dev;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	priv->iobase = devm_ioremap_resource(&pdev->dev, res);
+	priv->iobase = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(priv->iobase))
 		return PTR_ERR(priv->iobase);
 
diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c
index 1abe4d021fd2..f09333fd54b4 100644
--- a/drivers/watchdog/aspeed_wdt.c
+++ b/drivers/watchdog/aspeed_wdt.c
@@ -190,7 +190,6 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
 	const struct aspeed_wdt_config *config;
 	const struct of_device_id *ofdid;
 	struct aspeed_wdt *wdt;
-	struct resource *res;
 	struct device_node *np;
 	const char *reset_type;
 	u32 duration;
@@ -201,8 +200,7 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
 	if (!wdt)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(&pdev->dev, res);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c
index f4050a229eb5..292b5a1ca831 100644
--- a/drivers/watchdog/at91sam9_wdt.c
+++ b/drivers/watchdog/at91sam9_wdt.c
@@ -327,7 +327,6 @@ static inline int of_at91wdt_init(struct device_node *np, struct at91wdt *wdt)
 
 static int __init at91wdt_probe(struct platform_device *pdev)
 {
-	struct resource	*r;
 	int err;
 	struct at91wdt *wdt;
 
@@ -346,8 +345,7 @@ static int __init at91wdt_probe(struct platform_device *pdev)
 	wdt->wdd.min_timeout = 1;
 	wdt->wdd.max_timeout = 0xFFFF;
 
-	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(&pdev->dev, r);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/ath79_wdt.c b/drivers/watchdog/ath79_wdt.c
index e2209bf5fa8a..5d66c8ec9a7d 100644
--- a/drivers/watchdog/ath79_wdt.c
+++ b/drivers/watchdog/ath79_wdt.c
@@ -250,15 +250,13 @@ static struct miscdevice ath79_wdt_miscdev = {
 
 static int ath79_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
 	u32 ctrl;
 	int err;
 
 	if (wdt_base)
 		return -EBUSY;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt_base = devm_ioremap_resource(&pdev->dev, res);
+	wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt_base))
 		return PTR_ERR(wdt_base);
 
diff --git a/drivers/watchdog/atlas7_wdt.c b/drivers/watchdog/atlas7_wdt.c
index 4abdcabd8219..e170933aa0a8 100644
--- a/drivers/watchdog/atlas7_wdt.c
+++ b/drivers/watchdog/atlas7_wdt.c
@@ -129,15 +129,13 @@ static int atlas7_wdt_probe(struct platform_device *pdev)
 {
 	struct device_node *np = pdev->dev.of_node;
 	struct atlas7_wdog *wdt;
-	struct resource *res;
 	struct clk *clk;
 	int ret;
 
 	wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL);
 	if (!wdt)
 		return -ENOMEM;
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(&pdev->dev, res);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/bcm7038_wdt.c b/drivers/watchdog/bcm7038_wdt.c
index ce3f646e8077..71fca45eab5d 100644
--- a/drivers/watchdog/bcm7038_wdt.c
+++ b/drivers/watchdog/bcm7038_wdt.c
@@ -111,7 +111,6 @@ static int bcm7038_wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct bcm7038_watchdog *wdt;
-	struct resource *res;
 	int err;
 
 	wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
@@ -120,8 +119,7 @@ static int bcm7038_wdt_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, wdt);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(dev, res);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/bcm_kona_wdt.c b/drivers/watchdog/bcm_kona_wdt.c
index 4249b47902bd..d52334ab0805 100644
--- a/drivers/watchdog/bcm_kona_wdt.c
+++ b/drivers/watchdog/bcm_kona_wdt.c
@@ -280,7 +280,6 @@ static int bcm_kona_wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct bcm_kona_wdt *wdt;
-	struct resource *res;
 	int ret;
 
 	wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
@@ -289,8 +288,7 @@ static int bcm_kona_wdt_probe(struct platform_device *pdev)
 
 	spin_lock_init(&wdt->lock);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(dev, res);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return -ENODEV;
 
diff --git a/drivers/watchdog/cadence_wdt.c b/drivers/watchdog/cadence_wdt.c
index c3924356d173..5986f18f97e2 100644
--- a/drivers/watchdog/cadence_wdt.c
+++ b/drivers/watchdog/cadence_wdt.c
@@ -285,7 +285,6 @@ static const struct watchdog_ops cdns_wdt_ops = {
  */
 static int cdns_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
 	int ret, irq;
 	unsigned long clock_f;
 	struct cdns_wdt *wdt;
@@ -302,8 +301,7 @@ static int cdns_wdt_probe(struct platform_device *pdev)
 	cdns_wdt_device->min_timeout = CDNS_WDT_MIN_TIMEOUT;
 	cdns_wdt_device->max_timeout = CDNS_WDT_MAX_TIMEOUT;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->regs = devm_ioremap_resource(&pdev->dev, res);
+	wdt->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->regs))
 		return PTR_ERR(wdt->regs);
 
diff --git a/drivers/watchdog/coh901327_wdt.c b/drivers/watchdog/coh901327_wdt.c
index f29d1edc5bad..3c4eaa0d1178 100644
--- a/drivers/watchdog/coh901327_wdt.c
+++ b/drivers/watchdog/coh901327_wdt.c
@@ -258,12 +258,10 @@ static int __init coh901327_probe(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	int ret;
 	u16 val;
-	struct resource *res;
 
 	parent = dev;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	virtbase = devm_ioremap_resource(dev, res);
+	virtbase = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(virtbase))
 		return PTR_ERR(virtbase);
 
diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c
index ebb85d60b6d5..7daa15df74a5 100644
--- a/drivers/watchdog/davinci_wdt.c
+++ b/drivers/watchdog/davinci_wdt.c
@@ -195,7 +195,6 @@ static int davinci_wdt_probe(struct platform_device *pdev)
 {
 	int ret = 0;
 	struct device *dev = &pdev->dev;
-	struct resource  *wdt_mem;
 	struct watchdog_device *wdd;
 	struct davinci_wdt_device *davinci_wdt;
 
@@ -235,8 +234,7 @@ static int davinci_wdt_probe(struct platform_device *pdev)
 	watchdog_set_nowayout(wdd, 1);
 	watchdog_set_restart_priority(wdd, 128);
 
-	wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	davinci_wdt->base = devm_ioremap_resource(dev, wdt_mem);
+	davinci_wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(davinci_wdt->base)) {
 		ret = PTR_ERR(davinci_wdt->base);
 		goto err_clk_disable;
diff --git a/drivers/watchdog/digicolor_wdt.c b/drivers/watchdog/digicolor_wdt.c
index a9e11df155b8..8af6e9a67d0d 100644
--- a/drivers/watchdog/digicolor_wdt.c
+++ b/drivers/watchdog/digicolor_wdt.c
@@ -116,7 +116,6 @@ static struct watchdog_device dc_wdt_wdd = {
 
 static int dc_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
 	struct device *dev = &pdev->dev;
 	struct dc_wdt *wdt;
 	int ret;
@@ -125,8 +124,7 @@ static int dc_wdt_probe(struct platform_device *pdev)
 	if (!wdt)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(dev, res);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
index aa95f57cc1c3..39e43750ab08 100644
--- a/drivers/watchdog/dw_wdt.c
+++ b/drivers/watchdog/dw_wdt.c
@@ -238,15 +238,13 @@ static int dw_wdt_drv_probe(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	struct watchdog_device *wdd;
 	struct dw_wdt *dw_wdt;
-	struct resource *mem;
 	int ret;
 
 	dw_wdt = devm_kzalloc(dev, sizeof(*dw_wdt), GFP_KERNEL);
 	if (!dw_wdt)
 		return -ENOMEM;
 
-	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	dw_wdt->regs = devm_ioremap_resource(dev, mem);
+	dw_wdt->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(dw_wdt->regs))
 		return PTR_ERR(dw_wdt->regs);
 
diff --git a/drivers/watchdog/ep93xx_wdt.c b/drivers/watchdog/ep93xx_wdt.c
index f9b14e6efd9a..1e721c2f9eac 100644
--- a/drivers/watchdog/ep93xx_wdt.c
+++ b/drivers/watchdog/ep93xx_wdt.c
@@ -91,7 +91,6 @@ static int ep93xx_wdt_probe(struct platform_device *pdev)
 {
 	struct ep93xx_wdt_priv *priv;
 	struct watchdog_device *wdd;
-	struct resource *res;
 	unsigned long val;
 	int ret;
 
@@ -99,8 +98,7 @@ static int ep93xx_wdt_probe(struct platform_device *pdev)
 	if (!priv)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	priv->mmio = devm_ioremap_resource(&pdev->dev, res);
+	priv->mmio = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(priv->mmio))
 		return PTR_ERR(priv->mmio);
 
diff --git a/drivers/watchdog/ftwdt010_wdt.c b/drivers/watchdog/ftwdt010_wdt.c
index a9c2912ee280..ecb32c42e839 100644
--- a/drivers/watchdog/ftwdt010_wdt.c
+++ b/drivers/watchdog/ftwdt010_wdt.c
@@ -124,7 +124,6 @@ static const struct watchdog_info ftwdt010_wdt_info = {
 static int ftwdt010_wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
-	struct resource *res;
 	struct ftwdt010_wdt *gwdt;
 	unsigned int reg;
 	int irq;
@@ -134,8 +133,7 @@ static int ftwdt010_wdt_probe(struct platform_device *pdev)
 	if (!gwdt)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	gwdt->base = devm_ioremap_resource(dev, res);
+	gwdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(gwdt->base))
 		return PTR_ERR(gwdt->base);
 
diff --git a/drivers/watchdog/imgpdc_wdt.c b/drivers/watchdog/imgpdc_wdt.c
index a3134ffa59f8..84c9fb905072 100644
--- a/drivers/watchdog/imgpdc_wdt.c
+++ b/drivers/watchdog/imgpdc_wdt.c
@@ -183,15 +183,13 @@ static int pdc_wdt_probe(struct platform_device *pdev)
 	u64 div;
 	int ret, val;
 	unsigned long clk_rate;
-	struct resource *res;
 	struct pdc_wdt_dev *pdc_wdt;
 
 	pdc_wdt = devm_kzalloc(&pdev->dev, sizeof(*pdc_wdt), GFP_KERNEL);
 	if (!pdc_wdt)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	pdc_wdt->base = devm_ioremap_resource(&pdev->dev, res);
+	pdc_wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(pdc_wdt->base))
 		return PTR_ERR(pdc_wdt->base);
 
diff --git a/drivers/watchdog/jz4740_wdt.c b/drivers/watchdog/jz4740_wdt.c
index ec4d99a830ba..aa9d3523addd 100644
--- a/drivers/watchdog/jz4740_wdt.c
+++ b/drivers/watchdog/jz4740_wdt.c
@@ -165,7 +165,6 @@ static int jz4740_wdt_probe(struct platform_device *pdev)
 {
 	struct jz4740_wdt_drvdata *drvdata;
 	struct watchdog_device *jz4740_wdt;
-	struct resource	*res;
 	int ret;
 
 	drvdata = devm_kzalloc(&pdev->dev, sizeof(struct jz4740_wdt_drvdata),
@@ -186,8 +185,7 @@ static int jz4740_wdt_probe(struct platform_device *pdev)
 	watchdog_set_nowayout(jz4740_wdt, nowayout);
 	watchdog_set_drvdata(jz4740_wdt, drvdata);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	drvdata->base = devm_ioremap_resource(&pdev->dev, res);
+	drvdata->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(drvdata->base))
 		return PTR_ERR(drvdata->base);
 
diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c
index 83da84d6074b..4caf02ba5d49 100644
--- a/drivers/watchdog/lantiq_wdt.c
+++ b/drivers/watchdog/lantiq_wdt.c
@@ -203,7 +203,6 @@ static int ltq_wdt_probe(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	struct ltq_wdt_priv *priv;
 	struct watchdog_device *wdt;
-	struct resource *res;
 	struct clk *clk;
 	const struct ltq_wdt_hw *ltq_wdt_hw;
 	int ret;
@@ -213,8 +212,7 @@ static int ltq_wdt_probe(struct platform_device *pdev)
 	if (!priv)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	priv->membase = devm_ioremap_resource(dev, res);
+	priv->membase = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(priv->membase))
 		return PTR_ERR(priv->membase);
 
diff --git a/drivers/watchdog/loongson1_wdt.c b/drivers/watchdog/loongson1_wdt.c
index 3aee50c64a36..1119634b5c87 100644
--- a/drivers/watchdog/loongson1_wdt.c
+++ b/drivers/watchdog/loongson1_wdt.c
@@ -88,15 +88,13 @@ static int ls1x_wdt_probe(struct platform_device *pdev)
 	struct ls1x_wdt_drvdata *drvdata;
 	struct watchdog_device *ls1x_wdt;
 	unsigned long clk_rate;
-	struct resource *res;
 	int err;
 
 	drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
 	if (!drvdata)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	drvdata->base = devm_ioremap_resource(&pdev->dev, res);
+	drvdata->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(drvdata->base))
 		return PTR_ERR(drvdata->base);
 
diff --git a/drivers/watchdog/lpc18xx_wdt.c b/drivers/watchdog/lpc18xx_wdt.c
index 331cadb459ac..f6f66634cedf 100644
--- a/drivers/watchdog/lpc18xx_wdt.c
+++ b/drivers/watchdog/lpc18xx_wdt.c
@@ -204,15 +204,13 @@ static int lpc18xx_wdt_probe(struct platform_device *pdev)
 {
 	struct lpc18xx_wdt_dev *lpc18xx_wdt;
 	struct device *dev = &pdev->dev;
-	struct resource *res;
 	int ret;
 
 	lpc18xx_wdt = devm_kzalloc(dev, sizeof(*lpc18xx_wdt), GFP_KERNEL);
 	if (!lpc18xx_wdt)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	lpc18xx_wdt->base = devm_ioremap_resource(dev, res);
+	lpc18xx_wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(lpc18xx_wdt->base))
 		return PTR_ERR(lpc18xx_wdt->base);
 
diff --git a/drivers/watchdog/max63xx_wdt.c b/drivers/watchdog/max63xx_wdt.c
index bf6a068245ba..5aaf13e5115a 100644
--- a/drivers/watchdog/max63xx_wdt.c
+++ b/drivers/watchdog/max63xx_wdt.c
@@ -187,9 +187,7 @@ static void max63xx_mmap_set(struct max63xx_wdt *wdt, u8 set)
 
 static int max63xx_mmap_init(struct platform_device *p, struct max63xx_wdt *wdt)
 {
-	struct resource *mem = platform_get_resource(p, IORESOURCE_MEM, 0);
-
-	wdt->base = devm_ioremap_resource(&p->dev, mem);
+	wdt->base = devm_platform_ioremap_resource(p, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/meson_gxbb_wdt.c b/drivers/watchdog/meson_gxbb_wdt.c
index 69adeab3fde7..a8ed75cc9a6e 100644
--- a/drivers/watchdog/meson_gxbb_wdt.c
+++ b/drivers/watchdog/meson_gxbb_wdt.c
@@ -139,15 +139,13 @@ MODULE_DEVICE_TABLE(of, meson_gxbb_wdt_dt_ids);
 static int meson_gxbb_wdt_probe(struct platform_device *pdev)
 {
 	struct meson_gxbb_wdt *data;
-	struct resource *res;
 	int ret;
 
 	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
 	if (!data)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	data->reg_base = devm_ioremap_resource(&pdev->dev, res);
+	data->reg_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(data->reg_base))
 		return PTR_ERR(data->reg_base);
 
diff --git a/drivers/watchdog/meson_wdt.c b/drivers/watchdog/meson_wdt.c
index cd0275a6cdac..7fc6acb33c7f 100644
--- a/drivers/watchdog/meson_wdt.c
+++ b/drivers/watchdog/meson_wdt.c
@@ -164,7 +164,6 @@ MODULE_DEVICE_TABLE(of, meson_wdt_dt_ids);
 
 static int meson_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
 	struct meson_wdt_dev *meson_wdt;
 	const struct of_device_id *of_id;
 	int err;
@@ -173,8 +172,7 @@ static int meson_wdt_probe(struct platform_device *pdev)
 	if (!meson_wdt)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	meson_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
+	meson_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(meson_wdt->wdt_base))
 		return PTR_ERR(meson_wdt->wdt_base);
 
diff --git a/drivers/watchdog/moxart_wdt.c b/drivers/watchdog/moxart_wdt.c
index 430c3ab84c07..740215a247fc 100644
--- a/drivers/watchdog/moxart_wdt.c
+++ b/drivers/watchdog/moxart_wdt.c
@@ -92,7 +92,6 @@ static int moxart_wdt_probe(struct platform_device *pdev)
 	struct moxart_wdt_dev *moxart_wdt;
 	struct device *dev = &pdev->dev;
 	struct device_node *node = dev->of_node;
-	struct resource *res;
 	struct clk *clk;
 	int err;
 	unsigned int max_timeout;
@@ -104,8 +103,7 @@ static int moxart_wdt_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, moxart_wdt);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	moxart_wdt->base = devm_ioremap_resource(dev, res);
+	moxart_wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(moxart_wdt->base))
 		return PTR_ERR(moxart_wdt->base);
 
diff --git a/drivers/watchdog/mpc8xxx_wdt.c b/drivers/watchdog/mpc8xxx_wdt.c
index 069072e6747d..3b5b446b690c 100644
--- a/drivers/watchdog/mpc8xxx_wdt.c
+++ b/drivers/watchdog/mpc8xxx_wdt.c
@@ -149,8 +149,7 @@ static int mpc8xxx_wdt_probe(struct platform_device *ofdev)
 	if (!ddata)
 		return -ENOMEM;
 
-	res = platform_get_resource(ofdev, IORESOURCE_MEM, 0);
-	ddata->base = devm_ioremap_resource(dev, res);
+	ddata->base = devm_platform_ioremap_resource(ofdev, 0);
 	if (IS_ERR(ddata->base))
 		return PTR_ERR(ddata->base);
 
diff --git a/drivers/watchdog/mt7621_wdt.c b/drivers/watchdog/mt7621_wdt.c
index 81208cd3f4ec..9c943f1d57ec 100644
--- a/drivers/watchdog/mt7621_wdt.c
+++ b/drivers/watchdog/mt7621_wdt.c
@@ -133,10 +133,7 @@ static struct watchdog_device mt7621_wdt_dev = {
 
 static int mt7621_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
-
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	mt7621_wdt_base = devm_ioremap_resource(&pdev->dev, res);
+	mt7621_wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(mt7621_wdt_base))
 		return PTR_ERR(mt7621_wdt_base);
 
diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c
index 4baf64f21aa1..113a48d54058 100644
--- a/drivers/watchdog/mtk_wdt.c
+++ b/drivers/watchdog/mtk_wdt.c
@@ -154,7 +154,6 @@ static const struct watchdog_ops mtk_wdt_ops = {
 static int mtk_wdt_probe(struct platform_device *pdev)
 {
 	struct mtk_wdt_dev *mtk_wdt;
-	struct resource *res;
 	int err;
 
 	mtk_wdt = devm_kzalloc(&pdev->dev, sizeof(*mtk_wdt), GFP_KERNEL);
@@ -163,8 +162,7 @@ static int mtk_wdt_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, mtk_wdt);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	mtk_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
+	mtk_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(mtk_wdt->wdt_base))
 		return PTR_ERR(mtk_wdt->wdt_base);
 
diff --git a/drivers/watchdog/npcm_wdt.c b/drivers/watchdog/npcm_wdt.c
index 0d4213652ecc..4fce10c145c2 100644
--- a/drivers/watchdog/npcm_wdt.c
+++ b/drivers/watchdog/npcm_wdt.c
@@ -181,7 +181,6 @@ static int npcm_wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct npcm_wdt *wdt;
-	struct resource *res;
 	int irq;
 	int ret;
 
@@ -189,8 +188,7 @@ static int npcm_wdt_probe(struct platform_device *pdev)
 	if (!wdt)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->reg = devm_ioremap_resource(dev, res);
+	wdt->reg = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->reg))
 		return PTR_ERR(wdt->reg);
 
diff --git a/drivers/watchdog/nuc900_wdt.c b/drivers/watchdog/nuc900_wdt.c
index 830bd04ff911..74e99eac90b9 100644
--- a/drivers/watchdog/nuc900_wdt.c
+++ b/drivers/watchdog/nuc900_wdt.c
@@ -242,7 +242,6 @@ static struct miscdevice nuc900wdt_miscdev = {
 
 static int nuc900wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
 	int ret = 0;
 
 	nuc900_wdt = devm_kzalloc(&pdev->dev, sizeof(*nuc900_wdt),
@@ -254,8 +253,7 @@ static int nuc900wdt_probe(struct platform_device *pdev)
 
 	spin_lock_init(&nuc900_wdt->wdt_lock);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	nuc900_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
+	nuc900_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(nuc900_wdt->wdt_base))
 		return PTR_ERR(nuc900_wdt->wdt_base);
 
diff --git a/drivers/watchdog/of_xilinx_wdt.c b/drivers/watchdog/of_xilinx_wdt.c
index d3f7eb046678..5c977164b3e5 100644
--- a/drivers/watchdog/of_xilinx_wdt.c
+++ b/drivers/watchdog/of_xilinx_wdt.c
@@ -155,7 +155,6 @@ static int xwdt_probe(struct platform_device *pdev)
 {
 	int rc;
 	u32 pfreq = 0, enable_once = 0;
-	struct resource *res;
 	struct xwdt_device *xdev;
 	struct watchdog_device *xilinx_wdt_wdd;
 
@@ -168,8 +167,7 @@ static int xwdt_probe(struct platform_device *pdev)
 	xilinx_wdt_wdd->ops = &xilinx_wdt_ops;
 	xilinx_wdt_wdd->parent = &pdev->dev;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	xdev->base = devm_ioremap_resource(&pdev->dev, res);
+	xdev->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(xdev->base))
 		return PTR_ERR(xdev->base);
 
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
index cbd752f9ac56..d49688d93f6a 100644
--- a/drivers/watchdog/omap_wdt.c
+++ b/drivers/watchdog/omap_wdt.c
@@ -231,7 +231,6 @@ static const struct watchdog_ops omap_wdt_ops = {
 static int omap_wdt_probe(struct platform_device *pdev)
 {
 	struct omap_wd_timer_platform_data *pdata = dev_get_platdata(&pdev->dev);
-	struct resource *res;
 	struct omap_wdt_dev *wdev;
 	int ret;
 
@@ -245,8 +244,7 @@ static int omap_wdt_probe(struct platform_device *pdev)
 	mutex_init(&wdev->lock);
 
 	/* reserve static register mappings */
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdev->base = devm_ioremap_resource(&pdev->dev, res);
+	wdev->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdev->base))
 		return PTR_ERR(wdev->base);
 
diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c
index 8b259c712c52..cdb0d174c5e2 100644
--- a/drivers/watchdog/orion_wdt.c
+++ b/drivers/watchdog/orion_wdt.c
@@ -494,8 +494,7 @@ static int orion_wdt_get_regs(struct platform_device *pdev,
 		   of_device_is_compatible(node, "marvell,armada-xp-wdt")) {
 
 		/* Dedicated RSTOUT register, can be requested. */
-		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-		dev->rstout = devm_ioremap_resource(&pdev->dev, res);
+		dev->rstout = devm_platform_ioremap_resource(pdev, 1);
 		if (IS_ERR(dev->rstout))
 			return PTR_ERR(dev->rstout);
 
@@ -503,8 +502,7 @@ static int orion_wdt_get_regs(struct platform_device *pdev,
 		   of_device_is_compatible(node, "marvell,armada-380-wdt")) {
 
 		/* Dedicated RSTOUT register, can be requested. */
-		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-		dev->rstout = devm_ioremap_resource(&pdev->dev, res);
+		dev->rstout = devm_platform_ioremap_resource(pdev, 1);
 		if (IS_ERR(dev->rstout))
 			return PTR_ERR(dev->rstout);
 
diff --git a/drivers/watchdog/pic32-dmt.c b/drivers/watchdog/pic32-dmt.c
index c797305f8338..052751c224fd 100644
--- a/drivers/watchdog/pic32-dmt.c
+++ b/drivers/watchdog/pic32-dmt.c
@@ -172,15 +172,13 @@ static int pic32_dmt_probe(struct platform_device *pdev)
 {
 	int ret;
 	struct pic32_dmt *dmt;
-	struct resource *mem;
 	struct watchdog_device *wdd = &pic32_dmt_wdd;
 
 	dmt = devm_kzalloc(&pdev->dev, sizeof(*dmt), GFP_KERNEL);
 	if (!dmt)
 		return -ENOMEM;
 
-	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	dmt->regs = devm_ioremap_resource(&pdev->dev, mem);
+	dmt->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(dmt->regs))
 		return PTR_ERR(dmt->regs);
 
diff --git a/drivers/watchdog/pic32-wdt.c b/drivers/watchdog/pic32-wdt.c
index e2761068dc6f..455ec38363a6 100644
--- a/drivers/watchdog/pic32-wdt.c
+++ b/drivers/watchdog/pic32-wdt.c
@@ -171,14 +171,12 @@ static int pic32_wdt_drv_probe(struct platform_device *pdev)
 	int ret;
 	struct watchdog_device *wdd = &pic32_wdd;
 	struct pic32_wdt *wdt;
-	struct resource *mem;
 
 	wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL);
 	if (!wdt)
 		return -ENOMEM;
 
-	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->regs = devm_ioremap_resource(&pdev->dev, mem);
+	wdt->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->regs))
 		return PTR_ERR(wdt->regs);
 
diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
index 8e261799c84e..24c266a9e1dc 100644
--- a/drivers/watchdog/pnx4008_wdt.c
+++ b/drivers/watchdog/pnx4008_wdt.c
@@ -185,13 +185,11 @@ static struct watchdog_device pnx4008_wdd = {
 
 static int pnx4008_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *r;
 	int ret = 0;
 
 	watchdog_init_timeout(&pnx4008_wdd, heartbeat, &pdev->dev);
 
-	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt_base = devm_ioremap_resource(&pdev->dev, r);
+	wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt_base))
 		return PTR_ERR(wdt_base);
 
diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c
index 622ede529912..5b3186492087 100644
--- a/drivers/watchdog/renesas_wdt.c
+++ b/drivers/watchdog/renesas_wdt.c
@@ -177,7 +177,6 @@ static inline bool rwdt_blacklisted(struct device *dev) { return false; }
 static int rwdt_probe(struct platform_device *pdev)
 {
 	struct rwdt_priv *priv;
-	struct resource *res;
 	struct clk *clk;
 	unsigned long clks_per_sec;
 	int ret, i;
@@ -189,8 +188,7 @@ static int rwdt_probe(struct platform_device *pdev)
 	if (!priv)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	priv->base = devm_ioremap_resource(&pdev->dev, res);
+	priv->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(priv->base))
 		return PTR_ERR(priv->base);
 
diff --git a/drivers/watchdog/rt2880_wdt.c b/drivers/watchdog/rt2880_wdt.c
index db7c57d82cfd..4adf5f39fdd9 100644
--- a/drivers/watchdog/rt2880_wdt.c
+++ b/drivers/watchdog/rt2880_wdt.c
@@ -141,11 +141,9 @@ static struct watchdog_device rt288x_wdt_dev = {
 
 static int rt288x_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
 	int ret;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	rt288x_wdt_base = devm_ioremap_resource(&pdev->dev, res);
+	rt288x_wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(rt288x_wdt_base))
 		return PTR_ERR(rt288x_wdt_base);
 
diff --git a/drivers/watchdog/rtd119x_wdt.c b/drivers/watchdog/rtd119x_wdt.c
index d001c17ddfde..d823c9def36f 100644
--- a/drivers/watchdog/rtd119x_wdt.c
+++ b/drivers/watchdog/rtd119x_wdt.c
@@ -98,15 +98,13 @@ static const struct of_device_id rtd119x_wdt_dt_ids[] = {
 static int rtd119x_wdt_probe(struct platform_device *pdev)
 {
 	struct rtd119x_watchdog_device *data;
-	struct resource *res;
 	int ret;
 
 	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
 	if (!data)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	data->base = devm_ioremap_resource(&pdev->dev, res);
+	data->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(data->base))
 		return PTR_ERR(data->base);
 
diff --git a/drivers/watchdog/rza_wdt.c b/drivers/watchdog/rza_wdt.c
index 781bb572e6af..b854f0aeb3ef 100644
--- a/drivers/watchdog/rza_wdt.c
+++ b/drivers/watchdog/rza_wdt.c
@@ -167,7 +167,6 @@ static const struct watchdog_ops rza_wdt_ops = {
 static int rza_wdt_probe(struct platform_device *pdev)
 {
 	struct rza_wdt *priv;
-	struct resource *res;
 	unsigned long rate;
 	int ret;
 
@@ -175,8 +174,7 @@ static int rza_wdt_probe(struct platform_device *pdev)
 	if (!priv)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	priv->base = devm_ioremap_resource(&pdev->dev, res);
+	priv->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(priv->base))
 		return PTR_ERR(priv->base);
 
diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
index adaa43543f0a..4267b9e8734b 100644
--- a/drivers/watchdog/s3c2410_wdt.c
+++ b/drivers/watchdog/s3c2410_wdt.c
@@ -522,7 +522,6 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct s3c2410_wdt *wdt;
-	struct resource *wdt_mem;
 	struct resource *wdt_irq;
 	unsigned int wtcon;
 	int started = 0;
@@ -554,8 +553,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
 	}
 
 	/* get the memory region for the watchdog timer */
-	wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->reg_base = devm_ioremap_resource(dev, wdt_mem);
+	wdt->reg_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->reg_base)) {
 		ret = PTR_ERR(wdt->reg_base);
 		goto err;
diff --git a/drivers/watchdog/sama5d4_wdt.c b/drivers/watchdog/sama5d4_wdt.c
index 1e93c1b0e3cf..ea72fa0aa3ec 100644
--- a/drivers/watchdog/sama5d4_wdt.c
+++ b/drivers/watchdog/sama5d4_wdt.c
@@ -201,7 +201,6 @@ static int sama5d4_wdt_probe(struct platform_device *pdev)
 {
 	struct watchdog_device *wdd;
 	struct sama5d4_wdt *wdt;
-	struct resource *res;
 	void __iomem *regs;
 	u32 irq = 0;
 	u32 timeout;
@@ -221,8 +220,7 @@ static int sama5d4_wdt_probe(struct platform_device *pdev)
 
 	watchdog_set_drvdata(wdd, wdt);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	regs = devm_ioremap_resource(&pdev->dev, res);
+	regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(regs))
 		return PTR_ERR(regs);
 
diff --git a/drivers/watchdog/sbsa_gwdt.c b/drivers/watchdog/sbsa_gwdt.c
index e8bd9887c566..68aff828bf7e 100644
--- a/drivers/watchdog/sbsa_gwdt.c
+++ b/drivers/watchdog/sbsa_gwdt.c
@@ -231,7 +231,6 @@ static int sbsa_gwdt_probe(struct platform_device *pdev)
 	struct device *dev = &pdev->dev;
 	struct watchdog_device *wdd;
 	struct sbsa_gwdt *gwdt;
-	struct resource *res;
 	int ret, irq;
 	u32 status;
 
@@ -240,13 +239,11 @@ static int sbsa_gwdt_probe(struct platform_device *pdev)
 		return -ENOMEM;
 	platform_set_drvdata(pdev, gwdt);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	cf_base = devm_ioremap_resource(dev, res);
+	cf_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(cf_base))
 		return PTR_ERR(cf_base);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-	rf_base = devm_ioremap_resource(dev, res);
+	rf_base = devm_platform_ioremap_resource(pdev, 1);
 	if (IS_ERR(rf_base))
 		return PTR_ERR(rf_base);
 
diff --git a/drivers/watchdog/shwdt.c b/drivers/watchdog/shwdt.c
index a7d6425db807..e7617b7df70b 100644
--- a/drivers/watchdog/shwdt.c
+++ b/drivers/watchdog/shwdt.c
@@ -220,7 +220,6 @@ static struct watchdog_device sh_wdt_dev = {
 static int sh_wdt_probe(struct platform_device *pdev)
 {
 	struct sh_wdt *wdt;
-	struct resource *res;
 	int rc;
 
 	/*
@@ -245,8 +244,7 @@ static int sh_wdt_probe(struct platform_device *pdev)
 		wdt->clk = NULL;
 	}
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(wdt->dev, res);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/sirfsoc_wdt.c b/drivers/watchdog/sirfsoc_wdt.c
index ac0c9d2c4aee..2559062d35da 100644
--- a/drivers/watchdog/sirfsoc_wdt.c
+++ b/drivers/watchdog/sirfsoc_wdt.c
@@ -146,12 +146,10 @@ static struct watchdog_device sirfsoc_wdd = {
 
 static int sirfsoc_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *res;
 	int ret;
 	void __iomem *base;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	base = devm_ioremap_resource(&pdev->dev, res);
+	base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(base))
 		return PTR_ERR(base);
 
diff --git a/drivers/watchdog/sprd_wdt.c b/drivers/watchdog/sprd_wdt.c
index ff9397d9638a..a63163a93777 100644
--- a/drivers/watchdog/sprd_wdt.c
+++ b/drivers/watchdog/sprd_wdt.c
@@ -269,7 +269,6 @@ static const struct watchdog_info sprd_wdt_info = {
 
 static int sprd_wdt_probe(struct platform_device *pdev)
 {
-	struct resource *wdt_res;
 	struct sprd_wdt *wdt;
 	int ret;
 
@@ -277,8 +276,7 @@ static int sprd_wdt_probe(struct platform_device *pdev)
 	if (!wdt)
 		return -ENOMEM;
 
-	wdt_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->base = devm_ioremap_resource(&pdev->dev, wdt_res);
+	wdt->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->base))
 		return PTR_ERR(wdt->base);
 
diff --git a/drivers/watchdog/st_lpc_wdt.c b/drivers/watchdog/st_lpc_wdt.c
index 177829b379da..196fb4b72c5d 100644
--- a/drivers/watchdog/st_lpc_wdt.c
+++ b/drivers/watchdog/st_lpc_wdt.c
@@ -148,7 +148,6 @@ static int st_wdog_probe(struct platform_device *pdev)
 	struct device_node *np = pdev->dev.of_node;
 	struct st_wdog *st_wdog;
 	struct regmap *regmap;
-	struct resource *res;
 	struct clk *clk;
 	void __iomem *base;
 	uint32_t mode;
@@ -175,8 +174,7 @@ static int st_wdog_probe(struct platform_device *pdev)
 	}
 	st_wdog->syscfg	= (struct st_wdog_syscfg *)match->data;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	base = devm_ioremap_resource(&pdev->dev, res);
+	base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(base))
 		return PTR_ERR(base);
 
diff --git a/drivers/watchdog/stm32_iwdg.c b/drivers/watchdog/stm32_iwdg.c
index e00e3b3526c6..309563e002b8 100644
--- a/drivers/watchdog/stm32_iwdg.c
+++ b/drivers/watchdog/stm32_iwdg.c
@@ -202,7 +202,6 @@ static int stm32_iwdg_probe(struct platform_device *pdev)
 	struct watchdog_device *wdd;
 	const struct of_device_id *match;
 	struct stm32_iwdg *wdt;
-	struct resource *res;
 	int ret;
 
 	match = of_match_device(stm32_iwdg_of_match, &pdev->dev);
@@ -216,8 +215,7 @@ static int stm32_iwdg_probe(struct platform_device *pdev)
 	wdt->has_pclk = match->data;
 
 	/* This is the timer base. */
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->regs = devm_ioremap_resource(&pdev->dev, res);
+	wdt->regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->regs)) {
 		dev_err(&pdev->dev, "Could not get resource\n");
 		return PTR_ERR(wdt->regs);
diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c
index c6c73656997e..f0e7ef40b1e4 100644
--- a/drivers/watchdog/sunxi_wdt.c
+++ b/drivers/watchdog/sunxi_wdt.c
@@ -234,7 +234,6 @@ MODULE_DEVICE_TABLE(of, sunxi_wdt_dt_ids);
 static int sunxi_wdt_probe(struct platform_device *pdev)
 {
 	struct sunxi_wdt_dev *sunxi_wdt;
-	struct resource *res;
 	int err;
 
 	sunxi_wdt = devm_kzalloc(&pdev->dev, sizeof(*sunxi_wdt), GFP_KERNEL);
@@ -245,8 +244,7 @@ static int sunxi_wdt_probe(struct platform_device *pdev)
 	if (!sunxi_wdt->wdt_regs)
 		return -ENODEV;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	sunxi_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
+	sunxi_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(sunxi_wdt->wdt_base))
 		return PTR_ERR(sunxi_wdt->wdt_base);
 
diff --git a/drivers/watchdog/tangox_wdt.c b/drivers/watchdog/tangox_wdt.c
index d0b53f3c0d17..16611fe0d9d1 100644
--- a/drivers/watchdog/tangox_wdt.c
+++ b/drivers/watchdog/tangox_wdt.c
@@ -111,7 +111,6 @@ static const struct watchdog_ops tangox_wdt_ops = {
 static int tangox_wdt_probe(struct platform_device *pdev)
 {
 	struct tangox_wdt_device *dev;
-	struct resource *res;
 	u32 config;
 	int err;
 
@@ -119,8 +118,7 @@ static int tangox_wdt_probe(struct platform_device *pdev)
 	if (!dev)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	dev->base = devm_ioremap_resource(&pdev->dev, res);
+	dev->base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(dev->base))
 		return PTR_ERR(dev->base);
 
diff --git a/drivers/watchdog/tegra_wdt.c b/drivers/watchdog/tegra_wdt.c
index 877dd39bd41f..fc3cf5edf6c7 100644
--- a/drivers/watchdog/tegra_wdt.c
+++ b/drivers/watchdog/tegra_wdt.c
@@ -183,13 +183,11 @@ static int tegra_wdt_probe(struct platform_device *pdev)
 {
 	struct watchdog_device *wdd;
 	struct tegra_wdt *wdt;
-	struct resource *res;
 	void __iomem *regs;
 	int ret;
 
 	/* This is the timer base. */
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	regs = devm_ioremap_resource(&pdev->dev, res);
+	regs = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(regs))
 		return PTR_ERR(regs);
 
diff --git a/drivers/watchdog/ts72xx_wdt.c b/drivers/watchdog/ts72xx_wdt.c
index 811e43c39ec4..3aa11c84dea9 100644
--- a/drivers/watchdog/ts72xx_wdt.c
+++ b/drivers/watchdog/ts72xx_wdt.c
@@ -124,20 +124,17 @@ static int ts72xx_wdt_probe(struct platform_device *pdev)
 {
 	struct ts72xx_wdt_priv *priv;
 	struct watchdog_device *wdd;
-	struct resource *res;
 	int ret;
 
 	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	priv->control_reg = devm_ioremap_resource(&pdev->dev, res);
+	priv->control_reg = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(priv->control_reg))
 		return PTR_ERR(priv->control_reg);
 
-	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-	priv->feed_reg = devm_ioremap_resource(&pdev->dev, res);
+	priv->feed_reg = devm_platform_ioremap_resource(pdev, 1);
 	if (IS_ERR(priv->feed_reg))
 		return PTR_ERR(priv->feed_reg);
 
diff --git a/drivers/watchdog/txx9wdt.c b/drivers/watchdog/txx9wdt.c
index 6f7a9deb27d0..fcb4da5b1f4c 100644
--- a/drivers/watchdog/txx9wdt.c
+++ b/drivers/watchdog/txx9wdt.c
@@ -103,7 +103,6 @@ static struct watchdog_device txx9wdt = {
 
 static int __init txx9wdt_probe(struct platform_device *dev)
 {
-	struct resource *res;
 	int ret;
 
 	txx9_imclk = clk_get(NULL, "imbus_clk");
@@ -119,8 +118,7 @@ static int __init txx9wdt_probe(struct platform_device *dev)
 		goto exit;
 	}
 
-	res = platform_get_resource(dev, IORESOURCE_MEM, 0);
-	txx9wdt_reg = devm_ioremap_resource(&dev->dev, res);
+	txx9wdt_reg = devm_platform_ioremap_resource(dev, 0);
 	if (IS_ERR(txx9wdt_reg)) {
 		ret = PTR_ERR(txx9wdt_reg);
 		goto exit;
diff --git a/drivers/watchdog/zx2967_wdt.c b/drivers/watchdog/zx2967_wdt.c
index 9261f7c77f6d..9ccc83f526f3 100644
--- a/drivers/watchdog/zx2967_wdt.c
+++ b/drivers/watchdog/zx2967_wdt.c
@@ -192,7 +192,6 @@ static int zx2967_wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct zx2967_wdt *wdt;
-	struct resource *base;
 	int ret;
 	struct reset_control *rstc;
 
@@ -209,8 +208,7 @@ static int zx2967_wdt_probe(struct platform_device *pdev)
 	wdt->wdt_device.min_timeout = ZX2967_WDT_MIN_TIMEOUT;
 	wdt->wdt_device.parent = &pdev->dev;
 
-	base = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	wdt->reg_base = devm_ioremap_resource(dev, base);
+	wdt->reg_base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(wdt->reg_base))
 		return PTR_ERR(wdt->reg_base);
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
@ 2019-04-02 21:29 ` Alexandre Belloni
  2019-04-03  0:22 ` Joel Stanley
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Alexandre Belloni @ 2019-04-02 21:29 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Wim Van Sebroeck, linux-watchdog, linux-kernel, Joel Stanley,
	Nicolas Ferre, Florian Fainelli, Linus Walleij, Baruch Siach,
	Keguang Zhang, Vladimir Zapolskiy, Kevin Hilman,
	Matthias Brugger, Avi Fishman, Nancy Yuen, Brendan Higgins,
	Wan ZongShun, Michal Simek, Sylvain Lemieux, Kukjin Kim,
	Barry Song, Orson Zhai, Patrice Chotard, Maxime Coquelin,
	Maxime Ripard, Chen-Yu Tsai, Marc Gonzalez, Thierry Reding,
	Shawn Guo

On 02/04/2019 12:01:53-0700, Guenter Roeck wrote:
> Use devm_platform_ioremap_resource to reduce source code size,
> improve readability, and reduce the likelyhood of bugs.
> 
> The conversion was done automatically with coccinelle using the
> following semantic patch.
> 
> @r@
> identifier res, pdev;
> expression a;
> expression index;
> expression e;
> @@
> 
> <+...
> - res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(e, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> ...+>
> 
> @depends on r@
> identifier r.res;
> @@
> - struct resource *res;
>   ... when != res
> 
> @@
> identifier res, pdev;
> expression index;
> expression a;
> @@
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(&pdev->dev, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> 
> Cc: Joel Stanley <joel@jms.id.au>
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Baruch Siach <baruch@tkos.co.il>
> Cc: Keguang Zhang <keguang.zhang@gmail.com>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Avi Fishman <avifishman70@gmail.com>
> Cc: Nancy Yuen <yuenn@google.com>
> Cc: Brendan Higgins <brendanhiggins@google.com>
> Cc: Wan ZongShun <mcuos.com@gmail.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Sylvain Lemieux <slemieux.tyco@gmail.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Barry Song <baohua@kernel.org>
> Cc: Orson Zhai <orsonzhai@gmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Marc Gonzalez <marc.w.gonzalez@free.fr>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>

For at91sam9_wdt.c and sama5d4_wdt.c:
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Tested-by: Alexandre Belloni <alexandre.belloni@bootlin.com>

> ---
>  drivers/watchdog/asm9260_wdt.c    | 4 +---
>  drivers/watchdog/aspeed_wdt.c     | 4 +---
>  drivers/watchdog/at91sam9_wdt.c   | 4 +---
>  drivers/watchdog/ath79_wdt.c      | 4 +---
>  drivers/watchdog/atlas7_wdt.c     | 4 +---
>  drivers/watchdog/bcm7038_wdt.c    | 4 +---
>  drivers/watchdog/bcm_kona_wdt.c   | 4 +---
>  drivers/watchdog/cadence_wdt.c    | 4 +---
>  drivers/watchdog/coh901327_wdt.c  | 4 +---
>  drivers/watchdog/davinci_wdt.c    | 4 +---
>  drivers/watchdog/digicolor_wdt.c  | 4 +---
>  drivers/watchdog/dw_wdt.c         | 4 +---
>  drivers/watchdog/ep93xx_wdt.c     | 4 +---
>  drivers/watchdog/ftwdt010_wdt.c   | 4 +---
>  drivers/watchdog/imgpdc_wdt.c     | 4 +---
>  drivers/watchdog/jz4740_wdt.c     | 4 +---
>  drivers/watchdog/lantiq_wdt.c     | 4 +---
>  drivers/watchdog/loongson1_wdt.c  | 4 +---
>  drivers/watchdog/lpc18xx_wdt.c    | 4 +---
>  drivers/watchdog/max63xx_wdt.c    | 4 +---
>  drivers/watchdog/meson_gxbb_wdt.c | 4 +---
>  drivers/watchdog/meson_wdt.c      | 4 +---
>  drivers/watchdog/moxart_wdt.c     | 4 +---
>  drivers/watchdog/mpc8xxx_wdt.c    | 3 +--
>  drivers/watchdog/mt7621_wdt.c     | 5 +----
>  drivers/watchdog/mtk_wdt.c        | 4 +---
>  drivers/watchdog/npcm_wdt.c       | 4 +---
>  drivers/watchdog/nuc900_wdt.c     | 4 +---
>  drivers/watchdog/of_xilinx_wdt.c  | 4 +---
>  drivers/watchdog/omap_wdt.c       | 4 +---
>  drivers/watchdog/orion_wdt.c      | 6 ++----
>  drivers/watchdog/pic32-dmt.c      | 4 +---
>  drivers/watchdog/pic32-wdt.c      | 4 +---
>  drivers/watchdog/pnx4008_wdt.c    | 4 +---
>  drivers/watchdog/renesas_wdt.c    | 4 +---
>  drivers/watchdog/rt2880_wdt.c     | 4 +---
>  drivers/watchdog/rtd119x_wdt.c    | 4 +---
>  drivers/watchdog/rza_wdt.c        | 4 +---
>  drivers/watchdog/s3c2410_wdt.c    | 4 +---
>  drivers/watchdog/sama5d4_wdt.c    | 4 +---
>  drivers/watchdog/sbsa_gwdt.c      | 7 ++-----
>  drivers/watchdog/shwdt.c          | 4 +---
>  drivers/watchdog/sirfsoc_wdt.c    | 4 +---
>  drivers/watchdog/sprd_wdt.c       | 4 +---
>  drivers/watchdog/st_lpc_wdt.c     | 4 +---
>  drivers/watchdog/stm32_iwdg.c     | 4 +---
>  drivers/watchdog/sunxi_wdt.c      | 4 +---
>  drivers/watchdog/tangox_wdt.c     | 4 +---
>  drivers/watchdog/tegra_wdt.c      | 4 +---
>  drivers/watchdog/ts72xx_wdt.c     | 7 ++-----
>  drivers/watchdog/txx9wdt.c        | 4 +---
>  drivers/watchdog/zx2967_wdt.c     | 4 +---
>  52 files changed, 55 insertions(+), 161 deletions(-)
> 
> diff --git a/drivers/watchdog/asm9260_wdt.c b/drivers/watchdog/asm9260_wdt.c
> index 9768e44ffeb8..1de272bb2070 100644
> --- a/drivers/watchdog/asm9260_wdt.c
> +++ b/drivers/watchdog/asm9260_wdt.c
> @@ -276,7 +276,6 @@ static int asm9260_wdt_probe(struct platform_device *pdev)
>  {
>  	struct asm9260_wdt_priv *priv;
>  	struct watchdog_device *wdd;
> -	struct resource *res;
>  	int ret;
>  	static const char * const mode_name[] = { "hw", "sw", "debug", };
>  
> @@ -287,8 +286,7 @@ static int asm9260_wdt_probe(struct platform_device *pdev)
>  
>  	priv->dev = &pdev->dev;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	priv->iobase = devm_ioremap_resource(&pdev->dev, res);
> +	priv->iobase = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(priv->iobase))
>  		return PTR_ERR(priv->iobase);
>  
> diff --git a/drivers/watchdog/aspeed_wdt.c b/drivers/watchdog/aspeed_wdt.c
> index 1abe4d021fd2..f09333fd54b4 100644
> --- a/drivers/watchdog/aspeed_wdt.c
> +++ b/drivers/watchdog/aspeed_wdt.c
> @@ -190,7 +190,6 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
>  	const struct aspeed_wdt_config *config;
>  	const struct of_device_id *ofdid;
>  	struct aspeed_wdt *wdt;
> -	struct resource *res;
>  	struct device_node *np;
>  	const char *reset_type;
>  	u32 duration;
> @@ -201,8 +200,7 @@ static int aspeed_wdt_probe(struct platform_device *pdev)
>  	if (!wdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(&pdev->dev, res);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c
> index f4050a229eb5..292b5a1ca831 100644
> --- a/drivers/watchdog/at91sam9_wdt.c
> +++ b/drivers/watchdog/at91sam9_wdt.c
> @@ -327,7 +327,6 @@ static inline int of_at91wdt_init(struct device_node *np, struct at91wdt *wdt)
>  
>  static int __init at91wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource	*r;
>  	int err;
>  	struct at91wdt *wdt;
>  
> @@ -346,8 +345,7 @@ static int __init at91wdt_probe(struct platform_device *pdev)
>  	wdt->wdd.min_timeout = 1;
>  	wdt->wdd.max_timeout = 0xFFFF;
>  
> -	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(&pdev->dev, r);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/ath79_wdt.c b/drivers/watchdog/ath79_wdt.c
> index e2209bf5fa8a..5d66c8ec9a7d 100644
> --- a/drivers/watchdog/ath79_wdt.c
> +++ b/drivers/watchdog/ath79_wdt.c
> @@ -250,15 +250,13 @@ static struct miscdevice ath79_wdt_miscdev = {
>  
>  static int ath79_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
>  	u32 ctrl;
>  	int err;
>  
>  	if (wdt_base)
>  		return -EBUSY;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt_base = devm_ioremap_resource(&pdev->dev, res);
> +	wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt_base))
>  		return PTR_ERR(wdt_base);
>  
> diff --git a/drivers/watchdog/atlas7_wdt.c b/drivers/watchdog/atlas7_wdt.c
> index 4abdcabd8219..e170933aa0a8 100644
> --- a/drivers/watchdog/atlas7_wdt.c
> +++ b/drivers/watchdog/atlas7_wdt.c
> @@ -129,15 +129,13 @@ static int atlas7_wdt_probe(struct platform_device *pdev)
>  {
>  	struct device_node *np = pdev->dev.of_node;
>  	struct atlas7_wdog *wdt;
> -	struct resource *res;
>  	struct clk *clk;
>  	int ret;
>  
>  	wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL);
>  	if (!wdt)
>  		return -ENOMEM;
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(&pdev->dev, res);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/bcm7038_wdt.c b/drivers/watchdog/bcm7038_wdt.c
> index ce3f646e8077..71fca45eab5d 100644
> --- a/drivers/watchdog/bcm7038_wdt.c
> +++ b/drivers/watchdog/bcm7038_wdt.c
> @@ -111,7 +111,6 @@ static int bcm7038_wdt_probe(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;
>  	struct bcm7038_watchdog *wdt;
> -	struct resource *res;
>  	int err;
>  
>  	wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
> @@ -120,8 +119,7 @@ static int bcm7038_wdt_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, wdt);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(dev, res);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/bcm_kona_wdt.c b/drivers/watchdog/bcm_kona_wdt.c
> index 4249b47902bd..d52334ab0805 100644
> --- a/drivers/watchdog/bcm_kona_wdt.c
> +++ b/drivers/watchdog/bcm_kona_wdt.c
> @@ -280,7 +280,6 @@ static int bcm_kona_wdt_probe(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;
>  	struct bcm_kona_wdt *wdt;
> -	struct resource *res;
>  	int ret;
>  
>  	wdt = devm_kzalloc(dev, sizeof(*wdt), GFP_KERNEL);
> @@ -289,8 +288,7 @@ static int bcm_kona_wdt_probe(struct platform_device *pdev)
>  
>  	spin_lock_init(&wdt->lock);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(dev, res);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return -ENODEV;
>  
> diff --git a/drivers/watchdog/cadence_wdt.c b/drivers/watchdog/cadence_wdt.c
> index c3924356d173..5986f18f97e2 100644
> --- a/drivers/watchdog/cadence_wdt.c
> +++ b/drivers/watchdog/cadence_wdt.c
> @@ -285,7 +285,6 @@ static const struct watchdog_ops cdns_wdt_ops = {
>   */
>  static int cdns_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
>  	int ret, irq;
>  	unsigned long clock_f;
>  	struct cdns_wdt *wdt;
> @@ -302,8 +301,7 @@ static int cdns_wdt_probe(struct platform_device *pdev)
>  	cdns_wdt_device->min_timeout = CDNS_WDT_MIN_TIMEOUT;
>  	cdns_wdt_device->max_timeout = CDNS_WDT_MAX_TIMEOUT;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->regs = devm_ioremap_resource(&pdev->dev, res);
> +	wdt->regs = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->regs))
>  		return PTR_ERR(wdt->regs);
>  
> diff --git a/drivers/watchdog/coh901327_wdt.c b/drivers/watchdog/coh901327_wdt.c
> index f29d1edc5bad..3c4eaa0d1178 100644
> --- a/drivers/watchdog/coh901327_wdt.c
> +++ b/drivers/watchdog/coh901327_wdt.c
> @@ -258,12 +258,10 @@ static int __init coh901327_probe(struct platform_device *pdev)
>  	struct device *dev = &pdev->dev;
>  	int ret;
>  	u16 val;
> -	struct resource *res;
>  
>  	parent = dev;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	virtbase = devm_ioremap_resource(dev, res);
> +	virtbase = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(virtbase))
>  		return PTR_ERR(virtbase);
>  
> diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c
> index ebb85d60b6d5..7daa15df74a5 100644
> --- a/drivers/watchdog/davinci_wdt.c
> +++ b/drivers/watchdog/davinci_wdt.c
> @@ -195,7 +195,6 @@ static int davinci_wdt_probe(struct platform_device *pdev)
>  {
>  	int ret = 0;
>  	struct device *dev = &pdev->dev;
> -	struct resource  *wdt_mem;
>  	struct watchdog_device *wdd;
>  	struct davinci_wdt_device *davinci_wdt;
>  
> @@ -235,8 +234,7 @@ static int davinci_wdt_probe(struct platform_device *pdev)
>  	watchdog_set_nowayout(wdd, 1);
>  	watchdog_set_restart_priority(wdd, 128);
>  
> -	wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	davinci_wdt->base = devm_ioremap_resource(dev, wdt_mem);
> +	davinci_wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(davinci_wdt->base)) {
>  		ret = PTR_ERR(davinci_wdt->base);
>  		goto err_clk_disable;
> diff --git a/drivers/watchdog/digicolor_wdt.c b/drivers/watchdog/digicolor_wdt.c
> index a9e11df155b8..8af6e9a67d0d 100644
> --- a/drivers/watchdog/digicolor_wdt.c
> +++ b/drivers/watchdog/digicolor_wdt.c
> @@ -116,7 +116,6 @@ static struct watchdog_device dc_wdt_wdd = {
>  
>  static int dc_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
>  	struct device *dev = &pdev->dev;
>  	struct dc_wdt *wdt;
>  	int ret;
> @@ -125,8 +124,7 @@ static int dc_wdt_probe(struct platform_device *pdev)
>  	if (!wdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(dev, res);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
> index aa95f57cc1c3..39e43750ab08 100644
> --- a/drivers/watchdog/dw_wdt.c
> +++ b/drivers/watchdog/dw_wdt.c
> @@ -238,15 +238,13 @@ static int dw_wdt_drv_probe(struct platform_device *pdev)
>  	struct device *dev = &pdev->dev;
>  	struct watchdog_device *wdd;
>  	struct dw_wdt *dw_wdt;
> -	struct resource *mem;
>  	int ret;
>  
>  	dw_wdt = devm_kzalloc(dev, sizeof(*dw_wdt), GFP_KERNEL);
>  	if (!dw_wdt)
>  		return -ENOMEM;
>  
> -	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	dw_wdt->regs = devm_ioremap_resource(dev, mem);
> +	dw_wdt->regs = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(dw_wdt->regs))
>  		return PTR_ERR(dw_wdt->regs);
>  
> diff --git a/drivers/watchdog/ep93xx_wdt.c b/drivers/watchdog/ep93xx_wdt.c
> index f9b14e6efd9a..1e721c2f9eac 100644
> --- a/drivers/watchdog/ep93xx_wdt.c
> +++ b/drivers/watchdog/ep93xx_wdt.c
> @@ -91,7 +91,6 @@ static int ep93xx_wdt_probe(struct platform_device *pdev)
>  {
>  	struct ep93xx_wdt_priv *priv;
>  	struct watchdog_device *wdd;
> -	struct resource *res;
>  	unsigned long val;
>  	int ret;
>  
> @@ -99,8 +98,7 @@ static int ep93xx_wdt_probe(struct platform_device *pdev)
>  	if (!priv)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	priv->mmio = devm_ioremap_resource(&pdev->dev, res);
> +	priv->mmio = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(priv->mmio))
>  		return PTR_ERR(priv->mmio);
>  
> diff --git a/drivers/watchdog/ftwdt010_wdt.c b/drivers/watchdog/ftwdt010_wdt.c
> index a9c2912ee280..ecb32c42e839 100644
> --- a/drivers/watchdog/ftwdt010_wdt.c
> +++ b/drivers/watchdog/ftwdt010_wdt.c
> @@ -124,7 +124,6 @@ static const struct watchdog_info ftwdt010_wdt_info = {
>  static int ftwdt010_wdt_probe(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;
> -	struct resource *res;
>  	struct ftwdt010_wdt *gwdt;
>  	unsigned int reg;
>  	int irq;
> @@ -134,8 +133,7 @@ static int ftwdt010_wdt_probe(struct platform_device *pdev)
>  	if (!gwdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	gwdt->base = devm_ioremap_resource(dev, res);
> +	gwdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(gwdt->base))
>  		return PTR_ERR(gwdt->base);
>  
> diff --git a/drivers/watchdog/imgpdc_wdt.c b/drivers/watchdog/imgpdc_wdt.c
> index a3134ffa59f8..84c9fb905072 100644
> --- a/drivers/watchdog/imgpdc_wdt.c
> +++ b/drivers/watchdog/imgpdc_wdt.c
> @@ -183,15 +183,13 @@ static int pdc_wdt_probe(struct platform_device *pdev)
>  	u64 div;
>  	int ret, val;
>  	unsigned long clk_rate;
> -	struct resource *res;
>  	struct pdc_wdt_dev *pdc_wdt;
>  
>  	pdc_wdt = devm_kzalloc(&pdev->dev, sizeof(*pdc_wdt), GFP_KERNEL);
>  	if (!pdc_wdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	pdc_wdt->base = devm_ioremap_resource(&pdev->dev, res);
> +	pdc_wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(pdc_wdt->base))
>  		return PTR_ERR(pdc_wdt->base);
>  
> diff --git a/drivers/watchdog/jz4740_wdt.c b/drivers/watchdog/jz4740_wdt.c
> index ec4d99a830ba..aa9d3523addd 100644
> --- a/drivers/watchdog/jz4740_wdt.c
> +++ b/drivers/watchdog/jz4740_wdt.c
> @@ -165,7 +165,6 @@ static int jz4740_wdt_probe(struct platform_device *pdev)
>  {
>  	struct jz4740_wdt_drvdata *drvdata;
>  	struct watchdog_device *jz4740_wdt;
> -	struct resource	*res;
>  	int ret;
>  
>  	drvdata = devm_kzalloc(&pdev->dev, sizeof(struct jz4740_wdt_drvdata),
> @@ -186,8 +185,7 @@ static int jz4740_wdt_probe(struct platform_device *pdev)
>  	watchdog_set_nowayout(jz4740_wdt, nowayout);
>  	watchdog_set_drvdata(jz4740_wdt, drvdata);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	drvdata->base = devm_ioremap_resource(&pdev->dev, res);
> +	drvdata->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(drvdata->base))
>  		return PTR_ERR(drvdata->base);
>  
> diff --git a/drivers/watchdog/lantiq_wdt.c b/drivers/watchdog/lantiq_wdt.c
> index 83da84d6074b..4caf02ba5d49 100644
> --- a/drivers/watchdog/lantiq_wdt.c
> +++ b/drivers/watchdog/lantiq_wdt.c
> @@ -203,7 +203,6 @@ static int ltq_wdt_probe(struct platform_device *pdev)
>  	struct device *dev = &pdev->dev;
>  	struct ltq_wdt_priv *priv;
>  	struct watchdog_device *wdt;
> -	struct resource *res;
>  	struct clk *clk;
>  	const struct ltq_wdt_hw *ltq_wdt_hw;
>  	int ret;
> @@ -213,8 +212,7 @@ static int ltq_wdt_probe(struct platform_device *pdev)
>  	if (!priv)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	priv->membase = devm_ioremap_resource(dev, res);
> +	priv->membase = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(priv->membase))
>  		return PTR_ERR(priv->membase);
>  
> diff --git a/drivers/watchdog/loongson1_wdt.c b/drivers/watchdog/loongson1_wdt.c
> index 3aee50c64a36..1119634b5c87 100644
> --- a/drivers/watchdog/loongson1_wdt.c
> +++ b/drivers/watchdog/loongson1_wdt.c
> @@ -88,15 +88,13 @@ static int ls1x_wdt_probe(struct platform_device *pdev)
>  	struct ls1x_wdt_drvdata *drvdata;
>  	struct watchdog_device *ls1x_wdt;
>  	unsigned long clk_rate;
> -	struct resource *res;
>  	int err;
>  
>  	drvdata = devm_kzalloc(&pdev->dev, sizeof(*drvdata), GFP_KERNEL);
>  	if (!drvdata)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	drvdata->base = devm_ioremap_resource(&pdev->dev, res);
> +	drvdata->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(drvdata->base))
>  		return PTR_ERR(drvdata->base);
>  
> diff --git a/drivers/watchdog/lpc18xx_wdt.c b/drivers/watchdog/lpc18xx_wdt.c
> index 331cadb459ac..f6f66634cedf 100644
> --- a/drivers/watchdog/lpc18xx_wdt.c
> +++ b/drivers/watchdog/lpc18xx_wdt.c
> @@ -204,15 +204,13 @@ static int lpc18xx_wdt_probe(struct platform_device *pdev)
>  {
>  	struct lpc18xx_wdt_dev *lpc18xx_wdt;
>  	struct device *dev = &pdev->dev;
> -	struct resource *res;
>  	int ret;
>  
>  	lpc18xx_wdt = devm_kzalloc(dev, sizeof(*lpc18xx_wdt), GFP_KERNEL);
>  	if (!lpc18xx_wdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	lpc18xx_wdt->base = devm_ioremap_resource(dev, res);
> +	lpc18xx_wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(lpc18xx_wdt->base))
>  		return PTR_ERR(lpc18xx_wdt->base);
>  
> diff --git a/drivers/watchdog/max63xx_wdt.c b/drivers/watchdog/max63xx_wdt.c
> index bf6a068245ba..5aaf13e5115a 100644
> --- a/drivers/watchdog/max63xx_wdt.c
> +++ b/drivers/watchdog/max63xx_wdt.c
> @@ -187,9 +187,7 @@ static void max63xx_mmap_set(struct max63xx_wdt *wdt, u8 set)
>  
>  static int max63xx_mmap_init(struct platform_device *p, struct max63xx_wdt *wdt)
>  {
> -	struct resource *mem = platform_get_resource(p, IORESOURCE_MEM, 0);
> -
> -	wdt->base = devm_ioremap_resource(&p->dev, mem);
> +	wdt->base = devm_platform_ioremap_resource(p, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/meson_gxbb_wdt.c b/drivers/watchdog/meson_gxbb_wdt.c
> index 69adeab3fde7..a8ed75cc9a6e 100644
> --- a/drivers/watchdog/meson_gxbb_wdt.c
> +++ b/drivers/watchdog/meson_gxbb_wdt.c
> @@ -139,15 +139,13 @@ MODULE_DEVICE_TABLE(of, meson_gxbb_wdt_dt_ids);
>  static int meson_gxbb_wdt_probe(struct platform_device *pdev)
>  {
>  	struct meson_gxbb_wdt *data;
> -	struct resource *res;
>  	int ret;
>  
>  	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
>  	if (!data)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	data->reg_base = devm_ioremap_resource(&pdev->dev, res);
> +	data->reg_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(data->reg_base))
>  		return PTR_ERR(data->reg_base);
>  
> diff --git a/drivers/watchdog/meson_wdt.c b/drivers/watchdog/meson_wdt.c
> index cd0275a6cdac..7fc6acb33c7f 100644
> --- a/drivers/watchdog/meson_wdt.c
> +++ b/drivers/watchdog/meson_wdt.c
> @@ -164,7 +164,6 @@ MODULE_DEVICE_TABLE(of, meson_wdt_dt_ids);
>  
>  static int meson_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
>  	struct meson_wdt_dev *meson_wdt;
>  	const struct of_device_id *of_id;
>  	int err;
> @@ -173,8 +172,7 @@ static int meson_wdt_probe(struct platform_device *pdev)
>  	if (!meson_wdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	meson_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
> +	meson_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(meson_wdt->wdt_base))
>  		return PTR_ERR(meson_wdt->wdt_base);
>  
> diff --git a/drivers/watchdog/moxart_wdt.c b/drivers/watchdog/moxart_wdt.c
> index 430c3ab84c07..740215a247fc 100644
> --- a/drivers/watchdog/moxart_wdt.c
> +++ b/drivers/watchdog/moxart_wdt.c
> @@ -92,7 +92,6 @@ static int moxart_wdt_probe(struct platform_device *pdev)
>  	struct moxart_wdt_dev *moxart_wdt;
>  	struct device *dev = &pdev->dev;
>  	struct device_node *node = dev->of_node;
> -	struct resource *res;
>  	struct clk *clk;
>  	int err;
>  	unsigned int max_timeout;
> @@ -104,8 +103,7 @@ static int moxart_wdt_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, moxart_wdt);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	moxart_wdt->base = devm_ioremap_resource(dev, res);
> +	moxart_wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(moxart_wdt->base))
>  		return PTR_ERR(moxart_wdt->base);
>  
> diff --git a/drivers/watchdog/mpc8xxx_wdt.c b/drivers/watchdog/mpc8xxx_wdt.c
> index 069072e6747d..3b5b446b690c 100644
> --- a/drivers/watchdog/mpc8xxx_wdt.c
> +++ b/drivers/watchdog/mpc8xxx_wdt.c
> @@ -149,8 +149,7 @@ static int mpc8xxx_wdt_probe(struct platform_device *ofdev)
>  	if (!ddata)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(ofdev, IORESOURCE_MEM, 0);
> -	ddata->base = devm_ioremap_resource(dev, res);
> +	ddata->base = devm_platform_ioremap_resource(ofdev, 0);
>  	if (IS_ERR(ddata->base))
>  		return PTR_ERR(ddata->base);
>  
> diff --git a/drivers/watchdog/mt7621_wdt.c b/drivers/watchdog/mt7621_wdt.c
> index 81208cd3f4ec..9c943f1d57ec 100644
> --- a/drivers/watchdog/mt7621_wdt.c
> +++ b/drivers/watchdog/mt7621_wdt.c
> @@ -133,10 +133,7 @@ static struct watchdog_device mt7621_wdt_dev = {
>  
>  static int mt7621_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
> -
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	mt7621_wdt_base = devm_ioremap_resource(&pdev->dev, res);
> +	mt7621_wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(mt7621_wdt_base))
>  		return PTR_ERR(mt7621_wdt_base);
>  
> diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c
> index 4baf64f21aa1..113a48d54058 100644
> --- a/drivers/watchdog/mtk_wdt.c
> +++ b/drivers/watchdog/mtk_wdt.c
> @@ -154,7 +154,6 @@ static const struct watchdog_ops mtk_wdt_ops = {
>  static int mtk_wdt_probe(struct platform_device *pdev)
>  {
>  	struct mtk_wdt_dev *mtk_wdt;
> -	struct resource *res;
>  	int err;
>  
>  	mtk_wdt = devm_kzalloc(&pdev->dev, sizeof(*mtk_wdt), GFP_KERNEL);
> @@ -163,8 +162,7 @@ static int mtk_wdt_probe(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, mtk_wdt);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	mtk_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
> +	mtk_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(mtk_wdt->wdt_base))
>  		return PTR_ERR(mtk_wdt->wdt_base);
>  
> diff --git a/drivers/watchdog/npcm_wdt.c b/drivers/watchdog/npcm_wdt.c
> index 0d4213652ecc..4fce10c145c2 100644
> --- a/drivers/watchdog/npcm_wdt.c
> +++ b/drivers/watchdog/npcm_wdt.c
> @@ -181,7 +181,6 @@ static int npcm_wdt_probe(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;
>  	struct npcm_wdt *wdt;
> -	struct resource *res;
>  	int irq;
>  	int ret;
>  
> @@ -189,8 +188,7 @@ static int npcm_wdt_probe(struct platform_device *pdev)
>  	if (!wdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->reg = devm_ioremap_resource(dev, res);
> +	wdt->reg = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->reg))
>  		return PTR_ERR(wdt->reg);
>  
> diff --git a/drivers/watchdog/nuc900_wdt.c b/drivers/watchdog/nuc900_wdt.c
> index 830bd04ff911..74e99eac90b9 100644
> --- a/drivers/watchdog/nuc900_wdt.c
> +++ b/drivers/watchdog/nuc900_wdt.c
> @@ -242,7 +242,6 @@ static struct miscdevice nuc900wdt_miscdev = {
>  
>  static int nuc900wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
>  	int ret = 0;
>  
>  	nuc900_wdt = devm_kzalloc(&pdev->dev, sizeof(*nuc900_wdt),
> @@ -254,8 +253,7 @@ static int nuc900wdt_probe(struct platform_device *pdev)
>  
>  	spin_lock_init(&nuc900_wdt->wdt_lock);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	nuc900_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
> +	nuc900_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(nuc900_wdt->wdt_base))
>  		return PTR_ERR(nuc900_wdt->wdt_base);
>  
> diff --git a/drivers/watchdog/of_xilinx_wdt.c b/drivers/watchdog/of_xilinx_wdt.c
> index d3f7eb046678..5c977164b3e5 100644
> --- a/drivers/watchdog/of_xilinx_wdt.c
> +++ b/drivers/watchdog/of_xilinx_wdt.c
> @@ -155,7 +155,6 @@ static int xwdt_probe(struct platform_device *pdev)
>  {
>  	int rc;
>  	u32 pfreq = 0, enable_once = 0;
> -	struct resource *res;
>  	struct xwdt_device *xdev;
>  	struct watchdog_device *xilinx_wdt_wdd;
>  
> @@ -168,8 +167,7 @@ static int xwdt_probe(struct platform_device *pdev)
>  	xilinx_wdt_wdd->ops = &xilinx_wdt_ops;
>  	xilinx_wdt_wdd->parent = &pdev->dev;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	xdev->base = devm_ioremap_resource(&pdev->dev, res);
> +	xdev->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(xdev->base))
>  		return PTR_ERR(xdev->base);
>  
> diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c
> index cbd752f9ac56..d49688d93f6a 100644
> --- a/drivers/watchdog/omap_wdt.c
> +++ b/drivers/watchdog/omap_wdt.c
> @@ -231,7 +231,6 @@ static const struct watchdog_ops omap_wdt_ops = {
>  static int omap_wdt_probe(struct platform_device *pdev)
>  {
>  	struct omap_wd_timer_platform_data *pdata = dev_get_platdata(&pdev->dev);
> -	struct resource *res;
>  	struct omap_wdt_dev *wdev;
>  	int ret;
>  
> @@ -245,8 +244,7 @@ static int omap_wdt_probe(struct platform_device *pdev)
>  	mutex_init(&wdev->lock);
>  
>  	/* reserve static register mappings */
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdev->base = devm_ioremap_resource(&pdev->dev, res);
> +	wdev->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdev->base))
>  		return PTR_ERR(wdev->base);
>  
> diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c
> index 8b259c712c52..cdb0d174c5e2 100644
> --- a/drivers/watchdog/orion_wdt.c
> +++ b/drivers/watchdog/orion_wdt.c
> @@ -494,8 +494,7 @@ static int orion_wdt_get_regs(struct platform_device *pdev,
>  		   of_device_is_compatible(node, "marvell,armada-xp-wdt")) {
>  
>  		/* Dedicated RSTOUT register, can be requested. */
> -		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> -		dev->rstout = devm_ioremap_resource(&pdev->dev, res);
> +		dev->rstout = devm_platform_ioremap_resource(pdev, 1);
>  		if (IS_ERR(dev->rstout))
>  			return PTR_ERR(dev->rstout);
>  
> @@ -503,8 +502,7 @@ static int orion_wdt_get_regs(struct platform_device *pdev,
>  		   of_device_is_compatible(node, "marvell,armada-380-wdt")) {
>  
>  		/* Dedicated RSTOUT register, can be requested. */
> -		res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> -		dev->rstout = devm_ioremap_resource(&pdev->dev, res);
> +		dev->rstout = devm_platform_ioremap_resource(pdev, 1);
>  		if (IS_ERR(dev->rstout))
>  			return PTR_ERR(dev->rstout);
>  
> diff --git a/drivers/watchdog/pic32-dmt.c b/drivers/watchdog/pic32-dmt.c
> index c797305f8338..052751c224fd 100644
> --- a/drivers/watchdog/pic32-dmt.c
> +++ b/drivers/watchdog/pic32-dmt.c
> @@ -172,15 +172,13 @@ static int pic32_dmt_probe(struct platform_device *pdev)
>  {
>  	int ret;
>  	struct pic32_dmt *dmt;
> -	struct resource *mem;
>  	struct watchdog_device *wdd = &pic32_dmt_wdd;
>  
>  	dmt = devm_kzalloc(&pdev->dev, sizeof(*dmt), GFP_KERNEL);
>  	if (!dmt)
>  		return -ENOMEM;
>  
> -	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	dmt->regs = devm_ioremap_resource(&pdev->dev, mem);
> +	dmt->regs = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(dmt->regs))
>  		return PTR_ERR(dmt->regs);
>  
> diff --git a/drivers/watchdog/pic32-wdt.c b/drivers/watchdog/pic32-wdt.c
> index e2761068dc6f..455ec38363a6 100644
> --- a/drivers/watchdog/pic32-wdt.c
> +++ b/drivers/watchdog/pic32-wdt.c
> @@ -171,14 +171,12 @@ static int pic32_wdt_drv_probe(struct platform_device *pdev)
>  	int ret;
>  	struct watchdog_device *wdd = &pic32_wdd;
>  	struct pic32_wdt *wdt;
> -	struct resource *mem;
>  
>  	wdt = devm_kzalloc(&pdev->dev, sizeof(*wdt), GFP_KERNEL);
>  	if (!wdt)
>  		return -ENOMEM;
>  
> -	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->regs = devm_ioremap_resource(&pdev->dev, mem);
> +	wdt->regs = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->regs))
>  		return PTR_ERR(wdt->regs);
>  
> diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
> index 8e261799c84e..24c266a9e1dc 100644
> --- a/drivers/watchdog/pnx4008_wdt.c
> +++ b/drivers/watchdog/pnx4008_wdt.c
> @@ -185,13 +185,11 @@ static struct watchdog_device pnx4008_wdd = {
>  
>  static int pnx4008_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *r;
>  	int ret = 0;
>  
>  	watchdog_init_timeout(&pnx4008_wdd, heartbeat, &pdev->dev);
>  
> -	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt_base = devm_ioremap_resource(&pdev->dev, r);
> +	wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt_base))
>  		return PTR_ERR(wdt_base);
>  
> diff --git a/drivers/watchdog/renesas_wdt.c b/drivers/watchdog/renesas_wdt.c
> index 622ede529912..5b3186492087 100644
> --- a/drivers/watchdog/renesas_wdt.c
> +++ b/drivers/watchdog/renesas_wdt.c
> @@ -177,7 +177,6 @@ static inline bool rwdt_blacklisted(struct device *dev) { return false; }
>  static int rwdt_probe(struct platform_device *pdev)
>  {
>  	struct rwdt_priv *priv;
> -	struct resource *res;
>  	struct clk *clk;
>  	unsigned long clks_per_sec;
>  	int ret, i;
> @@ -189,8 +188,7 @@ static int rwdt_probe(struct platform_device *pdev)
>  	if (!priv)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	priv->base = devm_ioremap_resource(&pdev->dev, res);
> +	priv->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(priv->base))
>  		return PTR_ERR(priv->base);
>  
> diff --git a/drivers/watchdog/rt2880_wdt.c b/drivers/watchdog/rt2880_wdt.c
> index db7c57d82cfd..4adf5f39fdd9 100644
> --- a/drivers/watchdog/rt2880_wdt.c
> +++ b/drivers/watchdog/rt2880_wdt.c
> @@ -141,11 +141,9 @@ static struct watchdog_device rt288x_wdt_dev = {
>  
>  static int rt288x_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
>  	int ret;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	rt288x_wdt_base = devm_ioremap_resource(&pdev->dev, res);
> +	rt288x_wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(rt288x_wdt_base))
>  		return PTR_ERR(rt288x_wdt_base);
>  
> diff --git a/drivers/watchdog/rtd119x_wdt.c b/drivers/watchdog/rtd119x_wdt.c
> index d001c17ddfde..d823c9def36f 100644
> --- a/drivers/watchdog/rtd119x_wdt.c
> +++ b/drivers/watchdog/rtd119x_wdt.c
> @@ -98,15 +98,13 @@ static const struct of_device_id rtd119x_wdt_dt_ids[] = {
>  static int rtd119x_wdt_probe(struct platform_device *pdev)
>  {
>  	struct rtd119x_watchdog_device *data;
> -	struct resource *res;
>  	int ret;
>  
>  	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
>  	if (!data)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	data->base = devm_ioremap_resource(&pdev->dev, res);
> +	data->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(data->base))
>  		return PTR_ERR(data->base);
>  
> diff --git a/drivers/watchdog/rza_wdt.c b/drivers/watchdog/rza_wdt.c
> index 781bb572e6af..b854f0aeb3ef 100644
> --- a/drivers/watchdog/rza_wdt.c
> +++ b/drivers/watchdog/rza_wdt.c
> @@ -167,7 +167,6 @@ static const struct watchdog_ops rza_wdt_ops = {
>  static int rza_wdt_probe(struct platform_device *pdev)
>  {
>  	struct rza_wdt *priv;
> -	struct resource *res;
>  	unsigned long rate;
>  	int ret;
>  
> @@ -175,8 +174,7 @@ static int rza_wdt_probe(struct platform_device *pdev)
>  	if (!priv)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	priv->base = devm_ioremap_resource(&pdev->dev, res);
> +	priv->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(priv->base))
>  		return PTR_ERR(priv->base);
>  
> diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
> index adaa43543f0a..4267b9e8734b 100644
> --- a/drivers/watchdog/s3c2410_wdt.c
> +++ b/drivers/watchdog/s3c2410_wdt.c
> @@ -522,7 +522,6 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;
>  	struct s3c2410_wdt *wdt;
> -	struct resource *wdt_mem;
>  	struct resource *wdt_irq;
>  	unsigned int wtcon;
>  	int started = 0;
> @@ -554,8 +553,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
>  	}
>  
>  	/* get the memory region for the watchdog timer */
> -	wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->reg_base = devm_ioremap_resource(dev, wdt_mem);
> +	wdt->reg_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->reg_base)) {
>  		ret = PTR_ERR(wdt->reg_base);
>  		goto err;
> diff --git a/drivers/watchdog/sama5d4_wdt.c b/drivers/watchdog/sama5d4_wdt.c
> index 1e93c1b0e3cf..ea72fa0aa3ec 100644
> --- a/drivers/watchdog/sama5d4_wdt.c
> +++ b/drivers/watchdog/sama5d4_wdt.c
> @@ -201,7 +201,6 @@ static int sama5d4_wdt_probe(struct platform_device *pdev)
>  {
>  	struct watchdog_device *wdd;
>  	struct sama5d4_wdt *wdt;
> -	struct resource *res;
>  	void __iomem *regs;
>  	u32 irq = 0;
>  	u32 timeout;
> @@ -221,8 +220,7 @@ static int sama5d4_wdt_probe(struct platform_device *pdev)
>  
>  	watchdog_set_drvdata(wdd, wdt);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	regs = devm_ioremap_resource(&pdev->dev, res);
> +	regs = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(regs))
>  		return PTR_ERR(regs);
>  
> diff --git a/drivers/watchdog/sbsa_gwdt.c b/drivers/watchdog/sbsa_gwdt.c
> index e8bd9887c566..68aff828bf7e 100644
> --- a/drivers/watchdog/sbsa_gwdt.c
> +++ b/drivers/watchdog/sbsa_gwdt.c
> @@ -231,7 +231,6 @@ static int sbsa_gwdt_probe(struct platform_device *pdev)
>  	struct device *dev = &pdev->dev;
>  	struct watchdog_device *wdd;
>  	struct sbsa_gwdt *gwdt;
> -	struct resource *res;
>  	int ret, irq;
>  	u32 status;
>  
> @@ -240,13 +239,11 @@ static int sbsa_gwdt_probe(struct platform_device *pdev)
>  		return -ENOMEM;
>  	platform_set_drvdata(pdev, gwdt);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	cf_base = devm_ioremap_resource(dev, res);
> +	cf_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(cf_base))
>  		return PTR_ERR(cf_base);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> -	rf_base = devm_ioremap_resource(dev, res);
> +	rf_base = devm_platform_ioremap_resource(pdev, 1);
>  	if (IS_ERR(rf_base))
>  		return PTR_ERR(rf_base);
>  
> diff --git a/drivers/watchdog/shwdt.c b/drivers/watchdog/shwdt.c
> index a7d6425db807..e7617b7df70b 100644
> --- a/drivers/watchdog/shwdt.c
> +++ b/drivers/watchdog/shwdt.c
> @@ -220,7 +220,6 @@ static struct watchdog_device sh_wdt_dev = {
>  static int sh_wdt_probe(struct platform_device *pdev)
>  {
>  	struct sh_wdt *wdt;
> -	struct resource *res;
>  	int rc;
>  
>  	/*
> @@ -245,8 +244,7 @@ static int sh_wdt_probe(struct platform_device *pdev)
>  		wdt->clk = NULL;
>  	}
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(wdt->dev, res);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/sirfsoc_wdt.c b/drivers/watchdog/sirfsoc_wdt.c
> index ac0c9d2c4aee..2559062d35da 100644
> --- a/drivers/watchdog/sirfsoc_wdt.c
> +++ b/drivers/watchdog/sirfsoc_wdt.c
> @@ -146,12 +146,10 @@ static struct watchdog_device sirfsoc_wdd = {
>  
>  static int sirfsoc_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *res;
>  	int ret;
>  	void __iomem *base;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	base = devm_ioremap_resource(&pdev->dev, res);
> +	base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(base))
>  		return PTR_ERR(base);
>  
> diff --git a/drivers/watchdog/sprd_wdt.c b/drivers/watchdog/sprd_wdt.c
> index ff9397d9638a..a63163a93777 100644
> --- a/drivers/watchdog/sprd_wdt.c
> +++ b/drivers/watchdog/sprd_wdt.c
> @@ -269,7 +269,6 @@ static const struct watchdog_info sprd_wdt_info = {
>  
>  static int sprd_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *wdt_res;
>  	struct sprd_wdt *wdt;
>  	int ret;
>  
> @@ -277,8 +276,7 @@ static int sprd_wdt_probe(struct platform_device *pdev)
>  	if (!wdt)
>  		return -ENOMEM;
>  
> -	wdt_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->base = devm_ioremap_resource(&pdev->dev, wdt_res);
> +	wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->base))
>  		return PTR_ERR(wdt->base);
>  
> diff --git a/drivers/watchdog/st_lpc_wdt.c b/drivers/watchdog/st_lpc_wdt.c
> index 177829b379da..196fb4b72c5d 100644
> --- a/drivers/watchdog/st_lpc_wdt.c
> +++ b/drivers/watchdog/st_lpc_wdt.c
> @@ -148,7 +148,6 @@ static int st_wdog_probe(struct platform_device *pdev)
>  	struct device_node *np = pdev->dev.of_node;
>  	struct st_wdog *st_wdog;
>  	struct regmap *regmap;
> -	struct resource *res;
>  	struct clk *clk;
>  	void __iomem *base;
>  	uint32_t mode;
> @@ -175,8 +174,7 @@ static int st_wdog_probe(struct platform_device *pdev)
>  	}
>  	st_wdog->syscfg	= (struct st_wdog_syscfg *)match->data;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	base = devm_ioremap_resource(&pdev->dev, res);
> +	base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(base))
>  		return PTR_ERR(base);
>  
> diff --git a/drivers/watchdog/stm32_iwdg.c b/drivers/watchdog/stm32_iwdg.c
> index e00e3b3526c6..309563e002b8 100644
> --- a/drivers/watchdog/stm32_iwdg.c
> +++ b/drivers/watchdog/stm32_iwdg.c
> @@ -202,7 +202,6 @@ static int stm32_iwdg_probe(struct platform_device *pdev)
>  	struct watchdog_device *wdd;
>  	const struct of_device_id *match;
>  	struct stm32_iwdg *wdt;
> -	struct resource *res;
>  	int ret;
>  
>  	match = of_match_device(stm32_iwdg_of_match, &pdev->dev);
> @@ -216,8 +215,7 @@ static int stm32_iwdg_probe(struct platform_device *pdev)
>  	wdt->has_pclk = match->data;
>  
>  	/* This is the timer base. */
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->regs = devm_ioremap_resource(&pdev->dev, res);
> +	wdt->regs = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->regs)) {
>  		dev_err(&pdev->dev, "Could not get resource\n");
>  		return PTR_ERR(wdt->regs);
> diff --git a/drivers/watchdog/sunxi_wdt.c b/drivers/watchdog/sunxi_wdt.c
> index c6c73656997e..f0e7ef40b1e4 100644
> --- a/drivers/watchdog/sunxi_wdt.c
> +++ b/drivers/watchdog/sunxi_wdt.c
> @@ -234,7 +234,6 @@ MODULE_DEVICE_TABLE(of, sunxi_wdt_dt_ids);
>  static int sunxi_wdt_probe(struct platform_device *pdev)
>  {
>  	struct sunxi_wdt_dev *sunxi_wdt;
> -	struct resource *res;
>  	int err;
>  
>  	sunxi_wdt = devm_kzalloc(&pdev->dev, sizeof(*sunxi_wdt), GFP_KERNEL);
> @@ -245,8 +244,7 @@ static int sunxi_wdt_probe(struct platform_device *pdev)
>  	if (!sunxi_wdt->wdt_regs)
>  		return -ENODEV;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	sunxi_wdt->wdt_base = devm_ioremap_resource(&pdev->dev, res);
> +	sunxi_wdt->wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(sunxi_wdt->wdt_base))
>  		return PTR_ERR(sunxi_wdt->wdt_base);
>  
> diff --git a/drivers/watchdog/tangox_wdt.c b/drivers/watchdog/tangox_wdt.c
> index d0b53f3c0d17..16611fe0d9d1 100644
> --- a/drivers/watchdog/tangox_wdt.c
> +++ b/drivers/watchdog/tangox_wdt.c
> @@ -111,7 +111,6 @@ static const struct watchdog_ops tangox_wdt_ops = {
>  static int tangox_wdt_probe(struct platform_device *pdev)
>  {
>  	struct tangox_wdt_device *dev;
> -	struct resource *res;
>  	u32 config;
>  	int err;
>  
> @@ -119,8 +118,7 @@ static int tangox_wdt_probe(struct platform_device *pdev)
>  	if (!dev)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	dev->base = devm_ioremap_resource(&pdev->dev, res);
> +	dev->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(dev->base))
>  		return PTR_ERR(dev->base);
>  
> diff --git a/drivers/watchdog/tegra_wdt.c b/drivers/watchdog/tegra_wdt.c
> index 877dd39bd41f..fc3cf5edf6c7 100644
> --- a/drivers/watchdog/tegra_wdt.c
> +++ b/drivers/watchdog/tegra_wdt.c
> @@ -183,13 +183,11 @@ static int tegra_wdt_probe(struct platform_device *pdev)
>  {
>  	struct watchdog_device *wdd;
>  	struct tegra_wdt *wdt;
> -	struct resource *res;
>  	void __iomem *regs;
>  	int ret;
>  
>  	/* This is the timer base. */
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	regs = devm_ioremap_resource(&pdev->dev, res);
> +	regs = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(regs))
>  		return PTR_ERR(regs);
>  
> diff --git a/drivers/watchdog/ts72xx_wdt.c b/drivers/watchdog/ts72xx_wdt.c
> index 811e43c39ec4..3aa11c84dea9 100644
> --- a/drivers/watchdog/ts72xx_wdt.c
> +++ b/drivers/watchdog/ts72xx_wdt.c
> @@ -124,20 +124,17 @@ static int ts72xx_wdt_probe(struct platform_device *pdev)
>  {
>  	struct ts72xx_wdt_priv *priv;
>  	struct watchdog_device *wdd;
> -	struct resource *res;
>  	int ret;
>  
>  	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
>  	if (!priv)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	priv->control_reg = devm_ioremap_resource(&pdev->dev, res);
> +	priv->control_reg = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(priv->control_reg))
>  		return PTR_ERR(priv->control_reg);
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> -	priv->feed_reg = devm_ioremap_resource(&pdev->dev, res);
> +	priv->feed_reg = devm_platform_ioremap_resource(pdev, 1);
>  	if (IS_ERR(priv->feed_reg))
>  		return PTR_ERR(priv->feed_reg);
>  
> diff --git a/drivers/watchdog/txx9wdt.c b/drivers/watchdog/txx9wdt.c
> index 6f7a9deb27d0..fcb4da5b1f4c 100644
> --- a/drivers/watchdog/txx9wdt.c
> +++ b/drivers/watchdog/txx9wdt.c
> @@ -103,7 +103,6 @@ static struct watchdog_device txx9wdt = {
>  
>  static int __init txx9wdt_probe(struct platform_device *dev)
>  {
> -	struct resource *res;
>  	int ret;
>  
>  	txx9_imclk = clk_get(NULL, "imbus_clk");
> @@ -119,8 +118,7 @@ static int __init txx9wdt_probe(struct platform_device *dev)
>  		goto exit;
>  	}
>  
> -	res = platform_get_resource(dev, IORESOURCE_MEM, 0);
> -	txx9wdt_reg = devm_ioremap_resource(&dev->dev, res);
> +	txx9wdt_reg = devm_platform_ioremap_resource(dev, 0);
>  	if (IS_ERR(txx9wdt_reg)) {
>  		ret = PTR_ERR(txx9wdt_reg);
>  		goto exit;
> diff --git a/drivers/watchdog/zx2967_wdt.c b/drivers/watchdog/zx2967_wdt.c
> index 9261f7c77f6d..9ccc83f526f3 100644
> --- a/drivers/watchdog/zx2967_wdt.c
> +++ b/drivers/watchdog/zx2967_wdt.c
> @@ -192,7 +192,6 @@ static int zx2967_wdt_probe(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;
>  	struct zx2967_wdt *wdt;
> -	struct resource *base;
>  	int ret;
>  	struct reset_control *rstc;
>  
> @@ -209,8 +208,7 @@ static int zx2967_wdt_probe(struct platform_device *pdev)
>  	wdt->wdt_device.min_timeout = ZX2967_WDT_MIN_TIMEOUT;
>  	wdt->wdt_device.parent = &pdev->dev;
>  
> -	base = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt->reg_base = devm_ioremap_resource(dev, base);
> +	wdt->reg_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt->reg_base))
>  		return PTR_ERR(wdt->reg_base);
>  
> -- 
> 2.7.4
> 

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
  2019-04-02 21:29 ` Alexandre Belloni
@ 2019-04-03  0:22 ` Joel Stanley
  2019-04-03  4:18 ` Linus Walleij
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Joel Stanley @ 2019-04-03  0:22 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Wim Van Sebroeck, LINUXWATCHDOG, Linux Kernel Mailing List,
	Nicolas Ferre, Alexandre Belloni, Florian Fainelli,
	Linus Walleij, Baruch Siach, Keguang Zhang, Vladimir Zapolskiy,
	Kevin Hilman, Matthias Brugger, Avi Fishman, Nancy Yuen,
	Brendan Higgins, Wan ZongShun, Michal Simek, Sylvain Lemieux,
	Kukjin Kim, Barry Song, Orson Zhai, Patrice Chotard,
	Maxime Coquelin, Maxime Ripard, Chen-Yu Tsai, Marc Gonzalez,
	Thierry Reding, Shawn Guo

On Tue, 2 Apr 2019 at 19:02, Guenter Roeck <linux@roeck-us.net> wrote:
>
> Use devm_platform_ioremap_resource to reduce source code size,

This is a strange name for a function that doesn't take nor return a
'struct resource'.

However, the intent is welcome as many drivers do redundant checking
of the platform_get_resource result before passing to
devm_ioremap_resource.

> improve readability, and reduce the likelyhood of bugs.

>  drivers/watchdog/aspeed_wdt.c     | 4 +---

Acked-by: Joel Stanley <joel@jms.id.au>

Cheers,

Joel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
  2019-04-02 21:29 ` Alexandre Belloni
  2019-04-03  0:22 ` Joel Stanley
@ 2019-04-03  4:18 ` Linus Walleij
  2019-04-03  6:08 ` Maxime Ripard
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Linus Walleij @ 2019-04-03  4:18 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Wim Van Sebroeck, LINUXWATCHDOG, linux-kernel, Joel Stanley,
	Nicolas Ferre, Alexandre Belloni, Florian Fainelli, Baruch Siach,
	Keguang Zhang, Vladimir Zapolskiy, Kevin Hilman,
	Matthias Brugger, Avi Fishman, Nancy Yuen, Brendan Higgins,
	Wan ZongShun, Michal Simek, Sylvain Lemieux, Kukjin Kim,
	Barry Song, Orson Zhai, Patrice Chotard, Maxime Coquelin,
	Maxime Ripard, Chen-Yu Tsai, Marc Gonzalez, Thierry Reding,
	Shawn Guo

On Wed, Apr 3, 2019 at 2:02 AM Guenter Roeck <linux@roeck-us.net> wrote:

> Use devm_platform_ioremap_resource to reduce source code size,
> improve readability, and reduce the likelyhood of bugs.
>
> The conversion was done automatically with coccinelle using the
> following semantic patch.
>
> @r@
> identifier res, pdev;
> expression a;
> expression index;
> expression e;
> @@
>
> <+...
> - res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(e, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> ...+>
>
> @depends on r@
> identifier r.res;
> @@
> - struct resource *res;
>   ... when != res
>
> @@
> identifier res, pdev;
> expression index;
> expression a;
> @@
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(&pdev->dev, res);
> + a = devm_platform_ioremap_resource(pdev, index);
>
> Cc: Joel Stanley <joel@jms.id.au>
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Baruch Siach <baruch@tkos.co.il>
> Cc: Keguang Zhang <keguang.zhang@gmail.com>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Avi Fishman <avifishman70@gmail.com>
> Cc: Nancy Yuen <yuenn@google.com>
> Cc: Brendan Higgins <brendanhiggins@google.com>
> Cc: Wan ZongShun <mcuos.com@gmail.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Sylvain Lemieux <slemieux.tyco@gmail.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Barry Song <baohua@kernel.org>
> Cc: Orson Zhai <orsonzhai@gmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Marc Gonzalez <marc.w.gonzalez@free.fr>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>

Nice Cocinelle work!!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
                   ` (2 preceding siblings ...)
  2019-04-03  4:18 ` Linus Walleij
@ 2019-04-03  6:08 ` Maxime Ripard
  2019-04-03  7:09 ` Michal Simek
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Maxime Ripard @ 2019-04-03  6:08 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Wim Van Sebroeck, linux-watchdog, linux-kernel, Joel Stanley,
	Nicolas Ferre, Alexandre Belloni, Florian Fainelli,
	Linus Walleij, Baruch Siach, Keguang Zhang, Vladimir Zapolskiy,
	Kevin Hilman, Matthias Brugger, Avi Fishman, Nancy Yuen,
	Brendan Higgins, Wan ZongShun, Michal Simek, Sylvain Lemieux,
	Kukjin Kim, Barry Song, Orson Zhai, Patrice Chotard,
	Maxime Coquelin, Chen-Yu Tsai, Marc Gonzalez, Thierry Reding,
	Shawn Guo

[-- Attachment #1: Type: text/plain, Size: 2026 bytes --]

On Tue, Apr 02, 2019 at 12:01:53PM -0700, Guenter Roeck wrote:
> Use devm_platform_ioremap_resource to reduce source code size,
> improve readability, and reduce the likelyhood of bugs.
>
> The conversion was done automatically with coccinelle using the
> following semantic patch.
>
> @r@
> identifier res, pdev;
> expression a;
> expression index;
> expression e;
> @@
>
> <+...
> - res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(e, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> ...+>
>
> @depends on r@
> identifier r.res;
> @@
> - struct resource *res;
>   ... when != res
>
> @@
> identifier res, pdev;
> expression index;
> expression a;
> @@
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(&pdev->dev, res);
> + a = devm_platform_ioremap_resource(pdev, index);
>
> Cc: Joel Stanley <joel@jms.id.au>
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Baruch Siach <baruch@tkos.co.il>
> Cc: Keguang Zhang <keguang.zhang@gmail.com>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Avi Fishman <avifishman70@gmail.com>
> Cc: Nancy Yuen <yuenn@google.com>
> Cc: Brendan Higgins <brendanhiggins@google.com>
> Cc: Wan ZongShun <mcuos.com@gmail.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Sylvain Lemieux <slemieux.tyco@gmail.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Barry Song <baohua@kernel.org>
> Cc: Orson Zhai <orsonzhai@gmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>

For sunxi_wdt

Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>

Thanks!
Maxime

--
Maxime Ripard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
                   ` (3 preceding siblings ...)
  2019-04-03  6:08 ` Maxime Ripard
@ 2019-04-03  7:09 ` Michal Simek
  2019-04-03  8:47 ` Thierry Reding
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Michal Simek @ 2019-04-03  7:09 UTC (permalink / raw)
  To: Guenter Roeck, Wim Van Sebroeck
  Cc: linux-watchdog, linux-kernel, Joel Stanley, Nicolas Ferre,
	Alexandre Belloni, Florian Fainelli, Linus Walleij, Baruch Siach,
	Keguang Zhang, Vladimir Zapolskiy, Kevin Hilman,
	Matthias Brugger, Avi Fishman, Nancy Yuen, Brendan Higgins,
	Wan ZongShun, Michal Simek, Sylvain Lemieux, Kukjin Kim,
	Barry Song, Orson Zhai, Patrice Chotard, Maxime Coquelin,
	Maxime Ripard, Chen-Yu Tsai, Marc Gonzalez, Thierry Reding,
	Shawn Guo

On 02. 04. 19 21:01, Guenter Roeck wrote:
> Use devm_platform_ioremap_resource to reduce source code size,
> improve readability, and reduce the likelyhood of bugs.
> 
> The conversion was done automatically with coccinelle using the
> following semantic patch.
> 
> @r@
> identifier res, pdev;
> expression a;
> expression index;
> expression e;
> @@
> 
> <+...
> - res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(e, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> ...+>
> 
> @depends on r@
> identifier r.res;
> @@
> - struct resource *res;
>   ... when != res
> 
> @@
> identifier res, pdev;
> expression index;
> expression a;
> @@
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(&pdev->dev, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> 
> Cc: Joel Stanley <joel@jms.id.au>
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Baruch Siach <baruch@tkos.co.il>
> Cc: Keguang Zhang <keguang.zhang@gmail.com>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Avi Fishman <avifishman70@gmail.com>
> Cc: Nancy Yuen <yuenn@google.com>
> Cc: Brendan Higgins <brendanhiggins@google.com>
> Cc: Wan ZongShun <mcuos.com@gmail.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Sylvain Lemieux <slemieux.tyco@gmail.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Barry Song <baohua@kernel.org>
> Cc: Orson Zhai <orsonzhai@gmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Marc Gonzalez <marc.w.gonzalez@free.fr>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  drivers/watchdog/asm9260_wdt.c    | 4 +---
>  drivers/watchdog/aspeed_wdt.c     | 4 +---
>  drivers/watchdog/at91sam9_wdt.c   | 4 +---
>  drivers/watchdog/ath79_wdt.c      | 4 +---
>  drivers/watchdog/atlas7_wdt.c     | 4 +---
>  drivers/watchdog/bcm7038_wdt.c    | 4 +---
>  drivers/watchdog/bcm_kona_wdt.c   | 4 +---
>  drivers/watchdog/cadence_wdt.c    | 4 +---
...
>  drivers/watchdog/of_xilinx_wdt.c  | 4 +---

Acked-by: Michal Simek <michal.simek@xilinx.com> (cadence/xilinx wdts)

Thanks,
Michal


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
                   ` (4 preceding siblings ...)
  2019-04-03  7:09 ` Michal Simek
@ 2019-04-03  8:47 ` Thierry Reding
  2019-04-03 15:10 ` Florian Fainelli
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: Thierry Reding @ 2019-04-03  8:47 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Wim Van Sebroeck, linux-watchdog, linux-kernel, Joel Stanley,
	Nicolas Ferre, Alexandre Belloni, Florian Fainelli,
	Linus Walleij, Baruch Siach, Keguang Zhang, Vladimir Zapolskiy,
	Kevin Hilman, Matthias Brugger, Avi Fishman, Nancy Yuen,
	Brendan Higgins, Wan ZongShun, Michal Simek, Sylvain Lemieux,
	Kukjin Kim, Barry Song, Orson Zhai, Patrice Chotard,
	Maxime Coquelin, Maxime Ripard, Chen-Yu Tsai, Marc Gonzalez,
	Shawn Guo

[-- Attachment #1: Type: text/plain, Size: 162 bytes --]

On Tue, Apr 02, 2019 at 12:01:53PM -0700, Guenter Roeck wrote:
[...]
>  drivers/watchdog/tegra_wdt.c      | 4 +---

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
                   ` (5 preceding siblings ...)
  2019-04-03  8:47 ` Thierry Reding
@ 2019-04-03 15:10 ` Florian Fainelli
  2019-04-04  9:23 ` Patrice CHOTARD
  2019-04-05 17:59 ` Vladimir Zapolskiy
  8 siblings, 0 replies; 10+ messages in thread
From: Florian Fainelli @ 2019-04-03 15:10 UTC (permalink / raw)
  To: Guenter Roeck, Wim Van Sebroeck
  Cc: linux-watchdog, linux-kernel, Joel Stanley, Nicolas Ferre,
	Alexandre Belloni, Linus Walleij, Baruch Siach, Keguang Zhang,
	Vladimir Zapolskiy, Kevin Hilman, Matthias Brugger, Avi Fishman,
	Nancy Yuen, Brendan Higgins, Wan ZongShun, Michal Simek,
	Sylvain Lemieux, Kukjin Kim, Barry Song, Orson Zhai,
	Patrice Chotard, Maxime Coquelin, Maxime Ripard, Chen-Yu Tsai,
	Marc Gonzalez, Thierry Reding, Shawn Guo



On 4/2/2019 12:01 PM, Guenter Roeck wrote:
> Use devm_platform_ioremap_resource to reduce source code size,
> improve readability, and reduce the likelyhood of bugs.
> 
> The conversion was done automatically with coccinelle using the
> following semantic patch.
> 
[snip]

For:

>  drivers/watchdog/bcm7038_wdt.c    | 4 +---
>  drivers/watchdog/bcm_kona_wdt.c   | 4 +---
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
                   ` (6 preceding siblings ...)
  2019-04-03 15:10 ` Florian Fainelli
@ 2019-04-04  9:23 ` Patrice CHOTARD
  2019-04-05 17:59 ` Vladimir Zapolskiy
  8 siblings, 0 replies; 10+ messages in thread
From: Patrice CHOTARD @ 2019-04-04  9:23 UTC (permalink / raw)
  To: Guenter Roeck, Wim Van Sebroeck
  Cc: linux-watchdog, linux-kernel, Joel Stanley, Nicolas Ferre,
	Alexandre Belloni, Florian Fainelli, Linus Walleij, Baruch Siach,
	Keguang Zhang, Vladimir Zapolskiy, Kevin Hilman,
	Matthias Brugger, Avi Fishman, Nancy Yuen, Brendan Higgins,
	Wan ZongShun, Michal Simek, Sylvain Lemieux, Kukjin Kim,
	Barry Song, Orson Zhai, Maxime Coquelin, Maxime Ripard,
	Chen-Yu Tsai, Marc Gonzalez, Thierry Reding, Shawn Guo

Hi

On 4/2/19 9:01 PM, Guenter Roeck wrote:
> Use devm_platform_ioremap_resource to reduce source code size,
> improve readability, and reduce the likelyhood of bugs.
> 
> The conversion was done automatically with coccinelle using the
> following semantic patch.
> 
> @r@
> identifier res, pdev;
> expression a;
> expression index;
> expression e;
> @@
> 
> <+...
> - res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(e, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> ...+>
> 
> @depends on r@
> identifier r.res;
> @@
> - struct resource *res;
>   ... when != res
> 
> @@
> identifier res, pdev;
> expression index;
> expression a;
> @@
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(&pdev->dev, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> 
> Cc: Joel Stanley <joel@jms.id.au>
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Baruch Siach <baruch@tkos.co.il>
> Cc: Keguang Zhang <keguang.zhang@gmail.com>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Avi Fishman <avifishman70@gmail.com>
> Cc: Nancy Yuen <yuenn@google.com>
> Cc: Brendan Higgins <brendanhiggins@google.com>
> Cc: Wan ZongShun <mcuos.com@gmail.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Sylvain Lemieux <slemieux.tyco@gmail.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Barry Song <baohua@kernel.org>
> Cc: Orson Zhai <orsonzhai@gmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Marc Gonzalez <marc.w.gonzalez@free.fr>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---

>  drivers/watchdog/st_lpc_wdt.c     | 4 +---

For st_lpc_wdt

Acked-by: Patrice Chotard <patrice.chotard@st.com>

Thanks

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH] watchdog: Convert to use devm_platform_ioremap_resource
  2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
                   ` (7 preceding siblings ...)
  2019-04-04  9:23 ` Patrice CHOTARD
@ 2019-04-05 17:59 ` Vladimir Zapolskiy
  8 siblings, 0 replies; 10+ messages in thread
From: Vladimir Zapolskiy @ 2019-04-05 17:59 UTC (permalink / raw)
  To: Guenter Roeck, Wim Van Sebroeck
  Cc: linux-watchdog, linux-kernel, Joel Stanley, Nicolas Ferre,
	Alexandre Belloni, Florian Fainelli, Linus Walleij, Baruch Siach,
	Keguang Zhang, Kevin Hilman, Matthias Brugger, Avi Fishman,
	Nancy Yuen, Brendan Higgins, Wan ZongShun, Michal Simek,
	Sylvain Lemieux, Kukjin Kim, Barry Song, Orson Zhai,
	Patrice Chotard, Maxime Coquelin, Maxime Ripard, Chen-Yu Tsai,
	Marc Gonzalez, Thierry Reding, Shawn Guo

On 04/02/2019 10:01 PM, Guenter Roeck wrote:
> Use devm_platform_ioremap_resource to reduce source code size,
> improve readability, and reduce the likelyhood of bugs.
> 
> The conversion was done automatically with coccinelle using the
> following semantic patch.
> 
> @r@
> identifier res, pdev;
> expression a;
> expression index;
> expression e;
> @@
> 
> <+...
> - res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(e, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> ...+>
> 
> @depends on r@
> identifier r.res;
> @@
> - struct resource *res;
>   ... when != res
> 
> @@
> identifier res, pdev;
> expression index;
> expression a;
> @@
> - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index);
> - a = devm_ioremap_resource(&pdev->dev, res);
> + a = devm_platform_ioremap_resource(pdev, index);
> 
> Cc: Joel Stanley <joel@jms.id.au>
> Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
> Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
> Cc: Florian Fainelli <f.fainelli@gmail.com>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Baruch Siach <baruch@tkos.co.il>
> Cc: Keguang Zhang <keguang.zhang@gmail.com>
> Cc: Vladimir Zapolskiy <vz@mleia.com>
> Cc: Kevin Hilman <khilman@baylibre.com>
> Cc: Matthias Brugger <matthias.bgg@gmail.com>
> Cc: Avi Fishman <avifishman70@gmail.com>
> Cc: Nancy Yuen <yuenn@google.com>
> Cc: Brendan Higgins <brendanhiggins@google.com>
> Cc: Wan ZongShun <mcuos.com@gmail.com>
> Cc: Michal Simek <michal.simek@xilinx.com>
> Cc: Sylvain Lemieux <slemieux.tyco@gmail.com>
> Cc: Kukjin Kim <kgene@kernel.org>
> Cc: Barry Song <baohua@kernel.org>
> Cc: Orson Zhai <orsonzhai@gmail.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
> Cc: Maxime Ripard <maxime.ripard@bootlin.com>
> Cc: Chen-Yu Tsai <wens@csie.org>
> Cc: Marc Gonzalez <marc.w.gonzalez@free.fr>
> Cc: Thierry Reding <thierry.reding@gmail.com>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  drivers/watchdog/asm9260_wdt.c    | 4 +---
>  drivers/watchdog/aspeed_wdt.c     | 4 +---
>  drivers/watchdog/at91sam9_wdt.c   | 4 +---
>  drivers/watchdog/ath79_wdt.c      | 4 +---
>  drivers/watchdog/atlas7_wdt.c     | 4 +---
>  drivers/watchdog/bcm7038_wdt.c    | 4 +---
>  drivers/watchdog/bcm_kona_wdt.c   | 4 +---
>  drivers/watchdog/cadence_wdt.c    | 4 +---
>  drivers/watchdog/coh901327_wdt.c  | 4 +---
>  drivers/watchdog/davinci_wdt.c    | 4 +---
>  drivers/watchdog/digicolor_wdt.c  | 4 +---
>  drivers/watchdog/dw_wdt.c         | 4 +---
>  drivers/watchdog/ep93xx_wdt.c     | 4 +---
>  drivers/watchdog/ftwdt010_wdt.c   | 4 +---
>  drivers/watchdog/imgpdc_wdt.c     | 4 +---
>  drivers/watchdog/jz4740_wdt.c     | 4 +---
>  drivers/watchdog/lantiq_wdt.c     | 4 +---
>  drivers/watchdog/loongson1_wdt.c  | 4 +---
>  drivers/watchdog/lpc18xx_wdt.c    | 4 +---
>  drivers/watchdog/max63xx_wdt.c    | 4 +---
>  drivers/watchdog/meson_gxbb_wdt.c | 4 +---
>  drivers/watchdog/meson_wdt.c      | 4 +---
>  drivers/watchdog/moxart_wdt.c     | 4 +---
>  drivers/watchdog/mpc8xxx_wdt.c    | 3 +--
>  drivers/watchdog/mt7621_wdt.c     | 5 +----
>  drivers/watchdog/mtk_wdt.c        | 4 +---
>  drivers/watchdog/npcm_wdt.c       | 4 +---
>  drivers/watchdog/nuc900_wdt.c     | 4 +---
>  drivers/watchdog/of_xilinx_wdt.c  | 4 +---
>  drivers/watchdog/omap_wdt.c       | 4 +---
>  drivers/watchdog/orion_wdt.c      | 6 ++----
>  drivers/watchdog/pic32-dmt.c      | 4 +---
>  drivers/watchdog/pic32-wdt.c      | 4 +---
>  drivers/watchdog/pnx4008_wdt.c    | 4 +---
>  drivers/watchdog/renesas_wdt.c    | 4 +---
>  drivers/watchdog/rt2880_wdt.c     | 4 +---
>  drivers/watchdog/rtd119x_wdt.c    | 4 +---
>  drivers/watchdog/rza_wdt.c        | 4 +---
>  drivers/watchdog/s3c2410_wdt.c    | 4 +---
>  drivers/watchdog/sama5d4_wdt.c    | 4 +---
>  drivers/watchdog/sbsa_gwdt.c      | 7 ++-----
>  drivers/watchdog/shwdt.c          | 4 +---
>  drivers/watchdog/sirfsoc_wdt.c    | 4 +---
>  drivers/watchdog/sprd_wdt.c       | 4 +---
>  drivers/watchdog/st_lpc_wdt.c     | 4 +---
>  drivers/watchdog/stm32_iwdg.c     | 4 +---
>  drivers/watchdog/sunxi_wdt.c      | 4 +---
>  drivers/watchdog/tangox_wdt.c     | 4 +---
>  drivers/watchdog/tegra_wdt.c      | 4 +---
>  drivers/watchdog/ts72xx_wdt.c     | 7 ++-----
>  drivers/watchdog/txx9wdt.c        | 4 +---
>  drivers/watchdog/zx2967_wdt.c     | 4 +---
>  52 files changed, 55 insertions(+), 161 deletions(-)

[snip]

> diff --git a/drivers/watchdog/lpc18xx_wdt.c b/drivers/watchdog/lpc18xx_wdt.c
> index 331cadb459ac..f6f66634cedf 100644
> --- a/drivers/watchdog/lpc18xx_wdt.c
> +++ b/drivers/watchdog/lpc18xx_wdt.c
> @@ -204,15 +204,13 @@ static int lpc18xx_wdt_probe(struct platform_device *pdev)
>  {
>  	struct lpc18xx_wdt_dev *lpc18xx_wdt;
>  	struct device *dev = &pdev->dev;
> -	struct resource *res;
>  	int ret;
>  
>  	lpc18xx_wdt = devm_kzalloc(dev, sizeof(*lpc18xx_wdt), GFP_KERNEL);
>  	if (!lpc18xx_wdt)
>  		return -ENOMEM;
>  
> -	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	lpc18xx_wdt->base = devm_ioremap_resource(dev, res);
> +	lpc18xx_wdt->base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(lpc18xx_wdt->base))
>  		return PTR_ERR(lpc18xx_wdt->base);
>  

[snip]

> diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
> index 8e261799c84e..24c266a9e1dc 100644
> --- a/drivers/watchdog/pnx4008_wdt.c
> +++ b/drivers/watchdog/pnx4008_wdt.c
> @@ -185,13 +185,11 @@ static struct watchdog_device pnx4008_wdd = {
>  
>  static int pnx4008_wdt_probe(struct platform_device *pdev)
>  {
> -	struct resource *r;
>  	int ret = 0;
>  
>  	watchdog_init_timeout(&pnx4008_wdd, heartbeat, &pdev->dev);
>  
> -	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -	wdt_base = devm_ioremap_resource(&pdev->dev, r);
> +	wdt_base = devm_platform_ioremap_resource(pdev, 0);
>  	if (IS_ERR(wdt_base))
>  		return PTR_ERR(wdt_base);
>  

For lpc18xx_wdt.c and pnx4008_wdt.c:

Acked-by: Vladimir Zapolskiy <vz@mleia.com>

--
Best wishes,
Vladimir

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2019-04-05 17:59 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-02 19:01 [PATCH] watchdog: Convert to use devm_platform_ioremap_resource Guenter Roeck
2019-04-02 21:29 ` Alexandre Belloni
2019-04-03  0:22 ` Joel Stanley
2019-04-03  4:18 ` Linus Walleij
2019-04-03  6:08 ` Maxime Ripard
2019-04-03  7:09 ` Michal Simek
2019-04-03  8:47 ` Thierry Reding
2019-04-03 15:10 ` Florian Fainelli
2019-04-04  9:23 ` Patrice CHOTARD
2019-04-05 17:59 ` Vladimir Zapolskiy

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).