]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
be2net: do not use SCRATCHPAD register
authorSathya Perla <sathya.perla@emulex.com>
Fri, 24 Aug 2012 13:05:10 +0000 (18:35 +0530)
committerMaxim Uvarov <maxim.uvarov@oracle.com>
Mon, 27 Aug 2012 14:06:28 +0000 (07:06 -0700)
The CUST_SCRATCHPAD_CSR register is used for marking if FW cleanup is
needed. This is used in a crash kernel scenario. Do no use this register as
it is not available for some functions. Instead, always issue an FLR when
a function is probed *except* when VFs are preset (enabled in the previous
PF load).

Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/benet/be_hw.h
drivers/net/benet/be_main.c

index d9fb0c501fa15aa9b6b5f55ee4a4504adacb1bc8..7c8a710eac2fa6c3da9e633da2d124373c739db8 100644 (file)
@@ -58,8 +58,6 @@
 
 #define SLI_PORT_CONTROL_IP_MASK       0x08000000
 
-#define PCICFG_CUST_SCRATCHPAD_CSR     0x1EC
-
 /********* Memory BAR register ************/
 #define PCICFG_MEMBAR_CTRL_INT_CTRL_OFFSET     0xfc
 /* Host Interrupt Enable, if set interrupts are enabled although "PCI Interrupt
index d4907d7a9fc42a9c4a4ebfb13a8bc597449235e1..b7b77d9a25d37b5d872203addc3e97b44fe3b0db 100644 (file)
@@ -1023,6 +1023,8 @@ static int be_find_vfs(struct be_adapter *adapter, int vf_state)
        u16 offset, stride;
 
        pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_SRIOV);
+       if (!pos)
+               return 0;
        pci_read_config_word(pdev, pos + PCI_SRIOV_VF_OFFSET, &offset);
        pci_read_config_word(pdev, pos + PCI_SRIOV_VF_STRIDE, &stride);
 
@@ -2504,7 +2506,6 @@ static int be_clear(struct be_adapter *adapter)
        be_cmd_fw_clean(adapter);
 
        be_msix_disable(adapter);
-       pci_write_config_dword(adapter->pdev, PCICFG_CUST_SCRATCHPAD_CSR, 0);
        return 0;
 }
 
@@ -2745,7 +2746,6 @@ static int be_setup(struct be_adapter *adapter)
        if (be_pause_supported(adapter))
                adapter->phy.fc_autoneg = 1;
 
-       pci_write_config_dword(adapter->pdev, PCICFG_CUST_SCRATCHPAD_CSR, 1);
        return 0;
 err:
        be_clear(adapter);
@@ -3672,10 +3672,7 @@ reschedule:
 
 static bool be_reset_required(struct be_adapter *adapter)
 {
-       u32 reg;
-
-       pci_read_config_dword(adapter->pdev, PCICFG_CUST_SCRATCHPAD_CSR, &reg);
-       return reg;
+       return be_find_vfs(adapter, ENABLED) > 0 ? false : true;
 }
 
 static int __devinit be_probe(struct pci_dev *pdev,