}
 
 
-#define RSS_HASHTYPE_IP_TCP    0x3
+#define QLCNIC_RSS_HASHTYPE_IP_TCP     0x3
+#define QLCNIC_ENABLE_TYPE_C_RSS       BIT_10
+#define QLCNIC_RSS_FEATURE_FLAG        (1ULL << 63)
+#define QLCNIC_RSS_IND_TABLE_MASK      0x7ULL
 
 int qlcnic_82xx_config_rss(struct qlcnic_adapter *adapter, int enable)
 {
         *      7-6: hash_type_ipv6
         *        8: enable
         *        9: use indirection table
-        *    47-10: reserved
-        *    63-48: indirection table mask
+        *       10: type-c rss
+        *       11: udp rss
+        *    47-12: reserved
+        *    62-48: indirection table mask
+        *       63: feature flag
         */
-       word =  ((u64)(RSS_HASHTYPE_IP_TCP & 0x3) << 4) |
-               ((u64)(RSS_HASHTYPE_IP_TCP & 0x3) << 6) |
+       word =  ((u64)(QLCNIC_RSS_HASHTYPE_IP_TCP & 0x3) << 4) |
+               ((u64)(QLCNIC_RSS_HASHTYPE_IP_TCP & 0x3) << 6) |
                ((u64)(enable & 0x1) << 8) |
-               ((0x7ULL) << 48);
+               ((u64)QLCNIC_RSS_IND_TABLE_MASK << 48) |
+               (u64)QLCNIC_ENABLE_TYPE_C_RSS |
+               (u64)QLCNIC_RSS_FEATURE_FLAG;
+
        req.words[0] = cpu_to_le64(word);
        for (i = 0; i < 5; i++)
                req.words[i+1] = cpu_to_le64(key[i]);