return PTR_ERR_OR_ZERO(priv->psy);
}
-static void mt6370_chg_destroy_wq(void *data)
-{
- struct workqueue_struct *wq = data;
-
- destroy_workqueue(wq);
-}
-
static irqreturn_t mt6370_attach_i_handler(int irq, void *data)
{
struct mt6370_priv *priv = data;
priv->attach = MT6370_ATTACH_STAT_DETACH;
- priv->wq = create_singlethread_workqueue(dev_name(priv->dev));
+ priv->wq = devm_alloc_ordered_workqueue(dev, "%s", 0, dev_name(priv->dev));
if (!priv->wq)
return -ENOMEM;
- ret = devm_add_action_or_reset(dev, mt6370_chg_destroy_wq, priv->wq);
- if (ret)
- return ret;
-
ret = devm_work_autocancel(dev, &priv->bc12_work, mt6370_chg_bc12_work_func);
if (ret)
return dev_err_probe(dev, ret, "Failed to init bc12 work\n");