All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vinod Koul <vinod.koul@intel.com>
To: Kedareswara rao Appana <appana.durga.rao@xilinx.com>
Cc: dan.j.williams@intel.com, michal.simek@xilinx.com,
	appanad@xilinx.com, lars@metafoo.de, akinobu.mita@gmail.com,
	joabreu@synopsys.com, mike.looijmans@topic.nl,
	kedare06@gmail.com, dmaengine@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [v2,1/4] dmaengine: xilinx_dma: populate dma caps properly
Date: Mon, 8 Jan 2018 16:08:45 +0530	[thread overview]
Message-ID: <20180108103845.GE18649@localhost> (raw)

On Wed, Jan 03, 2018 at 12:12:08PM +0530, Kedareswara rao Appana wrote:
> When client driver uses dma_get_slave_caps() api,
> it checks for certain fields of dma_device struct
> currently driver is not settings the directions and addr_widths
> fields resulting dma_get_slave_caps() returning failure.
> 
> This patch fixes this issue by populating proper values
> to the struct dma_device directions and addr_widths fields.
> 
> Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
> ---
> Changes for v2:
> --> Improved commit message title and description 
> as suggested by Vinod.
> 
>  drivers/dma/xilinx/xilinx_dma.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
> index 88d317d..21ac954 100644
> --- a/drivers/dma/xilinx/xilinx_dma.c
> +++ b/drivers/dma/xilinx/xilinx_dma.c
> @@ -2398,6 +2398,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
>  		chan->direction = DMA_MEM_TO_DEV;
>  		chan->id = chan_id;
>  		chan->tdest = chan_id;
> +		xdev->common.directions = BIT(DMA_MEM_TO_DEV);
>  
>  		chan->ctrl_offset = XILINX_DMA_MM2S_CTRL_OFFSET;
>  		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
> @@ -2415,6 +2416,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
>  		chan->direction = DMA_DEV_TO_MEM;
>  		chan->id = chan_id;
>  		chan->tdest = chan_id - xdev->nr_channels;
> +		xdev->common.directions |= BIT(DMA_DEV_TO_MEM);
>  
>  		chan->ctrl_offset = XILINX_DMA_S2MM_CTRL_OFFSET;
>  		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
> @@ -2629,6 +2631,8 @@ static int xilinx_dma_probe(struct platform_device *pdev)
>  		dma_cap_set(DMA_PRIVATE, xdev->common.cap_mask);
>  	}
>  
> +	xdev->common.dst_addr_widths = BIT(addr_width / 8);
> +	xdev->common.src_addr_widths = BIT(addr_width / 8);

Do you not support trf of 1byte, 2 bytes, or 4 bytes wide transfers? What is
value of addr_width here typically? Usually controllers can support
different widths and this is a surprise that you support only one value

WARNING: multiple messages have this Message-ID (diff)
From: vinod.koul@intel.com (Vinod Koul)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/4] dmaengine: xilinx_dma: populate dma caps properly
Date: Mon, 8 Jan 2018 16:08:45 +0530	[thread overview]
Message-ID: <20180108103845.GE18649@localhost> (raw)
In-Reply-To: <1514961731-1916-2-git-send-email-appanad@xilinx.com>

On Wed, Jan 03, 2018 at 12:12:08PM +0530, Kedareswara rao Appana wrote:
> When client driver uses dma_get_slave_caps() api,
> it checks for certain fields of dma_device struct
> currently driver is not settings the directions and addr_widths
> fields resulting dma_get_slave_caps() returning failure.
> 
> This patch fixes this issue by populating proper values
> to the struct dma_device directions and addr_widths fields.
> 
> Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
> ---
> Changes for v2:
> --> Improved commit message title and description 
> as suggested by Vinod.
> 
>  drivers/dma/xilinx/xilinx_dma.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
> index 88d317d..21ac954 100644
> --- a/drivers/dma/xilinx/xilinx_dma.c
> +++ b/drivers/dma/xilinx/xilinx_dma.c
> @@ -2398,6 +2398,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
>  		chan->direction = DMA_MEM_TO_DEV;
>  		chan->id = chan_id;
>  		chan->tdest = chan_id;
> +		xdev->common.directions = BIT(DMA_MEM_TO_DEV);
>  
>  		chan->ctrl_offset = XILINX_DMA_MM2S_CTRL_OFFSET;
>  		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
> @@ -2415,6 +2416,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
>  		chan->direction = DMA_DEV_TO_MEM;
>  		chan->id = chan_id;
>  		chan->tdest = chan_id - xdev->nr_channels;
> +		xdev->common.directions |= BIT(DMA_DEV_TO_MEM);
>  
>  		chan->ctrl_offset = XILINX_DMA_S2MM_CTRL_OFFSET;
>  		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
> @@ -2629,6 +2631,8 @@ static int xilinx_dma_probe(struct platform_device *pdev)
>  		dma_cap_set(DMA_PRIVATE, xdev->common.cap_mask);
>  	}
>  
> +	xdev->common.dst_addr_widths = BIT(addr_width / 8);
> +	xdev->common.src_addr_widths = BIT(addr_width / 8);

