diff mbox series

[3/4] dmaengine: move APIs in interface to use peripheral term

Message ID 20201015073132.3571684-4-vkoul@kernel.org (mailing list archive)
State Changes Requested
Headers show
Series dmaengine: use inclusive terminology | expand

Commit Message

Vinod Koul Oct. 15, 2020, 7:31 a.m. UTC
dmaengine history has a non inclusive terminology of dmaengine slave, I
feel it is time to replace that.

This moves APIs in dmaengine interface with replacement of slave
to peripheral which is an appropriate term for dmaengine peripheral
devices

Since the change of name can break users, the new names have been added
with old APIs kept as macro define for new names. Once the users have
been migrated, these macros will be dropped.

Signed-off-by: Vinod Koul <vkoul@kernel.org>
---
 include/linux/dmaengine.h | 46 +++++++++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 14 deletions(-)

Comments

Peter Ujfalusi Oct. 19, 2020, 9:17 a.m. UTC | #1
Hi Vinod,

On 15/10/2020 10.31, Vinod Koul wrote:
> dmaengine history has a non inclusive terminology of dmaengine slave, I
> feel it is time to replace that.
> 
> This moves APIs in dmaengine interface with replacement of slave
> to peripheral which is an appropriate term for dmaengine peripheral
> devices
> 
> Since the change of name can break users, the new names have been added
> with old APIs kept as macro define for new names. Once the users have
> been migrated, these macros will be dropped.
> 
> Signed-off-by: Vinod Koul <vkoul@kernel.org>
> ---
>  include/linux/dmaengine.h | 46 +++++++++++++++++++++++++++------------
>  1 file changed, 32 insertions(+), 14 deletions(-)
> 
> diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
> index 04b993a5373c..d8dce3cdfdd4 100644
> --- a/include/linux/dmaengine.h
> +++ b/include/linux/dmaengine.h
> @@ -923,6 +923,10 @@ struct dma_device {
>  	struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)(
>  		struct dma_chan *chan, unsigned long flags);
>  
> +	struct dma_async_tx_descriptor *(*device_prep_peripheral_sg)(
> +		struct dma_chan *chan, struct scatterlist *sgl,
> +		unsigned int sg_len, enum dma_transfer_direction direction,
> +		unsigned long flags, void *context);
>  	struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
>  		struct dma_chan *chan, struct scatterlist *sgl,
>  		unsigned int sg_len, enum dma_transfer_direction direction,
> @@ -959,8 +963,8 @@ struct dma_device {
>  #endif
>  };
>  
> -static inline int dmaengine_slave_config(struct dma_chan *chan,
> -					  struct dma_slave_config *config)
> +static inline int dmaengine_peripheral_config(struct dma_chan *chan,
> +					  struct dma_peripheral_config *config)
>  {
>  	if (chan->device->device_config)
>  		return chan->device->device_config(chan, config);
> @@ -968,12 +972,16 @@ static inline int dmaengine_slave_config(struct dma_chan *chan,
>  	return -ENOSYS;
>  }
>  
> -static inline bool is_slave_direction(enum dma_transfer_direction direction)
> +#define dmaengine_slave_config dmaengine_peripheral_config
> +
> +static inline bool is_peripheral_direction(enum dma_transfer_direction direction)
>  {
>  	return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM);
>  }
>  
> -static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
> +#define is_slave_direction is_peripheral_direction
> +
> +static inline struct dma_async_tx_descriptor *dmaengine_prep_peripheral_single(
>  	struct dma_chan *chan, dma_addr_t buf, size_t len,
>  	enum dma_transfer_direction dir, unsigned long flags)
>  {
> @@ -989,7 +997,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
>  						  dir, flags, NULL);
>  }
>  
> -static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
> +#define dmaengine_prep_slave_single dmaengine_prep_peripheral_single
> +
> +static inline struct dma_async_tx_descriptor *dmaengine_prep_peripheral_sg(
>  	struct dma_chan *chan, struct scatterlist *sgl,	unsigned int sg_len,
>  	enum dma_transfer_direction dir, unsigned long flags)
>  {
> @@ -1000,6 +1010,8 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
>  						  dir, flags, NULL);
>  }
>  
> +#define dmaengine_prep_slave_sg dmaengine_prep_peripheral_sg
> +

