aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/emulex
diff options
context:
space:
mode:
authorPadmanabh Ratnakar <padmanabh.ratnakar@emulex.com>2012-07-11 23:57:47 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-12 11:16:47 -0400
commitd3bd3a5eeb087bf6a06e9bdfc589096608f933a0 (patch)
treec21c093ac32dfd54140e3e700844a9c1338da99c /drivers/net/ethernet/emulex
parentb4e32a71692aa2b183d9df8d6558c169b47a263c (diff)
be2net: Enable RSS UDP hashing for Lancer and Skyhawk
Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex')
-rw-r--r--drivers/net/ethernet/emulex/benet/be.h3
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.c7
-rw-r--r--drivers/net/ethernet/emulex/benet/be_cmds.h2
3 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index e2dfe3114eb1..330d59af0576 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -457,6 +457,9 @@ struct be_adapter {
457#define lancer_chip(adapter) ((adapter->pdev->device == OC_DEVICE_ID3) || \ 457#define lancer_chip(adapter) ((adapter->pdev->device == OC_DEVICE_ID3) || \
458 (adapter->pdev->device == OC_DEVICE_ID4)) 458 (adapter->pdev->device == OC_DEVICE_ID4))
459 459
460#define skyhawk_chip(adapter) (adapter->pdev->device == OC_DEVICE_ID5)
461
462
460#define be_roce_supported(adapter) ((adapter->if_type == SLI_INTF_TYPE_3 || \ 463#define be_roce_supported(adapter) ((adapter->if_type == SLI_INTF_TYPE_3 || \
461 adapter->sli_family == SKYHAWK_SLI_FAMILY) && \ 464 adapter->sli_family == SKYHAWK_SLI_FAMILY) && \
462 (adapter->function_mode & RDMA_ENABLED)) 465 (adapter->function_mode & RDMA_ENABLED))
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c
index 8730f0e6af30..ddfca658559d 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.c
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.c
@@ -1792,6 +1792,13 @@ int be_cmd_rss_config(struct be_adapter *adapter, u8 *rsstable, u16 table_size)
1792 req->if_id = cpu_to_le32(adapter->if_handle); 1792 req->if_id = cpu_to_le32(adapter->if_handle);
1793 req->enable_rss = cpu_to_le16(RSS_ENABLE_TCP_IPV4 | RSS_ENABLE_IPV4 | 1793 req->enable_rss = cpu_to_le16(RSS_ENABLE_TCP_IPV4 | RSS_ENABLE_IPV4 |
1794 RSS_ENABLE_TCP_IPV6 | RSS_ENABLE_IPV6); 1794 RSS_ENABLE_TCP_IPV6 | RSS_ENABLE_IPV6);
1795
1796 if (lancer_chip(adapter) || skyhawk_chip(adapter)) {
1797 req->hdr.version = 1;
1798 req->enable_rss |= cpu_to_le16(RSS_ENABLE_UDP_IPV4 |
1799 RSS_ENABLE_UDP_IPV6);
1800 }
1801
1795 req->cpu_table_size_log2 = cpu_to_le16(fls(table_size) - 1); 1802 req->cpu_table_size_log2 = cpu_to_le16(fls(table_size) - 1);
1796 memcpy(req->cpu_table, rsstable, table_size); 1803 memcpy(req->cpu_table, rsstable, table_size);
1797 memcpy(req->hash, myhash, sizeof(myhash)); 1804 memcpy(req->hash, myhash, sizeof(myhash));
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h
index 88f72374599c..45d70def92d6 100644
--- a/drivers/net/ethernet/emulex/benet/be_cmds.h
+++ b/drivers/net/ethernet/emulex/benet/be_cmds.h
@@ -1089,6 +1089,8 @@ struct be_cmd_resp_query_fw_cfg {
1089#define RSS_ENABLE_TCP_IPV4 0x2 1089#define RSS_ENABLE_TCP_IPV4 0x2
1090#define RSS_ENABLE_IPV6 0x4 1090#define RSS_ENABLE_IPV6 0x4
1091#define RSS_ENABLE_TCP_IPV6 0x8 1091#define RSS_ENABLE_TCP_IPV6 0x8
1092#define RSS_ENABLE_UDP_IPV4 0x10
1093#define RSS_ENABLE_UDP_IPV6 0x20
1092 1094
1093struct be_cmd_req_rss_config { 1095struct be_cmd_req_rss_config {
1094 struct be_cmd_req_hdr hdr; 1096 struct be_cmd_req_hdr hdr;