diff mbox

[U-Boot] pmic: Fix pfuze100 bit definitions

Message ID 1448493344-6336-1-git-send-email-marex@denx.de
State Rejected
Delegated to: Przemyslaw Marczak
Headers show

Commit Message

Marek Vasut Nov. 25, 2015, 11:15 p.m. UTC
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.

commit 8fa46350a4c7dca7710362f6c871098557b934ad
Author: Peng Fan <Peng.Fan@freescale.com>
Date:   Fri Aug 7 16:43:45 2015 +0800

    power: regulator: add pfuze100 support

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Peng Fan <Peng.Fan@freescale.com>
Cc: Przemyslaw Marczak <p.marczak@samsung.com>
Cc: Tim Harvey <tharvey@gateworks.com>
Cc: Vagrant Cascadian <vagrant@aikidev.net>
---
 include/power/pfuze100_pmic.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Vagrant Cascadian Nov. 25, 2015, 11:54 p.m. UTC | #1
On 2015-11-25, 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.
>
> commit 8fa46350a4c7dca7710362f6c871098557b934ad
> Author: Peng Fan <Peng.Fan@freescale.com>
> Date:   Fri Aug 7 16:43:45 2015 +0800
>
>     power: regulator: add pfuze100 support
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Peng Fan <Peng.Fan@freescale.com>
> Cc: Przemyslaw Marczak <p.marczak@samsung.com>
> Cc: Tim Harvey <tharvey@gateworks.com>
> Cc: Vagrant Cascadian <vagrant@aikidev.net>
> ---
>  include/power/pfuze100_pmic.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Tested on a Novena PVT2-A, fixes USB support.

Tested-by: Vagrant Cascadian <vagrant@aikidev.net>

live well,
  vagrant

> 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
> -- 
> 2.6.2
Peng Fan Nov. 26, 2015, 1:27 a.m. UTC | #2
Hi Marek,
On Thu, Nov 26, 2015 at 12:15:44AM +0100, 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.
>
>commit 8fa46350a4c7dca7710362f6c871098557b934ad
>Author: Peng Fan <Peng.Fan@freescale.com>
>Date:   Fri Aug 7 16:43:45 2015 +0800
>
>    power: regulator: add pfuze100 support
>
>Signed-off-by: Marek Vasut <marex@denx.de>
>Cc: Fabio Estevam <fabio.estevam@freescale.com>
>Cc: Peng Fan <Peng.Fan@freescale.com>
>Cc: Przemyslaw Marczak <p.marczak@samsung.com>
>Cc: Tim Harvey <tharvey@gateworks.com>
>Cc: Vagrant Cascadian <vagrant@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)

Can we use "(SWBST_MODE_AUTO << SWBST_MODE_SHIFT)" in the board code,
but not revert this?

