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);
}
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);
struct work_struct pending_work;
DECLARE_BITMAP(pending_flags, FE_FLAG_MAX);
- struct reset_control *rst_ppe;
- struct reset_control *rst_fe;
+ struct reset_control *resets;
struct mtk_foe_entry *foe_table;
dma_addr_t foe_table_phys;
struct flow_offload __rcu **foe_flow_table;