Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Vivien Didelot
Hi Egil,

Egil Hjelmeland  writes:

>> It is indeed out of scope. You may want to add a first commit "net: dsa:
>> lan9303: introduce LAN9303_NUM_PORTS" for instance.
>
> In a later series I assume? Or is allowed to add patches to a series
> under review?

If it makes sense to include this first limit patch in this series under
review, you can totally add it. A simple "Changes in v2: - add
LAN9303_NUM_PORTS" list in the cover letter will do the job.


Thanks,

Vivien


Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Egil Hjelmeland

On 31. juli 2017 17:01, Vivien Didelot wrote:

Hi Egil,

Egil Hjelmeland  writes:


Would doing

-   chip->ds = dsa_switch_alloc(chip->dev, DSA_MAX_PORTS);
+   chip->ds = dsa_switch_alloc(chip->dev, LAN9303_NUM_PORTS);

at the same time be good, or breaking the scope of the patch?


It is indeed out of scope. You may want to add a first commit "net: dsa:
lan9303: introduce LAN9303_NUM_PORTS" for instance.



In a later series I assume? Or is allowed to add patches to a series
under review?




Thanks,

 Vivien



Egil


Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Vivien Didelot
Hi Egil,

Egil Hjelmeland  writes:

> Would doing
>
> - chip->ds = dsa_switch_alloc(chip->dev, DSA_MAX_PORTS);
> + chip->ds = dsa_switch_alloc(chip->dev, LAN9303_NUM_PORTS);
>
> at the same time be good, or breaking the scope of the patch?

It is indeed out of scope. You may want to add a first commit "net: dsa:
lan9303: introduce LAN9303_NUM_PORTS" for instance.


Thanks,

Vivien


Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Egil Hjelmeland

On 31. juli 2017 16:43, Vivien Didelot wrote:

Hi Egil,

Egil Hjelmeland  writes:


+   for (p = 0; p <= 2; p++) {


Exclusive limits are often prefer, i.e. 'p < 3'.


OK, that can be nice when I later introduce LAN9303_NUM_PORTS = 3.


This is indeed another reason what exclusive limits are prefered ;-)


+   int ret;
+
+   ret = lan9303_disable_packet_processing(chip, p);
+   if (ret)
+   return ret;


When any non-zero return code means an error, we usually see 'err'
instead of 'ret'.



But 'ret' is used throughout the rest of the file. Is it not better to
be locally consistent?


You are correct, I was missing a bit of context here.


case 1:
-   return lan9303_enable_packet_processing(chip, port);


Is this deletion intentional? The commit message does not explain this.

When possible, it is appreciated to separate functional from
non-functional changes. For example one commit adding the loop in
lan9303_disable_processing and another one to not enable/disable packet
processing on port 1.



Case fall through, the change is purely non-functional.

You are perhaps thinking of the patch in my first series where I removed
disable of port 0. I have put that on hold. Juergen says that the
mainline driver works out of the box for him. So I will investigate
that problem bit more.


Correct! I misread, my bad. This is indeed cleaner with this patch. With
the LAN9303_NUM_PORTS limit and detailed commit message, the patch LGTM.


Thanks,

 Vivien



Would doing

-   chip->ds = dsa_switch_alloc(chip->dev, DSA_MAX_PORTS);
+   chip->ds = dsa_switch_alloc(chip->dev, LAN9303_NUM_PORTS);

at the same time be good, or breaking the scope of the patch?

Egil








Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Andrew Lunn
> >Reviewed-by: Andrew Lunn 
> >
> > Andrew
> >
> 
> Hi Andrew
> 
> This time I took the extra effort to split my  original patch...
> 
> Your lan9303_write_switch_port suggestion (in previous reply) is fine.
> And I can improve the coverletter.
> 
> So I will do a v2 of the patch. But what is your advice:
> Should I squash the patch?

I already gave my Reviewed-by:, meaning i don't really care. Merged or
squashed is a minor point in this case.

 Andrew


Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Vivien Didelot
Hi Egil,

Egil Hjelmeland  writes:

>>> +   for (p = 0; p <= 2; p++) {
>> 
>> Exclusive limits are often prefer, i.e. 'p < 3'.
>> 
> OK, that can be nice when I later introduce LAN9303_NUM_PORTS = 3.

This is indeed another reason what exclusive limits are prefered ;-)

>>> +   int ret;
>>> +
>>> +   ret = lan9303_disable_packet_processing(chip, p);
>>> +   if (ret)
>>> +   return ret;
>> 
>> When any non-zero return code means an error, we usually see 'err'
>> instead of 'ret'.
>> 
>
> But 'ret' is used throughout the rest of the file. Is it not better to
> be locally consistent?

You are correct, I was missing a bit of context here.

>>> case 1:
>>> -   return lan9303_enable_packet_processing(chip, port);
>> 
>> Is this deletion intentional? The commit message does not explain this.
>> 
>> When possible, it is appreciated to separate functional from
>> non-functional changes. For example one commit adding the loop in
>> lan9303_disable_processing and another one to not enable/disable packet
>> processing on port 1.
>> 
>
> Case fall through, the change is purely non-functional.
>
> You are perhaps thinking of the patch in my first series where I removed
> disable of port 0. I have put that on hold. Juergen says that the
> mainline driver works out of the box for him. So I will investigate
> that problem bit more.

Correct! I misread, my bad. This is indeed cleaner with this patch. With
the LAN9303_NUM_PORTS limit and detailed commit message, the patch LGTM.


Thanks,

Vivien


Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Egil Hjelmeland

On 31. juli 2017 16:00, Vivien Didelot wrote:

Hi Egil,

A few nitpicks below for lan9303_disable_processing.

Egil Hjelmeland  writes:


  static int lan9303_disable_processing(struct lan9303 *chip)
  {
-   int ret;
+   int p;
  
-	ret = lan9303_disable_packet_processing(chip, 0);

-   if (ret)
-   return ret;
-   ret = lan9303_disable_packet_processing(chip, 1);
-   if (ret)
-   return ret;
-   return lan9303_disable_packet_processing(chip, 2);
+   for (p = 0; p <= 2; p++) {


Exclusive limits are often prefer, i.e. 'p < 3'.


OK, that can be nice when I later introduce LAN9303_NUM_PORTS = 3.


+   int ret;
+
+   ret = lan9303_disable_packet_processing(chip, p);
+   if (ret)
+   return ret;


When any non-zero return code means an error, we usually see 'err'
instead of 'ret'.



But 'ret' is used throughout the rest of the file. Is it not better to
be locally consistent?


+   }


blank line before return statments are appreciated.


OK


+   return 0;
  }
  
  static int lan9303_check_device(struct lan9303 *chip)