Do you not support trf of 1byte, 2 bytes, or 4 bytes wide transfers? What is
value of addr_width here typically? Usually controllers can support
different widths and this is a surprise that you support only one value

-- 
~Vinod

WARNING: multiple messages have this Message-ID (diff)
From: Vinod Koul <vinod.koul@intel.com>
To: Kedareswara rao Appana <appana.durga.rao@xilinx.com>
Cc: dan.j.williams@intel.com, michal.simek@xilinx.com,
	appanad@xilinx.com, lars@metafoo.de, akinobu.mita@gmail.com,
	joabreu@synopsys.com, mike.looijmans@topic.nl,
	kedare06@gmail.com, dmaengine@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 1/4] dmaengine: xilinx_dma: populate dma caps properly
Date: Mon, 8 Jan 2018 16:08:45 +0530	[thread overview]
Message-ID: <20180108103845.GE18649@localhost> (raw)
In-Reply-To: <1514961731-1916-2-git-send-email-appanad@xilinx.com>

On Wed, Jan 03, 2018 at 12:12:08PM +0530, Kedareswara rao Appana wrote:
> When client driver uses dma_get_slave_caps() api,
> it checks for certain fields of dma_device struct
> currently driver is not settings the directions and addr_widths
> fields resulting dma_get_slave_caps() returning failure.
> 
> This patch fixes this issue by populating proper values
> to the struct dma_device directions and addr_widths fields.
> 
> Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
> ---
> Changes for v2:
> --> Improved commit message title and description 
> as suggested by Vinod.
> 
>  drivers/dma/xilinx/xilinx_dma.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
> index 88d317d..21ac954 100644
> --- a/drivers/dma/xilinx/xilinx_dma.c
> +++ b/drivers/dma/xilinx/xilinx_dma.c
> @@ -2398,6 +2398,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
>  		chan->direction = DMA_MEM_TO_DEV;
>  		chan->id = chan_id;
>  		chan->tdest = chan_id;
> +		xdev->common.directions = BIT(DMA_MEM_TO_DEV);
>  
>  		chan->ctrl_offset = XILINX_DMA_MM2S_CTRL_OFFSET;
>  		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
> @@ -2415,6 +2416,7 @@ static int xilinx_dma_chan_probe(struct xilinx_dma_device *xdev,
>  		chan->direction = DMA_DEV_TO_MEM;
>  		chan->id = chan_id;
>  		chan->tdest = chan_id - xdev->nr_channels;
> +		xdev->common.directions |= BIT(DMA_DEV_TO_MEM);
>  
>  		chan->ctrl_offset = XILINX_DMA_S2MM_CTRL_OFFSET;
>  		if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) {
> @@ -2629,6 +2631,8 @@ static int xilinx_dma_probe(struct platform_device *pdev)
>  		dma_cap_set(DMA_PRIVATE, xdev->common.cap_mask);
>  	}
>  
> +	xdev->common.dst_addr_widths = BIT(addr_width / 8);
> +	xdev->common.src_addr_widths = BIT(addr_width / 8);

Do you not support trf of 1byte, 2 bytes, or 4 bytes wide transfers? What is
value of addr_width here typically? Usually controllers can support
different widths and this is a surprise that you support only one value

