mirror of https://gitee.com/openkylin/linux.git
NET: dwmac: Make dwmac reset unconditional
Unconditional reset dwmac before HW init if reset controller is present. In existing implementation we reset dwmac only after second module probing: (module load -> unload -> load again [reset happens]) Now we reset dwmac at every module load: (module load [reset happens] -> unload -> load again [reset happens]) Also some reset controllers have only reset callback instead of assert + deassert callbacks pair, so handle this case. Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
63679112c5
commit
90f522a20e
|
@ -4120,8 +4120,15 @@ int stmmac_dvr_probe(struct device *device,
|
|||
if ((phyaddr >= 0) && (phyaddr <= 31))
|
||||
priv->plat->phy_addr = phyaddr;
|
||||
|
||||
if (priv->plat->stmmac_rst)
|
||||
if (priv->plat->stmmac_rst) {
|
||||
ret = reset_control_assert(priv->plat->stmmac_rst);
|
||||
reset_control_deassert(priv->plat->stmmac_rst);
|
||||
/* Some reset controllers have only reset callback instead of
|
||||
* assert + deassert callbacks pair.
|
||||
*/
|
||||
if (ret == -ENOTSUPP)
|
||||
reset_control_reset(priv->plat->stmmac_rst);
|
||||
}
|
||||
|
||||
/* Init MAC and get the capabilities */
|
||||
ret = stmmac_hw_init(priv);
|
||||
|
|
Loading…
Reference in New Issue