Commit dfa15378 authored by David S. Miller's avatar David S. Miller

Merge branch 'bnxt_en-NS2-Nitro'

Michael Chan says:

====================
bnxt_en: Add support for NS2 Nitro.

This series adds support for the embedded version of the
ethernet controller (Nitro) in the North Star 2 SoC.  There are a number
of features not supported and a software workaround for a hardware rx
bug is required for Nitro A0.  Please review.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents cb924052 fa853dda
This diff is collapsed.
...@@ -695,7 +695,8 @@ struct bnxt_ring_grp_info { ...@@ -695,7 +695,8 @@ struct bnxt_ring_grp_info {
struct bnxt_vnic_info { struct bnxt_vnic_info {
u16 fw_vnic_id; /* returned by Chimp during alloc */ u16 fw_vnic_id; /* returned by Chimp during alloc */
u16 fw_rss_cos_lb_ctx; #define BNXT_MAX_CTX_PER_VNIC 2
u16 fw_rss_cos_lb_ctx[BNXT_MAX_CTX_PER_VNIC];
u16 fw_l2_ctx_id; u16 fw_l2_ctx_id;
#define BNXT_MAX_UC_ADDRS 4 #define BNXT_MAX_UC_ADDRS 4
__le64 fw_l2_filter_id[BNXT_MAX_UC_ADDRS]; __le64 fw_l2_filter_id[BNXT_MAX_UC_ADDRS];
...@@ -893,6 +894,7 @@ struct bnxt { ...@@ -893,6 +894,7 @@ struct bnxt {
#define CHIP_NUM_57301 0x16c8 #define CHIP_NUM_57301 0x16c8
#define CHIP_NUM_57302 0x16c9 #define CHIP_NUM_57302 0x16c9
#define CHIP_NUM_57304 0x16ca #define CHIP_NUM_57304 0x16ca
#define CHIP_NUM_58700 0x16cd
#define CHIP_NUM_57402 0x16d0 #define CHIP_NUM_57402 0x16d0
#define CHIP_NUM_57404 0x16d1 #define CHIP_NUM_57404 0x16d1
#define CHIP_NUM_57406 0x16d2 #define CHIP_NUM_57406 0x16d2
...@@ -954,6 +956,7 @@ struct bnxt { ...@@ -954,6 +956,7 @@ struct bnxt {
#define BNXT_FLAG_SHARED_RINGS 0x200 #define BNXT_FLAG_SHARED_RINGS 0x200
#define BNXT_FLAG_PORT_STATS 0x400 #define BNXT_FLAG_PORT_STATS 0x400
#define BNXT_FLAG_EEE_CAP 0x1000 #define BNXT_FLAG_EEE_CAP 0x1000
#define BNXT_FLAG_CHIP_NITRO_A0 0x1000000
#define BNXT_FLAG_ALL_CONFIG_FEATS (BNXT_FLAG_TPA | \ #define BNXT_FLAG_ALL_CONFIG_FEATS (BNXT_FLAG_TPA | \
BNXT_FLAG_RFS | \ BNXT_FLAG_RFS | \
...@@ -963,6 +966,7 @@ struct bnxt { ...@@ -963,6 +966,7 @@ struct bnxt {
#define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF) #define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF)
#define BNXT_NPAR(bp) ((bp)->port_partition_type) #define BNXT_NPAR(bp) ((bp)->port_partition_type)
#define BNXT_SINGLE_PF(bp) (BNXT_PF(bp) && !BNXT_NPAR(bp)) #define BNXT_SINGLE_PF(bp) (BNXT_PF(bp) && !BNXT_NPAR(bp))
#define BNXT_CHIP_TYPE_NITRO_A0(bp) ((bp)->flags & BNXT_FLAG_CHIP_NITRO_A0)
struct bnxt_napi **bnapi; struct bnxt_napi **bnapi;
......
...@@ -362,9 +362,13 @@ static void bnxt_get_channels(struct net_device *dev, ...@@ -362,9 +362,13 @@ static void bnxt_get_channels(struct net_device *dev,
channel->max_other = 0; channel->max_other = 0;
if (bp->flags & BNXT_FLAG_SHARED_RINGS) { if (bp->flags & BNXT_FLAG_SHARED_RINGS) {
channel->combined_count = bp->rx_nr_rings; channel->combined_count = bp->rx_nr_rings;
if (BNXT_CHIP_TYPE_NITRO_A0(bp))
channel->combined_count--;
} else { } else {
channel->rx_count = bp->rx_nr_rings; if (!BNXT_CHIP_TYPE_NITRO_A0(bp)) {
channel->tx_count = bp->tx_nr_rings_per_tc; channel->rx_count = bp->rx_nr_rings;
channel->tx_count = bp->tx_nr_rings_per_tc;
}
} }
} }
...@@ -387,6 +391,10 @@ static int bnxt_set_channels(struct net_device *dev, ...@@ -387,6 +391,10 @@ static int bnxt_set_channels(struct net_device *dev,
(channel->rx_count || channel->tx_count)) (channel->rx_count || channel->tx_count))
return -EINVAL; return -EINVAL;
if (BNXT_CHIP_TYPE_NITRO_A0(bp) && (channel->rx_count ||
channel->tx_count))
return -EINVAL;
if (channel->combined_count) if (channel->combined_count)
sh = true; sh = true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment