Explorar o código

cxgb4: Fix for write-combining stats configuration

The write-combining configuration register SGE_STAT_CFG_A needs to
be configured after FW initializes the adapter, else FW will reset
the configuration

Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Hariprasad Shenai %!s(int64=10) %!d(string=hai) anos
pai
achega
2a485cf7db
Modificáronse 1 ficheiros con 5 adicións e 2 borrados
  1. 5 2
      drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

+ 5 - 2
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

@@ -4719,8 +4719,6 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 			err = -ENOMEM;
 			err = -ENOMEM;
 			goto out_free_adapter;
 			goto out_free_adapter;
 		}
 		}
-		t4_write_reg(adapter, SGE_STAT_CFG_A,
-			     STATSOURCE_T5_V(7) | STATMODE_V(0));
 	}
 	}
 
 
 	setup_memwin(adapter);
 	setup_memwin(adapter);
@@ -4732,6 +4730,11 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (err)
 	if (err)
 		goto out_unmap_bar;
 		goto out_unmap_bar;
 
 
+	/* configure SGE_STAT_CFG_A to read WC stats */
+	if (!is_t4(adapter->params.chip))
+		t4_write_reg(adapter, SGE_STAT_CFG_A,
+			     STATSOURCE_T5_V(7) | STATMODE_V(0));
+
 	for_each_port(adapter, i) {
 	for_each_port(adapter, i) {
 		struct net_device *netdev;
 		struct net_device *netdev;