| From foo@baz Fri Mar 15 21:00:09 PDT 2019 |
| From: Masaru Nagai <masaru.nagai.vx@renesas.com> |
| Date: Thu, 7 Mar 2019 11:24:47 +0100 |
| Subject: ravb: Decrease TxFIFO depth of Q3 and Q2 to one |
| |
| From: Masaru Nagai <masaru.nagai.vx@renesas.com> |
| |
| [ Upstream commit ae9819e339b451da7a86ab6fe38ecfcb6814e78a ] |
| |
| Hardware has the CBS (Credit Based Shaper) which affects only Q3 |
| and Q2. When updating the CBS settings, even if the driver does so |
| after waiting for Tx DMA finished, there is a possibility that frame |
| data still remains in TxFIFO. |
| |
| To avoid this, decrease TxFIFO depth of Q3 and Q2 to one. |
| |
| This patch has been exercised this using netperf TCP_MAERTS, TCP_STREAM |
| and UDP_STREAM tests run on an Ebisu board. No performance change was |
| detected, outside of noise in the tests, both in terms of throughput and |
| CPU utilisation. |
| |
| Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper") |
| Signed-off-by: Masaru Nagai <masaru.nagai.vx@renesas.com> |
| Signed-off-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com> |
| [simon: updated changelog] |
| Signed-off-by: Simon Horman <horms+renesas@verge.net.au> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/renesas/ravb_main.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/renesas/ravb_main.c |
| +++ b/drivers/net/ethernet/renesas/ravb_main.c |
| @@ -457,7 +457,7 @@ static int ravb_dmac_init(struct net_dev |
| RCR_EFFS | RCR_ENCF | RCR_ETS0 | RCR_ESF | 0x18000000, RCR); |
| |
| /* Set FIFO size */ |
| - ravb_write(ndev, TGC_TQP_AVBMODE1 | 0x00222200, TGC); |
| + ravb_write(ndev, TGC_TQP_AVBMODE1 | 0x00112200, TGC); |
| |
| /* Timestamp enable */ |
| ravb_write(ndev, TCCR_TFEN, TCCR); |