public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: mxc: use new helpers to define common struct resource entries
       [not found]   ` <E1QgHeh-0004k8-2m@octopus.hi.pengutronix.de>
@ 2011-07-11 15:03     ` Uwe Kleine-König
  2011-07-12 13:29     ` [PATCH] new helper to define common struct resource constructs Arnd Bergmann
  1 sibling, 0 replies; 9+ messages in thread
From: Uwe Kleine-König @ 2011-07-11 15:03 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Sascha Hauer, Wolfram Sang, linux-kernel, thierry.nolf.barco,
	Huang Shijie, linux-mtd, Andrew Morton, linux-arm-kernel,
	Lothar Waßmann

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
 arch/arm/plat-mxc/devices/platform-fec.c           |   11 +----
 arch/arm/plat-mxc/devices/platform-flexcan.c       |   11 +----
 arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c  |   11 +----
 arch/arm/plat-mxc/devices/platform-gpio-mxc.c      |   16 +------
 arch/arm/plat-mxc/devices/platform-imx-dma.c       |   11 +----
 arch/arm/plat-mxc/devices/platform-imx-fb.c        |   11 +----
 arch/arm/plat-mxc/devices/platform-imx-i2c.c       |   11 +----
 arch/arm/plat-mxc/devices/platform-imx-keypad.c    |   11 +----
 arch/arm/plat-mxc/devices/platform-imx-ssi.c       |   19 ++-------
 arch/arm/plat-mxc/devices/platform-imx-uart.c      |   35 ++++-------------
 arch/arm/plat-mxc/devices/platform-imx2-wdt.c      |    6 +--
 arch/arm/plat-mxc/devices/platform-imx21-hcd.c     |   11 +----
 arch/arm/plat-mxc/devices/platform-imx_udc.c       |   41 ++++----------------
 arch/arm/plat-mxc/devices/platform-imxdi_rtc.c     |   11 +----
 arch/arm/plat-mxc/devices/platform-ipu-core.c      |   33 +++-------------
 arch/arm/plat-mxc/devices/platform-mx1-camera.c    |   11 +----
 arch/arm/plat-mxc/devices/platform-mx2-camera.c    |   21 ++--------
 arch/arm/plat-mxc/devices/platform-mxc-ehci.c      |   11 +----
 arch/arm/plat-mxc/devices/platform-mxc-mmc.c       |   16 +------
 arch/arm/plat-mxc/devices/platform-mxc_nand.c      |   16 +------
 arch/arm/plat-mxc/devices/platform-mxc_pwm.c       |   11 +----
 arch/arm/plat-mxc/devices/platform-mxc_rnga.c      |    6 +--
 arch/arm/plat-mxc/devices/platform-mxc_rtc.c       |   11 +----
 arch/arm/plat-mxc/devices/platform-mxc_w1.c        |    6 +--
 .../plat-mxc/devices/platform-sdhci-esdhc-imx.c    |   11 +----
 arch/arm/plat-mxc/devices/platform-spi_imx.c       |   11 +----
 26 files changed, 72 insertions(+), 308 deletions(-)

diff --git a/arch/arm/plat-mxc/devices/platform-fec.c b/arch/arm/plat-mxc/devices/platform-fec.c
index 4fc6ffc..b64f309 100644
--- a/arch/arm/plat-mxc/devices/platform-fec.c
+++ b/arch/arm/plat-mxc/devices/platform-fec.c
@@ -52,15 +52,8 @@ struct platform_device *__init imx_add_fec(
 		const struct fec_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_4K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_4K),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device_dmamask("fec", 0,
diff --git a/arch/arm/plat-mxc/devices/platform-flexcan.c b/arch/arm/plat-mxc/devices/platform-flexcan.c
index 4e8497a..fcb5873 100644
--- a/arch/arm/plat-mxc/devices/platform-flexcan.c
+++ b/arch/arm/plat-mxc/devices/platform-flexcan.c
@@ -42,15 +42,8 @@ struct platform_device *__init imx_add_flexcan(
 		const struct flexcan_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device("flexcan", data->id,
diff --git a/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c b/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c
index 23ce08e..749c28c 100644
--- a/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c
+++ b/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c
@@ -41,15 +41,8 @@ struct platform_device *__init imx_add_fsl_usb2_udc(
 		const struct fsl_usb2_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_512 - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_512),
+		DEFINE_RES_IRQ(data->irq),
 	};
 	return imx_add_platform_device_dmamask("fsl-usb2-udc", -1,
 			res, ARRAY_SIZE(res),
diff --git a/arch/arm/plat-mxc/devices/platform-gpio-mxc.c b/arch/arm/plat-mxc/devices/platform-gpio-mxc.c
index cf1b7fd..3314557 100644
--- a/arch/arm/plat-mxc/devices/platform-gpio-mxc.c
+++ b/arch/arm/plat-mxc/devices/platform-gpio-mxc.c
@@ -12,19 +12,9 @@ struct platform_device *__init mxc_register_gpio(int id,
 	resource_size_t iobase, resource_size_t iosize, int irq, int irq_high)
 {
 	struct resource res[] = {
-		{
-			.start = iobase,
-			.end = iobase + iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = irq,
-			.end = irq,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = irq_high,
-			.end = irq_high,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(iobase, iosize),
+		DEFINE_RES_IRQ(irq),
+		DEFINE_RES_IRQ(irq_high),
 	};
 
 	return platform_device_register_resndata(&mxc_aips_bus,
diff --git a/arch/arm/plat-mxc/devices/platform-imx-dma.c b/arch/arm/plat-mxc/devices/platform-imx-dma.c
index 2b0fdb2..90280f0 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-dma.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-dma.c
@@ -18,15 +18,8 @@ struct platform_device __init __maybe_unused *imx_add_imx_sdma(
 	resource_size_t iobase, int irq, struct sdma_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = iobase,
-			.end = iobase + SZ_16K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = irq,
-			.end = irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(iobase, SZ_16K),
+		DEFINE_RES_IRQ(irq),
 	};
 
 	return platform_device_register_resndata(&mxc_ahb_bus, "imx-sdma",
diff --git a/arch/arm/plat-mxc/devices/platform-imx-fb.c b/arch/arm/plat-mxc/devices/platform-imx-fb.c
index 2b0b5e0..fe76319 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-fb.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-fb.c
@@ -42,15 +42,8 @@ struct platform_device *__init imx_add_imx_fb(
 		const struct imx_fb_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 	return imx_add_platform_device_dmamask("imx-fb", 0,
 			res, ARRAY_SIZE(res),
diff --git a/arch/arm/plat-mxc/devices/platform-imx-i2c.c b/arch/arm/plat-mxc/devices/platform-imx-i2c.c
index afe60f7..d624f73 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-i2c.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-i2c.c
@@ -103,15 +103,8 @@ struct platform_device *__init imx_add_imx_i2c(
 		const struct imxi2c_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device("imx-i2c", data->id,
diff --git a/arch/arm/plat-mxc/devices/platform-imx-keypad.c b/arch/arm/plat-mxc/devices/platform-imx-keypad.c
index 479c3e9..573a3a0 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-keypad.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-keypad.c
@@ -56,15 +56,8 @@ struct platform_device *__init imx_add_imx_keypad(
 		const struct matrix_keymap_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device("imx-keypad", -1,
diff --git a/arch/arm/plat-mxc/devices/platform-imx-ssi.c b/arch/arm/plat-mxc/devices/platform-imx-ssi.c
index 21c6f30..a8e6c2f 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-ssi.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-ssi.c
@@ -91,21 +91,10 @@ struct platform_device *__init imx_add_imx_ssi(
 		const struct imx_ssi_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
-#define DMARES(_name) {							\
-	.name = #_name,							\
-	.start = data->dma ## _name,					\
-	.end = data->dma ## _name,					\
-	.flags = IORESOURCE_DMA,					\
-}
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
+#define DMARES(_name)	\
+	DEFINE_RES_NAMED(data->dma ## _name, 1, #_name, IORESOURCE_DMA)
 		DMARES(tx0),
 		DMARES(rx0),
 		DMARES(tx1),
diff --git a/arch/arm/plat-mxc/devices/platform-imx-uart.c b/arch/arm/plat-mxc/devices/platform-imx-uart.c
index cfce8c9..d3659ad 100644
--- a/arch/arm/plat-mxc/devices/platform-imx-uart.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-uart.c
@@ -133,23 +133,10 @@ struct platform_device *__init imx_add_imx_uart_3irq(
 		const struct imxuart_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irqrx,
-			.end = data->irqrx,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irqtx,
-			.end = data->irqtx,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irqrts,
-			.end = data->irqrx,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irqrx),
+		DEFINE_RES_IRQ(data->irqtx),
+		DEFINE_RES_IRQ(data->irqrts),
 	};
 
 	return imx_add_platform_device("imx-uart", data->id, res,
@@ -161,17 +148,11 @@ struct platform_device *__init imx_add_imx_uart_1irq(
 		const struct imxuart_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
-	return imx_add_platform_device("imx-uart", data->id, res, ARRAY_SIZE(res),
+	return imx_add_platform_device("imx-uart", data->id,
+			res, ARRAY_SIZE(res),
 			pdata, sizeof(*pdata));
 }
diff --git a/arch/arm/plat-mxc/devices/platform-imx2-wdt.c b/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
index 5e07ef2..03e81a5 100644
--- a/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
+++ b/arch/arm/plat-mxc/devices/platform-imx2-wdt.c
@@ -66,11 +66,7 @@ struct platform_device *__init imx_add_imx2_wdt(
 		const struct imx_imx2_wdt_data *data)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
 	};
 	return imx_add_platform_device("imx2-wdt", data->id,
 			res, ARRAY_SIZE(res), NULL, 0);
diff --git a/arch/arm/plat-mxc/devices/platform-imx21-hcd.c b/arch/arm/plat-mxc/devices/platform-imx21-hcd.c
index 5770a42..77931cc 100644
--- a/arch/arm/plat-mxc/devices/platform-imx21-hcd.c
+++ b/arch/arm/plat-mxc/devices/platform-imx21-hcd.c
@@ -25,15 +25,8 @@ struct platform_device *__init imx_add_imx21_hcd(
 		const struct mx21_usbh_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_8K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_8K),
+		DEFINE_RES_IRQ(data->irq),
 	};
 	return imx_add_platform_device_dmamask("imx21-hcd", 0,
 			res, ARRAY_SIZE(res),
diff --git a/arch/arm/plat-mxc/devices/platform-imx_udc.c b/arch/arm/plat-mxc/devices/platform-imx_udc.c
index 6fd675d..ad754c7 100644
--- a/arch/arm/plat-mxc/devices/platform-imx_udc.c
+++ b/arch/arm/plat-mxc/devices/platform-imx_udc.c
@@ -35,39 +35,14 @@ struct platform_device *__init imx_add_imx_udc(
 		const struct imxusb_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq0,
-			.end = data->irq0,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irq1,
-			.end = data->irq1,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irq2,
-			.end = data->irq2,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irq3,
-			.end = data->irq3,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irq4,
-			.end = data->irq4,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irq5,
-			.end = data->irq5,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->irq6,
-			.end = data->irq6,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq0),
+		DEFINE_RES_IRQ(data->irq1),
+		DEFINE_RES_IRQ(data->irq2),
+		DEFINE_RES_IRQ(data->irq3),
+		DEFINE_RES_IRQ(data->irq4),
+		DEFINE_RES_IRQ(data->irq5),
+		DEFINE_RES_IRQ(data->irq6),
 	};
 
 	return imx_add_platform_device("imx_udc", 0,
diff --git a/arch/arm/plat-mxc/devices/platform-imxdi_rtc.c b/arch/arm/plat-mxc/devices/platform-imxdi_rtc.c
index 805336f..1929153 100644
--- a/arch/arm/plat-mxc/devices/platform-imxdi_rtc.c
+++ b/arch/arm/plat-mxc/devices/platform-imxdi_rtc.c
@@ -25,15 +25,8 @@ struct platform_device *__init imx_add_imxdi_rtc(
 		const struct imx_imxdi_rtc_data *data)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_16K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_16K),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device("imxdi_rtc", 0,
diff --git a/arch/arm/plat-mxc/devices/platform-ipu-core.c b/arch/arm/plat-mxc/devices/platform-ipu-core.c
index 79d340a..0a30c30 100644
--- a/arch/arm/plat-mxc/devices/platform-ipu-core.c
+++ b/arch/arm/plat-mxc/devices/platform-ipu-core.c
@@ -35,23 +35,10 @@ struct platform_device *__init imx_add_ipu_core(
 {
 	/* The resource order is important! */
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + 0x5f,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->iobase + 0x88,
-			.end = data->iobase + 0xb3,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->synirq,
-			.end = data->synirq,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->errirq,
-			.end = data->errirq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, 0x60),
+		DEFINE_RES_MEM(data->iobase + 0x88, 0x2c),
+		DEFINE_RES_IRQ(data->synirq),
+		DEFINE_RES_IRQ(data->errirq),
 	};
 
 	return imx_ipu_coredev = imx_add_platform_device("ipu-core", -1,
@@ -63,11 +50,7 @@ struct platform_device *__init imx_alloc_mx3_camera(
 		const struct mx3_camera_pdata *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase + 0x60,
-			.end = data->iobase + 0x87,
-			.flags = IORESOURCE_MEM,
-		},
+		DEFINE_RES_MEM(data->iobase + 0x60, 0x28);
 	};
 	int ret = -ENOMEM;
 	struct platform_device *pdev;
@@ -112,11 +95,7 @@ struct platform_device *__init imx_add_mx3_sdc_fb(
 		struct mx3fb_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase + 0xb4,
-			.end = data->iobase + 0x1bf,
-			.flags = IORESOURCE_MEM,
-		},
+		DEFINE_RES_MEM(data->iobase + 0xb4, 0x10c),
 	};
 
 	if (IS_ERR_OR_NULL(imx_ipu_coredev))
diff --git a/arch/arm/plat-mxc/devices/platform-mx1-camera.c b/arch/arm/plat-mxc/devices/platform-mx1-camera.c
index edcc581..61dac5e 100644
--- a/arch/arm/plat-mxc/devices/platform-mx1-camera.c
+++ b/arch/arm/plat-mxc/devices/platform-mx1-camera.c
@@ -26,15 +26,8 @@ struct platform_device *__init imx_add_mx1_camera(
 		const struct mx1_camera_pdata *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 	return imx_add_platform_device_dmamask("mx1-camera", 0,
 			res, ARRAY_SIZE(res),
diff --git a/arch/arm/plat-mxc/devices/platform-mx2-camera.c b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
index b3f4828..c167f30 100644
--- a/arch/arm/plat-mxc/devices/platform-mx2-camera.c
+++ b/arch/arm/plat-mxc/devices/platform-mx2-camera.c
@@ -40,23 +40,10 @@ struct platform_device *__init imx_add_mx2_camera(
 		const struct mx2_camera_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobasecsi,
-			.end = data->iobasecsi + data->iosizecsi - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irqcsi,
-			.end = data->irqcsi,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->iobaseemmaprp,
-			.end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irqemmaprp,
-			.end = data->irqemmaprp,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobasecsi, data->iosizecsi),
+		DEFINE_RES_IRQ(data->irqcsi),
+		DEFINE_RES_MEM(data->iobaseemmaprp, data->iosizeemmaprp),
+		DEFINE_RES_IRQ(data->irqemmaprp),
 	};
 	return imx_add_platform_device_dmamask("mx2-camera", 0,
 			res, data->iobaseemmaprp ? 4 : 2,
diff --git a/arch/arm/plat-mxc/devices/platform-mxc-ehci.c b/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
index e1763e0..9eb7b62 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
@@ -54,15 +54,8 @@ struct platform_device *__init imx_add_mxc_ehci(
 		const struct mxc_usbh_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_512 - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_512),
+		DEFINE_RES_IRQ(data->irq),
 	};
 	return imx_add_platform_device_dmamask("mxc-ehci", data->id,
 			res, ARRAY_SIZE(res),
diff --git a/arch/arm/plat-mxc/devices/platform-mxc-mmc.c b/arch/arm/plat-mxc/devices/platform-mxc-mmc.c
index 540d3a7..b105933 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc-mmc.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc-mmc.c
@@ -53,19 +53,9 @@ struct platform_device *__init imx_add_mxc_mmc(
 		const struct imxmmc_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_4K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		}, {
-			.start = data->dmareq,
-			.end = data->dmareq,
-			.flags = IORESOURCE_DMA,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_4K),
+		DEFINE_RES_IRQ(data->irq),
+		DEFINE_RES_NAMED(data->dmareq, 1, NULL, IORESOURCE_DMA),
 	};
 	return imx_add_platform_device_dmamask("mxc-mmc", data->id,
 			res, ARRAY_SIZE(res),
diff --git a/arch/arm/plat-mxc/devices/platform-mxc_nand.c b/arch/arm/plat-mxc/devices/platform-mxc_nand.c
index 1568f39..3664533 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc_nand.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc_nand.c
@@ -62,19 +62,9 @@ struct platform_device *__init imx_add_mxc_nand(
 {
 	/* AXI has to come first, that's how the mxc_nand driver expect it */
 	struct resource res[] = {
-		{
-			.start = data->axibase,
-			.end = data->axibase + SZ_16K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->axibase, SZ_16K),
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 	return imx_add_platform_device("mxc_nand", data->id,
 			res + !data->axibase,
diff --git a/arch/arm/plat-mxc/devices/platform-mxc_pwm.c b/arch/arm/plat-mxc/devices/platform-mxc_pwm.c
index b0c4ae2..bcc95ec 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc_pwm.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc_pwm.c
@@ -53,15 +53,8 @@ struct platform_device *__init imx_add_mxc_pwm(
 		const struct imx_mxc_pwm_data *data)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device("mxc_pwm", data->id,
diff --git a/arch/arm/plat-mxc/devices/platform-mxc_rnga.c b/arch/arm/plat-mxc/devices/platform-mxc_rnga.c
index b4b7612..a4fb661 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc_rnga.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc_rnga.c
@@ -27,11 +27,7 @@ static struct platform_device *__init imx_add_mxc_rnga(
 		const struct imx_mxc_rnga_data *data)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_16K - 1,
-			.flags = IORESOURCE_MEM,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_16K),
 	};
 	return imx_add_platform_device("mxc_rnga", -1,
 			res, ARRAY_SIZE(res), NULL, 0);
diff --git a/arch/arm/plat-mxc/devices/platform-mxc_rtc.c b/arch/arm/plat-mxc/devices/platform-mxc_rtc.c
index 16d0ec4..2dd42dc 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc_rtc.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc_rtc.c
@@ -24,15 +24,8 @@ struct platform_device *__init imx_add_mxc_rtc(
 		const struct imx_mxc_rtc_data *data)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_16K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_16K),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device("mxc_rtc", -1,
diff --git a/arch/arm/plat-mxc/devices/platform-mxc_w1.c b/arch/arm/plat-mxc/devices/platform-mxc_w1.c
index 96fa5ea..72b97ea 100644
--- a/arch/arm/plat-mxc/devices/platform-mxc_w1.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc_w1.c
@@ -38,11 +38,7 @@ struct platform_device *__init imx_add_mxc_w1(
 		const struct imx_mxc_w1_data *data)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_4K - 1,
-			.flags = IORESOURCE_MEM,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_4K),
 	};
 
 	return imx_add_platform_device("mxc_w1", 0,
diff --git a/arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c b/arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c
index 6b2940b..325c2a1 100644
--- a/arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c
+++ b/arch/arm/plat-mxc/devices/platform-sdhci-esdhc-imx.c
@@ -70,15 +70,8 @@ struct platform_device *__init imx_add_sdhci_esdhc_imx(
 		const struct esdhc_platform_data *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + SZ_16K - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, SZ_16K),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device("sdhci-esdhc-imx", data->id, res,
diff --git a/arch/arm/plat-mxc/devices/platform-spi_imx.c b/arch/arm/plat-mxc/devices/platform-spi_imx.c
index f97eb36..1b680b4 100644
--- a/arch/arm/plat-mxc/devices/platform-spi_imx.c
+++ b/arch/arm/plat-mxc/devices/platform-spi_imx.c
@@ -107,15 +107,8 @@ struct platform_device *__init imx_add_spi_imx(
 		const struct spi_imx_master *pdata)
 {
 	struct resource res[] = {
-		{
-			.start = data->iobase,
-			.end = data->iobase + data->iosize - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irq,
-			.end = data->irq,
-			.flags = IORESOURCE_IRQ,
-		},
+		DEFINE_RES_MEM(data->iobase, data->iosize),
+		DEFINE_RES_IRQ(data->irq),
 	};
 
 	return imx_add_platform_device(data->devid, data->id,
-- 
1.7.5.4


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

* Re: [PATCH] new helper to define common struct resource constructs
       [not found]   ` <E1QgHeh-0004k8-2m@octopus.hi.pengutronix.de>
  2011-07-11 15:03     ` [PATCH] ARM: mxc: use new helpers to define common struct resource entries Uwe Kleine-König
@ 2011-07-12 13:29     ` Arnd Bergmann
  2011-07-12 17:13       ` H Hartley Sweeten
  2011-07-13 21:18       ` [PATCH] " Andrew Morton
  1 sibling, 2 replies; 9+ messages in thread
