Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Dmitry Osipenko
On 06.09.2016 16:46, Jon Hunter wrote:
> 
> On 06/09/16 14:04, Jon Hunter wrote:
>>
>> On 06/09/16 13:03, Dmitry Osipenko wrote:
>>> On 06.09.2016 14:33, Jon Hunter wrote:

 On 03/09/16 01:32, Nicolin Chen wrote:
> This series of patches add memcpy support for tegra210 ADMA engine.

 Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
 is more of a generic DMA and so for memcpy it would seem to be a good
 choice and it is available on all Tegras not just Tegra210.

>>>
>>> Just a small clarification:
>>>
>>> If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. 
>>> So,
>>> you probably meant AHB and not the APB.
>>
>> Description from the Tegra TRM:
>>
>> "The APB DMA Controller is placed between the AHB Bus and the APB Bus
>> and is a master on both buses.
>>
>> The APB DMA Controller is used for block data transfers from a source
>> location to the destination location. The source may be
>> DRAM or IRAM, and the destination location could be devices placed on
>> APB Bus; or vice versa."
> 
> Sorry this appears to be a completely worthless response :-(
> 
> I had made the assumption that if the DMA can transfer from APB-to-AHB
> and AHB-to-APB, it could also do AHB to AHB. However, now I look closely
> at the registers I see that it cannot and therefore, cannot support
> memcpy at all! Ok, so ignore my comment here, as it appears only the
> ADMA can support memcpy. Weird.
> 

On older Tegra's there is AHB DMA controller for mem-to-mem transfers. The K1
manual states that it's been deprecated, however there is an interrupt dedicated
to it (probably wrong TRM?). X1 TRM also states the deprecation, doesn't have
the interrupt mention that K1 has and has ADMA.

-- 
Dmitry


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Dmitry Osipenko
On 06.09.2016 16:46, Jon Hunter wrote:
> 
> On 06/09/16 14:04, Jon Hunter wrote:
>>
>> On 06/09/16 13:03, Dmitry Osipenko wrote:
>>> On 06.09.2016 14:33, Jon Hunter wrote:

 On 03/09/16 01:32, Nicolin Chen wrote:
> This series of patches add memcpy support for tegra210 ADMA engine.

 Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
 is more of a generic DMA and so for memcpy it would seem to be a good
 choice and it is available on all Tegras not just Tegra210.

>>>
>>> Just a small clarification:
>>>
>>> If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. 
>>> So,
>>> you probably meant AHB and not the APB.
>>
>> Description from the Tegra TRM:
>>
>> "The APB DMA Controller is placed between the AHB Bus and the APB Bus
>> and is a master on both buses.
>>
>> The APB DMA Controller is used for block data transfers from a source
>> location to the destination location. The source may be
>> DRAM or IRAM, and the destination location could be devices placed on
>> APB Bus; or vice versa."
> 
> Sorry this appears to be a completely worthless response :-(
> 
> I had made the assumption that if the DMA can transfer from APB-to-AHB
> and AHB-to-APB, it could also do AHB to AHB. However, now I look closely
> at the registers I see that it cannot and therefore, cannot support
> memcpy at all! Ok, so ignore my comment here, as it appears only the
> ADMA can support memcpy. Weird.
> 

On older Tegra's there is AHB DMA controller for mem-to-mem transfers. The K1
manual states that it's been deprecated, however there is an interrupt dedicated
to it (probably wrong TRM?). X1 TRM also states the deprecation, doesn't have
the interrupt mention that K1 has and has ADMA.

-- 
Dmitry


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Jon Hunter

On 06/09/16 14:04, Jon Hunter wrote:
> 
> On 06/09/16 13:03, Dmitry Osipenko wrote:
>> On 06.09.2016 14:33, Jon Hunter wrote:
>>>
>>> On 03/09/16 01:32, Nicolin Chen wrote:
 This series of patches add memcpy support for tegra210 ADMA engine.
>>>
>>> Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
>>> is more of a generic DMA and so for memcpy it would seem to be a good
>>> choice and it is available on all Tegras not just Tegra210.
>>>
>>
>> Just a small clarification:
>>
>> If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. 
>> So,
>> you probably meant AHB and not the APB.
> 
> Description from the Tegra TRM:
> 
> "The APB DMA Controller is placed between the AHB Bus and the APB Bus
> and is a master on both buses.
> 
> The APB DMA Controller is used for block data transfers from a source
> location to the destination location. The source may be
> DRAM or IRAM, and the destination location could be devices placed on
> APB Bus; or vice versa."

Sorry this appears to be a completely worthless response :-(

I had made the assumption that if the DMA can transfer from APB-to-AHB
and AHB-to-APB, it could also do AHB to AHB. However, now I look closely
at the registers I see that it cannot and therefore, cannot support
memcpy at all! Ok, so ignore my comment here, as it appears only the
ADMA can support memcpy. Weird.

Jon

-- 
nvpublic


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Jon Hunter

On 06/09/16 14:04, Jon Hunter wrote:
> 
> On 06/09/16 13:03, Dmitry Osipenko wrote:
>> On 06.09.2016 14:33, Jon Hunter wrote:
>>>
>>> On 03/09/16 01:32, Nicolin Chen wrote:
 This series of patches add memcpy support for tegra210 ADMA engine.
>>>
>>> Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
>>> is more of a generic DMA and so for memcpy it would seem to be a good
>>> choice and it is available on all Tegras not just Tegra210.
>>>
>>
>> Just a small clarification:
>>
>> If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. 
>> So,
>> you probably meant AHB and not the APB.
> 
> Description from the Tegra TRM:
> 
> "The APB DMA Controller is placed between the AHB Bus and the APB Bus
> and is a master on both buses.
> 
> The APB DMA Controller is used for block data transfers from a source
> location to the destination location. The source may be
> DRAM or IRAM, and the destination location could be devices placed on
> APB Bus; or vice versa."

Sorry this appears to be a completely worthless response :-(

I had made the assumption that if the DMA can transfer from APB-to-AHB
and AHB-to-APB, it could also do AHB to AHB. However, now I look closely
at the registers I see that it cannot and therefore, cannot support
memcpy at all! Ok, so ignore my comment here, as it appears only the
ADMA can support memcpy. Weird.

Jon

-- 
nvpublic


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Jon Hunter

On 06/09/16 13:03, Dmitry Osipenko wrote:
> On 06.09.2016 14:33, Jon Hunter wrote:
>>
>> On 03/09/16 01:32, Nicolin Chen wrote:
>>> This series of patches add memcpy support for tegra210 ADMA engine.
>>
>> Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
>> is more of a generic DMA and so for memcpy it would seem to be a good
>> choice and it is available on all Tegras not just Tegra210.
>>
> 
> Just a small clarification:
> 
> If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. 
> So,
> you probably meant AHB and not the APB.

Description from the Tegra TRM:

"The APB DMA Controller is placed between the AHB Bus and the APB Bus
and is a master on both buses.

The APB DMA Controller is used for block data transfers from a source
location to the destination location. The source may be
DRAM or IRAM, and the destination location could be devices placed on
APB Bus; or vice versa."

Cheers
Jon

-- 
nvpublic


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Jon Hunter

On 06/09/16 13:03, Dmitry Osipenko wrote:
> On 06.09.2016 14:33, Jon Hunter wrote:
>>
>> On 03/09/16 01:32, Nicolin Chen wrote:
>>> This series of patches add memcpy support for tegra210 ADMA engine.
>>
>> Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
>> is more of a generic DMA and so for memcpy it would seem to be a good
>> choice and it is available on all Tegras not just Tegra210.
>>
> 
> Just a small clarification:
> 
> If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. 
> So,
> you probably meant AHB and not the APB.

Description from the Tegra TRM:

"The APB DMA Controller is placed between the AHB Bus and the APB Bus
and is a master on both buses.

The APB DMA Controller is used for block data transfers from a source
location to the destination location. The source may be
DRAM or IRAM, and the destination location could be devices placed on
APB Bus; or vice versa."

Cheers
Jon

-- 
nvpublic


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Dmitry Osipenko
On 06.09.2016 14:33, Jon Hunter wrote:
> 
> On 03/09/16 01:32, Nicolin Chen wrote:
>> This series of patches add memcpy support for tegra210 ADMA engine.
> 
> Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
> is more of a generic DMA and so for memcpy it would seem to be a good
> choice and it is available on all Tegras not just Tegra210.
> 

Just a small clarification:

If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. So,
you probably meant AHB and not the APB.

> Furthermore, from a power standpoint the ADMA is in the audio power
> domain and so using it for memcpy would mean the audio power domain is
> turned on. It may not be a big deal for some, but given the APB is in
> the CORE domain (always on when not in low-power) it seems like a better
> choice for power as well.
> 

-- 
Dmitry


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Dmitry Osipenko
On 06.09.2016 14:33, Jon Hunter wrote:
> 
> On 03/09/16 01:32, Nicolin Chen wrote:
>> This series of patches add memcpy support for tegra210 ADMA engine.
> 
> Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
> is more of a generic DMA and so for memcpy it would seem to be a good
> choice and it is available on all Tegras not just Tegra210.
> 

Just a small clarification:

If I'm not mistaken, APB DMA is mem-to-device, while AHB DMA is mem-to-mem. So,
you probably meant AHB and not the APB.

> Furthermore, from a power standpoint the ADMA is in the audio power
> domain and so using it for memcpy would mean the audio power domain is
> turned on. It may not be a big deal for some, but given the APB is in
> the CORE domain (always on when not in low-power) it seems like a better
> choice for power as well.
> 

-- 
Dmitry


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Jon Hunter

On 03/09/16 01:32, Nicolin Chen wrote:
> This series of patches add memcpy support for tegra210 ADMA engine.

Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
is more of a generic DMA and so for memcpy it would seem to be a good
choice and it is available on all Tegras not just Tegra210.

Furthermore, from a power standpoint the ADMA is in the audio power
domain and so using it for memcpy would mean the audio power domain is
turned on. It may not be a big deal for some, but given the APB is in
the CORE domain (always on when not in low-power) it seems like a better
choice for power as well.

Cheers
Jon

-- 
nvpublic


Re: [PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-06 Thread Jon Hunter

On 03/09/16 01:32, Nicolin Chen wrote:
> This series of patches add memcpy support for tegra210 ADMA engine.

Thanks. Any reason you choose this DMA and not the APB DMA? The APB DMA
is more of a generic DMA and so for memcpy it would seem to be a good
choice and it is available on all Tegras not just Tegra210.

Furthermore, from a power standpoint the ADMA is in the audio power
domain and so using it for memcpy would mean the audio power domain is
turned on. It may not be a big deal for some, but given the APB is in
the CORE domain (always on when not in low-power) it seems like a better
choice for power as well.

Cheers
Jon

-- 
nvpublic


[PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-02 Thread Nicolin Chen
This series of patches add memcpy support for tegra210 ADMA engine.

Changlog
v1->v2 (Suggested by Vinod)
 * PATCH-1: Split the cyclic pre-check to a separate patch
 * PATCH-2: Add ADMA_CH_CTRL_MODE to unify the marcos
 * PATCH-2: Set operation mode depending on cyclic
 * PATCH-2: Add TODO comment at period_len
 * PATCH-2: Revise the commit log

Nicolin Chen (2):
  dmaengine: tegra210-adma: Add pre-check for cyclic callback
  dmaengine: tegra210-adma: Add memcpy support

 drivers/dma/tegra210-adma.c | 98 +++--
 1 file changed, 86 insertions(+), 12 deletions(-)

-- 
2.1.4



[PATCH v2 0/2] Add memcpy support for tegra210-adma

2016-09-02 Thread Nicolin Chen
This series of patches add memcpy support for tegra210 ADMA engine.

Changlog
v1->v2 (Suggested by Vinod)
 * PATCH-1: Split the cyclic pre-check to a separate patch
 * PATCH-2: Add ADMA_CH_CTRL_MODE to unify the marcos
 * PATCH-2: Set operation mode depending on cyclic
 * PATCH-2: Add TODO comment at period_len
 * PATCH-2: Revise the commit log

Nicolin Chen (2):
  dmaengine: tegra210-adma: Add pre-check for cyclic callback
  dmaengine: tegra210-adma: Add memcpy support

 drivers/dma/tegra210-adma.c | 98 +++--
 1 file changed, 86 insertions(+), 12 deletions(-)

-- 
2.1.4