OpenCloudOS-Kernel/drivers/net/ethernet/broadcom
Michael Chan a588e4580a bnxt_en: Add interface to support RDMA driver.
Since the network driver and RDMA driver operate on the same PCI function,
we need to create an interface to allow the RDMA driver to share resources
with the network driver.

1. Create a new bnxt_en_dev struct which will be returned by
bnxt_ulp_probe() upon success.  After that, all calls from the RDMA driver
to bnxt_en will pass a pointer to this struct.

2. This struct contains additional function pointers to register, request
msix, send fw messages, register for async events.

3. If the RDMA driver wants to enable RDMA on the function, it needs to
call the function pointer bnxt_register_device().  A ulp_ops structure
is passed for RCU protected upcalls from bnxt_en to the RDMA driver.

4. The RDMA driver can call firmware APIs using the bnxt_send_fw_msg()
function pointer.

5. 1 stats context is reserved when the RDMA driver registers.  MSIX
and completion rings are reserved when the RDMA driver calls
bnxt_request_msix() function pointer.

6. When the RDMA driver calls bnxt_unregister_device(), all RDMA resources
will be cleaned up.

v2: Fixed 2 uninitialized variable warnings.

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-07 10:59:26 -05:00
..
bnx2x Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-06 21:33:19 -05:00
bnxt bnxt_en: Add interface to support RDMA driver. 2016-12-07 10:59:26 -05:00
genet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
Kconfig bnxt_en: Implement DCBNL to support host-based DCBX. 2016-12-05 13:21:40 -05:00
Makefile net: ethernet: bgmac: Add platform device support 2016-07-09 18:10:41 -04:00
b44.c ethernet/broadcom: use core min/max MTU checking 2016-10-18 11:34:18 -04:00
b44.h net: ethernet: broadcom: b44: use phydev from struct net_device 2016-09-19 21:39:11 -04:00
bcm63xx_enet.c net: bcm63xx_enet: Fix build failure with phy_ethtool_nway_reset 2016-11-15 21:56:25 -05:00
bcm63xx_enet.h net: ethernet: broadcom: bcm63xx: use phydev from struct net_device 2016-09-19 21:39:12 -04:00
bcmsysport.c net: ethernet: bcmsysport: fix fixed-link phydev leaks 2016-11-29 23:17:02 -05:00
bcmsysport.h net: ethernet: bcmsysport: use phydev from struct net_device 2016-06-19 16:15:55 -07:00
bgmac-bcma-mdio.c net: ethernet: bgmac: Add platform device support 2016-07-09 18:10:41 -04:00
bgmac-bcma.c net: ethernet: bgmac: device tree phy enablement 2016-11-07 13:11:22 -05:00
bgmac-platform.c net: ethernet: bgmac: add NS2 support 2016-11-07 13:11:22 -05:00
bgmac.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-11-15 10:54:36 -05:00
bgmac.h net: ethernet: bgmac: add NS2 support 2016-11-07 13:11:22 -05:00
bnx2.c bnx2: use READ_ONCE() instead of barrier() 2016-11-21 11:32:34 -05:00
bnx2.h ethernet/broadcom: use core min/max MTU checking 2016-10-18 11:34:18 -04:00
bnx2_fw.h bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
cnic.c cnic: call cp->stop_hw() in cnic_start_hw() on allocation failure 2016-05-06 15:44:54 -04:00
cnic.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
cnic_defs.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
cnic_if.h cnic: Add the interfaces to get FC-NPIV table. 2015-08-06 21:54:12 -07:00
sb1250-mac.c ethernet: fix min/max MTU typos 2016-10-27 16:18:50 -04:00
tg3.c ethernet/broadcom: use core min/max MTU checking 2016-10-18 11:34:18 -04:00
tg3.h mdio: Move allocation of interrupts into core 2016-01-07 14:31:26 -05:00