From: Arnd Bergmann @ 2011-07-12 13:29 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: Sascha Hauer, Wolfram Sang, thierry.nolf.barco, Huang Shijie,
	linux-mtd, linux-arm-kernel, Lothar Waßmann, Andrew Morton,
	linux-kernel

On Monday 11 July 2011, Uwe Kleine-König wrote:
> resource definitions that just define start, end and flags = IORESOURCE_MEM
> or IORESOURCE_IRQ (with start=end) are quite common. So introduce a shortcut
> for them. Also make available a macro to specify named resources of both
> types which are less common.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Acked-by: Arnd Bergmann <arnd@arndb.de>

What do others think, is this worthwhile?
Should we also define macros for IORESOURCE_IO and IORESOURCE_DMA?

	Arnd

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

* RE: [PATCH] new helper to define common struct resource constructs
  2011-07-12 13:29     ` [PATCH] new helper to define common struct resource constructs Arnd Bergmann
@ 2011-07-12 17:13       ` H Hartley Sweeten
  2011-07-12 18:31         ` [PATCH v2] " Uwe Kleine-König
  2011-07-13 21:18       ` [PATCH] " Andrew Morton
  1 sibling, 1 reply; 9+ messages in thread
From: H Hartley Sweeten @ 2011-07-12 17:13 UTC (permalink / raw)
  To: Arnd Bergmann, Uwe Kleine-König
  Cc: Sascha Hauer, Wolfram Sang, linux-kernel@vger.kernel.org,
	thierry.nolf.barco@gmail.com, Huang Shijie,
	linux-mtd@lists.infradead.org, Andrew Morton,
	linux-arm-kernel@lists.infradead.org, Lothar Waßmann

