diff options
| author | Jiang Liu <jiang.liu@huawei.com> | 2012-08-20 15:26:51 -0400 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2012-08-23 12:11:12 -0400 |
| commit | 2a80eebcbf3e0f2cc7df6aced54058fbdff37518 (patch) | |
| tree | c5c854465d31f1450080263f3f503e8bbae02c3e | |
| parent | 8200bc72a88cbb63ee13d7f9f16ec4f7249c2ec2 (diff) | |
bnx2x: Use PCI Express Capability accessors
Use PCI Express Capability access functions to simplify bnx2x driver.
[bhelgaas: split bnx2x and tg3 into separate patches]
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
| -rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index dd451c3dd83d..281cf3f7bc20 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
| @@ -1162,14 +1162,9 @@ static int bnx2x_send_final_clnup(struct bnx2x *bp, u8 clnup_func, | |||
| 1162 | 1162 | ||
| 1163 | static u8 bnx2x_is_pcie_pending(struct pci_dev *dev) | 1163 | static u8 bnx2x_is_pcie_pending(struct pci_dev *dev) |
| 1164 | { | 1164 | { |
| 1165 | int pos; | ||
| 1166 | u16 status; | 1165 | u16 status; |
| 1167 | 1166 | ||
| 1168 | pos = pci_pcie_cap(dev); | 1167 | pcie_capability_read_word(dev, PCI_EXP_DEVSTA, &status); |
| 1169 | if (!pos) | ||
| 1170 | return false; | ||
| 1171 | |||
| 1172 | pci_read_config_word(dev, pos + PCI_EXP_DEVSTA, &status); | ||
| 1173 | return status & PCI_EXP_DEVSTA_TRPND; | 1168 | return status & PCI_EXP_DEVSTA_TRPND; |
| 1174 | } | 1169 | } |
| 1175 | 1170 | ||
| @@ -6149,8 +6144,7 @@ static void bnx2x_init_pxp(struct bnx2x *bp) | |||
| 6149 | u16 devctl; | 6144 | u16 devctl; |
| 6150 | int r_order, w_order; | 6145 | int r_order, w_order; |
| 6151 | 6146 | ||
| 6152 | pci_read_config_word(bp->pdev, | 6147 | pcie_capability_read_word(bp->pdev, PCI_EXP_DEVCTL, &devctl); |
| 6153 | pci_pcie_cap(bp->pdev) + PCI_EXP_DEVCTL, &devctl); | ||
| 6154 | DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl); | 6148 | DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl); |
| 6155 | w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); | 6149 | w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); |
| 6156 | if (bp->mrrs == -1) | 6150 | if (bp->mrrs == -1) |
| @@ -9386,15 +9380,10 @@ static int __devinit bnx2x_prev_mark_path(struct bnx2x *bp) | |||
| 9386 | 9380 | ||
| 9387 | static bool __devinit bnx2x_can_flr(struct bnx2x *bp) | 9381 | static bool __devinit bnx2x_can_flr(struct bnx2x *bp) |
| 9388 | { | 9382 | { |
| 9389 | int pos; | ||
| 9390 | u32 cap; | 9383 | u32 cap; |
| 9391 | struct pci_dev *dev = bp->pdev; | 9384 | struct pci_dev *dev = bp->pdev; |
| 9392 | 9385 | ||
| 9393 | pos = pci_pcie_cap(dev); | 9386 | pcie_capability_read_dword(dev, PCI_EXP_DEVCAP, &cap); |
| 9394 | if (!pos) | ||
| 9395 | return false; | ||
| 9396 | |||
| 9397 | pci_read_config_dword(dev, pos + PCI_EXP_DEVCAP, &cap); | ||
| 9398 | if (!(cap & PCI_EXP_DEVCAP_FLR)) | 9387 | if (!(cap & PCI_EXP_DEVCAP_FLR)) |
| 9399 | return false; | 9388 | return false; |
| 9400 | 9389 | ||
| @@ -9403,7 +9392,7 @@ static bool __devinit bnx2x_can_flr(struct bnx2x *bp) | |||
| 9403 | 9392 | ||
| 9404 | static int __devinit bnx2x_do_flr(struct bnx2x *bp) | 9393 | static int __devinit bnx2x_do_flr(struct bnx2x *bp) |
| 9405 | { | 9394 | { |
| 9406 | int i, pos; | 9395 | int i; |
| 9407 | u16 status; | 9396 | u16 status; |
| 9408 | struct pci_dev *dev = bp->pdev; | 9397 | struct pci_dev *dev = bp->pdev; |
| 9409 | 9398 | ||
| @@ -9411,16 +9400,12 @@ static int __devinit bnx2x_do_flr(struct bnx2x *bp) | |||
| 9411 | if (bnx2x_can_flr(bp)) | 9400 | if (bnx2x_can_flr(bp)) |
| 9412 | return -ENOTTY; | 9401 | return -ENOTTY; |
| 9413 | 9402 | ||
| 9414 | pos = pci_pcie_cap(dev); | ||
| 9415 | if (!pos) | ||
| 9416 | return -ENOTTY; | ||
| 9417 | |||
| 9418 | /* Wait for Transaction Pending bit clean */ | 9403 | /* Wait for Transaction Pending bit clean */ |
| 9419 | for (i = 0; i < 4; i++) { | 9404 | for (i = 0; i < 4; i++) { |
| 9420 | if (i) | 9405 | if (i) |
| 9421 | msleep((1 << (i - 1)) * 100); | 9406 | msleep((1 << (i - 1)) * 100); |
| 9422 | 9407 | ||
| 9423 | pci_read_config_word(dev, pos + PCI_EXP_DEVSTA, &status); | 9408 | pcie_capability_read_word(dev, PCI_EXP_DEVSTA, &status); |
| 9424 | if (!(status & PCI_EXP_DEVSTA_TRPND)) | 9409 | if (!(status & PCI_EXP_DEVSTA_TRPND)) |
| 9425 | goto clear; | 9410 | goto clear; |
| 9426 | } | 9411 | } |
