linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single
@ 2018-09-21 10:29 Nathan Chancellor
  2018-09-25  7:24 ` Tudor Ambarus
  2018-09-25  7:32 ` [PATCH v2] " Nathan Chancellor
  0 siblings, 2 replies; 5+ messages in thread
From: Nathan Chancellor @ 2018-09-21 10:29 UTC (permalink / raw)
  To: Marek Vasut, David Woodhouse, Brian Norris, Boris Brezillon
  Cc: Richard Weinberger, linux-mtd, linux-kernel, Nathan Chancellor

Clang warns when one enumerated type is converted implicitly to another.

drivers/mtd/spi-nor/cadence-quadspi.c:962:47: warning: implicit
conversion from enumeration type 'enum dma_transfer_direction' to
different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
        dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
./include/linux/dma-mapping.h:428:66: note: expanded from macro
'dma_map_single'
#define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
                                   ~~~~~~~~~~~~~~~~~~~~          ^
drivers/mtd/spi-nor/cadence-quadspi.c:997:43: warning: implicit
conversion from enumeration type 'enum dma_transfer_direction' to
different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
        dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
./include/linux/dma-mapping.h:429:70: note: expanded from macro
'dma_unmap_single'
#define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
                                     ~~~~~~~~~~~~~~~~~~~~~~          ^
2 warnings generated.

Use the proper enums from dma_data_direction to satisfy Clang.

DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2

Link: https://github.com/ClangBuiltLinux/linux/issues/108
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---
 drivers/mtd/spi-nor/cadence-quadspi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/spi-nor/cadence-quadspi.c b/drivers/mtd/spi-nor/cadence-quadspi.c
index 8e714fbfa521..d0e57ac81098 100644
--- a/drivers/mtd/spi-nor/cadence-quadspi.c
+++ b/drivers/mtd/spi-nor/cadence-quadspi.c
@@ -959,7 +959,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
 		return 0;
 	}
 
-	dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
+	dma_dst = dma_map_single(nor->dev, buf, len, DMA_FROM_DEVICE);
 	if (dma_mapping_error(nor->dev, dma_dst)) {
 		dev_err(nor->dev, "dma mapping failed\n");
 		return -ENOMEM;
@@ -994,7 +994,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
 	}
 
 err_unmap:
-	dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
+	dma_unmap_single(nor->dev, dma_dst, len, DMA_TO_DEVICE);
 
 	return 0;
 }
-- 
2.19.0


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

* Re: [PATCH] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single
  2018-09-21 10:29 [PATCH] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single Nathan Chancellor
