* [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
* [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
* [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
* [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
* 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 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
* 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
>=20
> Set default HMASK to 0x0000 to use
> promiscuous mode in the hdlc controller.
>=20
> Signed-off-by: David Gounaris <david.gounaris@infinera.com>
> ---
> drivers/net/wan/fsl_ucc_hdlc.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>=20
> diff --git a/drivers/net/wan/fsl_ucc_hdlc.h b/drivers/net/wan/fsl_ucc_hdl=
c.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 {
>=20
> #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
>=20
> #define BMR_GBL 0x20000000
> --
It is not proper to set default HMASK to 0x0000, how about to add a new pro=
perty standing for hmask into device tree,
If get this property from dtb, then set it with the value from dtb, otherwi=
se, set it with default HMASK ox00ff?
Best Regards
Qiang Zhao
^ 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
* 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
T24gV2VkLCAyMDE4LTA4LTI5IGF0IDA5OjE4ICswMjAwLCBDaHJpc3RvcGhlIExFUk9ZIHdyb3Rl
Og0KPiBDQVVUSU9OOiBUaGlzIGVtYWlsIG9yaWdpbmF0ZWQgZnJvbSBvdXRzaWRlIG9mIHRoZSBv
cmdhbml6YXRpb24uIERvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIGF0dGFjaG1lbnRzIHVubGVz
cyB5b3UgcmVjb2duaXplIHRoZSBzZW5kZXIgYW5kIGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZS4N
Cj4gDQo+IA0KPiBMZSAyOS8wOC8yMDE4IMOgIDA0OjU0LCBRaWFuZyBaaGFvIGEgw6ljcml0IDoN
Cj4gPiBGcm9tOiBEYXZpZCBHb3VuYXJpcyA8ZGF2aWQuZ291bmFyaXNAaW5maW5lcmEuY29tPg0K
PiA+IERhdGU6IDIwMTgvOC8yOCAxOTowOQ0KPiA+ID4gU3ViamVjdDogW1BBVENIIDQvNl0gbmV0
L3dhbi9mc2xfdWNjX2hkbGM6IGRlZmF1bHQgaG1hc2sgdmFsdWUNCj4gPiA+IA0KPiA+ID4gU2V0
IGRlZmF1bHQgSE1BU0sgdG8gMHgwMDAwIHRvIHVzZQ0KPiA+ID4gcHJvbWlzY3VvdXMgbW9kZSBp
biB0aGUgaGRsYyBjb250cm9sbGVyLg0KPiANCj4gV2h5IGRvIHlvdSBuZWVkIHRvIGRvIHRoYXQg
Pw0KPiANCj4gQW4gSERMQyBmcmFtZSBlbmNhcHN1bGF0aW5nIEV0aGVybmV0IHNob3VsZCBsb29r
IGxpa2U6DQo+IA0KPiBIRExDIEZyYW1lIGluY2x1ZGVzOg0KPiDigJMgT3BlbmluZyBGbGFnICAg
ICAgICAgIDdFIGhleA0KPiDigJMgQWRkcmVzcyBmaWVsZCAgICAgICAgIEZGIGhleA0KPiDigJMg
Q29udHJvbCBmaWVsZCAgICAgICAgIDAzIGhleA0KPiDigJMgSW5mb3JtYXRpb24gZmllbGQgICAg
IE9yaWdpbmFsIEV0aGVybmV0IFBhY2tldCwgMTUyMiBvY3RldHMgbWF4Lg0KPiDigJMgRkNTIENS
QzE2ICAgICAgICAgICAgICgyIGJ5dGVzKQ0KPiDigJMgQ2xvc2luZyBGbGFnICAgICAgICAgIDdF
IGhleA0KDQpJbiBvdXIgY2FzZSB0aGUgRXRoIGZyYW1lIHN0YXJ0cyBkaXJlY3RseSBhZnRlciB0
aGUgT3BlbmluZyBGbGFnIHNvDQp0aGVyZSBpcyBubyBGRiBhZGRyZXNzIGZpZWxkLg0KDQo+IA0K
PiBXaGF0IGRvIHlvdSBtZWFuIGJ5ICdwcm9taXNjdW91cyBtb2RlJyA/DQoNCkp1c3QgdGhhdCB3
ZSBkb24ndCB3YW50IGFueSBhZGRyZXNzIGZpbHRlcmluZyBvZiBwYWNrZXRzLiBJIGRvbid0IHRo
aW5rIHRoaXMgd291bGQNCmJlIGEgcHJvYmxlbSBmb3IgcHVyZSBIRExDIGZyYW1lcyBlaXRoZXIs
IGRvIHlvdT8NCg0KPiANCj4gSW4gYW55IGNhc2UsIHNob3VsZCBhIGZpbHRlciBtYXNrIGJlIGNo
YW5nZWQgZm9yIHByb21pc2N1b3VzIG1vZGUsIEkNCj4gYmVsaWV2ZSB0aGUgY2hhbmdlIHNob3Vs
ZCBiZSBkb25lIGF0IHRoZSB0aW1lIHlvdSBlbnRlciBwcm9taXNjdW91cw0KPiBtb2RlLCBub3Qg
YXQgYWxsIHRpbWUuDQo+IA0KPiBDaHJpc3RvcGhlDQo+IA0KPiA+ID4gDQo+ID4gPiBTaWduZWQt
b2ZmLWJ5OiBEYXZpZCBHb3VuYXJpcyA8ZGF2aWQuZ291bmFyaXNAaW5maW5lcmEuY29tPg0KPiA+
ID4gLS0tDQo+ID4gPiAgIGRyaXZlcnMvbmV0L3dhbi9mc2xfdWNjX2hkbGMuaCB8IDIgKy0NCj4g
PiA+ICAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4g
PiANCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vZnNsX3VjY19oZGxjLmggYi9k
cml2ZXJzL25ldC93YW4vZnNsX3VjY19oZGxjLmgNCj4gPiA+IGluZGV4IGMyMTEzNGMxZjE4MC4u
NWJjM2QxYTZjYTZlIDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvd2FuL2ZzbF91Y2Nf
aGRsYy5oDQo+ID4gPiArKysgYi9kcml2ZXJzL25ldC93YW4vZnNsX3VjY19oZGxjLmgNCj4gPiA+
IEBAIC0xMzQsNyArMTM0LDcgQEAgc3RydWN0IHVjY19oZGxjX3ByaXZhdGUgew0KPiA+ID4gDQo+
ID4gPiAgICNkZWZpbmUgSERMQ19IRUFEX01BU0sgICAgICAgICAgICAgMHgwMDAwDQo+ID4gPiAg
ICNkZWZpbmUgREVGQVVMVF9IRExDX0hFQUQgIDB4ZmY0NA0KPiA+ID4gLSNkZWZpbmUgREVGQVVM
VF9BRERSX01BU0sgICAweDAwZmYNCj4gPiA+ICsjZGVmaW5lIERFRkFVTFRfQUREUl9NQVNLICAg
MHgwMDAwDQo+ID4gPiAgICNkZWZpbmUgREVGQVVMVF9IRExDX0FERFIgIDB4MDBmZg0KPiA+ID4g
DQo+ID4gPiAgICNkZWZpbmUgQk1SX0dCTCAgICAgICAgICAgICAgICAgICAgMHgyMDAwMDAwMA0K
PiA+ID4gLS0NCj4gPiANCj4gPiBJdCBpcyBub3QgcHJvcGVyIHRvIHNldCBkZWZhdWx0IEhNQVNL
IHRvIDB4MDAwMCwgaG93IGFib3V0IHRvIGFkZCBhIG5ldyBwcm9wZXJ0eSBzdGFuZGluZyBmb3Ig
aG1hc2sgaW50byBkZXZpY2UgdHJlZSwNCj4gPiBJZiBnZXQgdGhpcyBwcm9wZXJ0eSBmcm9tIGR0
YiwgdGhlbiBzZXQgaXQgd2l0aCB0aGUgdmFsdWUgZnJvbSBkdGIsIG90aGVyd2lzZSwgc2V0IGl0
IHdpdGggZGVmYXVsdCBITUFTSyBveDAwZmY/DQo+ID4gDQo+ID4gQmVzdCBSZWdhcmRzDQo+ID4g
UWlhbmcgWmhhbw0KPiA+IA0KDQo=
^ 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
* [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
* [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
* [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
* [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
* [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 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 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
* 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
* 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
* 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
* 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
* 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
end of thread, other threads:[~2018-09-04 5:26 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).