diff mbox series

[U-Boot,1/3] riscv: Add asm/dma-mapping.h for DMA mappings

Message ID 20181217115143.18373-2-anup@brainfault.org
State Superseded
Delegated to: Andes
Headers show
Series Ethernet support for QEMU sifive_u machine | expand

Commit Message

Anup Patel Dec. 17, 2018, 11:51 a.m. UTC
From: Anup Patel <anup.patel@wdc.com>

This patch adds asm/dma-mapping.h for Linux-like DMA mappings
APIs required by some of the drivers (such as, Cadance MACB
Ethernet driver).

Signed-off-by: Anup Patel <anup.patel@wdc.com>
---
 arch/riscv/include/asm/dma-mapping.h | 37 ++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 arch/riscv/include/asm/dma-mapping.h

Comments

Bin Meng Dec. 18, 2018, 9:45 a.m. UTC | #1
On Mon, Dec 17, 2018 at 7:52 PM Anup Patel <anup@brainfault.org> wrote:
>
> From: Anup Patel <anup.patel@wdc.com>
>
> This patch adds asm/dma-mapping.h for Linux-like DMA mappings
> APIs required by some of the drivers (such as, Cadance MACB
> Ethernet driver).
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> ---
>  arch/riscv/include/asm/dma-mapping.h | 37 ++++++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
>  create mode 100644 arch/riscv/include/asm/dma-mapping.h
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

But please see nits below:

> diff --git a/arch/riscv/include/asm/dma-mapping.h b/arch/riscv/include/asm/dma-mapping.h
> new file mode 100644
> index 0000000000..9782b6f168
> --- /dev/null
> +++ b/arch/riscv/include/asm/dma-mapping.h
> @@ -0,0 +1,37 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (c) 2018 Western Digital Corporation or its affiliates.
> + *
> + * Authors:
> + *   Anup Patel <anup.patel@wdc.com>
> + */

nits: should have one blank line here

> +#ifndef __ASM_RISCV_DMA_MAPPING_H
> +#define __ASM_RISCV_DMA_MAPPING_H
> +
> +#include <linux/dma-direction.h>
> +
> +#define        dma_mapping_error(x, y) 0

nits: no <tab> between #define and dma_

> +
> +static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
> +{
> +       *handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len);
> +       return (void *)*handle;
> +}
> +
> +static inline void dma_free_coherent(void *addr)
> +{
> +       free(addr);
> +}
> +
> +static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
> +                                          enum dma_data_direction dir)
> +{
> +       return (unsigned long)vaddr;
> +}
> +
> +static inline void dma_unmap_single(volatile void *vaddr, size_t len,
> +                                   unsigned long paddr)
> +{
> +}
> +
> +#endif /* __ASM_RISCV_DMA_MAPPING_H */
> --

Regards,
Bin
Anup Patel Dec. 19, 2018, 8:09 a.m. UTC | #2
On Tue, Dec 18, 2018 at 3:15 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> On Mon, Dec 17, 2018 at 7:52 PM Anup Patel <anup@brainfault.org> wrote:
> >
> > From: Anup Patel <anup.patel@wdc.com>
> >
> > This patch adds asm/dma-mapping.h for Linux-like DMA mappings
> > APIs required by some of the drivers (such as, Cadance MACB
> > Ethernet driver).
> >
> > Signed-off-by: Anup Patel <anup.patel@wdc.com>
> > ---
> >  arch/riscv/include/asm/dma-mapping.h | 37 ++++++++++++++++++++++++++++
> >  1 file changed, 37 insertions(+)
> >  create mode 100644 arch/riscv/include/asm/dma-mapping.h
> >
>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
>
> But please see nits below:
>
> > diff --git a/arch/riscv/include/asm/dma-mapping.h b/arch/riscv/include/asm/dma-mapping.h
> > new file mode 100644
> > index 0000000000..9782b6f168
> > --- /dev/null
> > +++ b/arch/riscv/include/asm/dma-mapping.h
> > @@ -0,0 +1,37 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright (c) 2018 Western Digital Corporation or its affiliates.
> > + *
> > + * Authors:
> > + *   Anup Patel <anup.patel@wdc.com>
> > + */
>
> nits: should have one blank line here

OK, will update.

