All of lore.kernel.org
 help / color / mirror / Atom feed
From: "G, Manjunath Kondaiah" <manjugk@ti.com>
To: "Cousson, Benoit" <b-cousson@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:58:08 +0530	[thread overview]
Message-ID: <E0D41E29EB0DAC4E9F3FF173962E9E9402784DCB8E@dbde02.ent.ti.com> (raw)
In-Reply-To: <4C9342FB.30401@ti.com>


 

> -----Original Message-----
> From: Cousson, Benoit 
> Sent: Friday, September 17, 2010 3:59 PM
> To: G, Manjunath Kondaiah
> Cc: Kevin Hilman; linux-omap@vger.kernel.org; Shilimkar, Santosh
> Subject: Re: [PATCH v2 09/11] OMAP: DMA: Implement generic 
> errata handling
> 
> 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.

WORKAROUND
The correct procedure to disable a DMA channel before it reaches end of block is:
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?

-Manjunath

  reply	other threads:[~2010-09-17 11:28 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 [this message]
2010-09-17 14:51                 ` Cousson, Benoit
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=E0D41E29EB0DAC4E9F3FF173962E9E9402784DCB8E@dbde02.ent.ti.com \
    --to=manjugk@ti.com \
    --cc=b-cousson@ti.com \
    --cc=khilman@deeprootsystems.com \
    --cc=linux-omap@vger.kernel.org \
    --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 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.