dmaengine Archive on lore.kernel.org
 help / color / Atom feed
From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: Vinod Koul <vkoul@kernel.org>
Cc: <robh+dt@kernel.org>, <dmaengine@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <dan.j.williams@intel.com>,
	<devicetree@vger.kernel.org>
Subject: Re: [RFC 3/3] dmaengine: Support for requesting channels preferring DMA domain controller
Date: Mon, 9 Sep 2019 08:56:50 +0300
Message-ID: <0bd4d678-31be-bead-7591-0452b6fed5f2@ti.com> (raw)
In-Reply-To: <20190908121507.GN2672@vkoul-mobl>



On 08/09/2019 15.15, Vinod Koul wrote:
> On 06-09-19, 17:18, Peter Ujfalusi wrote:
>> In case the channel is not requested via the slave API, use the
>> of_find_dma_domain() to see if a system default DMA controller is
>> specified.
>>
>> Add new function which can be used by clients to request channels by mask
>> from their DMA domain controller if specified.
>>
>> Client drivers can take advantage of the domain support by moving from
>> dma_request_chan_by_mask() to dma_domain_request_chan_by_mask()
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>> ---
>>  drivers/dma/dmaengine.c   | 17 ++++++++++++-----
>>  include/linux/dmaengine.h |  9 ++++++---
>>  2 files changed, 18 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c
>> index 6baddf7dcbfd..087450eed68c 100644
>> --- a/drivers/dma/dmaengine.c
>> +++ b/drivers/dma/dmaengine.c
>> @@ -640,6 +640,10 @@ struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask,
>>  	struct dma_device *device, *_d;
>>  	struct dma_chan *chan = NULL;
>>  
>> +	/* If np is not specified, get the default DMA domain controller */
>> +	if (!np)
>> +		np = of_find_dma_domain(NULL);
>> +
>>  	/* Find a channel */
>>  	mutex_lock(&dma_list_mutex);
>>  	list_for_each_entry_safe(device, _d, &dma_device_list, global_node) {
>> @@ -751,19 +755,22 @@ struct dma_chan *dma_request_slave_channel(struct device *dev,
>>  EXPORT_SYMBOL_GPL(dma_request_slave_channel);
>>  
>>  /**
>> - * dma_request_chan_by_mask - allocate a channel satisfying certain capabilities
>> - * @mask: capabilities that the channel must satisfy
>> + * dma_domain_request_chan_by_mask - allocate a channel by mask from DMA domain
>> + * @dev:	pointer to client device structure
>> + * @mask:	capabilities that the channel must satisfy
>>   *
>>   * Returns pointer to appropriate DMA channel on success or an error pointer.
>>   */
>> -struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask)
>> +struct dma_chan *dma_domain_request_chan_by_mask(struct device *dev,
>> +						 const dma_cap_mask_t *mask)
> 
> should we really use dma_request_chan_by_mask() why not create a new api
> dma_request_chan_by_domain() and use that, it falls back to
> dma_request_chan_by_mask() if it doesnt find a valid domain!

So:
struct dma_chan *dma_request_chan_by_domain(struct device *dev,
					    const dma_cap_mask_t *mask);

?

- Péter

Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

  reply index

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-06 14:18 [RFC 0/3] dmaengine: Support for DMA domain controllers Peter Ujfalusi
2019-09-06 14:18 ` [RFC 1/3] dt-bindings: dma: Add documentation for DMA domains Peter Ujfalusi
2019-09-08  7:47   ` Peter Ujfalusi
2019-09-08 12:10     ` Vinod Koul
2019-09-09  6:30       ` Peter Ujfalusi
2019-09-12 17:03         ` Vinod Koul
2019-09-13  7:21           ` Peter Ujfalusi
2019-09-13 10:36             ` Vinod Koul
2019-09-13 12:19               ` Peter Ujfalusi
2019-09-13 13:33                 ` Vinod Koul
2019-09-08 12:06   ` Vinod Koul
2019-09-09  6:00     ` Peter Ujfalusi
2019-09-06 14:18 ` [RFC 2/3] dmaengine: of_dma: Function to look up the DMA domain of a client Peter Ujfalusi
2019-09-08 12:12   ` Vinod Koul
2019-09-06 14:18 ` [RFC 3/3] dmaengine: Support for requesting channels preferring DMA domain controller Peter Ujfalusi
2019-09-08  7:46   ` Peter Ujfalusi
2019-09-08 12:15   ` Vinod Koul
2019-09-09  5:56     ` Peter Ujfalusi [this message]
2019-09-12 16:49       ` Vinod Koul
  -- strict thread matches above, loose matches on Subject: below --
2019-09-06 14:17 [RFC 0/3] dmaengine: Support for DMA domain controllers Peter Ujfalusi
2019-09-06 14:17 ` [RFC 3/3] dmaengine: Support for requesting channels preferring DMA domain controller Peter Ujfalusi

Reply instructions:

You may reply publically 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=0bd4d678-31be-bead-7591-0452b6fed5f2@ti.com \
    --to=peter.ujfalusi@ti.com \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=vkoul@kernel.org \
    /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

dmaengine Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dmaengine/0 dmaengine/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dmaengine dmaengine/ https://lore.kernel.org/dmaengine \
		dmaengine@vger.kernel.org
	public-inbox-index dmaengine

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.dmaengine


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git