Commit 6edae7a4 authored by Amit Kumar Salecha's avatar Amit Kumar Salecha Committed by David S. Miller

qlcnic: fix caching window register

o Window register is not per pci-func, so caching can
result in expected result.
Signed-off-by: default avatarAmit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent deffab05
...@@ -399,9 +399,6 @@ struct qlcnic_hardware_context { ...@@ -399,9 +399,6 @@ struct qlcnic_hardware_context {
unsigned long pci_len0; unsigned long pci_len0;
u32 ocm_win;
u32 crb_win;
rwlock_t crb_lock; rwlock_t crb_lock;
struct mutex mem_lock; struct mutex mem_lock;
......
...@@ -776,9 +776,6 @@ qlcnic_pci_set_crbwindow_2M(struct qlcnic_adapter *adapter, ulong off) ...@@ -776,9 +776,6 @@ qlcnic_pci_set_crbwindow_2M(struct qlcnic_adapter *adapter, ulong off)
window = CRB_HI(off); window = CRB_HI(off);
if (adapter->ahw.crb_win == window)
return;
writel(window, addr); writel(window, addr);
if (readl(addr) != window) { if (readl(addr) != window) {
if (printk_ratelimit()) if (printk_ratelimit())
...@@ -786,7 +783,6 @@ qlcnic_pci_set_crbwindow_2M(struct qlcnic_adapter *adapter, ulong off) ...@@ -786,7 +783,6 @@ qlcnic_pci_set_crbwindow_2M(struct qlcnic_adapter *adapter, ulong off)
"failed to set CRB window to %d off 0x%lx\n", "failed to set CRB window to %d off 0x%lx\n",
window, off); window, off);
} }
adapter->ahw.crb_win = window;
} }
int int
...@@ -874,7 +870,6 @@ qlcnic_pci_set_window_2M(struct qlcnic_adapter *adapter, ...@@ -874,7 +870,6 @@ qlcnic_pci_set_window_2M(struct qlcnic_adapter *adapter,
/* read back to flush */ /* read back to flush */
readl(adapter->ahw.ocm_win_crb); readl(adapter->ahw.ocm_win_crb);
adapter->ahw.ocm_win = window;
*start = QLCNIC_PCI_OCM0_2M + GET_MEM_OFFS_2M(addr); *start = QLCNIC_PCI_OCM0_2M + GET_MEM_OFFS_2M(addr);
return 0; return 0;
} }
......
...@@ -517,13 +517,6 @@ qlcnic_setup_pci_map(struct qlcnic_adapter *adapter) ...@@ -517,13 +517,6 @@ qlcnic_setup_pci_map(struct qlcnic_adapter *adapter)
struct pci_dev *pdev = adapter->pdev; struct pci_dev *pdev = adapter->pdev;
int pci_func = adapter->ahw.pci_func; int pci_func = adapter->ahw.pci_func;
/*
* Set the CRB window to invalid. If any register in window 0 is
* accessed it should set the window to 0 and then reset it to 1.
*/
adapter->ahw.crb_win = -1;
adapter->ahw.ocm_win = -1;
/* remap phys address */ /* remap phys address */
mem_base = pci_resource_start(pdev, 0); /* 0 is for BAR 0 */ mem_base = pci_resource_start(pdev, 0); /* 0 is for BAR 0 */
mem_len = pci_resource_len(pdev, 0); mem_len = pci_resource_len(pdev, 0);
...@@ -1311,9 +1304,6 @@ qlcnic_resume(struct pci_dev *pdev) ...@@ -1311,9 +1304,6 @@ qlcnic_resume(struct pci_dev *pdev)
pci_set_master(pdev); pci_set_master(pdev);
pci_restore_state(pdev); pci_restore_state(pdev);
adapter->ahw.crb_win = -1;
adapter->ahw.ocm_win = -1;
err = qlcnic_start_firmware(adapter); err = qlcnic_start_firmware(adapter);
if (err) { if (err) {
dev_err(&pdev->dev, "failed to start firmware\n"); dev_err(&pdev->dev, "failed to start firmware\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment