2020-10-26 20:58:17

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] dmaengine: ti: k3-udma: fix -Wenum-conversion warning

From: Arnd Bergmann <[email protected]>

gcc warns about a mismatch argument type when passing
'false' into a function that expects an enum:

drivers/dma/ti/k3-udma-private.c: In function 'xudma_tchan_get':
drivers/dma/ti/k3-udma-private.c:86:34: warning: implicit conversion from 'enum <anonymous>' to 'enum udma_tp_level' [-Wenum-conversion]
86 | return __udma_reserve_##res(ud, false, id); \
| ^~~~~
drivers/dma/ti/k3-udma-private.c:95:1: note: in expansion of macro 'XUDMA_GET_PUT_RESOURCE'
95 | XUDMA_GET_PUT_RESOURCE(tchan);
| ^~~~~~~~~~~~~~~~~~~~~~

In this case, false has the same numerical value as
UDMA_TP_NORMAL, so passing that is most likely the correct
way to avoid the warning without changing the behavior.

Fixes: d70241913413 ("dmaengine: ti: k3-udma: Add glue layer for non DMAengine users")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/dma/ti/k3-udma-private.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/ti/k3-udma-private.c b/drivers/dma/ti/k3-udma-private.c
index aa24e554f7b4..8563a392f30b 100644
--- a/drivers/dma/ti/k3-udma-private.c
+++ b/drivers/dma/ti/k3-udma-private.c
@@ -83,7 +83,7 @@ EXPORT_SYMBOL(xudma_rflow_is_gp);
#define XUDMA_GET_PUT_RESOURCE(res) \
struct udma_##res *xudma_##res##_get(struct udma_dev *ud, int id) \
{ \
- return __udma_reserve_##res(ud, false, id); \
+ return __udma_reserve_##res(ud, UDMA_TP_NORMAL, id); \
} \
EXPORT_SYMBOL(xudma_##res##_get); \
\
--
2.27.0


2020-10-27 14:11:32

by Peter Ujfalusi

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: ti: k3-udma: fix -Wenum-conversion warning



On 26/10/2020 18.01, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> gcc warns about a mismatch argument type when passing
> 'false' into a function that expects an enum:

Strange enough, but my gcc does not warn me (Gentoo 10.2.0-r2 p3).

> drivers/dma/ti/k3-udma-private.c: In function 'xudma_tchan_get':
> drivers/dma/ti/k3-udma-private.c:86:34: warning: implicit conversion from 'enum <anonymous>' to 'enum udma_tp_level' [-Wenum-conversion]
> 86 | return __udma_reserve_##res(ud, false, id); \
> | ^~~~~
> drivers/dma/ti/k3-udma-private.c:95:1: note: in expansion of macro 'XUDMA_GET_PUT_RESOURCE'
> 95 | XUDMA_GET_PUT_RESOURCE(tchan);
> | ^~~~~~~~~~~~~~~~~~~~~~

But this is valid. The Throughput Levels got expanded with j721e from 2
to three and I failed to update this.

> In this case, false has the same numerical value as
> UDMA_TP_NORMAL, so passing that is most likely the correct
> way to avoid the warning without changing the behavior.

Yes, that's correct, thanks for fixing it!

Acked-by: Peter Ujfalusi <[email protected]>

> Fixes: d70241913413 ("dmaengine: ti: k3-udma: Add glue layer for non DMAengine users")
> Signed-off-by: Arnd Bergmann <[email protected]>
> ---
> drivers/dma/ti/k3-udma-private.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/dma/ti/k3-udma-private.c b/drivers/dma/ti/k3-udma-private.c
> index aa24e554f7b4..8563a392f30b 100644
> --- a/drivers/dma/ti/k3-udma-private.c
> +++ b/drivers/dma/ti/k3-udma-private.c
> @@ -83,7 +83,7 @@ EXPORT_SYMBOL(xudma_rflow_is_gp);
> #define XUDMA_GET_PUT_RESOURCE(res) \
> struct udma_##res *xudma_##res##_get(struct udma_dev *ud, int id) \
> { \
> - return __udma_reserve_##res(ud, false, id); \
> + return __udma_reserve_##res(ud, UDMA_TP_NORMAL, id); \
> } \
> EXPORT_SYMBOL(xudma_##res##_get); \
> \
>

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

2020-10-29 01:04:22

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH] dmaengine: ti: k3-udma: fix -Wenum-conversion warning

On 26-10-20, 17:01, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> gcc warns about a mismatch argument type when passing
> 'false' into a function that expects an enum:
>
> drivers/dma/ti/k3-udma-private.c: In function 'xudma_tchan_get':
> drivers/dma/ti/k3-udma-private.c:86:34: warning: implicit conversion from 'enum <anonymous>' to 'enum udma_tp_level' [-Wenum-conversion]
> 86 | return __udma_reserve_##res(ud, false, id); \
> | ^~~~~
> drivers/dma/ti/k3-udma-private.c:95:1: note: in expansion of macro 'XUDMA_GET_PUT_RESOURCE'
> 95 | XUDMA_GET_PUT_RESOURCE(tchan);
> | ^~~~~~~~~~~~~~~~~~~~~~
>
> In this case, false has the same numerical value as
> UDMA_TP_NORMAL, so passing that is most likely the correct
> way to avoid the warning without changing the behavior.

Applied, thanks

--
~Vinod