diff options
author | Amit Kumar Salecha <amit.salecha@qlogic.com> | 2010-05-12 23:07:44 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-05-14 06:06:54 -0400 |
commit | 6edae7a4848ae5b363dcc7d8ee4f3f7a34e31e36 (patch) | |
tree | f3abc76586b0af5308c72eb18abbf95e6b9d0cbc /drivers/net/qlcnic | |
parent | deffab05308f783482d11c1bb52f24afa94cd632 (diff) |
qlcnic: fix caching window register
o Window register is not per pci-func, so caching can
result in expected result.
Signed-off-by: Amit Kumar Salecha <amit.salecha@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/qlcnic')
-rw-r--r-- | drivers/net/qlcnic/qlcnic.h | 3 | ||||
-rw-r--r-- | drivers/net/qlcnic/qlcnic_hw.c | 5 | ||||
-rw-r--r-- | drivers/net/qlcnic/qlcnic_main.c | 10 |
3 files changed, 0 insertions, 18 deletions
diff --git a/drivers/net/qlcnic/qlcnic.h b/drivers/net/qlcnic/qlcnic.h index 2fba9cd5946f..cfedcbdd8c75 100644 --- a/drivers/net/qlcnic/qlcnic.h +++ b/drivers/net/qlcnic/qlcnic.h | |||
@@ -399,9 +399,6 @@ struct qlcnic_hardware_context { | |||
399 | 399 | ||
400 | unsigned long pci_len0; | 400 | unsigned long pci_len0; |
401 | 401 | ||
402 | u32 ocm_win; | ||
403 | u32 crb_win; | ||
404 | |||
405 | rwlock_t crb_lock; | 402 | rwlock_t crb_lock; |
406 | struct mutex mem_lock; | 403 | struct mutex mem_lock; |
407 | 404 | ||
diff --git a/drivers/net/qlcnic/qlcnic_hw.c b/drivers/net/qlcnic/qlcnic_hw.c index 7a72b8d06bcb..0c2e1f08f459 100644 --- a/drivers/net/qlcnic/qlcnic_hw.c +++ b/drivers/net/qlcnic/qlcnic_hw.c | |||
@@ -776,9 +776,6 @@ qlcnic_pci_set_crbwindow_2M(struct qlcnic_adapter *adapter, ulong off) | |||
776 | 776 | ||
777 | window = CRB_HI(off); | 777 | window = CRB_HI(off); |
778 | 778 | ||
779 | if (adapter->ahw.crb_win == window) | ||
780 | return; | ||
781 | |||
782 | writel(window, addr); | 779 | writel(window, addr); |
783 | if (readl(addr) != window) { | 780 | if (readl(addr) != window) { |
784 | if (printk_ratelimit()) | 781 | if (printk_ratelimit()) |
@@ -786,7 +783,6 @@ qlcnic_pci_set_crbwindow_2M(struct qlcnic_adapter *adapter, ulong off) | |||
786 | "failed to set CRB window to %d off 0x%lx\n", | 783 | "failed to set CRB window to %d off 0x%lx\n", |
787 | window, off); | 784 | window, off); |
788 | } | 785 | } |
789 | adapter->ahw.crb_win = window; | ||
790 | } | 786 | } |
791 | 787 | ||
792 | int | 788 | int |
@@ -874,7 +870,6 @@ qlcnic_pci_set_window_2M(struct qlcnic_adapter *adapter, | |||
874 | /* read back to flush */ | 870 | /* read back to flush */ |
875 | readl(adapter->ahw.ocm_win_crb); | 871 | readl(adapter->ahw.ocm_win_crb); |
876 | 872 | ||
877 | adapter->ahw.ocm_win = window; | ||
878 | *start = QLCNIC_PCI_OCM0_2M + GET_MEM_OFFS_2M(addr); | 873 | *start = QLCNIC_PCI_OCM0_2M + GET_MEM_OFFS_2M(addr); |
879 | return 0; | 874 | return 0; |
880 | } | 875 | } |
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index 3d90bb2fc7db..bd6730e53fd0 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c | |||
@@ -517,13 +517,6 @@ qlcnic_setup_pci_map(struct qlcnic_adapter *adapter) | |||
517 | struct pci_dev *pdev = adapter->pdev; | 517 | struct pci_dev *pdev = adapter->pdev; |
518 | int pci_func = adapter->ahw.pci_func; | 518 | int pci_func = adapter->ahw.pci_func; |
519 | 519 | ||
520 | /* | ||
521 | * Set the CRB window to invalid. If any register in window 0 is | ||
522 | * accessed it should set the window to 0 and then reset it to 1. | ||
523 | */ | ||
524 | adapter->ahw.crb_win = -1; | ||
525 | adapter->ahw.ocm_win = -1; | ||
526 | |||
527 | /* remap phys address */ | 520 | /* remap phys address */ |
528 | mem_base = pci_resource_start(pdev, 0); /* 0 is for BAR 0 */ | 521 | mem_base = pci_resource_start(pdev, 0); /* 0 is for BAR 0 */ |
529 | mem_len = pci_resource_len(pdev, 0); | 522 | mem_len = pci_resource_len(pdev, 0); |
@@ -1311,9 +1304,6 @@ qlcnic_resume(struct pci_dev *pdev) | |||
1311 | pci_set_master(pdev); | 1304 | pci_set_master(pdev); |
1312 | pci_restore_state(pdev); | 1305 | pci_restore_state(pdev); |
1313 | 1306 | ||
1314 | adapter->ahw.crb_win = -1; | ||
1315 | adapter->ahw.ocm_win = -1; | ||
1316 | |||
1317 | err = qlcnic_start_firmware(adapter); | 1307 | err = qlcnic_start_firmware(adapter); |
1318 | if (err) { | 1308 | if (err) { |
1319 | dev_err(&pdev->dev, "failed to start firmware\n"); | 1309 | dev_err(&pdev->dev, "failed to start firmware\n"); |