[U-Boot] [PATCH] pmic: Fix pfuze100 bit definitions

Marek Vasut marex at denx.de
Thu Nov 26 17:21:30 CET 2015


On Thursday, November 26, 2015 at 05:13:55 PM, Przemyslaw Marczak wrote:
> Hello Marek,

Hi,

> On 11/26/2015 04:39 PM, Marek Vasut wrote:
> > On Thursday, November 26, 2015 at 03:35:26 PM, Przemyslaw Marczak wrote:
> >> Hello Marek,
> > 
> > Hi,
> > 
> >> On 11/26/2015 02:08 PM, Marek Vasut wrote:
> >>> On Thursday, November 26, 2015 at 01:21:36 PM, Przemyslaw Marczak wrote:
> >>>> Hello Marek,
> >>> 
> >>> Hi,
> >>> 
> >>>> On 11/26/2015 12:15 AM, Marek Vasut wrote:
> >>>>> The following patch changed the PFUZE100 swbst register bit
> >>>>> definitions and broke PMIC configuration on multiple boards, at
> >>>>> least on the novena and gw_ventana. This patch fixes it.
> >>>> 
> >>>> Ok we missed this in the review. But as I can see it broken only the
> >>>> two boards, you mentioned.
> >>>> 
> >>>>> commit 8fa46350a4c7dca7710362f6c871098557b934ad
> >>>>> Author: Peng Fan <Peng.Fan at freescale.com>
> >>>>> Date:   Fri Aug 7 16:43:45 2015 +0800
> >>>>> 
> >>>>>        power: regulator: add pfuze100 support
> >>>>> 
> >>>>> Signed-off-by: Marek Vasut <marex at denx.de>
> >>>>> Cc: Fabio Estevam <fabio.estevam at freescale.com>
> >>>>> Cc: Peng Fan <Peng.Fan at freescale.com>
> >>>>> Cc: Przemyslaw Marczak <p.marczak at samsung.com>
> >>>>> Cc: Tim Harvey <tharvey at gateworks.com>
> >>>>> Cc: Vagrant Cascadian <vagrant at aikidev.net>
> >>>>> ---
> >>>>> 
> >>>>>     include/power/pfuze100_pmic.h | 8 ++++----
> >>>>>     1 file changed, 4 insertions(+), 4 deletions(-)
> >>>>> 
> >>>>> diff --git a/include/power/pfuze100_pmic.h
> >>>>> b/include/power/pfuze100_pmic.h index 41cb710..cc019a9 100644
> >>>>> --- a/include/power/pfuze100_pmic.h
> >>>>> +++ b/include/power/pfuze100_pmic.h
> >>>>> @@ -215,10 +215,10 @@ enum {
> >>>>> 
> >>>>>     #define SWBST_VOL_MASK	0x3
> >>>>>     #define SWBST_MODE_MASK	0xC
> >>>>>     #define SWBST_MODE_SHIFT 0x2
> >>>>> 
> >>>>> -#define SWBST_MODE_OFF	0
> >>>>> -#define SWBST_MODE_PFM	1
> >>>>> -#define SWBST_MODE_AUTO	2
> >>>>> -#define SWBST_MODE_APS	3
> >>>>> +#define SWBST_MODE_OFF	(0 << 2)
> >>>>> +#define SWBST_MODE_PFM	(1 << 2)
> >>>>> +#define SWBST_MODE_AUTO	(2 << 2)
> >>>>> +#define SWBST_MODE_APS	(3 << 2)
> >>>>> 
> >>>>>     /*
> >>>>>     
> >>>>>      * Regulator Mode Control
> >>>> 
> >>>> The intentions are good, but this patch fixes one thing and breaks the
> >>>> another one, I would prefer avoid this.
> >>>> 
> >>>> 'git grep -n SWBST_MODE'
> >>>> 
> >>>> As I can see, you can fix the issue for multiple boards by update only
> >>>> two lines in those two boards, which you mentioned.
> >>>> 
> >>>> So why you moving back those definitions, since they are now used in
> >>>> more places?
> >>>> 
> >>>> The line suggested by Peng is good enough to call it 'fix' for your
> >>>> boards:
> >>>> 
> >>>> (SWBST_MODE_AUTO << SWBST_MODE_SHIFT)
> >>> 
> >>> OK, so instead of fixing the patch which introduced a bug, we're
> >>> supposed to be fixing the fallout from that. I cannot say I'm very
> >>> happy with this sort of handling of a bug and with the testing this
> >>> particular change received.
> >> 
> >> You are right, the mentioned patch breaks your boards, and we missed
> >> this in the review as I mentioned - sorry for that.
> >> 
> >> But for now, there is also other code based on those definitions, so you
> >> can not just revert only this particular change and ignore the rest -
> >> because it breaks the new code? Should we all work in this way?
> > 
> > This is even worse then -- the patch adds code which uses the changed
> > macros, but doesn't fix the existing users. This should not happen again
> > and it'd be very nice if the author actually checked when digging in
> > /include and changing some macros there if this might affect someone.
> 
> Ok, but as you could check in this example, even recompile all boards
> with such kind of 'new patch' - will not tell you what is wrong, because
> it doesn't break the build...

Yeah

> >> As a custodian I'm not able to test everything, especially when I don't
> >> have the hardware for it. Moreover I trust people who are working for
> >> this project and I can imagine that they test the code.
> > 
> > I don't expect you to test anything in this case, other but possibly
> > compile testing the stuff, don't get me wrong.
> > 
> >>> Besides, seeing how this patch already needed another patch to make it
> >>> complete and how it now needs more patches to fix the boards which it
> >>> broke, I am really disappointed.
> >> 
> >> I can't understand what is the problem. You send new patch with two
> >> simple lines - it fixes your issue and doesn't break the existing PMIC
> >> driver. I think, this is what we need here.
> > 
> > I did that. And unfortunatelly, it turns out we have really no other
> > option now, than to fix the boards. Sigh ...
> 
> But isn't this also an important part of our job?
> 
> I don't know why we discuss about this...
> 
> Found bug? Can fix?
> Then send a patch and don't blame the people for a bugs - it's natural.

I already did that, but it seems to be about time to re-state that if you
dig in /include, then you should check thoroughly if your change cannot
have some sort of side-effects.

> Don't cry if got a comments - this is the Open Source project:)

Please, educate me more on this topic :)

> I hope you don't get me wrong.

DTTO.

> Have a nice weekend! - I'm starting it right now:)

You as well, cheers!


More information about the U-Boot mailing list