@@ -760,7 +761,6 @@ static int lan9303_port_enable(struct dsa_switch *ds, int 
port,
/* enable internal packet processing */
switch (port) {
case 1:
-   return lan9303_enable_packet_processing(chip, port);


Is this deletion intentional? The commit message does not explain this.

When possible, it is appreciated to separate functional from
non-functional changes. For example one commit adding the loop in
lan9303_disable_processing and another one to not enable/disable packet
processing on port 1.



Case fall through, the change is purely non-functional.

You are perhaps thinking of the patch in my first series where I removed
disable of port 0. I have put that on hold. Juergen says that the
mainline driver works out of the box for him. So I will investigate
that problem bit more.



case 2:
return lan9303_enable_packet_processing(chip, port);
default:
@@ -779,13 +779,9 @@ static void lan9303_port_disable(struct dsa_switch *ds, 
int port,
/* disable internal packet processing */
switch (port) {
case 1:
-   lan9303_disable_packet_processing(chip, port);
-   lan9303_phy_write(ds, chip->phy_addr_sel_strap + 1,
- MII_BMCR, BMCR_PDOWN);
-   break;
case 2:
lan9303_disable_packet_processing(chip, port);
-   lan9303_phy_write(ds, chip->phy_addr_sel_strap + 2,
+   lan9303_phy_write(ds, chip->phy_addr_sel_strap + port,
  MII_BMCR, BMCR_PDOWN);
break;


Thanks,

 Vivien


Egil



Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Egil Hjelmeland

On 31. juli 2017 15:46, Andrew Lunn wrote:

On Mon, Jul 31, 2017 at 01:33:55PM +0200, Egil Hjelmeland wrote:

Simplify usage of lan9303_enable_packet_processing,
lan9303_disable_packet_processing()

Signed-off-by: Egil Hjelmeland 
---
  drivers/net/dsa/lan9303-core.c | 24 ++--
  1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c
index 4d2bb8144c15..705267a1d2ba 100644
--- a/drivers/net/dsa/lan9303-core.c
+++ b/drivers/net/dsa/lan9303-core.c
@@ -559,15 +559,16 @@ static int lan9303_handle_reset(struct lan9303 *chip)
  /* stop processing packets for all ports */
  static int lan9303_disable_processing(struct lan9303 *chip)
  {
-   int ret;
+   int p;
  
-	ret = lan9303_disable_packet_processing(chip, 0);

-   if (ret)
-   return ret;
-   ret = lan9303_disable_packet_processing(chip, 1);
-   if (ret)
-   return ret;
-   return lan9303_disable_packet_processing(chip, 2);
+   for (p = 0; p <= 2; p++) {
+   int ret;
+
+   ret = lan9303_disable_packet_processing(chip, p);
+   if (ret)
+   return ret;
+   }
+   return 0;
  }
  
  static int lan9303_check_device(struct lan9303 *chip)

@@ -760,7 +761,6 @@ static int lan9303_port_enable(struct dsa_switch *ds, int 
port,
/* enable internal packet processing */
switch (port) {
case 1:
-   return lan9303_enable_packet_processing(chip, port);
case 2:
return lan9303_enable_packet_processing(chip, port);
default:
@@ -779,13 +779,9 @@ static void lan9303_port_disable(struct dsa_switch *ds, 
int port,
/* disable internal packet processing */
switch (port) {
case 1:
-   lan9303_disable_packet_processing(chip, port);
-   lan9303_phy_write(ds, chip->phy_addr_sel_strap + 1,
- MII_BMCR, BMCR_PDOWN);
-   break;
case 2:
lan9303_disable_packet_processing(chip, port);
-   lan9303_phy_write(ds, chip->phy_addr_sel_strap + 2,
+   lan9303_phy_write(ds, chip->phy_addr_sel_strap + port,
  MII_BMCR, BMCR_PDOWN);
break;
default:


:-)

So maybe i would squash this part into the previous patch. You were
touching the functions anyway, and the change is obvious, so easy to
review.

But it is also O.K. this way. The cover note could of helped. You
could of said something like: "Changes made in the first patch allow
some simplifications to be made in the same code in the second patch.

Breaking changes up is hard, and you cannot please everybody, all the
time.

Reviewed-by: Andrew Lunn 

 Andrew



Hi Andrew

This time I took the extra effort to split my  original patch...

Your lan9303_write_switch_port suggestion (in previous reply) is fine.
And I can improve the coverletter.

So I will do a v2 of the patch. But what is your advice:
Should I squash the patch?

Egil



Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Vivien Didelot
Hi Egil,

A few nitpicks below for lan9303_disable_processing.

Egil Hjelmeland  writes:

>  static int lan9303_disable_processing(struct lan9303 *chip)
>  {
> - int ret;
> + int p;
>  
> - ret = lan9303_disable_packet_processing(chip, 0);
> - if (ret)
> - return ret;
> - ret = lan9303_disable_packet_processing(chip, 1);
> - if (ret)
> - return ret;
> - return lan9303_disable_packet_processing(chip, 2);
> + for (p = 0; p <= 2; p++) {

Exclusive limits are often prefer, i.e. 'p < 3'.

> + int ret;
> +
> + ret = lan9303_disable_packet_processing(chip, p);
> + if (ret)
> + return ret;

When any non-zero return code means an error, we usually see 'err'
instead of 'ret'.

> + }

blank line before return statments are appreciated.

> + return 0;
>  }
>  
>  static int lan9303_check_device(struct lan9303 *chip)
> @@ -760,7 +761,6 @@ static int lan9303_port_enable(struct dsa_switch *ds, int 
> port,
>   /* enable internal packet processing */
>   switch (port) {
>   case 1:
> - return lan9303_enable_packet_processing(chip, port);

Is this deletion intentional? The commit message does not explain this.

When possible, it is appreciated to separate functional from
non-functional changes. For example one commit adding the loop in
lan9303_disable_processing and another one to not enable/disable packet
processing on port 1.

>   case 2:
>   return lan9303_enable_packet_processing(chip, port);
>   default:
> @@ -779,13 +779,9 @@ static void lan9303_port_disable(struct dsa_switch *ds, 
> int port,
>   /* disable internal packet processing */
>   switch (port) {
>   case 1:
> - lan9303_disable_packet_processing(chip, port);
> - lan9303_phy_write(ds, chip->phy_addr_sel_strap + 1,
> -   MII_BMCR, BMCR_PDOWN);
> - break;
>   case 2:
>   lan9303_disable_packet_processing(chip, port);
> - lan9303_phy_write(ds, chip->phy_addr_sel_strap + 2,
> + lan9303_phy_write(ds, chip->phy_addr_sel_strap + port,
> MII_BMCR, BMCR_PDOWN);
>   break;

Thanks,

Vivien


Re: [PATCH net-next 2/2] net: dsa: lan9303: Simplify lan9303_xxx_packet_processing() usage

2017-07-31 Thread Andrew Lunn
On Mon, Jul 31, 2017 at 01:33:55PM +0200, Egil Hjelmeland wrote:
> Simplify usage of lan9303_enable_packet_processing,
> lan9303_disable_packet_processing()
> 
> Signed-off-by: Egil Hjelmeland 
> ---
>  drivers/net/dsa/lan9303-core.c | 24 ++--
>  1 file changed, 10 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c
> index 4d2bb8144c15..705267a1d2ba 100644
> --- a/drivers/net/dsa/lan9303-core.c
> +++ b/drivers/net/dsa/lan9303-core.c
> @@ -559,15 +559,16 @@ static int lan9303_handle_reset(struct lan9303 *chip)
>  /* stop processing packets for all ports */
>  static int lan9303_disable_processing(struct lan9303 *chip)
>  {
> - int ret;
> + int p;
>  
> - ret = lan9303_disable_packet_processing(chip, 0);
> - if (ret)
> - return ret;
> - ret = lan9303_disable_packet_processing(chip, 1);
> - if (ret)
> - return ret;
> - return lan9303_disable_packet_processing(chip, 2);
> + for (p = 0; p <= 2; p++) {
> + int ret;
> +
> + ret = lan9303_disable_packet_processing(chip, p);
> + if (ret)
> + return ret;
> + }
> + return 0;
>  }
>  
>  static int lan9303_check_device(struct lan9303 *chip)
> @@ -760,7 +761,6 @@ static int lan9303_port_enable(struct dsa_switch *ds, int 
> port,
>   /* enable internal packet processing */
>   switch (port) {
>   case 1:
> - return lan9303_enable_packet_processing(chip, port);
>   case 2:
>   return lan9303_enable_packet_processing(chip, port);
>   default:
> @@ -779,13 +779,9 @@ static void lan9303_port_disable(struct dsa_switch *ds, 
> int port,
>   /* disable internal packet processing */
>   switch (port) {
>   case 1:
> - lan9303_disable_packet_processing(chip, port);
> - lan9303_phy_write(ds, chip->phy_addr_sel_strap + 1,
> -   MII_BMCR, BMCR_PDOWN);
> - break;
>   case 2:
>   lan9303_disable_packet_processing(chip, port);
> - lan9303_phy_write(ds, chip->phy_addr_sel_strap + 2,
> + lan9303_phy_write(ds, chip->phy_addr_sel_strap + port,
> MII_BMCR, BMCR_PDOWN);
>   break;
>   default:

:-)

So maybe i would squash this part into the previous patch. You were
touching the functions anyway, and the change is obvious, so easy to
review.

But it is also O.K. this way. The cover note could of helped. You
could of said something like: "Changes made in the first patch allow
some simplifications to be made in the same code in the second patch.

Breaking changes up is hard, and you cannot please everybody, all the
time.

Reviewed-by: Andrew Lunn 

Andrew