@ 2018-09-25  7:24 ` Tudor Ambarus
  2018-09-25  7:34   ` Nathan Chancellor
  2018-09-25  7:32 ` [PATCH v2] " Nathan Chancellor
  1 sibling, 1 reply; 5+ messages in thread
From: Tudor Ambarus @ 2018-09-25  7:24 UTC (permalink / raw)
  To: Nathan Chancellor, Marek Vasut, David Woodhouse, Brian Norris,
	Boris Brezillon
  Cc: Richard Weinberger, linux-mtd, linux-kernel

Hi, Nathan,

On 09/21/2018 01:29 PM, Nathan Chancellor wrote:
> Clang warns when one enumerated type is converted implicitly to another.
> 
> drivers/mtd/spi-nor/cadence-quadspi.c:962:47: warning: implicit
> conversion from enumeration type 'enum dma_transfer_direction' to
> different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
>         dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
>                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> ./include/linux/dma-mapping.h:428:66: note: expanded from macro
> 'dma_map_single'
> #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
>                                    ~~~~~~~~~~~~~~~~~~~~          ^
> drivers/mtd/spi-nor/cadence-quadspi.c:997:43: warning: implicit
> conversion from enumeration type 'enum dma_transfer_direction' to
> different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
>         dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> ./include/linux/dma-mapping.h:429:70: note: expanded from macro
> 'dma_unmap_single'
> #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
>                                      ~~~~~~~~~~~~~~~~~~~~~~          ^
> 2 warnings generated.
> 
> Use the proper enums from dma_data_direction to satisfy Clang.
> 
> DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
> DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2
> 
> Link: https://github.com/ClangBuiltLinux/linux/issues/108
> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> ---
>  drivers/mtd/spi-nor/cadence-quadspi.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/spi-nor/cadence-quadspi.c b/drivers/mtd/spi-nor/cadence-quadspi.c
> index 8e714fbfa521..d0e57ac81098 100644
> --- a/drivers/mtd/spi-nor/cadence-quadspi.c
> +++ b/drivers/mtd/spi-nor/cadence-quadspi.c
> @@ -959,7 +959,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
>  		return 0;
>  	}
>  
> -	dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
> +	dma_dst = dma_map_single(nor->dev, buf, len, DMA_FROM_DEVICE);
>  	if (dma_mapping_error(nor->dev, dma_dst)) {
>  		dev_err(nor->dev, "dma mapping failed\n");
>  		return -ENOMEM;
> @@ -994,7 +994,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
>  	}
>  
>  err_unmap:
> -	dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
> +	dma_unmap_single(nor->dev, dma_dst, len, DMA_TO_DEVICE);

Should have used DMA_FROM_DEVICE, as you did above. Otherwise looks good.

Cheers,
ta

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

* [PATCH v2] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single
  2018-09-21 10:29 [PATCH] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single Nathan Chancellor
  2018-09-25  7:24 ` Tudor Ambarus
@ 2018-09-25  7:32 ` Nathan Chancellor
  1 sibling, 0 replies; 5+ messages in thread
From: Nathan Chancellor @ 2018-09-25  7:32 UTC (permalink / raw)
  To: Marek Vasut, David Woodhouse, Brian Norris, Boris Brezillon
  Cc: Richard Weinberger, linux-mtd, linux-kernel, Nathan Chancellor

Clang warns when one enumerated type is converted implicitly to another.

drivers/mtd/spi-nor/cadence-quadspi.c:962:47: warning: implicit
conversion from enumeration type 'enum dma_transfer_direction' to
different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
        dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
./include/linux/dma-mapping.h:428:66: note: expanded from macro
'dma_map_single'
#define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
                                   ~~~~~~~~~~~~~~~~~~~~          ^
drivers/mtd/spi-nor/cadence-quadspi.c:997:43: warning: implicit
conversion from enumeration type 'enum dma_transfer_direction' to
different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
        dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
./include/linux/dma-mapping.h:429:70: note: expanded from macro
'dma_unmap_single'
#define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
                                     ~~~~~~~~~~~~~~~~~~~~~~          ^
2 warnings generated.

Use the proper enums from dma_data_direction to satisfy Clang.

DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2

Link: https://github.com/ClangBuiltLinux/linux/issues/108
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
---

v1 -> v2:

* Fix second half of patch (previously incorrectly used DMA_TO_DEVICE),
  thanks to Tudor Ambarus for catching this.

 drivers/mtd/spi-nor/cadence-quadspi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mtd/spi-nor/cadence-quadspi.c b/drivers/mtd/spi-nor/cadence-quadspi.c
index 8e714fbfa521..e24db817154e 100644
--- a/drivers/mtd/spi-nor/cadence-quadspi.c
+++ b/drivers/mtd/spi-nor/cadence-quadspi.c
@@ -959,7 +959,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
 		return 0;
 	}
 
-	dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
+	dma_dst = dma_map_single(nor->dev, buf, len, DMA_FROM_DEVICE);
 	if (dma_mapping_error(nor->dev, dma_dst)) {
 		dev_err(nor->dev, "dma mapping failed\n");
 		return -ENOMEM;
@@ -994,7 +994,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
 	}
 
 err_unmap:
-	dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
+	dma_unmap_single(nor->dev, dma_dst, len, DMA_FROM_DEVICE);
 
 	return 0;
 }
-- 
2.19.0


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

* Re: [PATCH] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single
  2018-09-25  7:24 ` Tudor Ambarus
