Thread (9 messages) 9 messages, 5 authors, 2017-06-02

[GIT PULL] ARM: SoC fixes (and a cross-arch dt-include fix)

From: Olof Johansson <hidden>
Date: 2017-05-23 16:42:24
Also in: linux-arch, lkml

On Tue, May 23, 2017 at 2:49 AM, Geert Uytterhoeven
[off-list ref] wrote:
Hi Olof,

On Mon, May 22, 2017 at 5:11 PM, Olof Johansson [off-list ref] wrote:
quoted
On Mon, May 22, 2017 at 4:44 AM, Linus Walleij [off-list ref] wrote:
quoted
On Fri, May 19, 2017 at 9:34 PM, Olof Johansson [off-list ref] wrote:
quoted
 - We've started telling people to avoid cross-tree shared branches if all
   they're doing is picking up one or two DT-used constants from a
   shared include file, and instead to use the numeric values on first
   submission. Follow-up moving over to symbolic names are sent in right
   after -rc1, i.e. here. It's only a few minor patches of this type.
OK it seems like a reasonable process.

It's not like I can think about anything better.

I was more opting for doing things this way:

- Create bindings and <dt-bindings/foo/bar.h> merge it into the
  foo subsystem.

- Merge driver into drivers/foo/bar.c that use <dt-bindings/foo/bar.h>

- Submit DTS patch to ARM SoC (or whetever) using only numerical
  values.

- After the merge window, follow up with a patch replacing the
  numerical constants with #defines from <dt-bindings/foo/bar.h>
You're describing exactly what we've been pushing people towards.

If it's just a few simple references it's not significantly more
awkward, and decouples merges and removes need for stable branches.
Essentially we've become slightly more lax in what we're willing to
consider _right after_ -rc1 to include these tweaks (and often patches
to turn on new drivers in defconfigs).

If the amount of contents grows too large we might need to tweak
things further, maybe with something pre-rc1 but that's more awkward.
quoted
An alternative would obviously be to wait for the next merge window
after merging the driver patch but I guess people are too impatient
to do that (including me).
Yeah, asking people to spread out across releases would remove
dependencies a lot, but it would also slow down progress and frustrate
a lot of contributors so we don't do that.
The above works fine for new support, or for new platforms.

There's still support being migrated from platform code to DT, which
requires three steps:
  1. New DT-aware driver support,
  2. DT update to use the new driver support,
  3. Clean up platform code after optional DTB backwards compatibility
     grace period,
To make matters worse, 1 may conflict with the existing platform code,
and 2 must sometimes not be done before 1. Hence you may need three kernel
releases.
So we're already planning now what to clean up for v4.15 ;-)

Would it be acceptable to do step 2 in the same release, after the driver
support has entered in -rc1? I know this is more than just replacing
numbers by symbolic values.
Part of why we encouraged a more stretched-out approach in your case
was that we used to get quite a few dependent branches for Renesas
platforms, and when there were things to fixup, a lot of respins and
churn. So we asked to move a little slower to avoid DoS:ing ourselves.

As far as the above process goes: 1+2 is exactly what we're
encouraging others to do. The main discussion point here is when
there's substantial shared dt-includes between driver and the DTS
contents. Most of the time, for most drivers, that's usually not the
case. As Arnd suggested, it might be helpful to have specific examples
to discuss here.


-Olof
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help