Thanks,
Peng.
> 
> /*
>  * Regulator Mode Control
>-- 
>2.6.2
>
Marek Vasut Nov. 26, 2015, 1:35 a.m. UTC | #3
On Thursday, November 26, 2015 at 02:27:01 AM, Peng Fan wrote:
> Hi Marek,
> 
> On Thu, Nov 26, 2015 at 12:15:44AM +0100, 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.
> >
> >commit 8fa46350a4c7dca7710362f6c871098557b934ad
> >Author: Peng Fan <Peng.Fan@freescale.com>
> >Date:   Fri Aug 7 16:43:45 2015 +0800
> >
> >    power: regulator: add pfuze100 support
> >
> >Signed-off-by: Marek Vasut <marex@denx.de>
> >Cc: Fabio Estevam <fabio.estevam@freescale.com>
> >Cc: Peng Fan <Peng.Fan@freescale.com>
> >Cc: Przemyslaw Marczak <p.marczak@samsung.com>
> >Cc: Tim Harvey <tharvey@gateworks.com>
> >Cc: Vagrant Cascadian <vagrant@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)
> 
> Can we use "(SWBST_MODE_AUTO << SWBST_MODE_SHIFT)" in the board code,
> but not revert this?

I undid the breakage introduced by the aforementioned patch. If you want to 
update all the boards which use these macros and then drop the bitshift, patch
is welcome, but that's beyond the scope of this fix.

Best regards,
Marek Vasut
Peng Fan Nov. 26, 2015, 1:46 a.m. UTC | #4
On Thu, Nov 26, 2015 at 02:35:28AM +0100, Marek Vasut wrote:
>On Thursday, November 26, 2015 at 02:27:01 AM, Peng Fan wrote:
>> Hi Marek,
>> 
>> On Thu, Nov 26, 2015 at 12:15:44AM +0100, 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.
>> >
>> >commit 8fa46350a4c7dca7710362f6c871098557b934ad
>> >Author: Peng Fan <Peng.Fan@freescale.com>
>> >Date:   Fri Aug 7 16:43:45 2015 +0800
>> >
>> >    power: regulator: add pfuze100 support
>> >
>> >Signed-off-by: Marek Vasut <marex@denx.de>
>> >Cc: Fabio Estevam <fabio.estevam@freescale.com>
>> >Cc: Peng Fan <Peng.Fan@freescale.com>
>> >Cc: Przemyslaw Marczak <p.marczak@samsung.com>
>> >Cc: Tim Harvey <tharvey@gateworks.com>
>> >Cc: Vagrant Cascadian <vagrant@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)
>> 
>> Can we use "(SWBST_MODE_AUTO << SWBST_MODE_SHIFT)" in the board code,
>> but not revert this?
>
>I undid the breakage introduced by the aforementioned patch. If you want to 
>update all the boards which use these macros and then drop the bitshift, patch
>is welcome, but that's beyond the scope of this fix.

Hmm. My original patch is that bit shift not included into "mode", the user need
to do bitshift by itself. I'll check the pfuze100_regulator driver.

If "mode" needs to include the bit shift, then patch is ok and 
Reviewed-by: Peng Fan <Peng.Fan@freescale.com>

Regards,
Peng.

>
>Best regards,
>Marek Vasut
Przemyslaw Marczak Nov. 26, 2015, 12:21 p.m. UTC | #5
Hello Marek,

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@freescale.com>
> Date:   Fri Aug 7 16:43:45 2015 +0800
>
>      power: regulator: add pfuze100 support
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> Cc: Peng Fan <Peng.Fan@freescale.com>
> Cc: Przemyslaw Marczak <p.marczak@samsung.com>
> Cc: Tim Harvey <tharvey@gateworks.com>
> Cc: Vagrant Cascadian <vagrant@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)

Best regards,
Marek Vasut Nov. 26, 2015, 1:08 p.m. UTC | #6
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@freescale.com>
> > Date:   Fri Aug 7 16:43:45 2015 +0800
> > 
> >      power: regulator: add pfuze100 support
> > 
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Fabio Estevam <fabio.estevam@freescale.com>
> > Cc: Peng Fan <Peng.Fan@freescale.com>
> > Cc: Przemyslaw Marczak <p.marczak@samsung.com>
> > Cc: Tim Harvey <tharvey@gateworks.com>
> > Cc: Vagrant Cascadian <vagrant@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.

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.

Best regards,
Marek Vasut
Przemyslaw Marczak Nov. 26, 2015, 2:35 p.m. UTC | #7
Hello Marek,

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@freescale.com>
>>> Date:   Fri Aug 7 16:43:45 2015 +0800
>>>
>>>       power: regulator: add pfuze100 support
>>>
>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>> Cc: Fabio Estevam <fabio.estevam@freescale.com>
>>> Cc: Peng Fan <Peng.Fan@freescale.com>
>>> Cc: Przemyslaw Marczak <p.marczak@samsung.com>
>>> Cc: Tim Harvey <tharvey@gateworks.com>
>>> Cc: Vagrant Cascadian <vagrant@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?

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.

> 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.

>
> Best regards,
> Marek Vasut
>
>

Best regards,
Marek Vasut Nov. 26, 2015, 3:39 p.m. UTC | #8
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@freescale.com>
> >>> Date:   Fri Aug 7 16:43:45 2015 +0800
> >>> 
> >>>       power: regulator: add pfuze100 support
> >>> 
> >>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> >>> Cc: Peng Fan <Peng.Fan@freescale.com>
> >>> Cc: Przemyslaw Marczak <p.marczak@samsung.com>
> >>> Cc: Tim Harvey <tharvey@gateworks.com>
> >>> Cc: Vagrant Cascadian <vagrant@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.

> 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 ...
Przemyslaw Marczak Nov. 26, 2015, 4:13 p.m. UTC | #9
Hello Marek,

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@freescale.com>
>>>>> Date:   Fri Aug 7 16:43:45 2015 +0800
>>>>>
>>>>>        power: regulator: add pfuze100 support
>>>>>
>>>>> Signed-off-by: Marek Vasut <marex@denx.de>
>>>>> Cc: Fabio Estevam <fabio.estevam@freescale.com>
>>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
>>>>> Cc: Przemyslaw Marczak <p.marczak@samsung.com>
>>>>> Cc: Tim Harvey <tharvey@gateworks.com>
>>>>> Cc: Vagrant Cascadian <vagrant@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...

>> 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.
Don't cry if got a comments - this is the Open Source project:)

I hope you don't get me wrong.

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

Best regards,
Marek Vasut Nov. 26, 2015, 4:21 p.m. UTC | #10
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@freescale.com>
> >>>>> Date:   Fri Aug 7 16:43:45 2015 +0800
> >>>>> 
> >>>>>        power: regulator: add pfuze100 support
> >>>>> 
> >>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> >>>>> Cc: Fabio Estevam <fabio.estevam@freescale.com>
> >>>>> Cc: Peng Fan <Peng.Fan@freescale.com>
> >>>>> Cc: Przemyslaw Marczak <p.marczak@samsung.com>
> >>>>> Cc: Tim Harvey <tharvey@gateworks.com>
> >>>>> Cc: Vagrant Cascadian <vagrant@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!
diff mbox

Patch

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