@ 2018-09-25  7:34   ` Nathan Chancellor
  2018-09-25  8:18     ` Tudor Ambarus
  0 siblings, 1 reply; 5+ messages in thread
From: Nathan Chancellor @ 2018-09-25  7:34 UTC (permalink / raw)
  To: Tudor Ambarus
  Cc: Marek Vasut, David Woodhouse, Brian Norris, Boris Brezillon,
	Richard Weinberger, linux-mtd, linux-kernel

On Tue, Sep 25, 2018 at 10:24:04AM +0300, Tudor Ambarus wrote:
> Hi, Nathan,
> 
> On 09/21/2018 01:29 PM, Nathan Chancellor wrote:
> > Clang warns when one enumerated type is converted implicitly to another.
> > 
> > drivers/mtd/spi-nor/cadence-quadspi.c:962:47: warning: implicit
> > conversion from enumeration type 'enum dma_transfer_direction' to
> > different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
> >         dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
> >                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> > ./include/linux/dma-mapping.h:428:66: note: expanded from macro
> > 'dma_map_single'
> > #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
> >                                    ~~~~~~~~~~~~~~~~~~~~          ^
> > drivers/mtd/spi-nor/cadence-quadspi.c:997:43: warning: implicit
> > conversion from enumeration type 'enum dma_transfer_direction' to
> > different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
> >         dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
> >         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> > ./include/linux/dma-mapping.h:429:70: note: expanded from macro
> > 'dma_unmap_single'
> > #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
> >                                      ~~~~~~~~~~~~~~~~~~~~~~          ^
> > 2 warnings generated.
> > 
> > Use the proper enums from dma_data_direction to satisfy Clang.
> > 
> > DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
> > DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2
> > 
> > Link: https://github.com/ClangBuiltLinux/linux/issues/108
> > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> > ---
> >  drivers/mtd/spi-nor/cadence-quadspi.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/mtd/spi-nor/cadence-quadspi.c b/drivers/mtd/spi-nor/cadence-quadspi.c
> > index 8e714fbfa521..d0e57ac81098 100644
> > --- a/drivers/mtd/spi-nor/cadence-quadspi.c
> > +++ b/drivers/mtd/spi-nor/cadence-quadspi.c
> > @@ -959,7 +959,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
> >  		return 0;
> >  	}
> >  
> > -	dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
> > +	dma_dst = dma_map_single(nor->dev, buf, len, DMA_FROM_DEVICE);
> >  	if (dma_mapping_error(nor->dev, dma_dst)) {
> >  		dev_err(nor->dev, "dma mapping failed\n");
> >  		return -ENOMEM;
> > @@ -994,7 +994,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
> >  	}
> >  
> >  err_unmap:
> > -	dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
> > +	dma_unmap_single(nor->dev, dma_dst, len, DMA_TO_DEVICE);
> 
> Should have used DMA_FROM_DEVICE, as you did above. Otherwise looks good.
> 
> Cheers,
> ta

Thank you very much for catching this, did several of these conversions
back to back and didn't look closely at this. I just sent a v2, I
appreciate the review!

Nathan

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

* Re: [PATCH] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single
  2018-09-25  7:34   ` Nathan Chancellor
@ 2018-09-25  8:18     ` Tudor Ambarus
  0 siblings, 0 replies; 5+ messages in thread
From: Tudor Ambarus @ 2018-09-25  8:18 UTC (permalink / raw)
  To: Nathan Chancellor
  Cc: Marek Vasut, David Woodhouse, Brian Norris, Boris Brezillon,
	Richard Weinberger, linux-mtd, linux-kernel