>
> > +#ifndef __ASM_RISCV_DMA_MAPPING_H
> > +#define __ASM_RISCV_DMA_MAPPING_H
> > +
> > +#include <linux/dma-direction.h>
> > +
> > +#define        dma_mapping_error(x, y) 0
>
> nits: no <tab> between #define and dma_

OK, will update.

>
> > +
> > +static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
> > +{
> > +       *handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len);
> > +       return (void *)*handle;
> > +}
> > +
> > +static inline void dma_free_coherent(void *addr)
> > +{
> > +       free(addr);
> > +}
> > +
> > +static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
> > +                                          enum dma_data_direction dir)
> > +{
> > +       return (unsigned long)vaddr;
> > +}
> > +
> > +static inline void dma_unmap_single(volatile void *vaddr, size_t len,
> > +                                   unsigned long paddr)
> > +{
> > +}
> > +
> > +#endif /* __ASM_RISCV_DMA_MAPPING_H */
> > --
>
> Regards,
> Bin

Regards,
Anup
Anup Patel Dec. 20, 2018, 5:26 a.m. UTC | #3
+Michal

On Mon, Dec 17, 2018 at 5:21 PM Anup Patel <anup@brainfault.org> wrote:
>
> From: Anup Patel <anup.patel@wdc.com>
>
> This patch adds asm/dma-mapping.h for Linux-like DMA mappings
> APIs required by some of the drivers (such as, Cadance MACB
> Ethernet driver).
>
> Signed-off-by: Anup Patel <anup.patel@wdc.com>
> ---
>  arch/riscv/include/asm/dma-mapping.h | 37 ++++++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
>  create mode 100644 arch/riscv/include/asm/dma-mapping.h
>
> diff --git a/arch/riscv/include/asm/dma-mapping.h b/arch/riscv/include/asm/dma-mapping.h
> new file mode 100644
> index 0000000000..9782b6f168
> --- /dev/null
> +++ b/arch/riscv/include/asm/dma-mapping.h
> @@ -0,0 +1,37 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (c) 2018 Western Digital Corporation or its affiliates.
> + *
> + * Authors:
> + *   Anup Patel <anup.patel@wdc.com>
> + */
> +#ifndef __ASM_RISCV_DMA_MAPPING_H
> +#define __ASM_RISCV_DMA_MAPPING_H
> +
> +#include <linux/dma-direction.h>
> +
> +#define        dma_mapping_error(x, y) 0
> +
> +static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
> +{
> +       *handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len);
> +       return (void *)*handle;
> +}
> +
> +static inline void dma_free_coherent(void *addr)
> +{
> +       free(addr);
> +}
> +
> +static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
> +                                          enum dma_data_direction dir)
> +{
> +       return (unsigned long)vaddr;
> +}
> +
> +static inline void dma_unmap_single(volatile void *vaddr, size_t len,
> +                                   unsigned long paddr)
> +{
> +}
> +
> +#endif /* __ASM_RISCV_DMA_MAPPING_H */
> --
> 2.17.1
>
diff mbox series

Patch

diff --git a/arch/riscv/include/asm/dma-mapping.h b/arch/riscv/include/asm/dma-mapping.h
new file mode 100644
index 0000000000..9782b6f168
--- /dev/null
+++ b/arch/riscv/include/asm/dma-mapping.h
@@ -0,0 +1,37 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (c) 2018 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ *   Anup Patel <anup.patel@wdc.com>
+ */
+#ifndef __ASM_RISCV_DMA_MAPPING_H
+#define __ASM_RISCV_DMA_MAPPING_H
+
+#include <linux/dma-direction.h>
+
+#define	dma_mapping_error(x, y)	0
+
+static inline void *dma_alloc_coherent(size_t len, unsigned long *handle)
+{
+	*handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len);
+	return (void *)*handle;
+}
+
+static inline void dma_free_coherent(void *addr)
+{
+	free(addr);
+}
+
+static inline unsigned long dma_map_single(volatile void *vaddr, size_t len,
+					   enum dma_data_direction dir)
+{
+	return (unsigned long)vaddr;
+}
+
+static inline void dma_unmap_single(volatile void *vaddr, size_t len,
+				    unsigned long paddr)
+{
+}
+
+#endif /* __ASM_RISCV_DMA_MAPPING_H */