[dpdk-dev,v4,20/29] net/ena: use eal I/O device memory read/write API

Message ID CANw_3ZcaJW9_SyiKnXiVcL9xrzErXVMtUPwcRsdzoO7K+nC_=Q@mail.gmail.com (mailing list archive)
State Not Applicable, archived
Headers

Checks

Context Check Description
ci/Intel compilation fail apply patch file failure

Commit Message

Jan Medala Jan. 17, 2017, 2:27 p.m. UTC
  Jerin,

Thanks for the very quick replay.

Actually I would like to keep *ena_com* untouched, as this layer suppose to
be common between platforms. That's why it is better to leave definition in
*ena_plat_dpdk.h*. Here is the patch that I would like to propose:


Cheers,
Jan
  

Comments

Jerin Jacob Jan. 17, 2017, 2:30 p.m. UTC | #1
On Tue, Jan 17, 2017 at 03:27:39PM +0100, Jan Mędala wrote:
> Jerin,
> 
> Thanks for the very quick replay.
> 
> Actually I would like to keep *ena_com* untouched, as this layer suppose to
> be common between platforms. That's why it is better to leave definition in
> *ena_plat_dpdk.h*. Here is the patch that I would like to propose:

makes sense.I will add this change in v5.

> 
> diff --git a/drivers/net/ena/base/ena_plat_dpdk.h
> b/drivers/net/ena/base/ena_plat_dpdk.h
> index 87c3bf13..7eaebf40 100644
> --- a/drivers/net/ena/base/ena_plat_dpdk.h
> +++ b/drivers/net/ena/base/ena_plat_dpdk.h
> @@ -44,6 +44,7 @@
>  #include <rte_atomic.h>
>  #include <rte_branch_prediction.h>
>  #include <rte_cycles.h>
> +#include <rte_io.h>
>  #include <rte_log.h>
>  #include <rte_malloc.h>
>  #include <rte_memzone.h>
> @@ -224,18 +225,8 @@ typedef uint64_t dma_addr_t;
>  #define ENA_MEM_ALLOC(dmadev, size) rte_zmalloc(NULL, size, 1)
>  #define ENA_MEM_FREE(dmadev, ptr) ({ENA_TOUCH(dmadev); rte_free(ptr); })
> 
> -static inline void writel(u32 value, volatile void  *addr)
> -{
> -       *(volatile u32 *)addr = value;
> -}
> -
> -static inline u32 readl(const volatile void *addr)
> -{
> -       return *(const volatile u32 *)addr;
> -}
> -
> -#define ENA_REG_WRITE32(value, reg) writel((value), (reg))
> -#define ENA_REG_READ32(reg) readl((reg))
> +#define ENA_REG_WRITE32(value, reg) rte_write32_relaxed((value), (reg))
> +#define ENA_REG_READ32(reg) rte_read32_relaxed((reg))
> 
>  #define ATOMIC32_INC(i32_ptr) rte_atomic32_inc(i32_ptr)
>  #define ATOMIC32_DEC(i32_ptr) rte_atomic32_dec(i32_ptr)
> 
> Cheers,
> Jan
  
Jan Medala Jan. 17, 2017, 2:31 p.m. UTC | #2
Thank you very much!
  

Patch

diff --git a/drivers/net/ena/base/ena_plat_dpdk.h
b/drivers/net/ena/base/ena_plat_dpdk.h
index 87c3bf13..7eaebf40 100644
--- a/drivers/net/ena/base/ena_plat_dpdk.h
+++ b/drivers/net/ena/base/ena_plat_dpdk.h
@@ -44,6 +44,7 @@ 
 #include <rte_atomic.h>
 #include <rte_branch_prediction.h>
 #include <rte_cycles.h>
+#include <rte_io.h>
 #include <rte_log.h>
 #include <rte_malloc.h>
 #include <rte_memzone.h>
@@ -224,18 +225,8 @@  typedef uint64_t dma_addr_t;
 #define ENA_MEM_ALLOC(dmadev, size) rte_zmalloc(NULL, size, 1)
 #define ENA_MEM_FREE(dmadev, ptr) ({ENA_TOUCH(dmadev); rte_free(ptr); })

-static inline void writel(u32 value, volatile void  *addr)
-{
-       *(volatile u32 *)addr = value;
-}
-
-static inline u32 readl(const volatile void *addr)
-{
-       return *(const volatile u32 *)addr;
-}
-
-#define ENA_REG_WRITE32(value, reg) writel((value), (reg))
-#define ENA_REG_READ32(reg) readl((reg))
+#define ENA_REG_WRITE32(value, reg) rte_write32_relaxed((value), (reg))
+#define ENA_REG_READ32(reg) rte_read32_relaxed((reg))

 #define ATOMIC32_INC(i32_ptr) rte_atomic32_inc(i32_ptr)
 #define ATOMIC32_DEC(i32_ptr) rte_atomic32_dec(i32_ptr)