[PATCH] skge: don't clear MC state on link down
I would rather fix Andy's problem by not clearing multicast information on link down. Also, add code to restore multicast state after ethtool phy reset. Signed-off-by: Stephen Hemminger <shemminger@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
committed by
Jeff Garzik
parent
f789dfdc44
commit
758140900a
@@ -2154,8 +2154,6 @@ static void yukon_link_down(struct skge_port *skge)
|
|||||||
int port = skge->port;
|
int port = skge->port;
|
||||||
u16 ctrl;
|
u16 ctrl;
|
||||||
|
|
||||||
gm_phy_write(hw, port, PHY_MARV_INT_MASK, 0);
|
|
||||||
|
|
||||||
ctrl = gma_read16(hw, port, GM_GP_CTRL);
|
ctrl = gma_read16(hw, port, GM_GP_CTRL);
|
||||||
ctrl &= ~(GM_GPCR_RX_ENA | GM_GPCR_TX_ENA);
|
ctrl &= ~(GM_GPCR_RX_ENA | GM_GPCR_TX_ENA);
|
||||||
gma_write16(hw, port, GM_GP_CTRL, ctrl);
|
gma_write16(hw, port, GM_GP_CTRL, ctrl);
|
||||||
@@ -2167,7 +2165,6 @@ static void yukon_link_down(struct skge_port *skge)
|
|||||||
gm_phy_write(hw, port, PHY_MARV_AUNE_ADV, ctrl);
|
gm_phy_write(hw, port, PHY_MARV_AUNE_ADV, ctrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
yukon_reset(hw, port);
|
|
||||||
skge_link_down(skge);
|
skge_link_down(skge);
|
||||||
|
|
||||||
yukon_init(hw, port);
|
yukon_init(hw, port);
|
||||||
@@ -2268,6 +2265,8 @@ static void skge_phy_reset(struct skge_port *skge)
|
|||||||
yukon_init(hw, port);
|
yukon_init(hw, port);
|
||||||
}
|
}
|
||||||
mutex_unlock(&hw->phy_mutex);
|
mutex_unlock(&hw->phy_mutex);
|
||||||
|
|
||||||
|
dev->set_multicast_list(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Basic MII support */
|
/* Basic MII support */
|
||||||
|
Reference in New Issue
Block a user