All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: linux-sh@vger.kernel.org
Subject: Re: [PATCH 03/05] ARM: shmobile: r8a7779: Generic SoC SMP support
Date: Fri, 26 Jun 2015 06:38:41 +0000	[thread overview]
Message-ID: <3419179.2r7LSZA0nU@avalon> (raw)
In-Reply-To: <20150218023842.12588.17833.sendpatchset@little-apple>

Hi Magnus,

On Friday 26 June 2015 10:12:20 Magnus Damm wrote:
> On Fri, Jun 26, 2015 at 6:01 AM, Laurent Pinchart wrote:
> > On Thursday 25 June 2015 17:45:59 Magnus Damm wrote:
> >> On Wed, Feb 18, 2015 at 4:27 PM, Laurent Pinchart wrote:
> >> > On Wednesday 18 February 2015 11:38:42 Magnus Damm wrote:
> >> >> From: Magnus Damm <damm+renesas@opensource.se>
> >> >> 
> >> >> Add a r8a7779-specific SMP operation pointer to support
> >> >> all 4 CPU cores through SMP on r8a7779 without C board code.
> >> >> 
> >> >> Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
> >> >> ---
> >> >> 
> >> >>  arch/arm/mach-shmobile/setup-r8a7779.c |    1 +
> >> >>  1 file changed, 1 insertion(+)
> >> >> 
> >> >> --- 0003/arch/arm/mach-shmobile/setup-r8a7779.c
> >> >> +++ work/arch/arm/mach-shmobile/setup-r8a7779.c       2015-02-17
> >> >> 00:46:51.566221714 +0900 @@ -773,6 +773,7 @@ static const char
> >> >> *r8a7779_compat_dt[] _
> >> >> 
> >> >>  };
> >> >>  
> >> >>  DT_MACHINE_START(R8A7779_DT, "Generic R8A7779 (Flattened Device
> >> >>  Tree)")
> >> >> 
> >> >> +     .smp            = smp_ops(r8a7779_smp_ops),
> >> >> 
> >> >>       .map_io         = r8a7779_map_io,
> >> >>       .init_early     = shmobile_init_delay,
> >> >>       .init_time      = r8a7779_init_time,
> >> > 
> >> > I've been told by Arnd last week that an alternate method exists to
> >> > select SMP operations when booting from DT. The CPU_METHOD_OF_DECLARE()
> >> > registers SMP operations with a CPU enabling method name, which can
> >> > then be specified in DT using the enable-method property. This allows
> >> > using the same DT machine description for several SoCs when only the
> >> > SMP operations differ.
> >> > 
> >> > We unfortunately can't switch to this method completely for Gen2,
> >> > otherwise we would break backward compatibility with older DT that
> >> > don't specify the enable-method property. For newer addition, though,
> >> > we could avoid introducing a dependency on SMP operations in the DT
> >> > machine descriptions.
> >> 
> >> I've started to address this in the series "[PATCH 00/05] ARM:
> >> shmobile: APMU DT support via SMP Enable method", but this only covers
> >> R-Car Gen2 so it does not apply to the r8a7779 case. My priority at
> >> this point is to get rid of the Marzen reference board code, and
> >> enabling SMP in the generic r8a7779 machvec is a blocker for that. So
> >> my current plan is to migrate r8a7779 smp over as-is and then
> >> incrementally fix it up as a separate issue - ideally after converting
> >> over R-Car Gen2 to the new way.
> > 
> > I understand that, but if we do so in two steps we will need to keep
> > backward compatibility code for SMP based on the machine compatible
> > string. It won't be possible to switch the code to
> > CPU_METHOD_OF_DECLARE() and get rid of the old code.
> 
> In my mind this is just a question of timing. Say we move to using
> enable-method more or less now. Then we would force the Marzen user to
> update the DTB now due to requirement of using enable-method to get
> SMP working. Or we chose to do it later, and then we have to force the
> user to update the DTB then. Either way we need to force an update.

The reason why I would prefer doing it now is that switching later would be a 
regression from a DT ABI point of view (users who don't update their DTB would 
lose SMP support), while doing it now wouldn't introduce a regression given 
that SMP is currently disabled when booting r8a7779 with DT.

> I'd rather collect a couple of different reasons for DT update in one
> bunch. Because of this postponing the update must be good if possible.
> 
> > Is it really that difficult to go straight to CPU_METHOD_OF_DECLARE() ?
> 
> From a purely technical point of view I don't think it is very hard.
> But I'd like to have a face-to-face discussion to clarify the purpose
> of the enable-method DT binding. I'm all for being standard and
> consolidating code, but I believe DT should be used to describe
> hardware.

That's something we should discuss with the ARM SoC maintainers, right ?

> As for the marzen-reference board code, I'd like to simply get rid of
> it without adding any dependencies.

-- 
Regards,

Laurent Pinchart


  parent reply	other threads:[~2015-06-26  6:38 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-18  2:38 [PATCH 03/05] ARM: shmobile: r8a7779: Generic SoC SMP support Magnus Damm
2015-02-18  7:27 ` Laurent Pinchart
2015-02-18  9:10 ` Geert Uytterhoeven
2015-06-25  8:45 ` Magnus Damm
2015-06-25 21:01 ` Laurent Pinchart
2015-06-26  1:12 ` Magnus Damm
2015-06-26  6:38 ` Laurent Pinchart [this message]
2015-06-26  6:58 ` Geert Uytterhoeven
2015-06-27 15:17 ` Laurent Pinchart
2015-06-29  4:42 ` Magnus Damm
2015-06-29  5:52 ` Magnus Damm

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=3419179.2r7LSZA0nU@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=linux-sh@vger.kernel.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.