|
@@ -2786,8 +2786,15 @@ struct stmmac_priv *stmmac_dvr_probe(struct device *device,
|
|
|
if (IS_ERR(priv->stmmac_clk)) {
|
|
|
dev_warn(priv->device, "%s: warning: cannot get CSR clock\n",
|
|
|
__func__);
|
|
|
- ret = PTR_ERR(priv->stmmac_clk);
|
|
|
- goto error_clk_get;
|
|
|
+ /* If failed to obtain stmmac_clk and specific clk_csr value
|
|
|
+ * is NOT passed from the platform, probe fail.
|
|
|
+ */
|
|
|
+ if (!priv->plat->clk_csr) {
|
|
|
+ ret = PTR_ERR(priv->stmmac_clk);
|
|
|
+ goto error_clk_get;
|
|
|
+ } else {
|
|
|
+ priv->stmmac_clk = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
clk_prepare_enable(priv->stmmac_clk);
|
|
|
|