-- 
~Vinod

             reply	other threads:[~2018-01-08 10:38 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-08 10:38 Vinod Koul [this message]
2018-01-08 10:38 ` [PATCH v2 1/4] dmaengine: xilinx_dma: populate dma caps properly Vinod Koul
2018-01-08 10:38 ` Vinod Koul
  -- strict thread matches above, loose matches on Subject: below --
2018-01-11  6:21 [v2,1/4] " Vinod Koul
2018-01-11  6:21 ` [PATCH v2 1/4] " Vinod Koul
2018-01-11  6:21 ` Vinod Koul
2018-01-09  7:36 [v2,1/4] " Appana Durga Kedareswara Rao
2018-01-09  7:36 ` [PATCH v2 1/4] " Appana Durga Kedareswara Rao
2018-01-09  7:36 ` Appana Durga Kedareswara Rao
2018-01-09  5:04 [v2,1/4] " Vinod Koul
2018-01-09  5:04 ` [PATCH v2 1/4] " Vinod Koul
2018-01-09  5:04 ` Vinod Koul
2018-01-09  4:48 [v2,1/4] " Vinod Koul
2018-01-09  4:48 ` [PATCH v2 1/4] " Vinod Koul
2018-01-09  4:48 ` Vinod Koul
2018-01-09  4:48 [v2,1/4] " Appana Durga Kedareswara Rao
2018-01-09  4:48 ` [PATCH v2 1/4] " Appana Durga Kedareswara Rao
2018-01-09  4:48 ` Appana Durga Kedareswara Rao
2018-01-08 17:25 [v2,1/4] " Appana Durga Kedareswara Rao
2018-01-08 17:25 ` [PATCH v2 1/4] " Appana Durga Kedareswara Rao
2018-01-08 17:25 ` Appana Durga Kedareswara Rao
2018-01-08 17:06 [v2,1/4] " Vinod Koul
2018-01-08 17:06 ` [PATCH v2 1/4] " Vinod Koul
2018-01-08 17:06 ` Vinod Koul
2018-01-08 10:55 [v2,2/4] dmaengine: xilinx_dma: properly configure the SG mode bit in the driver for cdma Vinod Koul
2018-01-08 10:55 ` [PATCH v2 2/4] " Vinod Koul
2018-01-08 10:55 ` Vinod Koul
2018-01-08 10:52 [v2,1/4] dmaengine: xilinx_dma: populate dma caps properly Appana Durga Kedareswara Rao
2018-01-08 10:52 ` [PATCH v2 1/4] " Appana Durga Kedareswara Rao
2018-01-08 10:52 ` Appana Durga Kedareswara Rao
2018-01-03  6:42 [v2,4/4] dmaengine: xilinx_dma: Free BD consistent memory Kedareswara rao Appana
2018-01-03  6:42 ` [PATCH v2 4/4] " Kedareswara rao Appana
2018-01-03  6:42 ` Kedareswara rao Appana
2018-01-03  6:42 [v2,3/4] dmaengine: xilinx_dma: Fix warning variable prev set but not used Kedareswara rao Appana
2018-01-03  6:42 ` [PATCH v2 3/4] " Kedareswara rao Appana
2018-01-03  6:42 ` Kedareswara rao Appana
2018-01-03  6:42 [v2,2/4] dmaengine: xilinx_dma: properly configure the SG mode bit in the driver for cdma Kedareswara rao Appana
2018-01-03  6:42 ` [PATCH v2 2/4] " Kedareswara rao Appana
2018-01-03  6:42 ` Kedareswara rao Appana
2018-01-03  6:42 [v2,1/4] dmaengine: xilinx_dma: populate dma caps properly Kedareswara rao Appana
2018-01-03  6:42 ` [PATCH v2 1/4] " Kedareswara rao Appana
2018-01-03  6:42 ` Kedareswara rao Appana
2018-01-03  6:42 [PATCH v2 0/4] dmaengine: xilinx_dma: Bug fixes Kedareswara rao Appana
2018-01-03  6:42 ` Kedareswara rao Appana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180108103845.GE18649@localhost \
    --to=vinod.koul@intel.com \
    --cc=akinobu.mita@gmail.com \
    --cc=appana.durga.rao@xilinx.com \
    --cc=appanad@xilinx.com \
    --cc=dan.j.williams@intel.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=joabreu@synopsys.com \
    --cc=kedare06@gmail.com \
    --cc=lars@metafoo.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.simek@xilinx.com \
    --cc=mike.looijmans@topic.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.