static int xgbe_pci_suspend(struct pci_dev *pdev, pm_message_t state) { struct xgbe_prv_data *pdata = pci_get_drvdata(pdev); struct net_device *netdev = pdata->netdev; int ret = 0; if (netif_running(netdev)) ret = xgbe_powerdown(netdev, XGMAC_DRIVER_CONTEXT); pdata->lpm_ctrl = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL1); pdata->lpm_ctrl |= MDIO_CTRL1_LPOWER; XMDIO_WRITE(pdata, MDIO_MMD_PCS, MDIO_CTRL1, pdata->lpm_ctrl); return ret; }
static int xgbe_suspend(struct device *dev) { struct net_device *netdev = dev_get_drvdata(dev); int ret; DBGPR("-->xgbe_suspend\n"); if (!netif_running(netdev)) { DBGPR("<--xgbe_dev_suspend\n"); return -EINVAL; } ret = xgbe_powerdown(netdev, XGMAC_DRIVER_CONTEXT); DBGPR("<--xgbe_suspend\n"); return ret; }
static int xgbe_suspend(struct device *dev) { struct net_device *netdev = dev_get_drvdata(dev); struct xgbe_prv_data *pdata = netdev_priv(netdev); int ret = 0; DBGPR("-->xgbe_suspend\n"); if (netif_running(netdev)) ret = xgbe_powerdown(netdev, XGMAC_DRIVER_CONTEXT); pdata->lpm_ctrl = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL1); pdata->lpm_ctrl |= MDIO_CTRL1_LPOWER; XMDIO_WRITE(pdata, MDIO_MMD_PCS, MDIO_CTRL1, pdata->lpm_ctrl); DBGPR("<--xgbe_suspend\n"); return ret; }