linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing
@ 2016-09-21 12:41 Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 1/9] dmaengine: edma: Add missing MODULE_DEVICE_TABLE() for of_device_id structs Peter Ujfalusi
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Changes since v2:
- Instead of converting to use enum for the of_device_id data parameter the two
  patch for edma and ti-dma-crossbar is using pointers to u32 variables to make
  sure that the code compile (and in theory work) on all architectures.
- fixed issue in the ti-dma-crossbar driver I have made with the enum change to
  not handle the DMA offset parameters correctly.

Changes since v1:
- added the compiler warning message to ti-dma-crossbar enum type patch
- moved the Kconfig patches at the end of the seris

The following series will enable unconditional COMPILE_TEST coverage for the
following drivers: omap-dma, edma and ti-dma-crossbar

The series includes fixes noticed when compiling the drivers for x86_64 and
aarch64.

Replaces the patch Vinod sent to enable partial compile testing for omap-dma:
http://www.spinics.net/lists/dmaengine/msg11025.html

Regards,
Peter
---
Peter Ujfalusi (9):
  dmaengine: edma: Add missing MODULE_DEVICE_TABLE() for of_device_id
    structs
  dmaengine: edma: Fix of_device_id data parameter usage (legacy vs
    TPCC)
  dmaengine: edma: Use correct type for of_find_property() third
    parameter
  dmaengine/ARM: omap-dma: Fix the DMAengine compile test on non OMAP
    configs
  dmaengine: ti-dma-crossbar: Correct type for of_find_property() third
    parameter
  dmaengine: ti-dma-crossbar: Fix of_device_id data parameter usage
  dmaengine: edma: enable COMPILE_TEST
  dmaengine: omap-dma: enable COMPILE_TEST
  dmaengine: ti-dma-crossbar: enable COMPILE_TEST

 drivers/dma/Kconfig           |  8 ++++----
 drivers/dma/edma.c            | 16 +++++++++++-----
 drivers/dma/ti-dma-crossbar.c | 30 +++++++++++++++++++-----------
 include/linux/omap-dma.h      | 19 +++++++++++++++++++
 4 files changed, 53 insertions(+), 20 deletions(-)

--
2.10.0

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

* [PATCH v3 1/9] dmaengine: edma: Add missing MODULE_DEVICE_TABLE() for of_device_id structs
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 2/9] dmaengine: edma: Fix of_device_id data parameter usage (legacy vs TPCC) Peter Ujfalusi
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

The MODULE_DEVICE_TABLE() were missing from the driver for the of_device_id
structures.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/edma.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index 3d277fa76c1a..c2098a4b4dcf 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -274,11 +274,13 @@ static const struct of_device_id edma_of_ids[] = {
 	},
 	{}
 };
+MODULE_DEVICE_TABLE(of, edma_of_ids);
 
 static const struct of_device_id edma_tptc_of_ids[] = {
 	{ .compatible = "ti,edma3-tptc", },
 	{}
 };
+MODULE_DEVICE_TABLE(of, edma_tptc_of_ids);
 
 static inline unsigned int edma_read(struct edma_cc *ecc, int offset)
 {
-- 
2.10.0

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

* [PATCH v3 2/9] dmaengine: edma: Fix of_device_id data parameter usage (legacy vs TPCC)
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 1/9] dmaengine: edma: Add missing MODULE_DEVICE_TABLE() for of_device_id structs Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 3/9] dmaengine: edma: Use correct type for of_find_property() third parameter Peter Ujfalusi
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

Use pointers to static constant variables for eDMA binding
type (legacy vs TPCC).

