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

Álvaro Fernández Rojas
2018-02-20T18:55:30Z

Hi Simon,

El 20/02/2018 a las 19:49, Simon Glass escribió:
> Hi Alvaro,
>
> On 20 February 2018 at 10:46, Álvaro Fernández Rojas <noltari@gmail.com> wrote:
>> Move dma_ops to a separate header file, following other uclass implementations.
>>
>> Signed-off-by: Álvaro Fernández Rojas <noltari@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@gmail.com>
>> + * Copyright (C) 2015 Texas Instruments Incorporated, <www.ti.com>
>> + * Written by Mugunthan V N <mugunthanvnm@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?
This is just a copy&paste, that's what you can find in upstream dma.h ;D
Anyway, I will fix that.
>> + *
>> + * @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.
Same as above.
>
>> + * @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
Regards,
Álvaro.