@@ -910,6 +910,9 @@ int cxgb4_write_rss(const struct port_info *pi, const u16 *queues)
static int setup_rss(struct adapter *adap)
{
int i, err;
+#ifdef CONFIG_CHELSIO_T4_FCOE
+ u32 rss_config;
+#endif
for_each_port(adap, i) {
const struct port_info *pi = adap2pinfo(adap, i);
@@ -918,6 +921,11 @@ static int setup_rss(struct adapter *adap)
if (err)
return err;
}
+#ifdef CONFIG_CHELSIO_T4_FCOE
+ rss_config = t4_read_reg(adap, TP_RSS_CONFIG_A);
+ rss_config |= TNLFCOEEN_F | TNLFCOEMODE_F;
+ t4_write_reg(adap, TP_RSS_CONFIG_A, rss_config);
+#endif
return 0;
}
@@ -1856,6 +1856,14 @@
#define DISABLE_V(x) ((x) << DISABLE_S)
#define DISABLE_F DISABLE_V(1U)
+#define TNLFCOEMODE_S 23
+#define TNLFCOEMODE_V(x) ((x) << TNLFCOEMODE_S)
+#define TNLFCOEMODE_F TNLFCOEMODE_V(1U)
+
+#define TNLFCOEEN_S 21
+#define TNLFCOEEN_V(x) ((x) << TNLFCOEEN_S)
+#define TNLFCOEEN_F TNLFCOEEN_V(1U)
+
#define TP_RSS_CONFIG_TNL_A 0x7df4
#define MASKSIZE_S 28
Signed-off-by: Varun Prakash <varun@chelsio.com> --- drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 8 ++++++++ drivers/net/ethernet/chelsio/cxgb4/t4_regs.h | 8 ++++++++ 2 files changed, 16 insertions(+), 0 deletions(-)