On 09/25/2018 10:34 AM, Nathan Chancellor wrote:
> On Tue, Sep 25, 2018 at 10:24:04AM +0300, Tudor Ambarus wrote:
>> Hi, Nathan,
>>
>> On 09/21/2018 01:29 PM, Nathan Chancellor wrote:
>>> Clang warns when one enumerated type is converted implicitly to another.
>>>
>>> drivers/mtd/spi-nor/cadence-quadspi.c:962:47: warning: implicit
>>> conversion from enumeration type 'enum dma_transfer_direction' to
>>> different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
>>>         dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
>>>                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
>>> ./include/linux/dma-mapping.h:428:66: note: expanded from macro
>>> 'dma_map_single'
>>> #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
>>>                                    ~~~~~~~~~~~~~~~~~~~~          ^
>>> drivers/mtd/spi-nor/cadence-quadspi.c:997:43: warning: implicit
>>> conversion from enumeration type 'enum dma_transfer_direction' to
>>> different enumeration type 'enum dma_data_direction' [-Wenum-conversion]
>>>         dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
>>>         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
>>> ./include/linux/dma-mapping.h:429:70: note: expanded from macro
>>> 'dma_unmap_single'
>>> #define dma_unmap_single(d, a, s, r) dma_unmap_single_attrs(d, a, s, r, 0)
>>>                                      ~~~~~~~~~~~~~~~~~~~~~~          ^
>>> 2 warnings generated.
>>>
>>> Use the proper enums from dma_data_direction to satisfy Clang.
>>>
>>> DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
>>> DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2
>>>
>>> Link: https://github.com/ClangBuiltLinux/linux/issues/108
>>> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
>>> ---
>>>  drivers/mtd/spi-nor/cadence-quadspi.c | 4 ++--
>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/mtd/spi-nor/cadence-quadspi.c b/drivers/mtd/spi-nor/cadence-quadspi.c
>>> index 8e714fbfa521..d0e57ac81098 100644
>>> --- a/drivers/mtd/spi-nor/cadence-quadspi.c
>>> +++ b/drivers/mtd/spi-nor/cadence-quadspi.c
>>> @@ -959,7 +959,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
>>>  		return 0;
>>>  	}
>>>  
>>> -	dma_dst = dma_map_single(nor->dev, buf, len, DMA_DEV_TO_MEM);
>>> +	dma_dst = dma_map_single(nor->dev, buf, len, DMA_FROM_DEVICE);
>>>  	if (dma_mapping_error(nor->dev, dma_dst)) {
>>>  		dev_err(nor->dev, "dma mapping failed\n");
>>>  		return -ENOMEM;
>>> @@ -994,7 +994,7 @@ static int cqspi_direct_read_execute(struct spi_nor *nor, u_char *buf,
>>>  	}
>>>  
>>>  err_unmap:
>>> -	dma_unmap_single(nor->dev, dma_dst, len, DMA_DEV_TO_MEM);
>>> +	dma_unmap_single(nor->dev, dma_dst, len, DMA_TO_DEVICE);
>>
>> Should have used DMA_FROM_DEVICE, as you did above. Otherwise looks good.
>>
>> Cheers,
>> ta
> 
> Thank you very much for catching this, did several of these conversions
> back to back and didn't look closely at this. I just sent a v2, I
> appreciate the review!
I guess I have some problems with my email server. I receive just some of the
emails sent to linux-mtd@lists.infradead.org. I haven't received your v2 and I
can't add my Reviewed-by tag there. But I checked v2 on
https://patchwork.ozlabs.org/patch/974269/, looks good, so:

Reviewed-by: Tudor Ambarus <tudor.ambarus@microchip.com> for v2! :)

Best,
ta

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

end of thread, other threads:[~2018-09-25  8:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-21 10:29 [PATCH] mtd: spi-nor: cadence-quadspi: Use proper enum for dma_unmap_single Nathan Chancellor
2018-09-25  7:24 ` Tudor Ambarus
2018-09-25  7:34   ` Nathan Chancellor
2018-09-25  8:18     ` Tudor Ambarus
2018-09-25  7:32 ` [PATCH v2] " Nathan Chancellor

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