* [PATCH 0/6] Ethernet over hdlc @ 2018-08-28 11:09 David Gounaris 2018-08-28 11:09 ` [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 David Gounaris ` (5 more replies) 0 siblings, 6 replies; 36+ messages in thread From: David Gounaris @ 2018-08-28 11:09 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev; +Cc: David Gounaris Hello! I have a 83xx platform and I am using non tsa mode in the fsl hdlc driver to enable ethernet over hdlc. These patches are the minimal changes that I needed to do in order to get it to work with our legacy products that used old FSL SDK driver. Please review. Best Regards, David Gounaris David Gounaris (6): net/wan/fsl_ucc_hdlc: allow ucc index up to 4 net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER net/wan/fsl_ucc_hdlc: default hmask value net/wan/fsl_ucc_hdlc: GUMR for non tsa mode net/wan/fsl_ucc_hdlc: tx timeout handler drivers/net/wan/fsl_ucc_hdlc.c | 23 +++++++++++++++++++++-- drivers/net/wan/fsl_ucc_hdlc.h | 2 +- 2 files changed, 22 insertions(+), 3 deletions(-) -- 2.13.6 ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 2018-08-28 11:09 [PATCH 0/6] Ethernet over hdlc David Gounaris @ 2018-08-28 11:09 ` David Gounaris 2018-08-28 13:34 ` Christophe LEROY ` (2 more replies) 2018-08-28 11:09 ` [PATCH 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris ` (4 subsequent siblings) 5 siblings, 3 replies; 36+ messages in thread From: David Gounaris @ 2018-08-28 11:09 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev; +Cc: David Gounaris There is a need to allow higher indexes to be able to support MPC83xx platforms. (UCC1-UCC5) Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 5f0366a125e2..3c0e0a1d19ba 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -1015,7 +1015,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) } ucc_num = val - 1; - if ((ucc_num > 3) || (ucc_num < 0)) { + if ((ucc_num > 4) || (ucc_num < 0)) { dev_err(&pdev->dev, ": Invalid UCC num\n"); return -EINVAL; } -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 2018-08-28 11:09 ` [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 David Gounaris @ 2018-08-28 13:34 ` Christophe LEROY 2018-08-29 7:09 ` Christophe LEROY 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris 2018-09-03 12:47 ` [PATCH v3 " David Gounaris 2 siblings, 1 reply; 36+ messages in thread From: Christophe LEROY @ 2018-08-28 13:34 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev Le 28/08/2018 à 13:09, David Gounaris a écrit : > There is a need to allow higher indexes to be > able to support MPC83xx platforms. (UCC1-UCC5) As far as I can see, MPC8358 has 8 UCCs (ref https://www.nxp.com/products/processors-and-microcontrollers/power-architecture-processors/powerquicc-processors/powerquicc-ii-pro/powerquicc-ii-pro-processor-with-ddr2-tdm-pci-security-usb-quicc-engine-with-1-gb-ethernet-utopia:MPC8358E) Christophe > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index 5f0366a125e2..3c0e0a1d19ba 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -1015,7 +1015,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) > } > > ucc_num = val - 1; > - if ((ucc_num > 3) || (ucc_num < 0)) { > + if ((ucc_num > 4) || (ucc_num < 0)) { > dev_err(&pdev->dev, ": Invalid UCC num\n"); > return -EINVAL; > } > ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 2018-08-28 13:34 ` Christophe LEROY @ 2018-08-29 7:09 ` Christophe LEROY 0 siblings, 0 replies; 36+ messages in thread From: Christophe LEROY @ 2018-08-29 7:09 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev Le 28/08/2018 à 15:34, Christophe LEROY a écrit : > > > Le 28/08/2018 à 13:09, David Gounaris a écrit : >> There is a need to allow higher indexes to be >> able to support MPC83xx platforms. (UCC1-UCC5) > > As far as I can see, MPC8358 has 8 UCCs (ref > https://www.nxp.com/products/processors-and-microcontrollers/power-architecture-processors/powerquicc-processors/powerquicc-ii-pro/powerquicc-ii-pro-processor-with-ddr2-tdm-pci-security-usb-quicc-engine-with-1-gb-ethernet-utopia:MPC8358E) Indeed, the code should use UCC_MAX_NUM which is defined in include/soc/fsl/qe/ucc.h Christophe > > > Christophe > >> >> Signed-off-by: David Gounaris <david.gounaris@infinera.com> >> --- >> drivers/net/wan/fsl_ucc_hdlc.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/wan/fsl_ucc_hdlc.c >> b/drivers/net/wan/fsl_ucc_hdlc.c >> index 5f0366a125e2..3c0e0a1d19ba 100644 >> --- a/drivers/net/wan/fsl_ucc_hdlc.c >> +++ b/drivers/net/wan/fsl_ucc_hdlc.c >> @@ -1015,7 +1015,7 @@ static int ucc_hdlc_probe(struct platform_device >> *pdev) >> } >> ucc_num = val - 1; >> - if ((ucc_num > 3) || (ucc_num < 0)) { >> + if ((ucc_num > 4) || (ucc_num < 0)) { >> dev_err(&pdev->dev, ": Invalid UCC num\n"); >> return -EINVAL; >> } >> ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v2 0/6] Ethernet over hdlc 2018-08-28 11:09 ` [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 David Gounaris 2018-08-28 13:34 ` Christophe LEROY @ 2018-08-29 13:13 ` David Gounaris 2018-08-29 13:13 ` [PATCH v2 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris ` (6 more replies) 2018-09-03 12:47 ` [PATCH v3 " David Gounaris 2 siblings, 7 replies; 36+ messages in thread From: David Gounaris @ 2018-08-29 13:13 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, robh+dt; +Cc: David Gounaris Here is what has been changed in v2 after the review comments. v2-0001: Using UCC_MAX_NUM v2-0002: Unchanged v2-0003: Changed commit message v2-0004: Adding fsl,hmask into the dt instead of changing the default value. v2-0005: Unchanged v2-0006: Unchanged Adding robh+dt@kernel.org for comments regarding dt. Best Regards David Gounaris David Gounaris (6): net/wan/fsl_ucc_hdlc: allow ucc index up to 7 net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER net/wan/fsl_ucc_hdlc: hmask net/wan/fsl_ucc_hdlc: GUMR for non tsa mode net/wan/fsl_ucc_hdlc: tx timeout handler .../devicetree/bindings/soc/fsl/cpm_qe/network.txt | 6 +++++ drivers/net/wan/fsl_ucc_hdlc.c | 28 +++++++++++++++++++--- drivers/net/wan/fsl_ucc_hdlc.h | 1 + 3 files changed, 32 insertions(+), 3 deletions(-) -- 2.13.6 ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v2 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris @ 2018-08-29 13:13 ` David Gounaris 2018-09-01 7:58 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris ` (5 subsequent siblings) 6 siblings, 1 reply; 36+ messages in thread From: David Gounaris @ 2018-08-29 13:13 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, robh+dt; +Cc: David Gounaris There is a need to allow higher indexes to be able to support MPC83xx platforms. (UCC1-UCC8) Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 33df76405b86..5cf6dcba039c 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -1016,7 +1016,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) } ucc_num = val - 1; - if ((ucc_num > 3) || (ucc_num < 0)) { + if ((ucc_num > UCC_MAX_NUM - 1) || (ucc_num < 0)) { dev_err(&pdev->dev, ": Invalid UCC num\n"); return -EINVAL; } -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH v2 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 2018-08-29 13:13 ` [PATCH v2 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris @ 2018-09-01 7:58 ` christophe leroy 0 siblings, 0 replies; 36+ messages in thread From: christophe leroy @ 2018-09-01 7:58 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev, robh+dt Le 29/08/2018 à 15:13, David Gounaris a écrit : > There is a need to allow higher indexes to be > able to support MPC83xx platforms. (UCC1-UCC8) > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index 33df76405b86..5cf6dcba039c 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -1016,7 +1016,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) > } > > ucc_num = val - 1; > - if ((ucc_num > 3) || (ucc_num < 0)) { > + if ((ucc_num > UCC_MAX_NUM - 1) || (ucc_num < 0)) { CHECK:UNNECESSARY_PARENTHESES: Unnecessary parentheses around 'ucc_num < 0' #23: FILE: drivers/net/wan/fsl_ucc_hdlc.c:1018: + if ((ucc_num > UCC_MAX_NUM - 1) || (ucc_num < 0)) { > dev_err(&pdev->dev, ": Invalid UCC num\n"); > return -EINVAL; > } > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v2 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris 2018-08-29 13:13 ` [PATCH v2 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris @ 2018-08-29 13:13 ` David Gounaris 2018-09-01 8:03 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris ` (4 subsequent siblings) 6 siblings, 1 reply; 36+ messages in thread From: David Gounaris @ 2018-08-29 13:13 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, robh+dt; +Cc: David Gounaris Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 5cf6dcba039c..c8e526bf1130 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -781,7 +781,8 @@ static int ucc_hdlc_attach(struct net_device *dev, unsigned short encoding, if (parity != PARITY_NONE && parity != PARITY_CRC32_PR1_CCITT && - parity != PARITY_CRC16_PR1_CCITT) + parity != PARITY_CRC16_PR1_CCITT && + parity != PARITY_CRC16_PR0_CCITT) return -EINVAL; priv->encoding = encoding; -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH v2 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity 2018-08-29 13:13 ` [PATCH v2 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris @ 2018-09-01 8:03 ` christophe leroy 0 siblings, 0 replies; 36+ messages in thread From: christophe leroy @ 2018-09-01 8:03 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev, robh+dt Le 29/08/2018 à 15:13, David Gounaris a écrit : > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index 5cf6dcba039c..c8e526bf1130 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -781,7 +781,8 @@ static int ucc_hdlc_attach(struct net_device *dev, unsigned short encoding, > > if (parity != PARITY_NONE && > parity != PARITY_CRC32_PR1_CCITT && > - parity != PARITY_CRC16_PR1_CCITT) > + parity != PARITY_CRC16_PR1_CCITT && > + parity != PARITY_CRC16_PR0_CCITT) ERROR:TRAILING_WHITESPACE: trailing whitespace #20: FILE: drivers/net/wan/fsl_ucc_hdlc.c:783: +^I parity != PARITY_CRC16_PR1_CCITT && $ Also, you could have left the line 'parity != PARITY_CRC16_PR1_CCITT)' as is and just have added 'parity != PARITY_CRC16_PR0_CCITT &&' on the previous line, would make more sense to have PR0 before PR1, and instead of having 2+1- you would only have 1+ > return -EINVAL; > > priv->encoding = encoding; > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris 2018-08-29 13:13 ` [PATCH v2 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris 2018-08-29 13:13 ` [PATCH v2 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris @ 2018-08-29 13:13 ` David Gounaris 2018-09-01 5:55 ` David Miller 2018-09-01 8:05 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 4/6] net/wan/fsl_ucc_hdlc: hmask David Gounaris ` (3 subsequent siblings) 6 siblings, 2 replies; 36+ messages in thread From: David Gounaris @ 2018-08-29 13:13 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, robh+dt; +Cc: David Gounaris This patch is to avoid discarding ethernet packets when using HDLC_ETH protocol. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index c8e526bf1130..0f703d7be5e0 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -376,6 +376,10 @@ static netdev_tx_t ucc_hdlc_tx(struct sk_buff *skb, struct net_device *dev) dev->stats.tx_bytes += skb->len; break; + case ARPHRD_ETHER: + dev->stats.tx_bytes += skb->len; + break; + default: dev->stats.tx_dropped++; dev_kfree_skb(skb); @@ -513,6 +517,8 @@ static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit) break; case ARPHRD_PPP: + case ARPHRD_ETHER: + length -= HDLC_CRC_SIZE; skb = dev_alloc_skb(length); -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER 2018-08-29 13:13 ` [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris @ 2018-09-01 5:55 ` David Miller 2018-09-01 8:05 ` christophe leroy 1 sibling, 0 replies; 36+ messages in thread From: David Miller @ 2018-09-01 5:55 UTC (permalink / raw) To: david.gounaris; +Cc: qiang.zhao, netdev, linuxppc-dev, robh+dt From: David Gounaris <david.gounaris@infinera.com> Date: Wed, 29 Aug 2018 15:13:25 +0200 > @@ -513,6 +517,8 @@ static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit) > break; > > case ARPHRD_PPP: > + case ARPHRD_ETHER: > + Please don't add such an extraneous empty line. Thanks. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER 2018-08-29 13:13 ` [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris 2018-09-01 5:55 ` David Miller @ 2018-09-01 8:05 ` christophe leroy 1 sibling, 0 replies; 36+ messages in thread From: christophe leroy @ 2018-09-01 8:05 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev, robh+dt Le 29/08/2018 à 15:13, David Gounaris a écrit : > This patch is to avoid discarding ethernet > packets when using HDLC_ETH protocol. > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index c8e526bf1130..0f703d7be5e0 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -376,6 +376,10 @@ static netdev_tx_t ucc_hdlc_tx(struct sk_buff *skb, struct net_device *dev) > dev->stats.tx_bytes += skb->len; > break; > > + case ARPHRD_ETHER: > + dev->stats.tx_bytes += skb->len; > + break; > + > default: > dev->stats.tx_dropped++; > dev_kfree_skb(skb); > @@ -513,6 +517,8 @@ static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit) > break; > > case ARPHRD_PPP: > + case ARPHRD_ETHER: > + ERROR:TRAILING_WHITESPACE: trailing whitespace #34: FILE: drivers/net/wan/fsl_ucc_hdlc.c:520: +^I^I^I$ Note that 'git show' would show it to you in red background so you shouldn't miss it. And this additional blank line is unnecessary. > length -= HDLC_CRC_SIZE; > > skb = dev_alloc_skb(length); > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v2 4/6] net/wan/fsl_ucc_hdlc: hmask 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris ` (2 preceding siblings ...) 2018-08-29 13:13 ` [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris @ 2018-08-29 13:13 ` David Gounaris 2018-09-01 8:06 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris ` (2 subsequent siblings) 6 siblings, 1 reply; 36+ messages in thread From: David Gounaris @ 2018-08-29 13:13 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, robh+dt; +Cc: David Gounaris Ability to set hmask in the device-tree, which can be used to change address filtering of packets. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt | 6 ++++++ drivers/net/wan/fsl_ucc_hdlc.c | 5 ++++- drivers/net/wan/fsl_ucc_hdlc.h | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt b/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt index 03c741602c6d..6d2dd8a31482 100644 --- a/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt +++ b/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt @@ -98,6 +98,12 @@ The property below is dependent on fsl,tdm-interface: usage: optional for tdm interface value type: <empty> Definition : Internal loopback connecting on TDM layer. +- fsl,hmask + usage: optional + Value type: <u16> + Definition: HDLC address recognition. Set to zero to disable + address filtering of packets: + fsl,hmask = /bits/ 16 <0x0000>; Example for tdm interface: diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 0f703d7be5e0..be5b0096af3b 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -263,7 +263,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) iowrite16be(MAX_FRAME_LENGTH, &priv->ucc_pram->mflr); iowrite16be(DEFAULT_RFTHR, &priv->ucc_pram->rfthr); iowrite16be(DEFAULT_RFTHR, &priv->ucc_pram->rfcnt); - iowrite16be(DEFAULT_ADDR_MASK, &priv->ucc_pram->hmask); + iowrite16be(priv->hmask, &priv->ucc_pram->hmask); iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr1); iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr2); iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr3); @@ -1097,6 +1097,9 @@ static int ucc_hdlc_probe(struct platform_device *pdev) if (ret) goto free_utdm; } + + if (of_property_read_u16(np, "fsl,hmask", &uhdlc_priv->hmask)) + uhdlc_priv->hmask = DEFAULT_ADDR_MASK; ret = uhdlc_init(uhdlc_priv); if (ret) { diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdlc.h index c21134c1f180..b99fa2f1cd99 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.h +++ b/drivers/net/wan/fsl_ucc_hdlc.h @@ -106,6 +106,7 @@ struct ucc_hdlc_private { unsigned short encoding; unsigned short parity; + unsigned short hmask; u32 clocking; spinlock_t lock; /* lock for Tx BD and Tx buffer */ #ifdef CONFIG_PM -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH v2 4/6] net/wan/fsl_ucc_hdlc: hmask 2018-08-29 13:13 ` [PATCH v2 4/6] net/wan/fsl_ucc_hdlc: hmask David Gounaris @ 2018-09-01 8:06 ` christophe leroy 0 siblings, 0 replies; 36+ messages in thread From: christophe leroy @ 2018-09-01 8:06 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev, robh+dt Le 29/08/2018 à 15:13, David Gounaris a écrit : > Ability to set hmask in the device-tree, > which can be used to change address > filtering of packets. > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt | 6 ++++++ > drivers/net/wan/fsl_ucc_hdlc.c | 5 ++++- > drivers/net/wan/fsl_ucc_hdlc.h | 1 + > 3 files changed, 11 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt b/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt > index 03c741602c6d..6d2dd8a31482 100644 > --- a/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt > +++ b/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt > @@ -98,6 +98,12 @@ The property below is dependent on fsl,tdm-interface: > usage: optional for tdm interface > value type: <empty> > Definition : Internal loopback connecting on TDM layer. > +- fsl,hmask > + usage: optional > + Value type: <u16> > + Definition: HDLC address recognition. Set to zero to disable > + address filtering of packets: > + fsl,hmask = /bits/ 16 <0x0000>; > > Example for tdm interface: > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index 0f703d7be5e0..be5b0096af3b 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -263,7 +263,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) > iowrite16be(MAX_FRAME_LENGTH, &priv->ucc_pram->mflr); > iowrite16be(DEFAULT_RFTHR, &priv->ucc_pram->rfthr); > iowrite16be(DEFAULT_RFTHR, &priv->ucc_pram->rfcnt); > - iowrite16be(DEFAULT_ADDR_MASK, &priv->ucc_pram->hmask); > + iowrite16be(priv->hmask, &priv->ucc_pram->hmask); > iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr1); > iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr2); > iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr3); > @@ -1097,6 +1097,9 @@ static int ucc_hdlc_probe(struct platform_device *pdev) > if (ret) > goto free_utdm; > } > + ERROR:TRAILING_WHITESPACE: trailing whitespace #51: FILE: drivers/net/wan/fsl_ucc_hdlc.c:1099: +^I$ 'git show' (or git log -p) would show it to you in red background. > + if (of_property_read_u16(np, "fsl,hmask", &uhdlc_priv->hmask)) > + uhdlc_priv->hmask = DEFAULT_ADDR_MASK; > > ret = uhdlc_init(uhdlc_priv); > if (ret) { > diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdlc.h > index c21134c1f180..b99fa2f1cd99 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.h > +++ b/drivers/net/wan/fsl_ucc_hdlc.h > @@ -106,6 +106,7 @@ struct ucc_hdlc_private { > > unsigned short encoding; > unsigned short parity; > + unsigned short hmask; > u32 clocking; > spinlock_t lock; /* lock for Tx BD and Tx buffer */ > #ifdef CONFIG_PM > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v2 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris ` (3 preceding siblings ...) 2018-08-29 13:13 ` [PATCH v2 4/6] net/wan/fsl_ucc_hdlc: hmask David Gounaris @ 2018-08-29 13:13 ` David Gounaris 2018-09-01 8:08 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris 2018-09-01 8:10 ` [PATCH v2 0/6] Ethernet over hdlc christophe leroy 6 siblings, 1 reply; 36+ messages in thread From: David Gounaris @ 2018-08-29 13:13 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, robh+dt; +Cc: David Gounaris The following bits in the GUMR is changed for non tsa mode: CDS, CTSP and CTSS are set to zero. When set, there is no tx interrupts from the controller. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index be5b0096af3b..248f1f5bcd04 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -97,6 +97,13 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (priv->tsa) { uf_info->tsa = 1; uf_info->ctsp = 1; + uf_info->cds = 1; + uf_info->ctss = 1; + } + else { + uf_info->cds = 0; + uf_info->ctsp = 0; + uf_info->ctss = 0; } /* This sets HPM register in CMXUCR register which configures a -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH v2 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode 2018-08-29 13:13 ` [PATCH v2 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris @ 2018-09-01 8:08 ` christophe leroy 0 siblings, 0 replies; 36+ messages in thread From: christophe leroy @ 2018-09-01 8:08 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev, robh+dt Le 29/08/2018 à 15:13, David Gounaris a écrit : > The following bits in the GUMR is changed for non > tsa mode: CDS, CTSP and CTSS are set to zero. > > When set, there is no tx interrupts from the controller. > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index be5b0096af3b..248f1f5bcd04 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -97,6 +97,13 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) > if (priv->tsa) { > uf_info->tsa = 1; > uf_info->ctsp = 1; > + uf_info->cds = 1; > + uf_info->ctss = 1; > + } > + else { ERROR:ELSE_AFTER_BRACE: else should follow close brace '}' #27: FILE: drivers/net/wan/fsl_ucc_hdlc.c:103: + } + else { CHECK:BRACES: Unbalanced braces around else statement #27: FILE: drivers/net/wan/fsl_ucc_hdlc.c:103: + else { Should be: } else { > + uf_info->cds = 0; > + uf_info->ctsp = 0; > + uf_info->ctss = 0; > } > > /* This sets HPM register in CMXUCR register which configures a > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v2 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris ` (4 preceding siblings ...) 2018-08-29 13:13 ` [PATCH v2 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris @ 2018-08-29 13:13 ` David Gounaris 2018-09-01 8:10 ` christophe leroy 2018-09-01 8:10 ` [PATCH v2 0/6] Ethernet over hdlc christophe leroy 6 siblings, 1 reply; 36+ messages in thread From: David Gounaris @ 2018-08-29 13:13 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, robh+dt; +Cc: David Gounaris Added tx timerout handler. This helps when troubleshooting. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 248f1f5bcd04..629ef5049d27 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -1002,11 +1002,15 @@ static const struct dev_pm_ops uhdlc_pm_ops = { #define HDLC_PM_OPS NULL #endif +static void uhdlc_tx_timeout(struct net_device *ndev) { + netdev_err(ndev, "%s\n", __FUNCTION__); +} static const struct net_device_ops uhdlc_ops = { .ndo_open = uhdlc_open, .ndo_stop = uhdlc_close, .ndo_start_xmit = hdlc_start_xmit, .ndo_do_ioctl = uhdlc_ioctl, + .ndo_tx_timeout = uhdlc_tx_timeout, }; static int ucc_hdlc_probe(struct platform_device *pdev) @@ -1125,6 +1129,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) hdlc = dev_to_hdlc(dev); dev->tx_queue_len = 16; dev->netdev_ops = &uhdlc_ops; + dev->watchdog_timeo = 2*HZ; hdlc->attach = ucc_hdlc_attach; hdlc->xmit = ucc_hdlc_tx; netif_napi_add(dev, &uhdlc_priv->napi, ucc_hdlc_poll, 32); -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH v2 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler 2018-08-29 13:13 ` [PATCH v2 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris @ 2018-09-01 8:10 ` christophe leroy 0 siblings, 0 replies; 36+ messages in thread From: christophe leroy @ 2018-09-01 8:10 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev, robh+dt Le 29/08/2018 à 15:13, David Gounaris a écrit : > Added tx timerout handler. This helps > when troubleshooting. > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index 248f1f5bcd04..629ef5049d27 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -1002,11 +1002,15 @@ static const struct dev_pm_ops uhdlc_pm_ops = { > #define HDLC_PM_OPS NULL > > #endif > +static void uhdlc_tx_timeout(struct net_device *ndev) { ERROR:OPEN_BRACE: open brace '{' following function definitions go on the next line #22: FILE: drivers/net/wan/fsl_ucc_hdlc.c:1004: +static void uhdlc_tx_timeout(struct net_device *ndev) { > + netdev_err(ndev, "%s\n", __FUNCTION__); WARNING:USE_FUNC: __func__ should be used instead of gcc specific __FUNCTION__ #23: FILE: drivers/net/wan/fsl_ucc_hdlc.c:1005: + netdev_err(ndev, "%s\n", __FUNCTION__); > +} > static const struct net_device_ops uhdlc_ops = { > .ndo_open = uhdlc_open, > .ndo_stop = uhdlc_close, > .ndo_start_xmit = hdlc_start_xmit, > .ndo_do_ioctl = uhdlc_ioctl, > + .ndo_tx_timeout = uhdlc_tx_timeout, > }; > > static int ucc_hdlc_probe(struct platform_device *pdev) > @@ -1125,6 +1129,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) > hdlc = dev_to_hdlc(dev); > dev->tx_queue_len = 16; > dev->netdev_ops = &uhdlc_ops; > + dev->watchdog_timeo = 2*HZ; CHECK:SPACING: spaces preferred around that '*' (ctx:VxV) #38: FILE: drivers/net/wan/fsl_ucc_hdlc.c:1131: + dev->watchdog_timeo = 2*HZ; > hdlc->attach = ucc_hdlc_attach; > hdlc->xmit = ucc_hdlc_tx; > netif_napi_add(dev, &uhdlc_priv->napi, ucc_hdlc_poll, 32); > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH v2 0/6] Ethernet over hdlc 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris ` (5 preceding siblings ...) 2018-08-29 13:13 ` [PATCH v2 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris @ 2018-09-01 8:10 ` christophe leroy 6 siblings, 0 replies; 36+ messages in thread From: christophe leroy @ 2018-09-01 8:10 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev, robh+dt Le 29/08/2018 à 15:13, David Gounaris a écrit : > Here is what has been changed in v2 after the review comments. > > v2-0001: Using UCC_MAX_NUM This one has a warning/check from checkpatch > v2-0002: Unchanged > v2-0003: Changed commit message > v2-0004: Adding fsl,hmask into the dt instead of changing the default value. > v2-0005: Unchanged > v2-0006: Unchanged All the above have an error from checkpatch You should run checkpatch on your patches and fix the errors and warnings. You can also see them at https://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=63075 Christophe > > Adding robh+dt@kernel.org for comments regarding dt. > > Best Regards > David Gounaris > > David Gounaris (6): > net/wan/fsl_ucc_hdlc: allow ucc index up to 7 > net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity > net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER > net/wan/fsl_ucc_hdlc: hmask > net/wan/fsl_ucc_hdlc: GUMR for non tsa mode > net/wan/fsl_ucc_hdlc: tx timeout handler > > .../devicetree/bindings/soc/fsl/cpm_qe/network.txt | 6 +++++ > drivers/net/wan/fsl_ucc_hdlc.c | 28 +++++++++++++++++++--- > drivers/net/wan/fsl_ucc_hdlc.h | 1 + > 3 files changed, 32 insertions(+), 3 deletions(-) > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v3 0/6] Ethernet over hdlc 2018-08-28 11:09 ` [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 David Gounaris 2018-08-28 13:34 ` Christophe LEROY 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris @ 2018-09-03 12:47 ` David Gounaris 2018-09-03 12:47 ` [PATCH v3 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris ` (6 more replies) 2 siblings, 7 replies; 36+ messages in thread From: David Gounaris @ 2018-09-03 12:47 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund; +Cc: David Gounaris Here is what has been changed in v3 after the review comments from v2. v3-0001: corrected style problems v3-0002: corrected style problems v3-0003: corrected style problems v3-0004: corrected style problems v3-0005: corrected style problems v3-0006: corrected style problems Sorry for that, I did not know about scripts/checkpatch.pl. David Gounaris (6): net/wan/fsl_ucc_hdlc: allow ucc index up to 7 net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER net/wan/fsl_ucc_hdlc: hmask net/wan/fsl_ucc_hdlc: GUMR for non tsa mode net/wan/fsl_ucc_hdlc: tx timeout handler .../devicetree/bindings/soc/fsl/cpm_qe/network.txt | 6 +++++ drivers/net/wan/fsl_ucc_hdlc.c | 26 ++++++++++++++++++++-- drivers/net/wan/fsl_ucc_hdlc.h | 1 + 3 files changed, 31 insertions(+), 2 deletions(-) -- 2.13.6 ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH v3 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 2018-09-03 12:47 ` [PATCH v3 " David Gounaris @ 2018-09-03 12:47 ` David Gounaris 2018-09-03 12:47 ` [PATCH v3 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris ` (5 subsequent siblings) 6 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-09-03 12:47 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund; +Cc: David Gounaris There is a need to allow higher indexes to be able to support MPC83xx platforms. (UCC1-UCC8) Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 33df76405b86..485764c537d9 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -1016,7 +1016,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) } ucc_num = val - 1; - if ((ucc_num > 3) || (ucc_num < 0)) { + if (ucc_num > (UCC_MAX_NUM - 1) || ucc_num < 0) { dev_err(&pdev->dev, ": Invalid UCC num\n"); return -EINVAL; } -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH v3 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity 2018-09-03 12:47 ` [PATCH v3 " David Gounaris 2018-09-03 12:47 ` [PATCH v3 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris @ 2018-09-03 12:47 ` David Gounaris 2018-09-03 12:47 ` [PATCH v3 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris ` (4 subsequent siblings) 6 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-09-03 12:47 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund; +Cc: David Gounaris Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 485764c537d9..5619e2c2e02d 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -781,6 +781,7 @@ static int ucc_hdlc_attach(struct net_device *dev, unsigned short encoding, if (parity != PARITY_NONE && parity != PARITY_CRC32_PR1_CCITT && + parity != PARITY_CRC16_PR0_CCITT && parity != PARITY_CRC16_PR1_CCITT) return -EINVAL; -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH v3 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER 2018-09-03 12:47 ` [PATCH v3 " David Gounaris 2018-09-03 12:47 ` [PATCH v3 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris 2018-09-03 12:47 ` [PATCH v3 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris @ 2018-09-03 12:47 ` David Gounaris 2018-09-03 12:47 ` [PATCH v3 4/6] net/wan/fsl_ucc_hdlc: hmask David Gounaris ` (3 subsequent siblings) 6 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-09-03 12:47 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund; +Cc: David Gounaris This patch is to avoid discarding ethernet packets when using HDLC_ETH protocol. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 5619e2c2e02d..2aaa5e1959a9 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -376,6 +376,10 @@ static netdev_tx_t ucc_hdlc_tx(struct sk_buff *skb, struct net_device *dev) dev->stats.tx_bytes += skb->len; break; + case ARPHRD_ETHER: + dev->stats.tx_bytes += skb->len; + break; + default: dev->stats.tx_dropped++; dev_kfree_skb(skb); @@ -513,6 +517,7 @@ static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit) break; case ARPHRD_PPP: + case ARPHRD_ETHER: length -= HDLC_CRC_SIZE; skb = dev_alloc_skb(length); -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH v3 4/6] net/wan/fsl_ucc_hdlc: hmask 2018-09-03 12:47 ` [PATCH v3 " David Gounaris ` (2 preceding siblings ...) 2018-09-03 12:47 ` [PATCH v3 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris @ 2018-09-03 12:47 ` David Gounaris 2018-09-03 12:47 ` [PATCH v3 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris ` (2 subsequent siblings) 6 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-09-03 12:47 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund; +Cc: David Gounaris Ability to set hmask in the device-tree, which can be used to change address filtering of packets. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt | 6 ++++++ drivers/net/wan/fsl_ucc_hdlc.c | 5 ++++- drivers/net/wan/fsl_ucc_hdlc.h | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt b/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt index 03c741602c6d..6d2dd8a31482 100644 --- a/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt +++ b/Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt @@ -98,6 +98,12 @@ The property below is dependent on fsl,tdm-interface: usage: optional for tdm interface value type: <empty> Definition : Internal loopback connecting on TDM layer. +- fsl,hmask + usage: optional + Value type: <u16> + Definition: HDLC address recognition. Set to zero to disable + address filtering of packets: + fsl,hmask = /bits/ 16 <0x0000>; Example for tdm interface: diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 2aaa5e1959a9..3dacafb219c6 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -263,7 +263,7 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) iowrite16be(MAX_FRAME_LENGTH, &priv->ucc_pram->mflr); iowrite16be(DEFAULT_RFTHR, &priv->ucc_pram->rfthr); iowrite16be(DEFAULT_RFTHR, &priv->ucc_pram->rfcnt); - iowrite16be(DEFAULT_ADDR_MASK, &priv->ucc_pram->hmask); + iowrite16be(priv->hmask, &priv->ucc_pram->hmask); iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr1); iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr2); iowrite16be(DEFAULT_HDLC_ADDR, &priv->ucc_pram->haddr3); @@ -1097,6 +1097,9 @@ static int ucc_hdlc_probe(struct platform_device *pdev) goto free_utdm; } + if (of_property_read_u16(np, "fsl,hmask", &uhdlc_priv->hmask)) + uhdlc_priv->hmask = DEFAULT_ADDR_MASK; + ret = uhdlc_init(uhdlc_priv); if (ret) { dev_err(&pdev->dev, "Failed to init uhdlc\n"); diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdlc.h index c21134c1f180..b99fa2f1cd99 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.h +++ b/drivers/net/wan/fsl_ucc_hdlc.h @@ -106,6 +106,7 @@ struct ucc_hdlc_private { unsigned short encoding; unsigned short parity; + unsigned short hmask; u32 clocking; spinlock_t lock; /* lock for Tx BD and Tx buffer */ #ifdef CONFIG_PM -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH v3 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode 2018-09-03 12:47 ` [PATCH v3 " David Gounaris ` (3 preceding siblings ...) 2018-09-03 12:47 ` [PATCH v3 4/6] net/wan/fsl_ucc_hdlc: hmask David Gounaris @ 2018-09-03 12:47 ` David Gounaris 2018-09-03 12:47 ` [PATCH v3 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris 2018-09-04 5:14 ` [PATCH v3 0/6] Ethernet over hdlc David Miller 6 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-09-03 12:47 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund; +Cc: David Gounaris The following bits in the GUMR is changed for non tsa mode: CDS, CTSP and CTSS are set to zero. When set, there is no tx interrupts from the controller. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 3dacafb219c6..999d93fa54f7 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -97,6 +97,12 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (priv->tsa) { uf_info->tsa = 1; uf_info->ctsp = 1; + uf_info->cds = 1; + uf_info->ctss = 1; + } else { + uf_info->cds = 0; + uf_info->ctsp = 0; + uf_info->ctss = 0; } /* This sets HPM register in CMXUCR register which configures a -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH v3 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler 2018-09-03 12:47 ` [PATCH v3 " David Gounaris ` (4 preceding siblings ...) 2018-09-03 12:47 ` [PATCH v3 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris @ 2018-09-03 12:47 ` David Gounaris 2018-09-04 5:14 ` [PATCH v3 0/6] Ethernet over hdlc David Miller 6 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-09-03 12:47 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund; +Cc: David Gounaris Added tx timeout handler. This helps when troubleshooting. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 999d93fa54f7..124fea454ac4 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -1000,11 +1000,17 @@ static const struct dev_pm_ops uhdlc_pm_ops = { #define HDLC_PM_OPS NULL #endif +static void uhdlc_tx_timeout(struct net_device *ndev) +{ + netdev_err(ndev, "%s\n", __func__); +} + static const struct net_device_ops uhdlc_ops = { .ndo_open = uhdlc_open, .ndo_stop = uhdlc_close, .ndo_start_xmit = hdlc_start_xmit, .ndo_do_ioctl = uhdlc_ioctl, + .ndo_tx_timeout = uhdlc_tx_timeout, }; static int ucc_hdlc_probe(struct platform_device *pdev) @@ -1123,6 +1129,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) hdlc = dev_to_hdlc(dev); dev->tx_queue_len = 16; dev->netdev_ops = &uhdlc_ops; + dev->watchdog_timeo = 2 * HZ; hdlc->attach = ucc_hdlc_attach; hdlc->xmit = ucc_hdlc_tx; netif_napi_add(dev, &uhdlc_priv->napi, ucc_hdlc_poll, 32); -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH v3 0/6] Ethernet over hdlc 2018-09-03 12:47 ` [PATCH v3 " David Gounaris ` (5 preceding siblings ...) 2018-09-03 12:47 ` [PATCH v3 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris @ 2018-09-04 5:14 ` David Miller 6 siblings, 0 replies; 36+ messages in thread From: David Miller @ 2018-09-04 5:14 UTC (permalink / raw) To: david.gounaris; +Cc: qiang.zhao, netdev, linuxppc-dev, joakim.tjernlund From: David Gounaris <david.gounaris@infinera.com> Date: Mon, 3 Sep 2018 14:47:24 +0200 > Here is what has been changed in v3 after the review comments from v2. > > v3-0001: corrected style problems > v3-0002: corrected style problems > v3-0003: corrected style problems > v3-0004: corrected style problems > v3-0005: corrected style problems > v3-0006: corrected style problems > > Sorry for that, I did not know about scripts/checkpatch.pl. Series applied to net-next. ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity 2018-08-28 11:09 [PATCH 0/6] Ethernet over hdlc David Gounaris 2018-08-28 11:09 ` [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 David Gounaris @ 2018-08-28 11:09 ` David Gounaris 2018-08-28 11:09 ` [PATCH 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris ` (3 subsequent siblings) 5 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-08-28 11:09 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev; +Cc: David Gounaris Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 3c0e0a1d19ba..963b3b5ae15e 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -780,7 +780,8 @@ static int ucc_hdlc_attach(struct net_device *dev, unsigned short encoding, if (parity != PARITY_NONE && parity != PARITY_CRC32_PR1_CCITT && - parity != PARITY_CRC16_PR1_CCITT) + parity != PARITY_CRC16_PR1_CCITT && + parity != PARITY_CRC16_PR0_CCITT) return -EINVAL; priv->encoding = encoding; -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER 2018-08-28 11:09 [PATCH 0/6] Ethernet over hdlc David Gounaris 2018-08-28 11:09 ` [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 David Gounaris 2018-08-28 11:09 ` [PATCH 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris @ 2018-08-28 11:09 ` David Gounaris 2018-08-28 13:36 ` Christophe LEROY 2018-08-28 11:09 ` [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value David Gounaris ` (2 subsequent siblings) 5 siblings, 1 reply; 36+ messages in thread From: David Gounaris @ 2018-08-28 11:09 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev; +Cc: David Gounaris This was done to avoid discarding ethernet packets when using HDLC_ETH protocol. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 963b3b5ae15e..54e2b2143e36 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -375,6 +375,10 @@ static netdev_tx_t ucc_hdlc_tx(struct sk_buff *skb, struct net_device *dev) dev->stats.tx_bytes += skb->len; break; + case ARPHRD_ETHER: + dev->stats.tx_bytes += skb->len; + break; + default: dev->stats.tx_dropped++; dev_kfree_skb(skb); @@ -512,6 +516,8 @@ static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit) break; case ARPHRD_PPP: + case ARPHRD_ETHER: + length -= HDLC_CRC_SIZE; skb = dev_alloc_skb(length); -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [PATCH 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER 2018-08-28 11:09 ` [PATCH 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris @ 2018-08-28 13:36 ` Christophe LEROY 0 siblings, 0 replies; 36+ messages in thread From: Christophe LEROY @ 2018-08-28 13:36 UTC (permalink / raw) To: David Gounaris, qiang.zhao, netdev, linuxppc-dev Le 28/08/2018 à 13:09, David Gounaris a écrit : > This was done to avoid discarding ethernet > packets when using HDLC_ETH protocol. Maybe use 'present' form instead of 'past form', ie 'This patch is to avoid discarding ethernet ...' Christophe > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c > index 963b3b5ae15e..54e2b2143e36 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.c > +++ b/drivers/net/wan/fsl_ucc_hdlc.c > @@ -375,6 +375,10 @@ static netdev_tx_t ucc_hdlc_tx(struct sk_buff *skb, struct net_device *dev) > dev->stats.tx_bytes += skb->len; > break; > > + case ARPHRD_ETHER: > + dev->stats.tx_bytes += skb->len; > + break; > + > default: > dev->stats.tx_dropped++; > dev_kfree_skb(skb); > @@ -512,6 +516,8 @@ static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit) > break; > > case ARPHRD_PPP: > + case ARPHRD_ETHER: > + > length -= HDLC_CRC_SIZE; > > skb = dev_alloc_skb(length); > ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value 2018-08-28 11:09 [PATCH 0/6] Ethernet over hdlc David Gounaris ` (2 preceding siblings ...) 2018-08-28 11:09 ` [PATCH 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris @ 2018-08-28 11:09 ` David Gounaris 2018-08-29 2:54 ` Qiang Zhao 2018-08-28 11:09 ` [PATCH 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris 2018-08-28 11:09 ` [PATCH 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris 5 siblings, 1 reply; 36+ messages in thread From: David Gounaris @ 2018-08-28 11:09 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev; +Cc: David Gounaris Set default HMASK to 0x0000 to use promiscuous mode in the hdlc controller. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdlc.h index c21134c1f180..5bc3d1a6ca6e 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.h +++ b/drivers/net/wan/fsl_ucc_hdlc.h @@ -134,7 +134,7 @@ struct ucc_hdlc_private { #define HDLC_HEAD_MASK 0x0000 #define DEFAULT_HDLC_HEAD 0xff44 -#define DEFAULT_ADDR_MASK 0x00ff +#define DEFAULT_ADDR_MASK 0x0000 #define DEFAULT_HDLC_ADDR 0x00ff #define BMR_GBL 0x20000000 -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* RE: [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value 2018-08-28 11:09 ` [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value David Gounaris @ 2018-08-29 2:54 ` Qiang Zhao 2018-08-29 7:18 ` Christophe LEROY 0 siblings, 1 reply; 36+ messages in thread From: Qiang Zhao @ 2018-08-29 2:54 UTC (permalink / raw) To: David Gounaris, netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Cc: David Gounaris From: David Gounaris <david.gounaris@infinera.com> Date: 2018/8/28 19:09 > Subject: [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value > > Set default HMASK to 0x0000 to use > promiscuous mode in the hdlc controller. > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > --- > drivers/net/wan/fsl_ucc_hdlc.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdlc.h > index c21134c1f180..5bc3d1a6ca6e 100644 > --- a/drivers/net/wan/fsl_ucc_hdlc.h > +++ b/drivers/net/wan/fsl_ucc_hdlc.h > @@ -134,7 +134,7 @@ struct ucc_hdlc_private { > > #define HDLC_HEAD_MASK 0x0000 > #define DEFAULT_HDLC_HEAD 0xff44 > -#define DEFAULT_ADDR_MASK 0x00ff > +#define DEFAULT_ADDR_MASK 0x0000 > #define DEFAULT_HDLC_ADDR 0x00ff > > #define BMR_GBL 0x20000000 > -- It is not proper to set default HMASK to 0x0000, how about to add a new property standing for hmask into device tree, If get this property from dtb, then set it with the value from dtb, otherwise, set it with default HMASK ox00ff? Best Regards Qiang Zhao ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value 2018-08-29 2:54 ` Qiang Zhao @ 2018-08-29 7:18 ` Christophe LEROY 2018-08-29 7:28 ` Joakim Tjernlund 0 siblings, 1 reply; 36+ messages in thread From: Christophe LEROY @ 2018-08-29 7:18 UTC (permalink / raw) To: Qiang Zhao, David Gounaris, netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Le 29/08/2018 à 04:54, Qiang Zhao a écrit : > From: David Gounaris <david.gounaris@infinera.com> > Date: 2018/8/28 19:09 >> Subject: [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value >> >> Set default HMASK to 0x0000 to use >> promiscuous mode in the hdlc controller. Why do you need to do that ? An HDLC frame encapsulating Ethernet should look like: HDLC Frame includes: – Opening Flag 7E hex – Address field FF hex – Control field 03 hex – Information field Original Ethernet Packet, 1522 octets max. – FCS CRC16 (2 bytes) – Closing Flag 7E hex What do you mean by 'promiscuous mode' ? In any case, should a filter mask be changed for promiscuous mode, I believe the change should be done at the time you enter promiscuous mode, not at all time. Christophe >> >> Signed-off-by: David Gounaris <david.gounaris@infinera.com> >> --- >> drivers/net/wan/fsl_ucc_hdlc.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdlc.h >> index c21134c1f180..5bc3d1a6ca6e 100644 >> --- a/drivers/net/wan/fsl_ucc_hdlc.h >> +++ b/drivers/net/wan/fsl_ucc_hdlc.h >> @@ -134,7 +134,7 @@ struct ucc_hdlc_private { >> >> #define HDLC_HEAD_MASK 0x0000 >> #define DEFAULT_HDLC_HEAD 0xff44 >> -#define DEFAULT_ADDR_MASK 0x00ff >> +#define DEFAULT_ADDR_MASK 0x0000 >> #define DEFAULT_HDLC_ADDR 0x00ff >> >> #define BMR_GBL 0x20000000 >> -- > > It is not proper to set default HMASK to 0x0000, how about to add a new property standing for hmask into device tree, > If get this property from dtb, then set it with the value from dtb, otherwise, set it with default HMASK ox00ff? > > Best Regards > Qiang Zhao > ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value 2018-08-29 7:18 ` Christophe LEROY @ 2018-08-29 7:28 ` Joakim Tjernlund 0 siblings, 0 replies; 36+ messages in thread From: Joakim Tjernlund @ 2018-08-29 7:28 UTC (permalink / raw) To: christophe.leroy@c-s.fr, netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, qiang.zhao@nxp.com, David Gounaris On Wed, 2018-08-29 at 09:18 +0200, Christophe LEROY wrote: > CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe. > > > Le 29/08/2018 à 04:54, Qiang Zhao a écrit : > > From: David Gounaris <david.gounaris@infinera.com> > > Date: 2018/8/28 19:09 > > > Subject: [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value > > > > > > Set default HMASK to 0x0000 to use > > > promiscuous mode in the hdlc controller. > > Why do you need to do that ? > > An HDLC frame encapsulating Ethernet should look like: > > HDLC Frame includes: > – Opening Flag 7E hex > – Address field FF hex > – Control field 03 hex > – Information field Original Ethernet Packet, 1522 octets max. > – FCS CRC16 (2 bytes) > – Closing Flag 7E hex In our case the Eth frame starts directly after the Opening Flag so there is no FF address field. > > What do you mean by 'promiscuous mode' ? Just that we don't want any address filtering of packets. I don't think this would be a problem for pure HDLC frames either, do you? > > In any case, should a filter mask be changed for promiscuous mode, I > believe the change should be done at the time you enter promiscuous > mode, not at all time. > > Christophe > > > > > > > Signed-off-by: David Gounaris <david.gounaris@infinera.com> > > > --- > > > drivers/net/wan/fsl_ucc_hdlc.h | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdlc.h > > > index c21134c1f180..5bc3d1a6ca6e 100644 > > > --- a/drivers/net/wan/fsl_ucc_hdlc.h > > > +++ b/drivers/net/wan/fsl_ucc_hdlc.h > > > @@ -134,7 +134,7 @@ struct ucc_hdlc_private { > > > > > > #define HDLC_HEAD_MASK 0x0000 > > > #define DEFAULT_HDLC_HEAD 0xff44 > > > -#define DEFAULT_ADDR_MASK 0x00ff > > > +#define DEFAULT_ADDR_MASK 0x0000 > > > #define DEFAULT_HDLC_ADDR 0x00ff > > > > > > #define BMR_GBL 0x20000000 > > > -- > > > > It is not proper to set default HMASK to 0x0000, how about to add a new property standing for hmask into device tree, > > If get this property from dtb, then set it with the value from dtb, otherwise, set it with default HMASK ox00ff? > > > > Best Regards > > Qiang Zhao > > ^ permalink raw reply [flat|nested] 36+ messages in thread
* [PATCH 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode 2018-08-28 11:09 [PATCH 0/6] Ethernet over hdlc David Gounaris ` (3 preceding siblings ...) 2018-08-28 11:09 ` [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value David Gounaris @ 2018-08-28 11:09 ` David Gounaris 2018-08-28 11:09 ` [PATCH 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris 5 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-08-28 11:09 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev; +Cc: David Gounaris The following bits in the GUMR is changed for non tsa mode: CDS, CTSP and CTSS are set to zero. When set, there is no tx interrupts from the controller. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index 54e2b2143e36..e6154a6547e6 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -97,6 +97,13 @@ static int uhdlc_init(struct ucc_hdlc_private *priv) if (priv->tsa) { uf_info->tsa = 1; uf_info->ctsp = 1; + uf_info->cds = 1; + uf_info->ctss = 1; + } + else { + uf_info->cds = 0; + uf_info->ctsp = 0; + uf_info->ctss = 0; } /* This sets HPM register in CMXUCR register which configures a -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
* [PATCH 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler 2018-08-28 11:09 [PATCH 0/6] Ethernet over hdlc David Gounaris ` (4 preceding siblings ...) 2018-08-28 11:09 ` [PATCH 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris @ 2018-08-28 11:09 ` David Gounaris 5 siblings, 0 replies; 36+ messages in thread From: David Gounaris @ 2018-08-28 11:09 UTC (permalink / raw) To: qiang.zhao, netdev, linuxppc-dev; +Cc: David Gounaris Added tx timerout handler. This helps when troubleshooting. Signed-off-by: David Gounaris <david.gounaris@infinera.com> --- drivers/net/wan/fsl_ucc_hdlc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/wan/fsl_ucc_hdlc.c b/drivers/net/wan/fsl_ucc_hdlc.c index e6154a6547e6..30f416bace2c 100644 --- a/drivers/net/wan/fsl_ucc_hdlc.c +++ b/drivers/net/wan/fsl_ucc_hdlc.c @@ -1001,11 +1001,15 @@ static const struct dev_pm_ops uhdlc_pm_ops = { #define HDLC_PM_OPS NULL #endif +static void uhdlc_tx_timeout(struct net_device *ndev) { + netdev_err(ndev, "%s\n", __FUNCTION__); +} static const struct net_device_ops uhdlc_ops = { .ndo_open = uhdlc_open, .ndo_stop = uhdlc_close, .ndo_start_xmit = hdlc_start_xmit, .ndo_do_ioctl = uhdlc_ioctl, + .ndo_tx_timeout = uhdlc_tx_timeout, }; static int ucc_hdlc_probe(struct platform_device *pdev) @@ -1121,6 +1125,7 @@ static int ucc_hdlc_probe(struct platform_device *pdev) hdlc = dev_to_hdlc(dev); dev->tx_queue_len = 16; dev->netdev_ops = &uhdlc_ops; + dev->watchdog_timeo = 2*HZ; hdlc->attach = ucc_hdlc_attach; hdlc->xmit = ucc_hdlc_tx; netif_napi_add(dev, &uhdlc_priv->napi, ucc_hdlc_poll, 32); -- 2.13.6 ^ permalink raw reply related [flat|nested] 36+ messages in thread
end of thread, other threads:[~2018-09-04 9:38 UTC | newest] Thread overview: 36+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-08-28 11:09 [PATCH 0/6] Ethernet over hdlc David Gounaris 2018-08-28 11:09 ` [PATCH 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 4 David Gounaris 2018-08-28 13:34 ` Christophe LEROY 2018-08-29 7:09 ` Christophe LEROY 2018-08-29 13:13 ` [PATCH v2 0/6] Ethernet over hdlc David Gounaris 2018-08-29 13:13 ` [PATCH v2 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris 2018-09-01 7:58 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris 2018-09-01 8:03 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris 2018-09-01 5:55 ` David Miller 2018-09-01 8:05 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 4/6] net/wan/fsl_ucc_hdlc: hmask David Gounaris 2018-09-01 8:06 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris 2018-09-01 8:08 ` christophe leroy 2018-08-29 13:13 ` [PATCH v2 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris 2018-09-01 8:10 ` christophe leroy 2018-09-01 8:10 ` [PATCH v2 0/6] Ethernet over hdlc christophe leroy 2018-09-03 12:47 ` [PATCH v3 " David Gounaris 2018-09-03 12:47 ` [PATCH v3 1/6] net/wan/fsl_ucc_hdlc: allow ucc index up to 7 David Gounaris 2018-09-03 12:47 ` [PATCH v3 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris 2018-09-03 12:47 ` [PATCH v3 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris 2018-09-03 12:47 ` [PATCH v3 4/6] net/wan/fsl_ucc_hdlc: hmask David Gounaris 2018-09-03 12:47 ` [PATCH v3 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris 2018-09-03 12:47 ` [PATCH v3 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris 2018-09-04 5:14 ` [PATCH v3 0/6] Ethernet over hdlc David Miller 2018-08-28 11:09 ` [PATCH 2/6] net/wan/fsl_ucc_hdlc: allow PARITY_CRC16_PR0_CCITT parity David Gounaris 2018-08-28 11:09 ` [PATCH 3/6] net/wan/fsl_ucc_hdlc: Adding ARPHRD_ETHER David Gounaris 2018-08-28 13:36 ` Christophe LEROY 2018-08-28 11:09 ` [PATCH 4/6] net/wan/fsl_ucc_hdlc: default hmask value David Gounaris 2018-08-29 2:54 ` Qiang Zhao 2018-08-29 7:18 ` Christophe LEROY 2018-08-29 7:28 ` Joakim Tjernlund 2018-08-28 11:09 ` [PATCH 5/6] net/wan/fsl_ucc_hdlc: GUMR for non tsa mode David Gounaris 2018-08-28 11:09 ` [PATCH 6/6] net/wan/fsl_ucc_hdlc: tx timeout handler David Gounaris
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).