[PATCH v2] net: dsa: b53: Add BCM5389 support

2018-05-31 Thread Damien Thébault
This patch adds support for the BCM5389 switch connected through MDIO.

Signed-off-by: Damien Thébault 
---
 Documentation/devicetree/bindings/net/dsa/b53.txt |  1 +
 drivers/net/dsa/b53/b53_common.c  | 13 +
 drivers/net/dsa/b53/b53_mdio.c|  5 -
 drivers/net/dsa/b53/b53_priv.h|  1 +
 4 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/dsa/b53.txt 
b/Documentation/devicetree/bindings/net/dsa/b53.txt
index 8acf51a4dfa8..47a6a7fe0b86 100644
--- a/Documentation/devicetree/bindings/net/dsa/b53.txt
+++ b/Documentation/devicetree/bindings/net/dsa/b53.txt
@@ -10,6 +10,7 @@ Required properties:
   "brcm,bcm53128"
   "brcm,bcm5365"
   "brcm,bcm5395"
+  "brcm,bcm5389"
   "brcm,bcm5397"
   "brcm,bcm5398"
 
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
index 78616787f2a3..3da5fca77cbd 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -1711,6 +1711,18 @@ static const struct b53_chip_data b53_switch_chips[] = {
.cpu_port = B53_CPU_PORT_25,
.duplex_reg = B53_DUPLEX_STAT_FE,
},
+   {
+   .chip_id = BCM5389_DEVICE_ID,
+   .dev_name = "BCM5389",
+   .vlans = 4096,
+   .enabled_ports = 0x1f,
+   .arl_entries = 4,
+   .cpu_port = B53_CPU_PORT,
+   .vta_regs = B53_VTA_REGS,
+   .duplex_reg = B53_DUPLEX_STAT_GE,
+   .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
+   .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
+   },
{
.chip_id = BCM5395_DEVICE_ID,
.dev_name = "BCM5395",
@@ -2034,6 +2046,7 @@ int b53_switch_detect(struct b53_device *dev)
else
dev->chip_id = BCM5365_DEVICE_ID;
break;
+   case BCM5389_DEVICE_ID:
case BCM5395_DEVICE_ID:
case BCM5397_DEVICE_ID:
case BCM5398_DEVICE_ID:
diff --git a/drivers/net/dsa/b53/b53_mdio.c b/drivers/net/dsa/b53/b53_mdio.c
index fa7556f5d4fb..a533a90e3904 100644
--- a/drivers/net/dsa/b53/b53_mdio.c
+++ b/drivers/net/dsa/b53/b53_mdio.c
@@ -285,6 +285,7 @@ static const struct b53_io_ops b53_mdio_ops = {
 #define B53_BRCM_OUI_1 0x0143bc00
 #define B53_BRCM_OUI_2 0x03625c00
 #define B53_BRCM_OUI_3 0x00406000
+#define B53_BRCM_OUI_4 0x01410c00
 
 static int b53_mdio_probe(struct mdio_device *mdiodev)
 {
@@ -311,7 +312,8 @@ static int b53_mdio_probe(struct mdio_device *mdiodev)
 */
if ((phy_id & 0xfc00) != B53_BRCM_OUI_1 &&
(phy_id & 0xfc00) != B53_BRCM_OUI_2 &&
-   (phy_id & 0xfc00) != B53_BRCM_OUI_3) {
+   (phy_id & 0xfc00) != B53_BRCM_OUI_3 &&
+   (phy_id & 0xfc00) != B53_BRCM_OUI_4) {
dev_err(>dev, "Unsupported device: 0x%08x\n", phy_id);
return -ENODEV;
}
@@ -360,6 +362,7 @@ static const struct of_device_id b53_of_match[] = {
{ .compatible = "brcm,bcm53125" },
{ .compatible = "brcm,bcm53128" },
{ .compatible = "brcm,bcm5365" },
+   { .compatible = "brcm,bcm5389" },
{ .compatible = "brcm,bcm5395" },
{ .compatible = "brcm,bcm5397" },
{ .compatible = "brcm,bcm5398" },
diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h
index 1187ebd79287..3b57f47d0e79 100644
--- a/drivers/net/dsa/b53/b53_priv.h
+++ b/drivers/net/dsa/b53/b53_priv.h
@@ -48,6 +48,7 @@ struct b53_io_ops {
 enum {
BCM5325_DEVICE_ID = 0x25,
BCM5365_DEVICE_ID = 0x65,
+   BCM5389_DEVICE_ID = 0x89,
BCM5395_DEVICE_ID = 0x95,
BCM5397_DEVICE_ID = 0x97,
BCM5398_DEVICE_ID = 0x98,
-- 
2.17.0


Re: [PATCH] b53: Add brcm5389 support

2018-05-31 Thread Damien Thébault
Hello Florian,

Thanks for your feedback, I will send a v2 with those changes.

Regards

On Wed, 2018-05-30 at 10:46 -0700, Florian Fainelli wrote:
> 
> On 05/30/2018 08:33 AM, Damien Thébault wrote:
> > This patch adds support for the BCM5389 switch connected through
> > MDIO.
> 
> This looks good, please do address the following couple of things:
> - subject should be: net: dsa: b53: Add BCM5389 support
> - you also need to update
> Documentation/devicetree/bindings/net/dsa/b53.txt with the compatible
> string
> 
> Thank you!
> 
> > 
> > Signed-off-by: Damien Thébault 
> > ---
> >  drivers/net/dsa/b53/b53_common.c | 13 +
> >  drivers/net/dsa/b53/b53_mdio.c   |  5 -
> >  drivers/net/dsa/b53/b53_priv.h   |  1 +
> >  3 files changed, 18 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/net/dsa/b53/b53_common.c
> > b/drivers/net/dsa/b53/b53_common.c
> > index 78616787f2a3..3da5fca77cbd 100644
> > --- a/drivers/net/dsa/b53/b53_common.c
> > +++ b/drivers/net/dsa/b53/b53_common.c
> > @@ -1711,6 +1711,18 @@ static const struct b53_chip_data
> > b53_switch_chips[] = {
> > .cpu_port = B53_CPU_PORT_25,
> > .duplex_reg = B53_DUPLEX_STAT_FE,
> > },
> > +   {
> > +   .chip_id = BCM5389_DEVICE_ID,
> > +   .dev_name = "BCM5389",
> > +   .vlans = 4096,
> > +   .enabled_ports = 0x1f,
> > +   .arl_entries = 4,
> > +   .cpu_port = B53_CPU_PORT,
> > +   .vta_regs = B53_VTA_REGS,
> > +   .duplex_reg = B53_DUPLEX_STAT_GE,
> > +   .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
> > +   .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
> > +   },
> > {
> > .chip_id = BCM5395_DEVICE_ID,
> > .dev_name = "BCM5395",
> > @@ -2034,6 +2046,7 @@ int b53_switch_detect(struct b53_device *dev)
> > else
> > dev->chip_id = BCM5365_DEVICE_ID;
> > break;
> > +   case BCM5389_DEVICE_ID:
> > case BCM5395_DEVICE_ID:
> > case BCM5397_DEVICE_ID:
> > case BCM5398_DEVICE_ID:
> > diff --git a/drivers/net/dsa/b53/b53_mdio.c
> > b/drivers/net/dsa/b53/b53_mdio.c
> > index fa7556f5d4fb..a533a90e3904 100644
> > --- a/drivers/net/dsa/b53/b53_mdio.c
> > +++ b/drivers/net/dsa/b53/b53_mdio.c
> > @@ -285,6 +285,7 @@ static const struct b53_io_ops b53_mdio_ops = {
> >  #define B53_BRCM_OUI_1 0x0143bc00
> >  #define B53_BRCM_OUI_2 0x03625c00
> >  #define B53_BRCM_OUI_3 0x00406000
> > +#define B53_BRCM_OUI_4 0x01410c00
> >  
> >  static int b53_mdio_probe(struct mdio_device *mdiodev)
> >  {
> > @@ -311,7 +312,8 @@ static int b53_mdio_probe(struct mdio_device
> > *mdiodev)
> >  */
> > if ((phy_id & 0xfc00) != B53_BRCM_OUI_1 &&
> > (phy_id & 0xfc00) != B53_BRCM_OUI_2 &&
> > -   (phy_id & 0xfc00) != B53_BRCM_OUI_3) {
> > +   (phy_id & 0xfc00) != B53_BRCM_OUI_3 &&
> > +   (phy_id & 0xfc00) != B53_BRCM_OUI_4) {
> > dev_err(>dev, "Unsupported device:
> > 0x%08x\n", phy_id);
> > return -ENODEV;
> > }
> > @@ -360,6 +362,7 @@ static const struct of_device_id b53_of_match[]
> > = {
> > { .compatible = "brcm,bcm53125" },
> > { .compatible = "brcm,bcm53128" },
> > { .compatible = "brcm,bcm5365" },
> > +   { .compatible = "brcm,bcm5389" },
> > { .compatible = "brcm,bcm5395" },
> > { .compatible = "brcm,bcm5397" },
> > { .compatible = "brcm,bcm5398" },
> > diff --git a/drivers/net/dsa/b53/b53_priv.h
> > b/drivers/net/dsa/b53/b53_priv.h
> > index 1187ebd79287..3b57f47d0e79 100644
> > --- a/drivers/net/dsa/b53/b53_priv.h
> > +++ b/drivers/net/dsa/b53/b53_priv.h
> > @@ -48,6 +48,7 @@ struct b53_io_ops {
> >  enum {
> > BCM5325_DEVICE_ID = 0x25,
> > BCM5365_DEVICE_ID = 0x65,
> > +   BCM5389_DEVICE_ID = 0x89,
> > BCM5395_DEVICE_ID = 0x95,
> > BCM5397_DEVICE_ID = 0x97,
> > BCM5398_DEVICE_ID = 0x98,
> > 
> 
> 
-- 
Damien Thébault
R Engineer
VITEC

T. +33 1 46 73 06 06
F. +33 9 59 85 99 92
E. damien.theba...@vitec.com
http://www.vitec.com

[PATCH] b53: Add brcm5389 support

2018-05-30 Thread Damien Thébault
This patch adds support for the BCM5389 switch connected through MDIO.

Signed-off-by: Damien Thébault 
---
 drivers/net/dsa/b53/b53_common.c | 13 +
 drivers/net/dsa/b53/b53_mdio.c   |  5 -
 drivers/net/dsa/b53/b53_priv.h   |  1 +
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
index 78616787f2a3..3da5fca77cbd 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -1711,6 +1711,18 @@ static const struct b53_chip_data b53_switch_chips[] = {
.cpu_port = B53_CPU_PORT_25,
.duplex_reg = B53_DUPLEX_STAT_FE,
},
+   {
+   .chip_id = BCM5389_DEVICE_ID,
+   .dev_name = "BCM5389",
+   .vlans = 4096,
+   .enabled_ports = 0x1f,
+   .arl_entries = 4,
+   .cpu_port = B53_CPU_PORT,
+   .vta_regs = B53_VTA_REGS,
+   .duplex_reg = B53_DUPLEX_STAT_GE,
+   .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
+   .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
+   },
{
.chip_id = BCM5395_DEVICE_ID,
.dev_name = "BCM5395",
@@ -2034,6 +2046,7 @@ int b53_switch_detect(struct b53_device *dev)
else
dev->chip_id = BCM5365_DEVICE_ID;
break;
+   case BCM5389_DEVICE_ID:
case BCM5395_DEVICE_ID:
case BCM5397_DEVICE_ID:
case BCM5398_DEVICE_ID:
diff --git a/drivers/net/dsa/b53/b53_mdio.c b/drivers/net/dsa/b53/b53_mdio.c
index fa7556f5d4fb..a533a90e3904 100644
--- a/drivers/net/dsa/b53/b53_mdio.c
+++ b/drivers/net/dsa/b53/b53_mdio.c
@@ -285,6 +285,7 @@ static const struct b53_io_ops b53_mdio_ops = {
 #define B53_BRCM_OUI_1 0x0143bc00
 #define B53_BRCM_OUI_2 0x03625c00
 #define B53_BRCM_OUI_3 0x00406000
+#define B53_BRCM_OUI_4 0x01410c00
 
 static int b53_mdio_probe(struct mdio_device *mdiodev)
 {
@@ -311,7 +312,8 @@ static int b53_mdio_probe(struct mdio_device *mdiodev)
 */
if ((phy_id & 0xfc00) != B53_BRCM_OUI_1 &&
(phy_id & 0xfc00) != B53_BRCM_OUI_2 &&
-   (phy_id & 0xfc00) != B53_BRCM_OUI_3) {
+   (phy_id & 0xfc00) != B53_BRCM_OUI_3 &&
+   (phy_id & 0xfc00) != B53_BRCM_OUI_4) {
dev_err(>dev, "Unsupported device: 0x%08x\n", phy_id);
return -ENODEV;
}
@@ -360,6 +362,7 @@ static const struct of_device_id b53_of_match[] = {
{ .compatible = "brcm,bcm53125" },
{ .compatible = "brcm,bcm53128" },
{ .compatible = "brcm,bcm5365" },
+   { .compatible = "brcm,bcm5389" },
{ .compatible = "brcm,bcm5395" },
{ .compatible = "brcm,bcm5397" },
{ .compatible = "brcm,bcm5398" },
diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h
index 1187ebd79287..3b57f47d0e79 100644
--- a/drivers/net/dsa/b53/b53_priv.h
+++ b/drivers/net/dsa/b53/b53_priv.h
@@ -48,6 +48,7 @@ struct b53_io_ops {
 enum {
BCM5325_DEVICE_ID = 0x25,
BCM5365_DEVICE_ID = 0x65,
+   BCM5389_DEVICE_ID = 0x89,
BCM5395_DEVICE_ID = 0x95,
BCM5397_DEVICE_ID = 0x97,
BCM5398_DEVICE_ID = 0x98,
-- 
2.17.0


Re: NFS/TCP/IPv6 acting strangely in 4.2

2015-09-16 Thread Damien Thébault
On Fri, 2015-09-11 at 12:38 +0100, Russell King - ARM Linux wrote:
> I have a recent Marvell Armada 388 board here which uses the mvneta
> driver.  I'm seeing some weird effects with NFS with it acting as a
> client.

Hello,

I'm upgrading a Marvelle Armada 370 board using the mvneta driver from
4.0 to 4.2 and noticed issues with NFS booting.
Basically, most of the time init returns with an error code, or
programs segfault or throw illegal instructions.

Since it worked fine on 4.0 I bisected until I found commit
a84e32894191cfcbffa54180d78d7d4654d56c20 "net: mvneta: fix refilling
for Rx DMA buffers".

If I revert this commit, everything seems to get back to normal.
Could you try it ? The two issues look very similar.

Regards
-- 
Damien Thébault



Re: NFS/TCP/IPv6 acting strangely in 4.2

2015-09-16 Thread Damien Thébault
On Wed, 2015-09-16 at 09:15 +0200, Gregory CLEMENT wrote:
> > Since it worked fine on 4.0 I bisected until I found commit
> > a84e32894191cfcbffa54180d78d7d4654d56c20 "net: mvneta: fix
> > refilling
> > for Rx DMA buffers".
> > 
> > If I revert this commit, everything seems to get back to normal.
> > Could you try it ? The two issues look very similar.
> Actually there was a bug with this commit, but a fix had been
> submitted
> and accepted yesterday, you can find him here:
> https://patchwork.ozlabs.org/patch/518111/.

Hello, this indeed fixes the issue for me, thanks.
-- 
Damien Thébault
R Engineer
VITEC

T. +33 1 46 73 06 06
F. +33 9 59 85 99 92
E. damien.theba...@vitec.com
http://www.vitec.com