[Gta04-owner] Updates for gta04 DTS file.

Dr. H. Nikolaus Schaller hns at goldelico.com
Tue Jan 6 21:28:28 CET 2015


Hi,

Am 06.01.2015 um 20:54 schrieb NeilBrown <neilb at suse.de>:

> On Mon, 5 Jan 2015 23:02:32 +0100 "Dr. H. Nikolaus Schaller"
> <hns at goldelico.com> wrote:
> 
>> Hi,
>> 
>> Am 05.01.2015 um 21:01 schrieb NeilBrown <neilb at suse.de>:
>> 
>>> On Sun, 4 Jan 2015 12:23:38 +0100 "Dr. H. Nikolaus Schaller"
>>> <hns at goldelico.com> wrote:
>>> 
>>>> Hi Neil,
>>>> 
>>>> Am 03.01.2015 um 20:27 schrieb NeilBrown <neilb at suse.de>:
>>>> 
>>>>> 
>>>>> Hi Marek, Nikolaus,
>>>>> 
>>>>> I'm wondering what your plans are for pushing more updates for the gta04 dts
>>>>> file upstream?
>>>> 
>>>> The plan: as fast as we can with our small team. Rome wasn’t built in a day :)
>>> 
>>> Understood.  So I would like to help build Rome and am trying to find the
>>> easiest way to collaborate on this.
>> 
>> That is welcome.
>> 
>>> 
>>>> 
>>>>> There are quite a few fixes that both of us have in our
>>>>> different trees and I'm hoping they can go upstream soon.
>>>> 
>>>> Well, we could think about having one tree to avoid this situation...
>>> 
>>> We have one tree - Linus maintains it for us.  
>> 
>> No, I see three trees:
>> * Linus'
>> * yours
>> * gta04-kernel
>> 
>> which are not in sync and both, the second and third, are almost independently developed and
>> have the goal to get merged into Linus'. The question is how (by which collaboration model) things
>> are synced.
> 
> There is a well established model.  Patches go from developer to maintainer to
> Linus (possibly though intermediate maintainers).
> 
>> 
>> At the moment I think they are synced through Linus. I.e. the one who is faster in submitting and
>> convincing Linus (and his submaintainers) wins. And the second one was waste of energy (because
>> there was no discussion during development - just about the results).
> 
> Duplicated effort does not equate to wasted effort.  If two people work on
> one thing then in the end, two people understand it.  That is better (for the
> community) than only one.  Please be assured that if you get something
> upstream which means that something I was working on is no longer needed, I
> will not feel that my work has been wasted.  I will be happy that upstream
> has improved.
> 
> Where do you suppose this “discussion during development" might happen?  

here on this list.

> As
> I've said before I think the best place for discussion is on the lists
> relevant to the specific subsystem. e.g. linux-mmc for mmc related things.

But do they know the GTA04 and what the GTA04 users want?

