All of lore.kernel.org
 help / color / mirror / Atom feed
From: taskboxtester@gmail.com
To: "Brüns, Stefan" <Stefan.Bruens@rwth-aachen.de>
Cc: linux-sunxi <linux-sunxi@googlegroups.com>,
	Rob Herring <robh+dt@kernel.org>,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	vinod.koul@intel.com, dmaengine@vger.kernel.org,
	Maxime Ripard <maxime.ripard@free-electrons.com>,
	linux-arm-kernel@lists.infradead.org,
	Chen-Yu Tsai <wens@csie.org>
Subject: Re: [PATCH 1/3] dmaengine: sun6i: Correct DMA support on H3
Date: Fri, 01 Sep 2017 10:51:15 -0400	[thread overview]
Message-ID: <fe30bd7b-cca0-476a-8320-e65fc807ffb8@gmail.com> (raw)
In-Reply-To: <5722405.lpx0YHbn2k@sbruens-linux>

[-- Attachment #1: Type: text/plain, Size: 2711 bytes --]

taskboxtester@gmail.com liked your message with Boxer for Android.


On Sep 1, 2017 10:45 AM, "Brüns, Stefan" <Stefan.Bruens@rwth-aachen.de> wrote:

On Freitag, 1. September 2017 15:35:49 CEST Maxime Ripard wrote:
> On Fri, Sep 01, 2017 at 05:04:54AM +0200, Stefan Bruens wrote:
> > On Donnerstag, 31. August 2017 16:51:35 CEST Maxime Ripard wrote:
> > > Hi,
> > > 
> > > On Thu, Aug 31, 2017 at 01:36:07AM +0200, Stefan Brüns wrote:
> > > > +/* Between SoC generations, there are some significant differences:
> > > > + * - A23 added a clock gate register
> > > > + * - the H3 burst length field has a different offset
> > > > + */
> > > 
> > > This is not the proper comment style.
> > > 
> > > > +enum dmac_variant {
> > > > +DMAC_VARIANT_A31,
> > > > +DMAC_VARIANT_A23,
> > > > +DMAC_VARIANT_H3,
> > > > +};
> > > > +
> > > 
> > > And this is redundant with what we already have in our structures.
> > 
> > Actually, its not. For H3, there are currently at least 3 register
> > compatible SoCs: H5 is identical, R40 has 16 dma channels, A64 has 8
> > channels. So if the current config structure is kept, we need 3 different
> > compatible strings. Same for the A23, which is register compatible to
> > e.g. A83t and V3s, but with different numbers of DMA channels.
> > 
> > So either you decorate the code with a cascade of
> > 
> > if ((of_is_compatible(..A23..) || of_is_compatible(..A83T..) || ...) {
> > } else if ((of_is_compatible(..H3..) || of_is_compatible(..A64..) || ...)
> > {
> > } else { /* A31 */
> > }
> > 
> > in a number of places, or you do it just once.
> 
> That's not how you retrieve the structures. They are already
> associated to the compatible, and you need to do a single lookup to
> get them. So that's nowhere near what you're suggesting. You can have
> a look at the of_match_device in the probe function.
> 


Please have a look at the current implementation of how the clock autogating 
in the probe function is done - it matches with the compatible string.

Of course we can replace this with a match between sdev->config and the 
various sun6i_dma_config instances, but we would still have to do 3 matches 
for the A23 register configuration (A23 || A83T || V3s) and 3 matches for the 
H3 register configuration (H3 || R40 || A64). There are currently *7* 
different configs (V3s, R40 and A64 taken into account), but only 3 different 
register variants.

This is the same rationale as the "gate_needed" boolean property proposed by 
Icenowy Zheng in the "Allwinner V3s DMA support" patch series. Obviously we 
don't need a boolean, but a ternary option to cater for the gate_needed 
differences - "NO_GATE", "A23_STYLE_GATE", "H3_STYLE_GATE".

Kind regards,

Stefan




[-- Attachment #2: Type: text/html, Size: 3895 bytes --]

  reply	other threads:[~2017-09-01 14:51 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-30 23:36 [PATCH 0/3] dmaengine: Fix DMA on current allwinner SoCs, add A64 support Stefan Brüns
2017-08-30 23:36 ` Stefan Brüns
2017-08-30 23:36 ` Stefan Brüns
2017-08-30 23:36 ` [PATCH 1/3] dmaengine: sun6i: Correct DMA support on H3 Stefan Brüns
2017-08-30 23:36   ` Stefan Brüns
2017-08-30 23:36   ` Stefan Brüns
2017-08-31 14:51   ` Maxime Ripard
2017-08-31 14:51     ` Maxime Ripard
2017-09-01  3:04     ` Stefan Bruens
2017-09-01  3:04       ` Stefan Bruens
2017-09-01  3:04       ` Stefan Bruens
2017-09-01 13:35       ` Maxime Ripard
2017-09-01 13:35         ` Maxime Ripard
2017-09-01 14:42         ` Brüns, Stefan
2017-09-01 14:42           ` Brüns, Stefan
2017-09-01 14:51           ` taskboxtester [this message]
2017-09-04  6:50           ` Maxime Ripard
2017-09-04  6:50             ` Maxime Ripard
2017-09-04  6:50             ` Maxime Ripard
2017-08-30 23:36 ` [PATCH 2/3] arm64: allwinner: a64: Add device node for DMA controller Stefan Brüns
2017-08-30 23:36   ` Stefan Brüns
2017-08-30 23:36   ` Stefan Brüns
2017-09-11 22:00   ` Rob Herring
2017-09-11 22:00     ` Rob Herring
2017-09-11 22:00     ` Rob Herring
2017-08-30 23:36 ` [PATCH 3/3] dmaengine: sun6i: Add support for Allwinner A64 Stefan Brüns
2017-08-30 23:36   ` Stefan Brüns
2017-08-30 23:36   ` Stefan Brüns
2017-08-31 11:44   ` Code Kipper
2017-08-31 11:44     ` Code Kipper
2017-08-31 14:52   ` Maxime Ripard
2017-08-31 14:52     ` Maxime Ripard
2017-08-31 14:52     ` Maxime Ripard
2017-08-31 16:35     ` [linux-sunxi] " Code Kipper
2017-08-31 16:35       ` Code Kipper
2017-08-31 16:35       ` Code Kipper
2017-09-01  0:31   ` Andre Przywara
2017-09-01  0:31     ` Andre Przywara
2017-09-01  0:31     ` Andre Przywara
2017-09-01  1:19     ` Stefan Bruens
2017-09-01  1:19       ` Stefan Bruens
2017-09-01  1:19       ` Stefan Bruens
2017-09-01 22:32       ` André Przywara
2017-09-01 22:32         ` André Przywara
2017-09-02  0:38         ` Stefan Bruens
2017-09-02  0:38           ` Stefan Bruens
2017-09-02  0:38           ` Stefan Bruens
2017-09-02  2:02         ` Stefan Bruens
2017-09-02  2:02           ` Stefan Bruens
2017-09-02  2:02           ` Stefan Bruens
2017-09-03 23:14           ` André Przywara
2017-09-03 23:14             ` André Przywara
2017-09-03 23:14             ` André Przywara
2017-09-01  6:04     ` Maxime Ripard
2017-09-01  6:04       ` Maxime Ripard
2017-09-01  6:04       ` Maxime Ripard
2017-09-01 22:35       ` André Przywara
2017-09-01 22:35         ` André Przywara
2017-09-01 22:35         ` André Przywara
2017-09-04  7:04         ` Maxime Ripard
2017-09-04  7:04           ` Maxime Ripard
2017-09-04  7:04           ` Maxime Ripard
2017-09-04  8:14           ` André Przywara
2017-09-04  8:14             ` André Przywara
2017-09-08 14:39             ` Maxime Ripard
2017-09-08 14:39               ` Maxime Ripard
2017-09-08 14:57               ` Andre Przywara
2017-09-08 14:57                 ` Andre Przywara

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=fe30bd7b-cca0-476a-8320-e65fc807ffb8@gmail.com \
    --to=taskboxtester@gmail.com \
    --cc=Stefan.Bruens@rwth-aachen.de \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=robh+dt@kernel.org \
    --cc=vinod.koul@intel.com \
    --cc=wens@csie.org \
    /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.