linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Cousson, Benoit" <b-cousson@ti.com>
To: "G, Manjunath Kondaiah" <manjugk@ti.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>,
	"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
	"Shilimkar, Santosh" <santosh.shilimkar@ti.com>
Subject: Re: [PATCH v2 09/11] OMAP: DMA: Implement generic errata handling
Date: Fri, 17 Sep 2010 16:51:18 +0200	[thread overview]
Message-ID: <4C938066.2080908@ti.com> (raw)
In-Reply-To: <E0D41E29EB0DAC4E9F3FF173962E9E9402784DCB8E@dbde02.ent.ti.com>

On 9/17/2010 1:28 PM, G, Manjunath Kondaiah wrote:
>> From: Cousson, Benoit
>> Sent: Friday, September 17, 2010 3:59 PM
>>
>> On 9/17/2010 10:09 AM, G, Manjunath Kondaiah wrote:
>>> Hi Benoit,
>>>
>>
>> <...>
>>
>>>>>
>>>>> I assume you are ok with option #1. Let me know if you have any
>>>>> issues/concenrs with above approach. I am in the process of
>>>> consolidating
>>>>> all the review comments and addressing all applicable
>>>> review comments.
>>>>
>>>> Not really, the option #1 will still require you to use the oh
>>>> pointer, which is supposed to be private to the omap_device.
>>>>
>>>> What is still not clear is why and when you need to change the
>>>> sysconfig setting.
>>>
>>> It is required before stopping DMA chain transfer.
>>
>> OK, but why? What happen if you do not do that? Could you
>> please give the full errata description to help us understanding?
>
> Here is summary of errata description:
>
> Software will program DMA to transfer an arbitrary high number of data, and disable the DMA
> channel whenever it is sure that all the data have been read from the source and transferred to the
> destination.
>
> When doing this, software must ensure that the DMA is configured in No Standby mode
> (DMAx_OCP_SYSCONFIG.MIDLEMODE = "01"). If this is not the case, the software may disable the
> channel when it is transitioning to standby state. This would cause the DMA internal
> FIFO pointer not to be reset correctly and available DMA FIFO space to be artificially
> decreased. The consequences range from unnecessary unaligned accesses performed,
> to complete DMA transfer hanging.

Thanks for the details.

That's an interesting bug to handle...

And what happen if you do not disable the DMA channel at that time?


> WORKAROUND
> The correct procedure to disable a DMA channel before it reaches end of block is:

That part is not clear: Why do we have to disable a channel before its 
completion? Cannot we wait?

> 1. Set OCP_SYSCONFIG.MIDLEMODE to "01"
> 2. Disable DMA channel by writing bit DMA4_CCR_i[7].Enable='0'
> 3. Ensure current DMA transfer is completed by polling the relevant DMA4_CCR_i[9].RD_ACTIVE/
> DMA4_CCR_i[10].WR_ACTIVE bit.
> 4. Restore OCP_SYSCONFIG.MIDLEMODE to its previous value.

>>>> Do you have a details explanation? Ideally you should try
>> to couple
>>>> the sysconfig change along with pm_runtime / hwmod state
>> change, then
>>>> we will be able to handle that smoothly in the framework.
>>>
>>> Since channel is already requested(and there is possibility
>> of other
>>> channels also used at the same time), using pm_runtime
>> API's will only
>>> increase usage count and will not invoke omap_device_enable.
>>
>> This is the part that is not clear, and where the full errata
>> should help, because if you do have other channel in use, you
>> will not be able to do any clock gating anyway, that why
>> changing the sysconfig at that time might be useless.
>
> Errata description provided.
>
>>
>>>> If you cannot do that, you will need to add an omap_device API as
>>>> well.
>>>
>>> There is already one such API exists in hwmod layer for
>> handling this
>>> type of errata(omap_hwmod_set_slave_idlemode in omap_hwmod.c).
>>> Above proposal is based on similar implementation.
>>
>> Maybe, but this is not enough. In both case you should not
>> use directly this API from the driver, so if you want to use
>> that kind of approach, you will need the omap_device layer as well.
>
> Does that mean, extending omap device layer for modifying sysconfig?

Yes,