Fixes the following warning when compiling the driver for 64bit
architectures (x86_64 for example):
drivers/dma/edma.c:2185:16: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
   if (match && (u32)match->data == EDMA_BINDING_TPCC)
                ^

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/edma.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index c2098a4b4dcf..87c58710ae31 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -263,14 +263,19 @@ static const struct edmacc_param dummy_paramset = {
 
 #define EDMA_BINDING_LEGACY	0
 #define EDMA_BINDING_TPCC	1
+static const u32 edma_binding_type[] = {
+	[EDMA_BINDING_LEGACY] = EDMA_BINDING_LEGACY,
+	[EDMA_BINDING_TPCC] = EDMA_BINDING_TPCC,
+};
+
 static const struct of_device_id edma_of_ids[] = {
 	{
 		.compatible = "ti,edma3",
-		.data = (void *)EDMA_BINDING_LEGACY,
+		.data = &edma_binding_type[EDMA_BINDING_LEGACY],
 	},
 	{
 		.compatible = "ti,edma3-tpcc",
-		.data = (void *)EDMA_BINDING_TPCC,
+		.data = &edma_binding_type[EDMA_BINDING_TPCC],
 	},
 	{}
 };
@@ -2184,7 +2189,7 @@ static int edma_probe(struct platform_device *pdev)
 		const struct of_device_id *match;
 
 		match = of_match_node(edma_of_ids, node);
-		if (match && (u32)match->data == EDMA_BINDING_TPCC)
+		if (match && (*(u32*)match->data) == EDMA_BINDING_TPCC)
 			legacy_mode = false;
 
 		info = edma_setup_info_from_dt(dev, legacy_mode);
-- 
2.10.0

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

* [PATCH v3 3/9] dmaengine: edma: Use correct type for of_find_property() third parameter
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 1/9] dmaengine: edma: Add missing MODULE_DEVICE_TABLE() for of_device_id structs Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 2/9] dmaengine: edma: Fix of_device_id data parameter usage (legacy vs TPCC) Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 4/9] dmaengine/ARM: omap-dma: Fix the DMAengine compile test on non OMAP configs Peter Ujfalusi
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

The correct type is int and not for the third parameter of
of_find_property().
Fixes compilation for 64bit architectures (x86_64, aarch64).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/edma.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index 87c58710ae31..0241f39ba64c 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -2026,8 +2026,7 @@ static struct edma_soc_info *edma_setup_info_from_dt(struct device *dev,
 {
 	struct edma_soc_info *info;
 	struct property *prop;
-	size_t sz;
-	int ret;
+	int sz, ret;
 
 	info = devm_kzalloc(dev, sizeof(struct edma_soc_info), GFP_KERNEL);
 	if (!info)
-- 
2.10.0

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

* [PATCH v3 4/9] dmaengine/ARM: omap-dma: Fix the DMAengine compile test on non OMAP configs
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
                   ` (2 preceding siblings ...)
  2016-09-21 12:41 ` [PATCH v3 3/9] dmaengine: edma: Use correct type for of_find_property() third parameter Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 5/9] dmaengine: ti-dma-crossbar: Correct type for of_find_property() third parameter Peter Ujfalusi
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

The DMAengine driver for omap-dma use three function calls from the
plat-omap legacy driver. When the DMAengine driver is built when ARCH_OMAP
is not set, the compilation will fail due to missing symbols.
Add empty inline functions to allow the DMAengine driver to be compiled
with COMPILE_TEST.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 include/linux/omap-dma.h | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/include/linux/omap-dma.h b/include/linux/omap-dma.h
index 1d99b61adc65..290081620b3e 100644
--- a/include/linux/omap-dma.h
+++ b/include/linux/omap-dma.h
@@ -297,6 +297,7 @@ struct omap_system_dma_plat_info {
 #define dma_omap15xx()	__dma_omap15xx(d)
 #define dma_omap16xx()	__dma_omap16xx(d)
 
+#if defined(CONFIG_ARCH_OMAP)
 extern struct omap_system_dma_plat_info *omap_get_plat_info(void);
 
 extern void omap_set_dma_priority(int lch, int dst_port, int priority);
@@ -355,4 +356,22 @@ static inline int omap_lcd_dma_running(void)
 }
 #endif
 
+#else /* CONFIG_ARCH_OMAP */
+
+static inline struct omap_system_dma_plat_info *omap_get_plat_info(void)
+{
+	return NULL;
+}
+
+static inline int omap_request_dma(int dev_id, const char *dev_name,
+			void (*callback)(int lch, u16 ch_status, void *data),
+			void *data, int *dma_ch)
+{
+	return -ENODEV;
+}
+
+static inline void omap_free_dma(int ch) { }
+
+#endif /* CONFIG_ARCH_OMAP */
+
 #endif /* __LINUX_OMAP_DMA_H */
-- 
2.10.0

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

* [PATCH v3 5/9] dmaengine: ti-dma-crossbar: Correct type for of_find_property() third parameter
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
                   ` (3 preceding siblings ...)
  2016-09-21 12:41 ` [PATCH v3 4/9] dmaengine/ARM: omap-dma: Fix the DMAengine compile test on non OMAP configs Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 6/9] dmaengine: ti-dma-crossbar: Fix of_device_id data parameter usage Peter Ujfalusi
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