On Tuesday, July 12, 2011 6:29 AM, Arnd Bergmann wrote:
> On Monday 11 July 2011, Uwe Kleine-König wrote:
>> resource definitions that just define start, end and flags = IORESOURCE_MEM
>> or IORESOURCE_IRQ (with start=end) are quite common. So introduce a shortcut
>> for them. Also make available a macro to specify named resources of both
>> types which are less common.
>> 
>> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
>
> Acked-by: Arnd Bergmann <arnd@arndb.de>
>
> What do others think, is this worthwhile?

Assuming I found the correct patch in the archives, +1 from me.  Not sure what
the correct sign-off should be, possibly:

Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>

> Should we also define macros for IORESOURCE_IO and IORESOURCE_DMA?

As a gross check, on linux-next I see:

$ git grep IORESOURCE_MEM | wc -l
3989
$ git grep IORESOURCE_IRQ | wc -l
2309
$ git grep IORESOURCE_IO | wc -l
687
$ git grep IORESOURCE_DMA | wc -l
521

The *_MEM and *_IRQ macros are going to have the largest impact on reducing
the lines of code.  But, for completeness it might be nice to have the *_IO
and *_DMA ones also.

If this patch is accepted there are a couple private macros in various places
that should probably be replaced or updated.

For instance in mach-nomadik/board-nhk8815.c and mach-nomadik/cpu-8815.c there
are these:

