ramips: mtk_eth_soc: allow multiple resets
[openwrt/staging/wigyori.git] / target / linux / ramips / files / drivers / net / ethernet / ralink / mtk_eth_soc.c
index b79b34893808c26149e54032515a08cd0593d5de..78b17605d276c7b65cf4ef6d5f0c71ca7e900ad9 100644 (file)
@@ -143,12 +143,12 @@ void fe_reset(u32 reset_bits)
 
 void fe_reset_fe(struct fe_priv *priv)
 {
-       if (!priv->rst_fe)
+       if (!priv->resets)
                return;
 
-       reset_control_assert(priv->rst_fe);
+       reset_control_assert(priv->resets);
        usleep_range(60, 120);
-       reset_control_deassert(priv->rst_fe);
+       reset_control_deassert(priv->resets);
        usleep_range(60, 120);
 }
 
@@ -1595,9 +1595,11 @@ static int fe_probe(struct platform_device *pdev)
 
        priv = netdev_priv(netdev);
        spin_lock_init(&priv->page_lock);
-       priv->rst_fe = devm_reset_control_get(&pdev->dev, "fe");
-       if (IS_ERR(priv->rst_fe))
-               priv->rst_fe = NULL;
+       priv->resets = devm_reset_control_array_get_exclusive(&pdev->dev);
+       if (IS_ERR(priv->resets)) {
+               dev_err(&pdev->dev, "Failed to get resets for FE and ESW cores: %pe\n", priv->resets);
+               priv->resets = NULL;
+       }
 
        if (soc->init_data)
                soc->init_data(soc, netdev);