|
@@ -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);
|