#define __MEM_4K_RESOURCE(x) \
	.res = {.start = (x), .end = (x) + SZ_4K - 1, .flags = IORESOURCE_MEM}

And plat-omap/i2c.c has this:

#define I2C_RESOURCE_BUILDER(base, irq)			\
	{						\
		.start	= (base),			\
		.end	= (base) + OMAP_I2C_SIZE,	\
		.flags	= IORESOURCE_MEM,		\
	},						\
	{						\
		.start	= (irq),			\
		.flags	= IORESOURCE_IRQ,		\
	},

I seem to recall seeing others but can't remember exactly where.

Regards,
Hartley

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

* [PATCH v2] new helper to define common struct resource constructs
  2011-07-12 17:13       ` H Hartley Sweeten
@ 2011-07-12 18:31         ` Uwe Kleine-König
  0 siblings, 0 replies; 9+ messages in thread
From: Uwe Kleine-König @ 2011-07-12 18:31 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Arnd Bergmann, H Hartley Sweeten, Sascha Hauer, Wolfram Sang,
	linux-kernel, thierry.nolf.barco, Huang Shijie, linux-mtd,
	Andrew Morton, Lothar Waßmann

resource definitions that just define start, end and flags =
IORESOURCE_MEM or IORESOURCE_IRQ (with start=end) are quite common. So
introduce a shortcut for them. For completeness add macros for
IORESOURCE_DMA and IORESOURCE_IO, too and also make available a set of
macros to specify named resources of all types.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
changes since v1:
- also add _IO and _DMA variants

 include/linux/ioport.h |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 63eb429..f98124f 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -109,6 +109,36 @@ struct resource_list {
 /* PCI control bits.  Shares IORESOURCE_BITS with above PCI ROM.  */
 #define IORESOURCE_PCI_FIXED		(1<<4)	/* Do not move resource */
 
+
+/* helpers to define resources */
+#define DEFINE_RES_NAMED(_start, _size, _name, _flags)			\
+	{								\
+		.start = _start,					\
+		.end = _start + _size - 1,				\
+		.name = _name,						\
+		.flags = _flags,					\
+	}
+
+#define DEFINE_RES_IO_NAMED(_start, _size, _name)			\
+	DEFINE_RES_NAMED(_start, _size, _name, IORESOURCE_IO)
+#define DEFINE_RES_IO(_start, _size)					\
+	DEFINE_RES_IO_NAMED(_start, _size, NULL)
+
+#define DEFINE_RES_MEM_NAMED(_start, _size, _name)			\
+	DEFINE_RES_NAMED(_start, _size, _name, IORESOURCE_MEM)
+#define DEFINE_RES_MEM(_start, _size)					\
+	DEFINE_RES_MEM_NAMED(_start, _size, NULL)
+
+#define DEFINE_RES_IRQ_NAMED(_irq, _name)				\
+	DEFINE_RES_NAMED(_irq, 1, _name, IORESOURCE_IRQ)
+#define DEFINE_RES_IRQ(_irq)						\
+	DEFINE_RES_IRQ_NAMED(_irq, NULL)
+
+#define DEFINE_RES_DMA_NAMED(_dma, _name)				\
+	DEFINE_RES_NAMED(_dma, 1, _name, IORESOURCE_DMA)
+#define DEFINE_RES_DMA(_dma)						\
+	DEFINE_RES_DMA_NAMED(_dma, NULL)
+
 /* PC/ISA/whatever - the normal PC address spaces: IO and memory */
 extern struct resource ioport_resource;
 extern struct resource iomem_resource;
-- 
1.7.5.4


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

* Re: [PATCH] new helper to define common struct resource constructs
  2011-07-12 13:29     ` [PATCH] new helper to define common struct resource constructs Arnd Bergmann
  2011-07-12 17:13       ` H Hartley Sweeten
@ 2011-07-13 21:18       ` Andrew Morton
  2011-07-13 21:42         ` Arnd Bergmann
  2011-07-14  8:11         ` [PATCH v3] " Uwe Kleine-König
  1 sibling, 2 replies; 9+ messages in thread
From: Andrew Morton @ 2011-07-13 21:18 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc:  Uwe Kleine-König , Sascha Hauer, Wolfram Sang,
	thierry.nolf.barco, Huang Shijie, linux-mtd, linux-arm-kernel,
	Lothar Waßmann, linux-kernel

On Tue, 12 Jul 2011 15:29:17 +0200
Arnd Bergmann <arnd@arndb.de> wrote:

> On Monday 11 July 2011, Uwe Kleine-K__nig wrote:
> > resource definitions that just define start, end and flags = IORESOURCE_MEM
> > or IORESOURCE_IRQ (with start=end) are quite common. So introduce a shortcut
> > for them. Also make available a macro to specify named resources of both
> > types which are less common.
> > 
> > Signed-off-by: Uwe Kleine-K____nig <u.kleine-koenig@pengutronix.de>
> 
> Acked-by: Arnd Bergmann <arnd@arndb.de>
> 
> What do others think, is this worthwhile?
> Should we also define macros for IORESOURCE_IO and IORESOURCE_DMA?
> 

It would help if we could see some usage examples (ie: sample
conversions), to get a better idea of the value of this.

Also, DEFINE_RES_NAMED() is going to need a bunch of argument
parentheses to make it bulletproof.


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

* Re: [PATCH] new helper to define common struct resource constructs
  2011-07-13 21:18       ` [PATCH] " Andrew Morton
@ 2011-07-13 21:42         ` Arnd Bergmann
  2011-07-13 22:15           ` H Hartley Sweeten
  2011-07-14  8:11         ` [PATCH v3] " Uwe Kleine-König
  1 sibling, 1 reply; 9+ messages in thread
From: Arnd Bergmann @ 2011-07-13 21:42 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Andrew Morton, Sascha Hauer, Wolfram Sang, linux-kernel,
	thierry.nolf.barco, Huang Shijie, linux-mtd,
	 Uwe Kleine-König , Lothar Waßmann

On Wednesday 13 July 2011 23:18:49 Andrew Morton wrote:
> > On Monday 11 July 2011, Uwe Kleine-K__nig wrote:
> > > resource definitions that just define start, end and flags = IORESOURCE_MEM
> > > or IORESOURCE_IRQ (with start=end) are quite common. So introduce a shortcut
> > > for them. Also make available a macro to specify named resources of both
> > > types which are less common.
> > > 
> > > Signed-off-by: Uwe Kleine-K____nig <u.kleine-koenig@pengutronix.de>
> > 
> > Acked-by: Arnd Bergmann <arnd@arndb.de>
> > 
> > What do others think, is this worthwhile?
> > Should we also define macros for IORESOURCE_IO and IORESOURCE_DMA?
> > 
> 
> It would help if we could see some usage examples (ie: sample
> conversions), to get a better idea of the value of this.

Uwe posted a patch '[PATCH] ARM: mxc: use new helpers to define
common struct resource entries' that converts one ARM platform to use
it, with reasonable outcome:

26 files changed, 72 insertions(+), 308 deletions(-)

This platform has 72 definitions of static resources, in total there
are well over 2000 such defintions in ARM alone, and the number is
growing. Some platforms have started creating their own macros for
this purpose, which is why I suggested doing it globally (or alternatively
removing the macros from these platforms if we conclude that they
are harmful).

> Also, DEFINE_RES_NAMED() is going to need a bunch of argument
> parentheses to make it bulletproof.

Right.

	Arnd

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

* RE: [PATCH] new helper to define common struct resource constructs
  2011-07-13 21:42         ` Arnd Bergmann
@ 2011-07-13 22:15           ` H Hartley Sweeten
  0 siblings, 0 replies; 9+ messages in thread
From: H Hartley Sweeten @ 2011-07-13 22:15 UTC (permalink / raw)
  To: Arnd Bergmann, linux-arm-kernel@lists.infradead.org
  Cc: Sascha Hauer, linux-kernel@vger.kernel.org, Wolfram Sang,
	thierry.nolf.barco@gmail.com, Huang Shijie,
	linux-mtd@lists.infradead.org, Uwe Kleine-König,
	Andrew Morton, Lothar Waßmann

On Wednesday, July 13, 2011 2:42 PM, Arnd Bergmann wrote:
> On Wednesday 13 July 2011 23:18:49 Andrew Morton wrote:
>>> On Monday 11 July 2011, Uwe Kleine-K__nig wrote:
>>>> resource definitions that just define start, end and flags = IORESOURCE_MEM
>>>> or IORESOURCE_IRQ (with start=end) are quite common. So introduce a shortcut
>>>> for them. Also make available a macro to specify named resources of both
>>>> types which are less common.
>>>> 
>>>> Signed-off-by: Uwe Kleine-K____nig <u.kleine-koenig@pengutronix.de>
>>> 
>>> Acked-by: Arnd Bergmann <arnd@arndb.de>
>>> 
>>> What do others think, is this worthwhile?
>>> Should we also define macros for IORESOURCE_IO and IORESOURCE_DMA?
>>> 
>>
>> It would help if we could see some usage examples (ie: sample
>> conversions), to get a better idea of the value of this.
>
> Uwe posted a patch '[PATCH] ARM: mxc: use new helpers to define
> common struct resource entries' that converts one ARM platform to use
> it, with reasonable outcome:
>
> 26 files changed, 72 insertions(+), 308 deletions(-)

ep93xx doesn't have that many but converting it's core.c gives:

 1 files changed, 19 insertions(+), 93 deletions(-)

Regards,
Hartley

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

* [PATCH v3] new helper to define common struct resource constructs
  2011-07-13 21:18       ` [PATCH] " Andrew Morton
  2011-07-13 21:42         ` Arnd Bergmann
@ 2011-07-14  8:11         ` Uwe Kleine-König
  2011-07-14 11:34           ` Lothar Waßmann
  1 sibling, 1 reply; 9+ messages in thread
From: Uwe Kleine-König @ 2011-07-14  8:11 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Arnd Bergmann, H Hartley Sweeten, Sascha Hauer, Wolfram Sang,
	linux-kernel, thierry.nolf.barco, Huang Shijie, linux-mtd,
	Andrew Morton, Lothar Waßmann

resource definitions that just define start, end and flags =
IORESOURCE_MEM or IORESOURCE_IRQ (with start=end) are quite common. So
introduce a shortcut for them. For completeness add macros for
IORESOURCE_DMA and IORESOURCE_IO, too and also make available a set of
macros to specify named resources of all types which are less common.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
---
changes since v2:
- add parentheses around macro parameter usages

changes since v1:                                                               
- also add _IO and _DMA variants                                                

 include/linux/ioport.h |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 63eb429..9d57a71 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -109,6 +109,36 @@ struct resource_list {
 /* PCI control bits.  Shares IORESOURCE_BITS with above PCI ROM.  */
 #define IORESOURCE_PCI_FIXED		(1<<4)	/* Do not move resource */
 
+
+/* helpers to define resources */
+#define DEFINE_RES_NAMED(_start, _size, _name, _flags)			\
+	{								\
+		.start = (_start),					\
+		.end = (_start) + (_size) - 1,				\
+		.name = (_name),					\
+		.flags = (_flags),					\
+	}
+
+#define DEFINE_RES_IO_NAMED(_start, _size, _name)			\
+	DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_IO)
+#define DEFINE_RES_IO(_start, _size)					\
+	DEFINE_RES_IO_NAMED((_start), (_size), NULL)
+
+#define DEFINE_RES_MEM_NAMED(_start, _size, _name)			\
+	DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_MEM)
+#define DEFINE_RES_MEM(_start, _size)					\
+	DEFINE_RES_MEM_NAMED((_start), (_size), NULL)
+
+#define DEFINE_RES_IRQ_NAMED(_irq, _name)				\
+	DEFINE_RES_NAMED((_irq), 1, (_name), IORESOURCE_IRQ)
+#define DEFINE_RES_IRQ(_irq)						\
+	DEFINE_RES_IRQ_NAMED((_irq), NULL)
+
+#define DEFINE_RES_DMA_NAMED(_dma, _name)				\
+	DEFINE_RES_NAMED((_dma), 1, (_name), IORESOURCE_DMA)
+#define DEFINE_RES_DMA(_dma)						\
+	DEFINE_RES_DMA_NAMED((_dma), NULL)
+
 /* PC/ISA/whatever - the normal PC address spaces: IO and memory */
 extern struct resource ioport_resource;
 extern struct resource iomem_resource;
-- 
1.7.5.4


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

* Re: [PATCH v3] new helper to define common struct resource constructs
  2011-07-14  8:11         ` [PATCH v3] " Uwe Kleine-König
@ 2011-07-14 11:34           ` Lothar Waßmann
  0 siblings, 0 replies; 9+ messages in thread
From: Lothar Waßmann @ 2011-07-14 11:34 UTC (permalink / raw)
  To: Uwe Kleine-König
  Cc: linux-arm-kernel, Arnd Bergmann, H Hartley Sweeten, Sascha Hauer,
	Wolfram Sang, linux-kernel, thierry.nolf.barco, Huang Shijie,
	linux-mtd, Andrew Morton

Hi,

Uwe Kleine-König writes:
> resource definitions that just define start, end and flags =
> IORESOURCE_MEM or IORESOURCE_IRQ (with start=end) are quite common. So
> introduce a shortcut for them. For completeness add macros for
> IORESOURCE_DMA and IORESOURCE_IO, too and also make available a set of
> macros to specify named resources of all types which are less common.
> 
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> ---
> changes since v2:
> - add parentheses around macro parameter usages
> 
> changes since v1:                                                               
> - also add _IO and _DMA variants                                                
> 
>  include/linux/ioport.h |   30 ++++++++++++++++++++++++++++++
>  1 files changed, 30 insertions(+), 0 deletions(-)
> 
> diff --git a/include/linux/ioport.h b/include/linux/ioport.h
> index 63eb429..9d57a71 100644
> --- a/include/linux/ioport.h
> +++ b/include/linux/ioport.h
> @@ -109,6 +109,36 @@ struct resource_list {
>  /* PCI control bits.  Shares IORESOURCE_BITS with above PCI ROM.  */
>  #define IORESOURCE_PCI_FIXED		(1<<4)	/* Do not move resource */
>  
> +
> +/* helpers to define resources */
> +#define DEFINE_RES_NAMED(_start, _size, _name, _flags)			\
> +	{								\
> +		.start = (_start),					\
> +		.end = (_start) + (_size) - 1,				\
> +		.name = (_name),					\
> +		.flags = (_flags),					\
> +	}
> +
> +#define DEFINE_RES_IO_NAMED(_start, _size, _name)			\
> +	DEFINE_RES_NAMED((_start), (_size), (_name), IORESOURCE_IO)
>
There is no need for parens around a macro argument when it is not
part of an expression...
This just looks silly.


Lothar Waßmann
-- 
___________________________________________________________

Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996

www.karo-electronics.de | info@karo-electronics.de
___________________________________________________________

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

end of thread, other threads:[~2011-07-14 11:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <14C4E31473AF7E4B98176CB73615181C19FBD3@039-SN1MPN1-006.039d.mgd.msft.net>
     [not found] ` <201107072304.05626.arnd@arndb.de>
     [not found]   ` <E1QgHeh-0004k8-2m@octopus.hi.pengutronix.de>
2011-07-11 15:03     ` [PATCH] ARM: mxc: use new helpers to define common struct resource entries Uwe Kleine-König
2011-07-12 13:29     ` [PATCH] new helper to define common struct resource constructs Arnd Bergmann
2011-07-12 17:13       ` H Hartley Sweeten
2011-07-12 18:31         ` [PATCH v2] " Uwe Kleine-König
2011-07-13 21:18       ` [PATCH] " Andrew Morton
2011-07-13 21:42         ` Arnd Bergmann
2011-07-13 22:15           ` H Hartley Sweeten
2011-07-14  8:11         ` [PATCH v3] " Uwe Kleine-König
2011-07-14 11:34           ` Lothar Waßmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox