Messages in this thread | | | Subject | Re: [PATCH 1/2] e100: power down PHY if WOL is not enabled | From | Ben Hutchings <> | Date | Wed, 14 Dec 2011 20:30:36 +0000 |
| |
On Tue, 2011-12-13 at 18:49 -0800, Jiang Wang wrote: > Since the interface will not be used after being put down and WOL is disabled, > just power it off. > When bring up the interface, power on the PHY.
Don't you need to cover the case where WOL is enabled while the interface is down?
Ben.
> Signed-off-by: Jiang Wang <Jiang.Wang@riverbed.com> > --- > drivers/net/ethernet/intel/e100.c | 17 +++++++++++++++++ > 1 files changed, 17 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/ethernet/intel/e100.c b/drivers/net/ethernet/intel/e100.c > index 5a2fdf7..9824e0a 100644 > --- a/drivers/net/ethernet/intel/e100.c > +++ b/drivers/net/ethernet/intel/e100.c > @@ -1449,6 +1449,14 @@ static int e100_phy_init(struct nic *nic) > netif_printk(nic, hw, KERN_DEBUG, nic->netdev, > "phy_addr = %d\n", nic->mii.phy_id); > > + /* Make sure power to the PHY is enabled */ > + if (!(nic->flags & wol_magic)) { > + uint16_t phy_data; > + phy_data = mdio_read(nic->netdev, nic->mii.phy_id, MII_BMCR); > + phy_data &= ~BMCR_PDOWN; > + mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, phy_data); > + } > + > /* Get phy ID */ > id_lo = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID1); > id_hi = mdio_read(netdev, nic->mii.phy_id, MII_PHYSID2); > @@ -2261,6 +2269,15 @@ static void e100_down(struct nic *nic) > napi_disable(&nic->napi); > netif_stop_queue(nic->netdev); > e100_hw_reset(nic); > + > + /* If wake on LAN is not enabled, power down the PHY */ > + if (!(nic->flags & wol_magic)) { > + uint16_t phy_data; > + phy_data = mdio_read(nic->netdev, nic->mii.phy_id, MII_BMCR); > + phy_data |= BMCR_PDOWN; > + mdio_write(nic->netdev, nic->mii.phy_id, MII_BMCR, phy_data); > + } > + > free_irq(nic->pdev->irq, nic->netdev); > del_timer_sync(&nic->watchdog); > netif_carrier_off(nic->netdev);
-- Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked.
| |