diff options
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c | 21 |
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 | ||
761 | int qlcnic_82xx_config_rss(struct qlcnic_adapter *adapter, int enable) | 764 | int 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]); |