mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
power: supply: mt6370: Simplify with devm_alloc_ordered_workqueue()
Simplify the driver probe function by using devm_alloc_ordered_workqueue() which handles the cleanup already. Change is not equivalent in the workqueue itself: use non-legacy API which does not set (__WQ_LEGACY | WQ_MEM_RECLAIM). The workqueue is used to update power supply data (power_supply_changed()) status, thus there is no point to run it for memory reclaim. Note that dev_name() is not directly used in second argument to prevent possible unlikely parsing any "%" character in device name as format. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Link: https://patch.msgid.link/20260305-workqueue-devm-v2-5-66a38741c652@oss.qualcomm.com Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
committed by
Sebastian Reichel
parent
1e668baade
commit
f23afa0104
@@ -761,13 +761,6 @@ static int mt6370_chg_init_psy(struct mt6370_priv *priv)
|
||||
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;
|
||||
@@ -893,14 +886,10 @@ static int mt6370_chg_probe(struct platform_device *pdev)
|
||||
|
||||
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");
|
||||
|
||||
Reference in New Issue
Block a user