The correct type is int and not for the third parameter of
of_find_property().
Fixes compilation for 64bit architectures (x86_64, aarch64).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/ti-dma-crossbar.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/ti-dma-crossbar.c b/drivers/dma/ti-dma-crossbar.c
index 5ae294b256a7..e4f3bd1ae264 100644
--- a/drivers/dma/ti-dma-crossbar.c
+++ b/drivers/dma/ti-dma-crossbar.c
@@ -311,7 +311,7 @@ static int ti_dra7_xbar_probe(struct platform_device *pdev)
 	struct property *prop;
 	struct resource *res;
 	u32 safe_val;
-	size_t sz;
+	int sz;
 	void __iomem *iomem;
 	int i, ret;
 
-- 
2.10.0

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

* [PATCH v3 6/9] dmaengine: ti-dma-crossbar: Fix of_device_id data parameter usage
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
                   ` (4 preceding siblings ...)
  2016-09-21 12:41 ` [PATCH v3 5/9] dmaengine: ti-dma-crossbar: Correct type for of_find_property() third parameter Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-28  3:17   ` Vinod Koul
  2016-09-21 12:41 ` [PATCH v3 7/9] dmaengine: edma: enable COMPILE_TEST Peter Ujfalusi
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

Use pointers to static constant variables for crossbar type and for DMA
offset configuration.

Fixes compiler warnings on 64bit architectures:

drivers/dma/ti-dma-crossbar.c: In function ?ti_dra7_xbar_probe?:
drivers/dma/ti-dma-crossbar.c:398:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  xbar->dma_offset = (u32)match->data;
                     ^
