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
next prev parent 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).