Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Sep 2010 21:50:37 +0000 (UTC)
From:      Navdeep Parhar <np@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r212710 - head/sys/dev/cxgb/common
Message-ID:  <201009152150.o8FLobrJ052104@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: np
Date: Wed Sep 15 21:50:37 2010
New Revision: 212710
URL: http://svn.freebsd.org/changeset/base/212710

Log:
  Fix t3_gate_rx_traffic and t3_open_rx_traffic. Parts of them always operated
  on XGMAC0 instead of the specified XGMAC.
  
  MFC after:	3 days

Modified:
  head/sys/dev/cxgb/common/cxgb_t3_hw.c

Modified: head/sys/dev/cxgb/common/cxgb_t3_hw.c
==============================================================================
--- head/sys/dev/cxgb/common/cxgb_t3_hw.c	Wed Sep 15 21:44:31 2010	(r212709)
+++ head/sys/dev/cxgb/common/cxgb_t3_hw.c	Wed Sep 15 21:50:37 2010	(r212710)
@@ -1441,16 +1441,18 @@ static void t3_gate_rx_traffic(struct cm
 	t3_mac_disable_exact_filters(mac);
 
 	/* stop broadcast, multicast, promiscuous mode traffic */
-	*rx_cfg = t3_read_reg(mac->adapter, A_XGM_RX_CFG);
-	t3_set_reg_field(mac->adapter, A_XGM_RX_CFG, 
+	*rx_cfg = t3_read_reg(mac->adapter, A_XGM_RX_CFG + mac->offset);
+	t3_set_reg_field(mac->adapter, A_XGM_RX_CFG + mac->offset, 
 			 F_ENHASHMCAST | F_DISBCAST | F_COPYALLFRAMES,
 			 F_DISBCAST);
 
-	*rx_hash_high = t3_read_reg(mac->adapter, A_XGM_RX_HASH_HIGH);
-	t3_write_reg(mac->adapter, A_XGM_RX_HASH_HIGH, 0);
-
-	*rx_hash_low = t3_read_reg(mac->adapter, A_XGM_RX_HASH_LOW);
-	t3_write_reg(mac->adapter, A_XGM_RX_HASH_LOW, 0);
+	*rx_hash_high = t3_read_reg(mac->adapter, A_XGM_RX_HASH_HIGH +
+	    mac->offset);
+	t3_write_reg(mac->adapter, A_XGM_RX_HASH_HIGH + mac->offset, 0);
+
+	*rx_hash_low = t3_read_reg(mac->adapter, A_XGM_RX_HASH_LOW +
+	    mac->offset);
+	t3_write_reg(mac->adapter, A_XGM_RX_HASH_LOW + mac->offset, 0);
 
 	/* Leave time to drain max RX fifo */
 	msleep(1);
@@ -1460,11 +1462,13 @@ static void t3_open_rx_traffic(struct cm
 			       u32 rx_hash_high, u32 rx_hash_low)
 {
 	t3_mac_enable_exact_filters(mac);
-	t3_set_reg_field(mac->adapter, A_XGM_RX_CFG, 
+	t3_set_reg_field(mac->adapter, A_XGM_RX_CFG + mac->offset,
 			 F_ENHASHMCAST | F_DISBCAST | F_COPYALLFRAMES,
 			 rx_cfg);
-	t3_write_reg(mac->adapter, A_XGM_RX_HASH_HIGH, rx_hash_high);
-	t3_write_reg(mac->adapter, A_XGM_RX_HASH_LOW, rx_hash_low);
+	t3_write_reg(mac->adapter, A_XGM_RX_HASH_HIGH + mac->offset,
+	    rx_hash_high);
+	t3_write_reg(mac->adapter, A_XGM_RX_HASH_LOW + mac->offset,
+	    rx_hash_low);
 }
 
 static int t3_detect_link_fault(adapter_t *adapter, int port_id)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009152150.o8FLobrJ052104>