drivers/dma/ti-dma-crossbar.c: In function ?ti_dma_xbar_probe?:
drivers/dma/ti-dma-crossbar.c:431:10: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
  switch ((u32)match->data) {
          ^

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/ti-dma-crossbar.c | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/drivers/dma/ti-dma-crossbar.c b/drivers/dma/ti-dma-crossbar.c
index e4f3bd1ae264..9103b1260797 100644
--- a/drivers/dma/ti-dma-crossbar.c
+++ b/drivers/dma/ti-dma-crossbar.c
@@ -18,15 +18,19 @@
 
 #define TI_XBAR_DRA7		0
 #define TI_XBAR_AM335X		1
+static const u32 ti_xbar_type[] = {
+	[TI_XBAR_DRA7] = TI_XBAR_DRA7,
+	[TI_XBAR_AM335X] = TI_XBAR_AM335X,
+};
 
 static const struct of_device_id ti_dma_xbar_match[] = {
 	{
 		.compatible = "ti,dra7-dma-crossbar",
-		.data = (void *)TI_XBAR_DRA7,
+		.data = &ti_xbar_type[TI_XBAR_DRA7],
 	},
 	{
 		.compatible = "ti,am335x-edma-crossbar",
-		.data = (void *)TI_XBAR_AM335X,
+		.data = &ti_xbar_type[TI_XBAR_AM335X],
 	},
 	{},
 };
@@ -190,9 +194,6 @@ static int ti_am335x_xbar_probe(struct platform_device *pdev)
 #define TI_DRA7_XBAR_OUTPUTS	127
 #define TI_DRA7_XBAR_INPUTS	256
 
-#define TI_XBAR_EDMA_OFFSET	0
-#define TI_XBAR_SDMA_OFFSET	1
-
 struct ti_dra7_xbar_data {
 	void __iomem *iomem;
 
@@ -280,18 +281,25 @@ static void *ti_dra7_xbar_route_allocate(struct of_phandle_args *dma_spec,
 	return map;
 }
 
+#define TI_XBAR_EDMA_OFFSET	0
+#define TI_XBAR_SDMA_OFFSET	1
+static const u32 ti_dma_offset[] = {
+	[TI_XBAR_EDMA_OFFSET] = 0,
+	[TI_XBAR_SDMA_OFFSET] = 1,
+};
+
 static const struct of_device_id ti_dra7_master_match[] = {
 	{
 		.compatible = "ti,omap4430-sdma",
-		.data = (void *)TI_XBAR_SDMA_OFFSET,
+		.data = &ti_dma_offset[TI_XBAR_SDMA_OFFSET],
 	},
 	{
 		.compatible = "ti,edma3",
-		.data = (void *)TI_XBAR_EDMA_OFFSET,
+		.data = &ti_dma_offset[TI_XBAR_EDMA_OFFSET],
 	},
 	{
 		.compatible = "ti,edma3-tpcc",
-		.data = (void *)TI_XBAR_EDMA_OFFSET,
+		.data = &ti_dma_offset[TI_XBAR_EDMA_OFFSET],
 	},
 	{},
 };
@@ -395,7 +403,7 @@ static int ti_dra7_xbar_probe(struct platform_device *pdev)
 
 	xbar->dmarouter.dev = &pdev->dev;
 	xbar->dmarouter.route_free = ti_dra7_xbar_free;
-	xbar->dma_offset = (u32)match->data;
+	xbar->dma_offset = *(u32*)match->data;
 
 	mutex_init(&xbar->mutex);
 	platform_set_drvdata(pdev, xbar);
@@ -428,7 +436,7 @@ static int ti_dma_xbar_probe(struct platform_device *pdev)
 	if (unlikely(!match))
 		return -EINVAL;
 
-	switch ((u32)match->data) {
+	switch (*(u32*)match->data) {
 	case TI_XBAR_DRA7:
 		ret = ti_dra7_xbar_probe(pdev);
 		break;
-- 
2.10.0

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

* [PATCH v3 7/9] dmaengine: edma: enable COMPILE_TEST
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
                   ` (5 preceding siblings ...)
  2016-09-21 12:41 ` [PATCH v3 6/9] dmaengine: ti-dma-crossbar: Fix of_device_id data parameter usage Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-22  4:50   ` kbuild test robot
  2016-09-21 12:41 ` [PATCH v3 8/9] dmaengine: omap-dma: " Peter Ujfalusi
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

To get more coverage, enable COMPILE_TEST for this driver.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index fe2dbb811e19..4348249b943a 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -515,7 +515,7 @@ config TI_DMA_CROSSBAR
 
 config TI_EDMA
 	bool "TI EDMA support"
-	depends on ARCH_DAVINCI || ARCH_OMAP || ARCH_KEYSTONE
+	depends on ARCH_DAVINCI || ARCH_OMAP || ARCH_KEYSTONE || COMPILE_TEST
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	select TI_DMA_CROSSBAR if ARCH_OMAP
-- 
2.10.0

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

* [PATCH v3 8/9] dmaengine: omap-dma: enable COMPILE_TEST
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
                   ` (6 preceding siblings ...)
  2016-09-21 12:41 ` [PATCH v3 7/9] dmaengine: edma: enable COMPILE_TEST Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-21 12:41 ` [PATCH v3 9/9] dmaengine: ti-dma-crossbar: " Peter Ujfalusi
  2016-09-28  3:26 ` [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Vinod Koul
  9 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

To get more coverage, enable COMPILE_TEST for this driver.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 4348249b943a..84647d6cb2f4 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -130,7 +130,7 @@ config DMA_JZ4780
 
 config DMA_OMAP
 	tristate "OMAP DMA support"
-	depends on ARCH_OMAP
+	depends on ARCH_OMAP || COMPILE_TEST
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
 	select TI_DMA_CROSSBAR if SOC_DRA7XX
-- 
2.10.0

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

* [PATCH v3 9/9] dmaengine: ti-dma-crossbar: enable COMPILE_TEST
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
                   ` (7 preceding siblings ...)
  2016-09-21 12:41 ` [PATCH v3 8/9] dmaengine: omap-dma: " Peter Ujfalusi
@ 2016-09-21 12:41 ` Peter Ujfalusi
  2016-09-28  3:26 ` [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Vinod Koul
  9 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-21 12:41 UTC (permalink / raw)
  To: linux-arm-kernel

To get more coverage, enable COMPILE_TEST for this driver.
When compile testing eDMA or omap-dma, select also the ti-dma-crossbar so
it is also covered by the compile testing.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
 drivers/dma/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
index 84647d6cb2f4..1c11628062ad 100644
--- a/drivers/dma/Kconfig
+++ b/drivers/dma/Kconfig
@@ -133,7 +133,7 @@ config DMA_OMAP
 	depends on ARCH_OMAP || COMPILE_TEST
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
-	select TI_DMA_CROSSBAR if SOC_DRA7XX
+	select TI_DMA_CROSSBAR if (SOC_DRA7XX || COMPILE_TEST)
 
 config DMA_SA11X0
 	tristate "SA-11x0 DMA support"
@@ -518,7 +518,7 @@ config TI_EDMA
 	depends on ARCH_DAVINCI || ARCH_OMAP || ARCH_KEYSTONE || COMPILE_TEST
 	select DMA_ENGINE
 	select DMA_VIRTUAL_CHANNELS
-	select TI_DMA_CROSSBAR if ARCH_OMAP
+	select TI_DMA_CROSSBAR if (ARCH_OMAP || COMPILE_TEST)
 	default n
 	help
 	  Enable support for the TI EDMA controller. This DMA
-- 
2.10.0

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

* [PATCH v3 7/9] dmaengine: edma: enable COMPILE_TEST
  2016-09-21 12:41 ` [PATCH v3 7/9] dmaengine: edma: enable COMPILE_TEST Peter Ujfalusi
@ 2016-09-22  4:50   ` kbuild test robot
  0 siblings, 0 replies; 14+ messages in thread
From: kbuild test robot @ 2016-09-22  4:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Peter,

[auto build test ERROR on linus/master]
[also build test ERROR on v4.8-rc7 next-20160921]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url:    https://github.com/0day-ci/linux/commits/Peter-Ujfalusi/dmaengine-ti-drivers-enable-COMPILE_TESTing/20160921-212008
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

>> drivers/dma/edma.c:415:20: error: conflicting types for 'set_bits'
    static inline void set_bits(int offset, int len, unsigned long *p)
                       ^~~~~~~~
   In file included from include/linux/bitops.h:36:0,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from include/linux/dmaengine.h:20,
                    from drivers/dma/edma.c:16:
   arch/powerpc/include/asm/bitops.h:75:14: note: previous definition of 'set_bits' was here
    DEFINE_BITOP(set_bits, or, "")
                 ^
   arch/powerpc/include/asm/bitops.h:58:24: note: in definition of macro 'DEFINE_BITOP'
    static __inline__ void fn(unsigned long mask, \
                           ^~
>> drivers/dma/edma.c:421:20: error: conflicting types for 'clear_bits'
    static inline void clear_bits(int offset, int len, unsigned long *p)
                       ^~~~~~~~~~
   In file included from include/linux/bitops.h:36:0,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/kobject.h:20,
                    from include/linux/device.h:17,
                    from include/linux/dmaengine.h:20,
                    from drivers/dma/edma.c:16:
   arch/powerpc/include/asm/bitops.h:76:14: note: previous definition of 'clear_bits' was here
    DEFINE_BITOP(clear_bits, andc, "")
                 ^
   arch/powerpc/include/asm/bitops.h:58:24: note: in definition of macro 'DEFINE_BITOP'
    static __inline__ void fn(unsigned long mask, \
                           ^~

vim +/set_bits +415 drivers/dma/edma.c

d9c345d1 Peter Ujfalusi 2015-10-16  409  static inline void edma_param_or(struct edma_cc *ecc, int offset, int param_no,
2b6b3b74 Peter Ujfalusi 2015-10-14  410  				 unsigned or)
2b6b3b74 Peter Ujfalusi 2015-10-14  411  {
2b6b3b74 Peter Ujfalusi 2015-10-14  412  	edma_or(ecc, EDMA_PARM + offset + (param_no << 5), or);
2b6b3b74 Peter Ujfalusi 2015-10-14  413  }
2b6b3b74 Peter Ujfalusi 2015-10-14  414  
2b6b3b74 Peter Ujfalusi 2015-10-14 @415  static inline void set_bits(int offset, int len, unsigned long *p)
2b6b3b74 Peter Ujfalusi 2015-10-14  416  {
2b6b3b74 Peter Ujfalusi 2015-10-14  417  	for (; len > 0; len--)
2b6b3b74 Peter Ujfalusi 2015-10-14  418  		set_bit(offset + (len - 1), p);
2b6b3b74 Peter Ujfalusi 2015-10-14  419  }
2b6b3b74 Peter Ujfalusi 2015-10-14  420  
2b6b3b74 Peter Ujfalusi 2015-10-14 @421  static inline void clear_bits(int offset, int len, unsigned long *p)
2b6b3b74 Peter Ujfalusi 2015-10-14  422  {
2b6b3b74 Peter Ujfalusi 2015-10-14  423  	for (; len > 0; len--)
2b6b3b74 Peter Ujfalusi 2015-10-14  424  		clear_bit(offset + (len - 1), p);

:::::: The code at line 415 was first introduced by commit
:::::: 2b6b3b7420190888793c49e97276e1e73bd7eaed ARM/dmaengine: edma: Merge the two drivers under drivers/dma/

:::::: TO: Peter Ujfalusi <peter.ujfalusi@ti.com>
:::::: CC: Vinod Koul <vinod.koul@intel.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 49928 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160922/316e4457/attachment-0001.gz>

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

* [PATCH v3 6/9] dmaengine: ti-dma-crossbar: Fix of_device_id data parameter usage
  2016-09-21 12:41 ` [PATCH v3 6/9] dmaengine: ti-dma-crossbar: Fix of_device_id data parameter usage Peter Ujfalusi
@ 2016-09-28  3:17   ` Vinod Koul
  0 siblings, 0 replies; 14+ messages in thread
From: Vinod Koul @ 2016-09-28  3:17 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 21, 2016 at 03:41:32PM +0300, Peter Ujfalusi wrote:
> @@ -395,7 +403,7 @@ static int ti_dra7_xbar_probe(struct platform_device *pdev)
>  
>  	xbar->dmarouter.dev = &pdev->dev;
>  	xbar->dmarouter.route_free = ti_dra7_xbar_free;
> -	xbar->dma_offset = (u32)match->data;
> +	xbar->dma_offset = *(u32*)match->data;
			     ^^^^
we need space between u32 and *

>  	mutex_init(&xbar->mutex);
>  	platform_set_drvdata(pdev, xbar);
> @@ -428,7 +436,7 @@ static int ti_dma_xbar_probe(struct platform_device *pdev)
>  	if (unlikely(!match))
>  		return -EINVAL;
>  
> -	switch ((u32)match->data) {
> +	switch (*(u32*)match->data) {

here too please

-- 
~Vinod

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

* [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing
  2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
                   ` (8 preceding siblings ...)
  2016-09-21 12:41 ` [PATCH v3 9/9] dmaengine: ti-dma-crossbar: " Peter Ujfalusi
@ 2016-09-28  3:26 ` Vinod Koul
  2016-09-28  5:58   ` Peter Ujfalusi
  9 siblings, 1 reply; 14+ messages in thread
From: Vinod Koul @ 2016-09-28  3:26 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Sep 21, 2016 at 03:41:26PM +0300, Peter Ujfalusi wrote:
> Hi,
> 
> Changes since v2:
> - Instead of converting to use enum for the of_device_id data parameter the two
>   patch for edma and ti-dma-crossbar is using pointers to u32 variables to make
>   sure that the code compile (and in theory work) on all architectures.
> - fixed issue in the ti-dma-crossbar driver I have made with the enum change to
>   not handle the DMA offset parameters correctly.
> 
> Changes since v1:
> - added the compiler warning message to ti-dma-crossbar enum type patch
> - moved the Kconfig patches at the end of the seris
> 
> The following series will enable unconditional COMPILE_TEST coverage for the
> following drivers: omap-dma, edma and ti-dma-crossbar
> 
> The series includes fixes noticed when compiling the drivers for x86_64 and
> aarch64.

I have applied the series after fixing code style nit-picks.

Also applied the edma patch and reordered the series to have that come
before compile test enable patch

Please verify.

Thanks
-- 
~Vinod

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

* [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing
  2016-09-28  3:26 ` [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Vinod Koul
@ 2016-09-28  5:58   ` Peter Ujfalusi
  0 siblings, 0 replies; 14+ messages in thread
From: Peter Ujfalusi @ 2016-09-28  5:58 UTC (permalink / raw)
  To: linux-arm-kernel

Vinod,

On 09/28/16 06:26, Vinod Koul wrote:
> On Wed, Sep 21, 2016 at 03:41:26PM +0300, Peter Ujfalusi wrote:
>> Hi,
>>
>> Changes since v2:
>> - Instead of converting to use enum for the of_device_id data parameter the two
>>   patch for edma and ti-dma-crossbar is using pointers to u32 variables to make
>>   sure that the code compile (and in theory work) on all architectures.
>> - fixed issue in the ti-dma-crossbar driver I have made with the enum change to
>>   not handle the DMA offset parameters correctly.
>>
>> Changes since v1:
>> - added the compiler warning message to ti-dma-crossbar enum type patch
>> - moved the Kconfig patches at the end of the seris
>>
>> The following series will enable unconditional COMPILE_TEST coverage for the
>> following drivers: omap-dma, edma and ti-dma-crossbar
>>
>> The series includes fixes noticed when compiling the drivers for x86_64 and
>> aarch64.
> 
> I have applied the series after fixing code style nit-picks.
> 
> Also applied the edma patch and reordered the series to have that come
> before compile test enable patch
> 
> Please verify.

Looks good, thank you!

-- 
P?ter

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

end of thread, other threads:[~2016-09-28  5:58 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-21 12:41 [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Peter Ujfalusi
2016-09-21 12:41 ` [PATCH v3 1/9] dmaengine: edma: Add missing MODULE_DEVICE_TABLE() for of_device_id structs Peter Ujfalusi
2016-09-21 12:41 ` [PATCH v3 2/9] dmaengine: edma: Fix of_device_id data parameter usage (legacy vs TPCC) Peter Ujfalusi
2016-09-21 12:41 ` [PATCH v3 3/9] dmaengine: edma: Use correct type for of_find_property() third parameter Peter Ujfalusi
2016-09-21 12:41 ` [PATCH v3 4/9] dmaengine/ARM: omap-dma: Fix the DMAengine compile test on non OMAP configs Peter Ujfalusi
2016-09-21 12:41 ` [PATCH v3 5/9] dmaengine: ti-dma-crossbar: Correct type for of_find_property() third parameter Peter Ujfalusi
2016-09-21 12:41 ` [PATCH v3 6/9] dmaengine: ti-dma-crossbar: Fix of_device_id data parameter usage Peter Ujfalusi
2016-09-28  3:17   ` Vinod Koul
2016-09-21 12:41 ` [PATCH v3 7/9] dmaengine: edma: enable COMPILE_TEST Peter Ujfalusi
2016-09-22  4:50   ` kbuild test robot
2016-09-21 12:41 ` [PATCH v3 8/9] dmaengine: omap-dma: " Peter Ujfalusi
2016-09-21 12:41 ` [PATCH v3 9/9] dmaengine: ti-dma-crossbar: " Peter Ujfalusi
2016-09-28  3:26 ` [PATCH v3 0/9] dmaengine: ti drivers: enable COMPILE_TESTing Vinod Koul
2016-09-28  5:58   ` Peter Ujfalusi

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