If you do similar changes to _single() then DMA drivers can migrate to
the new device_prep_peripheral_sg in their own pace:

static inline struct dma_async_tx_descriptor *dmaengine_prep_peripheral_sg(
	struct dma_chan *chan, struct scatterlist *sgl,	unsigned int sg_len,
	enum dma_transfer_direction dir, unsigned long flags)
{
	if (!chan || !chan->device)
		return NULL;

	if (chan->device->device_prep_peripheral_sg)
		return chan->device->device_prep_peripheral_sg(chan, sgl, sg_len,
							       dir, flags, NULL);

	if (chan->device->device_prep_slave_sg)
		return chan->device->device_prep_slave_sg(chan, sgl, sg_len,
							  dir, flags, NULL);
	return NULL;
}



>  #ifdef CONFIG_RAPIDIO_DMA_ENGINE
>  struct rio_dma_ext;
>  static inline struct dma_async_tx_descriptor *dmaengine_prep_rio_sg(
> @@ -1498,7 +1510,7 @@ struct dma_chan *dma_request_chan(struct device *dev, const char *name);
>  struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask);
>  
>  void dma_release_channel(struct dma_chan *chan);
> -int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps);
> +int dma_get_peripheral_caps(struct dma_chan *chan, struct dma_peripheral_caps *caps);
>  #else
>  static inline struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type)
>  {
> @@ -1535,19 +1547,21 @@ static inline struct dma_chan *dma_request_chan_by_mask(
>  static inline void dma_release_channel(struct dma_chan *chan)
>  {
>  }
> -static inline int dma_get_slave_caps(struct dma_chan *chan,
> -				     struct dma_slave_caps *caps)
> +static inline int dma_get_peripheral_caps(struct dma_chan *chan,
> +				     struct dma_peripheral_caps *caps)
>  {
>  	return -ENXIO;
>  }
>  #endif
>  
> +#define dma_get_slave_caps dma_get_peripheral_caps
> +
>  static inline int dmaengine_desc_set_reuse(struct dma_async_tx_descriptor *tx)
>  {
> -	struct dma_slave_caps caps;
> +	struct dma_peripheral_caps caps;
>  	int ret;
>  
> -	ret = dma_get_slave_caps(tx->chan, &caps);
> +	ret = dma_get_peripheral_caps(tx->chan, &caps);
>  	if (ret)
>  		return ret;
>  
> @@ -1592,17 +1606,19 @@ void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
>  
>  /* Deprecated, please use dma_request_chan() directly */
>  static inline struct dma_chan * __deprecated
> -dma_request_slave_channel(struct device *dev, const char *name)
> +dma_request_peripheral_channel(struct device *dev, const char *name)
>  {
>  	struct dma_chan *ch = dma_request_chan(dev, name);
>  
>  	return IS_ERR(ch) ? NULL : ch;
>  }
>  
> +#define dma_request_slave_channel dma_request_peripheral_channel
> +
>  static inline struct dma_chan
> -*dma_request_slave_channel_compat(const dma_cap_mask_t mask,
> -				  dma_filter_fn fn, void *fn_param,
> -				  struct device *dev, const char *name)
> +*dma_request_peripheral_channel_compat(const dma_cap_mask_t mask,
> +				       dma_filter_fn fn, void *fn_param,
> +				       struct device *dev, const char *name)
>  {
>  	struct dma_chan *chan;
>  
> @@ -1616,6 +1632,8 @@ static inline struct dma_chan
>  	return __dma_request_channel(&mask, fn, fn_param, NULL);
>  }
>  
> +#define dma_request_slave_channel_compat dma_request_peripheral_channel_compat
> +
>  static inline char *
>  dmaengine_get_direction_text(enum dma_transfer_direction dir)
>  {
> 

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Vinod Koul Oct. 28, 2020, 4:33 a.m. UTC | #2
On 19-10-20, 12:17, Peter Ujfalusi wrote:
> Hi Vinod,
> 
> On 15/10/2020 10.31, Vinod Koul wrote:
> > dmaengine history has a non inclusive terminology of dmaengine slave, I
> > feel it is time to replace that.
> > 
> > This moves APIs in dmaengine interface with replacement of slave
> > to peripheral which is an appropriate term for dmaengine peripheral
> > devices
> > 
> > Since the change of name can break users, the new names have been added
> > with old APIs kept as macro define for new names. Once the users have
> > been migrated, these macros will be dropped.
> > 
> > Signed-off-by: Vinod Koul <vkoul@kernel.org>
> > ---
> >  include/linux/dmaengine.h | 46 +++++++++++++++++++++++++++------------
> >  1 file changed, 32 insertions(+), 14 deletions(-)
> > 
> > diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
> > index 04b993a5373c..d8dce3cdfdd4 100644
> > --- a/include/linux/dmaengine.h
> > +++ b/include/linux/dmaengine.h
> > @@ -923,6 +923,10 @@ struct dma_device {
> >  	struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)(
> >  		struct dma_chan *chan, unsigned long flags);
> >  
> > +	struct dma_async_tx_descriptor *(*device_prep_peripheral_sg)(
> > +		struct dma_chan *chan, struct scatterlist *sgl,
> > +		unsigned int sg_len, enum dma_transfer_direction direction,
> > +		unsigned long flags, void *context);
> >  	struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
> >  		struct dma_chan *chan, struct scatterlist *sgl,
> >  		unsigned int sg_len, enum dma_transfer_direction direction,
> > @@ -959,8 +963,8 @@ struct dma_device {
> >  #endif
> >  };
> >  
> > -static inline int dmaengine_slave_config(struct dma_chan *chan,
> > -					  struct dma_slave_config *config)
> > +static inline int dmaengine_peripheral_config(struct dma_chan *chan,
> > +					  struct dma_peripheral_config *config)
> >  {
> >  	if (chan->device->device_config)
> >  		return chan->device->device_config(chan, config);
> > @@ -968,12 +972,16 @@ static inline int dmaengine_slave_config(struct dma_chan *chan,
> >  	return -ENOSYS;
> >  }
> >  
> > -static inline bool is_slave_direction(enum dma_transfer_direction direction)
> > +#define dmaengine_slave_config dmaengine_peripheral_config
> > +
> > +static inline bool is_peripheral_direction(enum dma_transfer_direction direction)
> >  {
> >  	return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM);
> >  }
> >  
> > -static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
> > +#define is_slave_direction is_peripheral_direction
> > +
> > +static inline struct dma_async_tx_descriptor *dmaengine_prep_peripheral_single(
> >  	struct dma_chan *chan, dma_addr_t buf, size_t len,
> >  	enum dma_transfer_direction dir, unsigned long flags)
> >  {
> > @@ -989,7 +997,9 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
> >  						  dir, flags, NULL);
> >  }
> >  
> > -static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
> > +#define dmaengine_prep_slave_single dmaengine_prep_peripheral_single
> > +
> > +static inline struct dma_async_tx_descriptor *dmaengine_prep_peripheral_sg(
> >  	struct dma_chan *chan, struct scatterlist *sgl,	unsigned int sg_len,
> >  	enum dma_transfer_direction dir, unsigned long flags)
> >  {
> > @@ -1000,6 +1010,8 @@ static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
> >  						  dir, flags, NULL);
> >  }
> >  
> > +#define dmaengine_prep_slave_sg dmaengine_prep_peripheral_sg
> > +
> 
> If you do similar changes to _single() then DMA drivers can migrate to
> the new device_prep_peripheral_sg in their own pace:

Yes not sure why I missed that, I have updated this for all three APIs
which use .device_prep_slave_sg()

Thanks
diff mbox series

Patch

diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 04b993a5373c..d8dce3cdfdd4 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -923,6 +923,10 @@  struct dma_device {
 	struct dma_async_tx_descriptor *(*device_prep_dma_interrupt)(
 		struct dma_chan *chan, unsigned long flags);
 
+	struct dma_async_tx_descriptor *(*device_prep_peripheral_sg)(
+		struct dma_chan *chan, struct scatterlist *sgl,
+		unsigned int sg_len, enum dma_transfer_direction direction,
+		unsigned long flags, void *context);
 	struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
 		struct dma_chan *chan, struct scatterlist *sgl,
 		unsigned int sg_len, enum dma_transfer_direction direction,
@@ -959,8 +963,8 @@  struct dma_device {
 #endif
 };
 
-static inline int dmaengine_slave_config(struct dma_chan *chan,
-					  struct dma_slave_config *config)
+static inline int dmaengine_peripheral_config(struct dma_chan *chan,
+					  struct dma_peripheral_config *config)
 {
 	if (chan->device->device_config)
 		return chan->device->device_config(chan, config);
@@ -968,12 +972,16 @@  static inline int dmaengine_slave_config(struct dma_chan *chan,
 	return -ENOSYS;
 }
 
-static inline bool is_slave_direction(enum dma_transfer_direction direction)
+#define dmaengine_slave_config dmaengine_peripheral_config
+
+static inline bool is_peripheral_direction(enum dma_transfer_direction direction)
 {
 	return (direction == DMA_MEM_TO_DEV) || (direction == DMA_DEV_TO_MEM);
 }
 
-static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
+#define is_slave_direction is_peripheral_direction
+
+static inline struct dma_async_tx_descriptor *dmaengine_prep_peripheral_single(
 	struct dma_chan *chan, dma_addr_t buf, size_t len,
 	enum dma_transfer_direction dir, unsigned long flags)
 {
@@ -989,7 +997,9 @@  static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single(
 						  dir, flags, NULL);
 }
 
-static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
+#define dmaengine_prep_slave_single dmaengine_prep_peripheral_single
+
+static inline struct dma_async_tx_descriptor *dmaengine_prep_peripheral_sg(
 	struct dma_chan *chan, struct scatterlist *sgl,	unsigned int sg_len,
 	enum dma_transfer_direction dir, unsigned long flags)
 {
@@ -1000,6 +1010,8 @@  static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg(
 						  dir, flags, NULL);
 }
 
+#define dmaengine_prep_slave_sg dmaengine_prep_peripheral_sg
+
 #ifdef CONFIG_RAPIDIO_DMA_ENGINE
 struct rio_dma_ext;
 static inline struct dma_async_tx_descriptor *dmaengine_prep_rio_sg(
@@ -1498,7 +1510,7 @@  struct dma_chan *dma_request_chan(struct device *dev, const char *name);
 struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask);
 
 void dma_release_channel(struct dma_chan *chan);
-int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps);
+int dma_get_peripheral_caps(struct dma_chan *chan, struct dma_peripheral_caps *caps);
 #else
 static inline struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type)
 {
@@ -1535,19 +1547,21 @@  static inline struct dma_chan *dma_request_chan_by_mask(
 static inline void dma_release_channel(struct dma_chan *chan)
 {
 }
-static inline int dma_get_slave_caps(struct dma_chan *chan,
-				     struct dma_slave_caps *caps)
+static inline int dma_get_peripheral_caps(struct dma_chan *chan,
+				     struct dma_peripheral_caps *caps)
 {
 	return -ENXIO;
 }
 #endif
 
+#define dma_get_slave_caps dma_get_peripheral_caps
+
 static inline int dmaengine_desc_set_reuse(struct dma_async_tx_descriptor *tx)
 {
-	struct dma_slave_caps caps;
+	struct dma_peripheral_caps caps;
 	int ret;
 
-	ret = dma_get_slave_caps(tx->chan, &caps);
+	ret = dma_get_peripheral_caps(tx->chan, &caps);
 	if (ret)
 		return ret;
 
@@ -1592,17 +1606,19 @@  void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
 
 /* Deprecated, please use dma_request_chan() directly */
 static inline struct dma_chan * __deprecated
-dma_request_slave_channel(struct device *dev, const char *name)
+dma_request_peripheral_channel(struct device *dev, const char *name)
 {
 	struct dma_chan *ch = dma_request_chan(dev, name);
 
 	return IS_ERR(ch) ? NULL : ch;
 }
 
+#define dma_request_slave_channel dma_request_peripheral_channel
+
 static inline struct dma_chan
-*dma_request_slave_channel_compat(const dma_cap_mask_t mask,
-				  dma_filter_fn fn, void *fn_param,
-				  struct device *dev, const char *name)
+*dma_request_peripheral_channel_compat(const dma_cap_mask_t mask,
+				       dma_filter_fn fn, void *fn_param,
+				       struct device *dev, const char *name)
 {
 	struct dma_chan *chan;
 
@@ -1616,6 +1632,8 @@  static inline struct dma_chan
 	return __dma_request_channel(&mask, fn, fn_param, NULL);
 }
 
+#define dma_request_slave_channel_compat dma_request_peripheral_channel_compat
+
 static inline char *
 dmaengine_get_direction_text(enum dma_transfer_direction dir)
 {