linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Gerhard Sittig <gsi@denx.de>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Lars-Peter Clausen <lars@metafoo.de>,
	Vinod Koul <vinod.koul@intel.com>,
	devicetree-discuss@lists.ozlabs.org,
	Alexander Popov <a13xp0p0v88@gmail.com>,
	Dan Williams <djbw@fb.com>, Anatolij Gustschin <agust@denx.de>,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH RFC 5/8] dma: mpc512x: use symbolic specifiers for DMA channels
Date: Sat, 13 Jul 2013 16:14:43 +0200	[thread overview]
Message-ID: <20130713141443.GJ2615@book.gsilab.sittig.org> (raw)
In-Reply-To: <201307130917.08904.arnd@arndb.de>

[ MPC8308 knowledge required, see below ]

On Sat, Jul 13, 2013 at 09:17 +0200, Arnd Bergmann wrote:
> 
> On Friday 12 July 2013, Gerhard Sittig wrote:
> > +++ b/include/dt-bindings/dma/mpc512x-dma.h
> > @@ -0,0 +1,21 @@
> > +/*
> > + * This header file provides symbolic specifiers for DMA channels
> > + * within the MPC512x SoC's DMA controller.  Since requester lines
> > + * directly map to channel numbers and no additional flexibility
> > + * is involved, DMA channels can be considered directly associated
> > + * with individual peripherals.
> > + *
> > + * This header file gets shared among DT bindings which provide
> > + * hardware specs, and driver code which implements supporting logic.
> > + */
> > +
> > +#ifndef _DT_BINDINGS_DMA_MPC512x_DMA_H
> > +#define _DT_BINDINGS_DMA_MPC512x_DMA_H
> > +
> > +#define MPC512x_DMACHAN_SCLPC          26
> > +#define MPC512x_DMACHAN_SDHC           30
> > +#define MPC512x_DMACHAN_MDDRC          32
> > +
> > +#define MPC512x_DMACHAN_MAX            64
> > +
> 
> I think these should not be in the header and should not bve part of the
> binding either. They are specific to an SoC that happens to be using this
> DMA controller but would be completely different for any other SoC with
> the same DMA engine. These belong into the dma descriptors of the slave
> drivers and don't need symbolic names.

Thank you for the feedback.

OK, so not adding the dt-bindings header leads to no change in
the DTS nodes, which in turn collapses 5/8 into something local
to the .c driver source (introduce an enum and replace a few
magic numbers with names), and obsoletes 4/8 as a prerequisite.
This will further reduce the patch set's size.

Your feedback made me re-visit the driver source and notice that
it is shared among the MPC512x as well as the MPC8308 hardware.
The latter only has 16 channels, and appears to _not_ have its
channels dedicated to peripherals.  It's even uncertain to me
whether it can cope with peripherals at all and how so.

I scanned chapter 12 (DMA controller) in the MPC8308 reference
manual (rev 0 as of 2010-04) several times and could not find any
hint about peripherals, request lines, or anything else related
to flow control.  Searching in the whole RM won't give a hint
either.  Does this suggest that the MPC8308 DMA controller's
channels are "free" in their assignment to transfer tasks?  Or
are they "memory transfers only"?  Or do they happily accept any
XLB address (internal and external RAM, IMMR and IP bus space)
but don't apply flow control, i.e. expect either peripherals to
already hold the RX data, or peripherals to keep up with being
fed random amounts of TX data?  I tend to read the doc as the
latter.

Can somebody with MPC8308 knowledge confirm my suspicion that the
MPC8308 DMA channels aren't associated with peripherals, and thus
always need the software initiated start condition (_if_ they are
used for data transfer to/from peripherals)?  Can somebody with
access to an MPC8308 based board test later versions of the
series, to verify we don't break DMA operation on that platform?

Regardless of whether MPC8308 can't handle peripheral access, or
doesn't differ from memory transfers there, the patch series
needs an update.  Part 1/8 in its current form is either wrong or
incomplete, works for MPC512x but not for all hardware that this
driver is responsible for.


virtually yours
Gerhard Sittig
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr. 5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office@denx.de

  reply	other threads:[~2013-07-13 14:14 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-12 15:26 [PATCH RFC 0/8] MPC512x DMA slave s/g support, OF DMA lookup Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 1/8] powerpc: mpc512x_dma: add support for data transfers between memory and i/o memory Gerhard Sittig
2013-07-14 10:05   ` Lars-Peter Clausen
2013-07-14 11:07     ` Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 2/8] dma: mpc512x: fix start condition in execute() Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 3/8] dma: mpc512x: support 'terminate all' control request Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 4/8] dts: mpc512x: prepare for preprocessor support Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 5/8] dma: mpc512x: use symbolic specifiers for DMA channels Gerhard Sittig
2013-07-13  7:17   ` Arnd Bergmann
2013-07-13 14:14     ` Gerhard Sittig [this message]
2013-07-14  8:50       ` Arnd Bergmann
2013-07-14  9:53         ` Lars-Peter Clausen
2013-07-14 11:02         ` Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 6/8] dma: of: Add common xlate function for matching by channel id Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 7/8] dma: mpc512x: register for device tree channel lookup Gerhard Sittig
2013-07-12 15:26 ` [PATCH RFC 8/8] HACK mmc: mxcmmc: enable clocks for the MPC512x Gerhard Sittig
2013-07-12 16:45 ` [PATCH RFC 0/8] MPC512x DMA slave s/g support, OF DMA lookup Lars-Peter Clausen
2013-07-14 12:01 ` [PATCH RFC v2 0/5] " Gerhard Sittig
2013-07-14 12:01   ` [PATCH RFC v2 1/5] dma: mpc512x: re-order mpc8308 specific instructions Gerhard Sittig
2013-08-12 13:38     ` Alexander Popov
2013-07-14 12:01   ` [PATCH RFC v2 2/5] dma: mpc512x: add support for peripheral transfers Gerhard Sittig
2013-07-16 10:37     ` Lars-Peter Clausen
2013-07-17 10:42       ` Gerhard Sittig
2013-07-31  7:46         ` Alexander Popov
2013-08-12 13:37     ` Alexander Popov
2013-07-14 12:01   ` [PATCH RFC v2 3/5] dma: of: Add common xlate function for matching by channel id Gerhard Sittig
2013-10-03 14:05     ` Alexander Popov
2013-07-14 12:02   ` [PATCH RFC v2 4/5] dma: mpc512x: register for device tree channel lookup Gerhard Sittig
2013-10-03 14:06     ` Alexander Popov
2013-07-14 12:02   ` [PATCH RFC v2 5/5] HACK mmc: mxcmmc: enable clocks for the MPC512x Gerhard Sittig
2013-10-03 14:06     ` Alexander Popov
2013-07-16  9:27   ` [PATCH RFC v2 0/5] MPC512x DMA slave s/g support, OF DMA lookup Alexander Popov
2013-10-03 14:00   ` Alexander Popov
2013-10-06 10:01     ` Gerhard Sittig

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=20130713141443.GJ2615@book.gsilab.sittig.org \
    --to=gsi@denx.de \
    --cc=a13xp0p0v88@gmail.com \
    --cc=agust@denx.de \
    --cc=arnd@arndb.de \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=djbw@fb.com \
    --cc=lars@metafoo.de \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=vinod.koul@intel.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).