summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/brocade/bna/bfi_enet.h
diff options
context:
space:
mode:
authorRasesh Mody2013-12-18 02:07:35 +0100
committerDavid S. Miller2013-12-18 06:30:33 +0100
commite29aa33912dd71b1446e01d6d7a1b95d0e81f996 (patch)
treec8c3982ad0f174525e00aeaaf3e13ccd6c27496a /drivers/net/ethernet/brocade/bna/bfi_enet.h
parentbna: RX Filter Enhancements (diff)
downloadkernel-qcow2-linux-e29aa33912dd71b1446e01d6d7a1b95d0e81f996.tar.gz
kernel-qcow2-linux-e29aa33912dd71b1446e01d6d7a1b95d0e81f996.tar.xz
kernel-qcow2-linux-e29aa33912dd71b1446e01d6d7a1b95d0e81f996.zip
bna: Enable Multi Buffer RX
The CT2 HW supports multi-buffer Rx. This patch provides the necessary changes for bnad to use multi-buffer Rx feature. For BNAD, multi-buffer Rx is by default enabled when MTU is > 4096. For >4096 MTU, q0 data/large buffers are of 2048 size. As the resource requirements of multi-buffer Rx are different new Rx needs to be created to use this feature. ASIC posts multiple completions if frame exceeds buffer size. The last completion is marked with EOP flag. - Separate HQ and DQ enums for resource allocations and configurations. - rx_config and rxq structure changes to pass the correct info from bnad. - DQ depth need not be same as HQ depth. So CQ depth is adjusted accordingly. - Rx CFG frame size is taken from configured MTU. - Rx q0 buffer size is configured from bnad s rx_config when multi-buffer is enabled. - Poll for entire frame completion. - Once EOP completion is received gather the number of vectors used by the frame to submit it to the stack. - Changed MTU to frame size wherever necessary. Signed-off-by: Rasesh Mody <rmody@brocade.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/brocade/bna/bfi_enet.h')
-rw-r--r--drivers/net/ethernet/brocade/bna/bfi_enet.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/brocade/bna/bfi_enet.h b/drivers/net/ethernet/brocade/bna/bfi_enet.h
index 7d10e335c27d..ae072dc5d238 100644
--- a/drivers/net/ethernet/brocade/bna/bfi_enet.h
+++ b/drivers/net/ethernet/brocade/bna/bfi_enet.h
@@ -472,7 +472,8 @@ enum bfi_enet_hds_type {
struct bfi_enet_rx_cfg {
u8 rxq_type;
- u8 rsvd[3];
+ u8 rsvd[1];
+ u16 frame_size;
struct {
u8 max_header_size;