[U-Boot] [RFC v2 01/15] dma: move dma_ops to dma-uclass.h

Simon Glass sjg at chromium.org
Tue Feb 20 18:49:26 UTC 2018


Hi Alvaro,

On 20 February 2018 at 10:46, Álvaro Fernández Rojas <noltari at gmail.com> wrote:
> Move dma_ops to a separate header file, following other uclass implementations.
>
> Signed-off-by: Álvaro Fernández Rojas <noltari at gmail.com>
> ---
>  drivers/dma/dma-uclass.c |  3 ++-
>  include/dma-uclass.h     | 38 ++++++++++++++++++++++++++++++++++++++
>  include/dma.h            | 22 ----------------------
>  3 files changed, 40 insertions(+), 23 deletions(-)
>  create mode 100644 include/dma-uclass.h
>
> diff --git a/drivers/dma/dma-uclass.c b/drivers/dma/dma-uclass.c
> index 3d0ce22fbc..6fd4e1b35d 100644
> --- a/drivers/dma/dma-uclass.c
> +++ b/drivers/dma/dma-uclass.c
> @@ -10,10 +10,11 @@
>   */
>
>  #include <common.h>
> -#include <dma.h>
>  #include <dm.h>
>  #include <dm/uclass-internal.h>
>  #include <dm/device-internal.h>
> +#include <dma.h>
> +#include <dma-uclass.h>
>  #include <errno.h>
>
>  DECLARE_GLOBAL_DATA_PTR;
> diff --git a/include/dma-uclass.h b/include/dma-uclass.h
> new file mode 100644
> index 0000000000..e29ad103f2
> --- /dev/null
> +++ b/include/dma-uclass.h
> @@ -0,0 +1,38 @@
> +/*
> + * Copyright (C) 2018 Álvaro Fernández Rojas <noltari at gmail.com>
> + * Copyright (C) 2015 Texas Instruments Incorporated, <www.ti.com>
> + * Written by Mugunthan V N <mugunthanvnm at ti.com>
> + *
> + * SPDX-License-Identifier:    GPL-2.0+
> + */
> +
> +#ifndef _DMA_UCLASS_H
> +#define _DMA_UCLASS_H
> +
> +/* See dma.h for background documentation. */
> +
> +#include <dma.h>
> +
> +/*
> + * struct dma_ops - Driver model DMA operations
> + *
> + * The uclass interface is implemented by all DMA devices which use
> + * driver model.
> + */
> +struct dma_ops {
> +       /*
> +        * Get the current timer count

Is this the correct purpose for the transfer() method?
> +        *
> +        * @dev: The DMA device
> +        * @direction: direction of data transfer should be one from
> +                      enum dma_direction
> +        * @dst: Destination pointer
> +        * @src: Source pointer
> +        * @len: Length of the data to be copied.

Is this the number of bytes

What does this function actually do? Does it queue a transfer which
completes later? How do I check if it is done?

Please add a lot more docs here.

> +        * @return: 0 if OK, -ve on error
> +        */
> +       int (*transfer)(struct udevice *dev, int direction, void *dst,
> +                       void *src, size_t len);
> +};
> +
> +#endif /* _DMA_UCLASS_H */
> diff --git a/include/dma.h b/include/dma.h
> index 71fa77f2ea..89320f10d9 100644
> --- a/include/dma.h
> +++ b/include/dma.h
> @@ -28,28 +28,6 @@ enum dma_direction {
>  #define DMA_SUPPORTS_DEV_TO_DEV        BIT(3)
>
>  /*
> - * struct dma_ops - Driver model DMA operations
> - *
> - * The uclass interface is implemented by all DMA devices which use
> - * driver model.
> - */
> -struct dma_ops {
> -       /*
> -        * Get the current timer count
> -        *
> -        * @dev: The DMA device
> -        * @direction: direction of data transfer should be one from
> -                      enum dma_direction
> -        * @dst: Destination pointer
> -        * @src: Source pointer
> -        * @len: Length of the data to be copied.
> -        * @return: 0 if OK, -ve on error
> -        */
> -       int (*transfer)(struct udevice *dev, int direction, void *dst,
> -                       void *src, size_t len);
> -};
> -
> -/*
>   * struct dma_dev_priv - information about a device used by the uclass
>   *
>   * @supported: mode of transfers that DMA can support, should be
> --
> 2.11.0
>

Regards,
Simon


More information about the U-Boot mailing list