android_kernel_oneplus_msm8998/drivers/net/ethernet/broadcom
Andy Gospodarek c5bad811ca bgmac: stop clearing DMA receive control register right after it is set
[ Upstream commit fcdefccac976ee51dd6071832b842d8fb41c479c ]

Current bgmac code initializes some DMA settings in the receive control
register for some hardware and then immediately clears those settings.
Not clearing those settings results in ~420Mbps *improvement* in
throughput; this system can now receive frames at line-rate on Broadcom
5871x hardware compared to ~520Mbps today.  I also tested a few other
values but found there to be no discernible difference in CPU
utilization even if burst size and prefetching values are different.

On the hardware tested there was no need to keep the code that cleared
all but bits 16-17, but since there is a wide variety of hardware that
used this driver (I did not look at all hardware docs for hardware using
this IP block), I find it wise to move this call up and clear bits just
after reading the default value from the hardware rather than completely
removing it.

This is a good candidate for -stable >=3.14 since that is when the code
that was supposed to improve performance (but did not) was introduced.

Signed-off-by: Andy Gospodarek <gospo@broadcom.com>
Fixes: 56ceecde1f ("bgmac: initialize the DMA controller of core...")
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-11-21 10:06:39 +01:00
..
bnx2x bnx2x: Prevent false warning for lack of FC NPIV 2016-10-28 03:01:34 -04:00
bnxt bnxt_en: Implement missing tx timeout reset logic. 2015-12-11 23:34:06 -05:00
genet net: bcmgenet: fix dma api length mismatch 2016-04-20 15:42:04 +09:00
b44.c
b44.h
bcm63xx_enet.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-10-24 06:54:12 -07:00
bcm63xx_enet.h
bcmsysport.c drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
bcmsysport.h
bgmac.c bgmac: stop clearing DMA receive control register right after it is set 2016-11-21 10:06:39 +01:00
bgmac.h
bnx2.c BNX2: free temp_stats_blk on error path 2015-10-12 19:33:46 -07:00
bnx2.h BNX2: fix a Null Pointer for stats_blk 2015-10-11 05:06:21 -07:00
bnx2_fw.h
cnic.c
cnic.h
cnic_defs.h
cnic_if.h
Kconfig bnxt_en: add VXLAN dependency 2015-11-05 00:00:25 -05:00
Makefile bnxt_en: New Broadcom ethernet driver. 2015-10-22 19:30:33 -07:00
sb1250-mac.c
tg3.c tg3: Avoid NULL pointer dereference in tg3_io_error_detected() 2016-11-15 07:46:37 +01:00
tg3.h