aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
diff options
context:
space:
mode:
authorShahed Shaikh <shahed.shaikh@qlogic.com>2013-01-25 05:20:36 -0500
committerDavid S. Miller <davem@davemloft.net>2013-01-27 01:00:08 -0500
commitefbcb1b20a08a8dd6faefbc04a63330703bc6b5e (patch)
tree8481e196056e6107b83eea1191ffa278567f3e59 /drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
parent776e7bded918d99f09d03e89b18bbad116ae45f6 (diff)
qlcnic: enable RSS for TCP over IPv6
o This patch enables RSS for TYPE-C packets to enable RSS for TCP over IPv6 Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c')
-rw-r--r--drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
index 8e0412bdf42d..186fe6e6eaaa 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c
@@ -756,7 +756,10 @@ int qlcnic_config_bridged_mode(struct qlcnic_adapter *adapter, u32 enable)
756} 756}
757 757
758 758
759#define RSS_HASHTYPE_IP_TCP 0x3 759#define QLCNIC_RSS_HASHTYPE_IP_TCP 0x3
760#define QLCNIC_ENABLE_TYPE_C_RSS BIT_10
761#define QLCNIC_RSS_FEATURE_FLAG (1ULL << 63)
762#define QLCNIC_RSS_IND_TABLE_MASK 0x7ULL
760 763
761int qlcnic_82xx_config_rss(struct qlcnic_adapter *adapter, int enable) 764int qlcnic_82xx_config_rss(struct qlcnic_adapter *adapter, int enable)
762{ 765{
@@ -783,13 +786,19 @@ int qlcnic_82xx_config_rss(struct qlcnic_adapter *adapter, int enable)
783 * 7-6: hash_type_ipv6 786 * 7-6: hash_type_ipv6
784 * 8: enable 787 * 8: enable
785 * 9: use indirection table 788 * 9: use indirection table
786 * 47-10: reserved 789 * 10: type-c rss
787 * 63-48: indirection table mask 790 * 11: udp rss
791 * 47-12: reserved
792 * 62-48: indirection table mask
793 * 63: feature flag
788 */ 794 */
789 word = ((u64)(RSS_HASHTYPE_IP_TCP & 0x3) << 4) | 795 word = ((u64)(QLCNIC_RSS_HASHTYPE_IP_TCP & 0x3) << 4) |
790 ((u64)(RSS_HASHTYPE_IP_TCP & 0x3) << 6) | 796 ((u64)(QLCNIC_RSS_HASHTYPE_IP_TCP & 0x3) << 6) |
791 ((u64)(enable & 0x1) << 8) | 797 ((u64)(enable & 0x1) << 8) |
792 ((0x7ULL) << 48); 798 ((u64)QLCNIC_RSS_IND_TABLE_MASK << 48) |
799 (u64)QLCNIC_ENABLE_TYPE_C_RSS |
800 (u64)QLCNIC_RSS_FEATURE_FLAG;
801
793 req.words[0] = cpu_to_le64(word); 802 req.words[0] = cpu_to_le64(word);
794 for (i = 0; i < 5; i++) 803 for (i = 0; i < 5; i++)
795 req.words[i+1] = cpu_to_le64(key[i]); 804 req.words[i+1] = cpu_to_le64(key[i]);