Benoit

  reply	other threads:[~2010-09-17 14:51 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-24 11:04 [PATCH v2 00/11] OMAP: DMA: HWMOD and DMA as platform driver Manjunatha GK
2010-08-24 11:04 ` [PATCH v2 01/11] OMAP: DMA: Introduce DMA device attributes Manjunatha GK
2010-08-24 11:04 ` [PATCH v2 02/11] OMAP2420: DMA: HWMOD: Add hwmod data structures Manjunatha GK
2010-08-24 11:04 ` [PATCH v2 03/11] OMAP2430: " Manjunatha GK
2010-08-24 11:30   ` Mika Westerberg
2010-08-24 14:32     ` G, Manjunath Kondaiah
2010-08-24 11:04 ` [PATCH v2 04/11] OMAP3: " Manjunatha GK
2010-09-03 20:51   ` Kevin Hilman
2010-09-04 14:45     ` Cousson, Benoit
2010-09-08  1:52     ` G, Manjunath Kondaiah
2010-08-24 11:04 ` [PATCH v2 05/11] OMAP4: " Manjunatha GK
2010-08-24 11:04 ` [PATCH v2 06/11] OMAP1: DMA: Introduce DMA driver as platform driver Manjunatha GK
2010-08-24 11:04 ` [PATCH v2 07/11] OMAP2/3/4: DMA: HWMOD: Device registration Manjunatha GK
2010-09-03 20:59   ` Kevin Hilman
2010-09-07 11:47     ` G, Manjunath Kondaiah
2010-09-14 10:18       ` G, Manjunath Kondaiah
2010-09-14 10:24         ` Felipe Balbi
2010-09-14 11:44           ` G, Manjunath Kondaiah
2010-09-14 11:57             ` Felipe Balbi
2010-09-14 14:11               ` G, Manjunath Kondaiah
2010-09-15  7:11                 ` Felipe Balbi
2010-09-16  3:40                   ` G, Manjunath Kondaiah
2010-09-16  6:03                     ` Felipe Balbi
2010-09-16  6:32                       ` G, Manjunath Kondaiah
2010-09-16  6:40                         ` Felipe Balbi
2010-09-16  6:53                           ` G, Manjunath Kondaiah
2010-09-16  6:58                             ` Cousson, Benoit
2010-09-16  7:05                               ` Felipe Balbi
2010-09-16 14:16                         ` Kevin Hilman
2010-08-24 11:04 ` [PATCH v2 08/11] OMAP: DMA: Convert DMA library into DMA platform Driver Manjunatha GK
2010-09-03 22:34   ` Kevin Hilman
2010-09-07 11:47     ` G, Manjunath Kondaiah
2010-09-07 22:45       ` Kevin Hilman
2010-09-08  1:46         ` G, Manjunath Kondaiah
2010-08-24 11:04 ` [PATCH v2 09/11] OMAP: DMA: Implement generic errata handling Manjunatha GK
2010-09-03 22:42   ` Kevin Hilman
2010-09-07 11:48     ` G, Manjunath Kondaiah
2010-09-14 10:12       ` G, Manjunath Kondaiah
2010-09-17  5:05       ` G, Manjunath Kondaiah
2010-09-17  7:24         ` Cousson, Benoit
2010-09-17  8:09           ` G, Manjunath Kondaiah
2010-09-17 10:29             ` Cousson, Benoit
2010-09-17 11:28               ` G, Manjunath Kondaiah
2010-09-17 14:51                 ` Cousson, Benoit [this message]
2010-09-17 15:32                   ` Kevin Hilman
2010-09-18  1:19                     ` G, Manjunath Kondaiah
2010-09-18  1:10                   ` G, Manjunath Kondaiah
2010-09-17 15:45   ` Cousson, Benoit
2010-09-18  1:15     ` G, Manjunath Kondaiah
2010-08-24 11:04 ` [PATCH v2 10/11] OMAP: DMA: Use DMA device attributes Manjunatha GK
2010-09-03 20:45   ` Kevin Hilman
2010-09-07 11:47     ` G, Manjunath Kondaiah
2010-08-24 11:04 ` [PATCH v2 11/11] sDMA: descriptor autoloading feature Manjunatha GK
2010-09-03 16:21 ` [PATCH v2 00/11] OMAP: DMA: HWMOD and DMA as platform driver G, Manjunath Kondaiah
2010-09-03 16:39   ` Cousson, Benoit
2010-09-07 11:46     ` G, Manjunath Kondaiah
2010-09-03 16:44   ` Kevin Hilman
2010-09-03 22:49   ` Kevin Hilman
2010-09-07 11:48     ` G, Manjunath Kondaiah
2010-09-08  8:43       ` G, Manjunath Kondaiah
2010-09-03 20:38 ` Kevin Hilman
2010-09-07 11:47   ` G, Manjunath Kondaiah

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=4C938066.2080908@ti.com \
    --to=b-cousson@ti.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=manjugk@ti.com \
    --cc=santosh.shilimkar@ti.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).