bnx2x: Use pci_dev pm_cap
Use the already existing pm_cap variable in struct pci_dev for determining the power management offset. This saves the driver from having to keep track of an extra variable. Signed-off-by: Jon Mason <jdmason@kudzu.us> Cc: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c3eb7a771d
commit
29ed74c350
|
@ -1542,7 +1542,6 @@ struct bnx2x {
|
|||
*/
|
||||
bool fcoe_init;
|
||||
|
||||
int pm_cap;
|
||||
int mrrs;
|
||||
|
||||
struct delayed_work sp_task;
|
||||
|
|
|
@ -3008,16 +3008,16 @@ int bnx2x_set_power_state(struct bnx2x *bp, pci_power_t state)
|
|||
u16 pmcsr;
|
||||
|
||||
/* If there is no power capability, silently succeed */
|
||||
if (!bp->pm_cap) {
|
||||
if (!bp->pdev->pm_cap) {
|
||||
BNX2X_DEV_INFO("No power capability. Breaking.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
pci_read_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL, &pmcsr);
|
||||
pci_read_config_word(bp->pdev, bp->pdev->pm_cap + PCI_PM_CTRL, &pmcsr);
|
||||
|
||||
switch (state) {
|
||||
case PCI_D0:
|
||||
pci_write_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL,
|
||||
pci_write_config_word(bp->pdev, bp->pdev->pm_cap + PCI_PM_CTRL,
|
||||
((pmcsr & ~PCI_PM_CTRL_STATE_MASK) |
|
||||
PCI_PM_CTRL_PME_STATUS));
|
||||
|
||||
|
@ -3041,7 +3041,7 @@ int bnx2x_set_power_state(struct bnx2x *bp, pci_power_t state)
|
|||
if (bp->wol)
|
||||
pmcsr |= PCI_PM_CTRL_PME_ENABLE;
|
||||
|
||||
pci_write_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL,
|
||||
pci_write_config_word(bp->pdev, bp->pdev->pm_cap + PCI_PM_CTRL,
|
||||
pmcsr);
|
||||
|
||||
/* No more memory access after this point until
|
||||
|
|
|
@ -1387,9 +1387,9 @@ static bool bnx2x_is_nvm_accessible(struct bnx2x *bp)
|
|||
u16 pm = 0;
|
||||
struct net_device *dev = pci_get_drvdata(bp->pdev);
|
||||
|
||||
if (bp->pm_cap)
|
||||
if (bp->pdev->pm_cap)
|
||||
rc = pci_read_config_word(bp->pdev,
|
||||
bp->pm_cap + PCI_PM_CTRL, &pm);
|
||||
bp->pdev->pm_cap + PCI_PM_CTRL, &pm);
|
||||
|
||||
if ((rc && !netif_running(dev)) ||
|
||||
(!rc && ((pm & PCI_PM_CTRL_STATE_MASK) != (__force u16)PCI_D0)))
|
||||
|
|
|
@ -8652,6 +8652,7 @@ u32 bnx2x_send_unload_req(struct bnx2x *bp, int unload_mode)
|
|||
else if (bp->wol) {
|
||||
u32 emac_base = port ? GRCBASE_EMAC1 : GRCBASE_EMAC0;
|
||||
u8 *mac_addr = bp->dev->dev_addr;
|
||||
struct pci_dev *pdev = bp->pdev;
|
||||
u32 val;
|
||||
u16 pmc;
|
||||
|
||||
|
@ -8668,9 +8669,9 @@ u32 bnx2x_send_unload_req(struct bnx2x *bp, int unload_mode)
|
|||
EMAC_WR(bp, EMAC_REG_EMAC_MAC_MATCH + entry + 4, val);
|
||||
|
||||
/* Enable the PME and clear the status */
|
||||
pci_read_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL, &pmc);
|
||||
pci_read_config_word(pdev, pdev->pm_cap + PCI_PM_CTRL, &pmc);
|
||||
pmc |= PCI_PM_CTRL_PME_ENABLE | PCI_PM_CTRL_PME_STATUS;
|
||||
pci_write_config_word(bp->pdev, bp->pm_cap + PCI_PM_CTRL, pmc);
|
||||
pci_write_config_word(pdev, pdev->pm_cap + PCI_PM_CTRL, pmc);
|
||||
|
||||
reset_code = DRV_MSG_CODE_UNLOAD_REQ_WOL_EN;
|
||||
|
||||
|
@ -10399,7 +10400,7 @@ static void bnx2x_get_common_hwinfo(struct bnx2x *bp)
|
|||
break;
|
||||
}
|
||||
|
||||
pci_read_config_word(bp->pdev, bp->pm_cap + PCI_PM_PMC, &pmc);
|
||||
pci_read_config_word(bp->pdev, bp->pdev->pm_cap + PCI_PM_PMC, &pmc);
|
||||
bp->flags |= (pmc & PCI_PM_CAP_PME_D3cold) ? 0 : NO_WOL_FLAG;
|
||||
|
||||
BNX2X_DEV_INFO("%sWoL capable\n",
|
||||
|
@ -12141,8 +12142,7 @@ static int bnx2x_init_dev(struct bnx2x *bp, struct pci_dev *pdev,
|
|||
}
|
||||
|
||||
if (IS_PF(bp)) {
|
||||
bp->pm_cap = pdev->pm_cap;
|
||||
if (bp->pm_cap == 0) {
|
||||
if (!pdev->pm_cap) {
|
||||
dev_err(&bp->pdev->dev,
|
||||
"Cannot find power management capability, aborting\n");
|
||||
rc = -EIO;
|
||||
|
|
Loading…
Reference in New Issue