> I try to remember to CC things here, but really there just aren't that many
> kernel developers on this list, and we seem to be interested in quite
> separate parts  of the kernel.
> 
> Certainly we could discuss changes to the dts file...
> 
> On that topic, I had a look through some of your changes.  I note that you
> tried to add pinctrl settings for the hdq pin:
> 
>        hdq_pins: hdq_pins {
>                pinctrl-single,pins = <
>                        OMAP3_CORE1_IOPAD(0x21c4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* i2c3_sda.hdq */
>> ;
>        };
> 
> but that it didn't work.
> I think the problem is that "0x21c4" should be "0x21c6".
> 0x21c4, bits 0-15 is i2c3_sda and gpio_185.
> 0x21c4, bits 16-31 is hdq_sio, various others, and gpio_170.
> To get the top two bytes you add 2, so 0x21c6.

Yes, that is a common pitfall and I remember there is even one in linus/master.
But since it is not GTA04 related (but OMAP5) I have not mentioned.

> 
> Also, 
> commit 4807b3a4b338c7d59fff61c0b75cace5d411f236
> Author: H. Nikolaus Schaller <hns at goldelico.com>
> Date:   Wed Oct 29 22:21:21 2014 +0100
> 
>    GTA04 DT: set default brightness of PWM backlight to 80%
> 
>                brightness-levels = <0 11 20 30 40 50 60 70 80 90 100>;
> -               default-brightness-level = <10>;
> +               default-brightness-level = <80>;
> 
> This is wrong.  The "brightness-levels" map an index (0-10 in this case) to
> percent duty cycle.
> The default-brightness-level is an index into the array of brightness-levels,
> so 10 is the maximum value.

Ok. So maybe I misunderstood the word “-level”. It should be “-index”…

> 
> 
>> 
>> Is such a competition approach efficient? Is this producing good solutions? I don’t know myself
>> and would be interested in opinions of other gta04-owners how they would like to see the gta04
>> kernel development been done: competitive or cooperatively?
> 
> I don't see our work as competitive.
> I agree that it isn't particularly cooperative.  Partly that is because I
> don't like the way you manage your kernel tree, and you don't want to
> change.  Partly it is because we seem to be interested in quite different
> specifics.
> 
> To be honest, I'm quite happy working by myself.  I do what I can and then
> present it to the upstream maintainer and any interested parties.  I
> incorporate responses and hopefully ultimately get things included upstream.
> 
> If I find that there is someone else working in a similar area to me I would
> certainly discuss issues with them, but for the most part that doesn't
> happen.  I occasionally post here about what I have been working on in case
> someone else is interested.  I hope others who might be working on code might
> also post in case I or others are interested.
> 
> 
>> 
>> 
>>> As soon as patches land there
>>> they are equally available to everyone.
>> 
>> which is too late for doing coordinated work upfront to shape what is being upstreamed…
>> 
>> I mean: we (the gta04 users and project) should have only one tree where we
>> develop things until they are mature to hand them over to Linus for maintaining.
> 
> Why?
> 
> I think we are working on different projects, you and I.
> 
> My project it “make the mainline kernel work on the GTA04".

>  This means
> working with various parts of the kernel community to improve functionality
> of mainline linux so that functionality is available to the GTA04.  It is
> very important to have the discussion in the broader forums as that more
> perspective and more expertise is available and so more general and well
> rounded results can be obtained.
> 
> Your project seems to be “create a kernel that works well on the GTA04".

Using your formulations I would say the goal is

“make the mainline kernel work well on the GTA04”

> That leads you to think that the GTA04 community should be doing something.
> To me that is a very small vision.  I'd rather think "the Linux kernel
> community should be doing something”.

Yes, sure. But they neither own a GTA04 nor can test anything. And sitting there
and waiting that “the Linux kernel community” is doing something is also wrong.

BTW: I understand myself also as a member of “the Linux kernel community”

> To be honest, "we" the "gta04 project" have no hope at all of producing
> something mature and ready to hand over to Linus.  We just don't have the
> skills and the experience.  

Yes.

> We *need* to regularly interact with relevant
> parts of the broader community - to see ourselves as simply a part of that
> community and not something separate - to have any hope of producing anything
> “mature".

That is not excluded and I have had many discussions with Tomi Valkainen to
fix issues with the display subsystem.

So this all is not excluded by the development model or the gta04-kernel project.

> 
> 
>> 
>>> 
>>> 
>>>> 
>>>>> 
>>>>> I have the following 11 patches which I could send upstream with your
>>>>> Acked-by, or which I could send you to be forwarded to Tony, or which could
>>>>> simply become irrelevant if you'll be sending your own patches upstream soon.
>>>> 
>>>> Marek as the DT maintainer should send them to lkml adding his ack and proper
>>>> attribution of the original author(s).
>>> 
>>> OK, I'll send him the patches, though as your small team is apparently short
>>> of time it might be easier for him to just Ack the patches and then I can
>>> send them upstream - there is  plenty of precedent for maintainers not
>>> actually handing the patches, just Acking them.
>> 
>> Acking is the critical piece of work. Not formatting and sending patches. So your offer
>> does not reduce significant work.
> 
> I'm offering to do all the non-critical bits so that you have time to focus
> on that critical stuff.
> 
>> 
>> I understand your urgency but please give us time to do the quality checks your work
>> deserves.
>> 
>>> 
>>>> 
>>>>> 
>>>>> I've included the list of patch titles and the combined diff below.  The
>>>>> individual patches are in
>>>>> git://neil.brown.name/gta04 dts
>>>>> or at
>>>>> http://git.neil.brown.name/?p=gta04.git;a=shortlog;h=refs/heads/dts
>>>>> 
>>>>> or I am happy to post them here.
>>>> 
>>>> So if easily possible please (re)format them as a patch-set against
>>>> 
>>>> http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/3.19-rc2
>>>> 
>>>> and submit here.
>>> 
>>> That doesn't make any sense.  Patches against your tree would not apply
>>> upstream,
>> 
>> Why not? We are based on top of upstream. Just some patches ahead. The 3-way
>> git merge should resolve them.
> 
> "should" != "does".
> 
> I just tried.

Ok, we might be too far away in this case. One obvious reason appears to be reordering
of DT nodes within the file.

> 
> If you were "based on top of upstream", then
>  git log --follow v3.19-rc2.. arch/arm/boot/dts/omap3-gta04.dtsi
> 
> would show my just the changes you have made to that file against upstream.
> It doesn't.  It also shows lots of things that are already upstream.  It
> is very hard to see which of the ...
> 
> $ git log --follow --oneline  v3.19-rc2.. arch/arm/boot/dts/omap3-gta04.dtsi | wc -l
> 100
> 
> 100 patches listed are still relevant and which have gone upstream and which
> have been replaced by subsequent patches and ….

Do a

git diff linus/master 3.19-rc3 — arch/arm/boot/dts/omap3-gta04.dtsi

It shows what differences there are to be upstreamed. Then one can browse through
them and make a nice clean patch.

For example I see the RFID EEPROM. It should be easy to find the patch(es) that
introduced it to the gta04-kernel tree and reformat it to a single patch with 5 lines
to get it upstream. This will trigger discussion with kernel maintainers.

On some future merge with linus/master it will no longer appear in the diff. No work left over.

The problem is that you appear to think in “patches” while I think in “results” (i.e.
flat files in a tree).

Another approach could be to checkout the linus/master version and commit.
This would be a “set back to mainline”. And then copy&paste each of the original
diffs and commit with a nice message. Then you have your “clean patches”.

This is how the “cleanup” process could work. Without breaking the linus/master
repo and the gta04-kernel history. And it can be done if someone wants to spend
the time to do it.

> 
> 
>> 
>>> so Marek would not be able to send them upstream without
>>> re-formatting them to apply to upstream.  So it would be a waste of
>>> everyone's time.
>> 
>> But how do you expect that we test the patches? Just from looking at them?
> 
> That is up to the maintainer.  Sometimes a visual inspection is all that is
> required and all that is possible.
> 
> Generally a maintainer will have a tree in which they put patches that are
> ready to go upstream.  Some maintainers will have several for different
> levels of readiness.
> This (or one of these) will normally be automatically included in linux-next
> where it gets some basic integration (compile) testing.
> The maintainer will normally test this tree before upstream submission, and
> will expect developers to develop against this tree.
> So for example my mmc patches are against the 'next' branch of 
>   git://git.linaro.org/people/ulf.hansson/mmc
> 
> which makes it easy for Ulf to apply and test them.
> 
> If Marek had such a tree I would certainly provide patches against that and
> he would be able to test them.
> Testing against a tree that differs significantly from mainline is
> something that Linus has very explicitly said he doesn't like.  To some
> extent we have to do that with the GTA04 as so much doesn't work, but it is
> best to keep it to a minimum.
> 
> I think we are that the stage were you can boot a mainline kernel on the
> GTA04, providing you have a serial console attached. So it would be possible
> to test against a plain upstream kernel before submission.
> 
> But as I said, it is really up to the maintainer.  Different circumstances
> suggest different compromises.

Exactly. This is why I compromised on the “cleanness” of patches in the gta04-kernel
project. Because the benefits in my view of doing the cleanup just before upstreaming
outweight the benefits of having clean patches only.

BTW: initially I tried to work this way - but failed. It did not run smoothly for me. Maybe
I did not understand some git commands completely.

BR,
Nikolaus

> 
> Thanks,
> NeilBrown
> 
> 
>> 
>>> 
>>> 
>>>> 
>>>>> 
>>>>> Please let me know how you would like to proceed.
>>>> 
>>>> Marek will go through them and check if anything is missing/problematic and we
>>>> will discuss here (if necessary). Finally he submits it upstream and we all will see
>>>> what we get as a response.
>>>> 
>>>> I have only one diff in doubt (without cross-checking with code): the patch for mmc2
>>>> appears to assume driver-features that are not yet in mainline. Or are these new
>>>> features of 3.19-rc2?
>>> 
>>> I assume you are referring to the declaration of a second interrupt line
>>> and the pinctrl settings?  This enables the SDIO card to interrupt the CPU.
>>> 
>>> Support for this went upstream in v3.17:
>>> 
>>> commit 2cd3a2a54656f9c480b1c7272fc07635d575841b
>>> Author: Andreas Fenkart <afenkart at gmail.com>
>>> Date:   Thu May 29 10:28:00 2014 +0200
>>> 
>>>   mmc: omap_hsmmc: Enable SDIO interrupt
>> 
>> Ah, thanks. We have not noticed this nice sdio feature. There are so many changes in
>> upstream hidden in tons of commit messages so that you don’t find all the gold nuggets…
>> 
>>> 
>>> 
>>> 
>>>> 
>>>> What we have learned is that the policy by Tony (and others) is that they reject
>>>> DT patches where the driver is not yet capable of using the attributes (and they
>>>> expect a bindings document as well).
>>> 
>>> Of course.  I kept back all the patches which use features that aren't
>>> upstream yet.
>>> 
>>> Thanks,
>>> NeilBrown
>> 
>> BR,
>> Nikolaus
> 



More information about the Gta04-owner mailing list