Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

counter: ti-ecap-capture: Use devm_pm_runtime_enable()

There is no need to register a manual `devm` action for
`pm_runtime_disable()` when `devm_pm_runtime_enable()` exists. It does
the same thing (but also calls `pm_runtime_dont_use_autosuspend()`,
which should be fine here).

Moreover, when `devm_add_action_or_reset()` fails, it is due to a failed
memory allocation and will thus return `-ENOMEM`. `dev_err_probe()`
doesn't do anything when error is `-ENOMEM`. Therefore, the call to
`dev_err_probe()` is useless. Note that `devm_pm_runtime_enable()` has a
tail call to `devm_add_action_or_reset()` and thus returns that value.
Therefore, replace `dev_err_probe()` with the returning value.

Signed-off-by: Waqar Hameed <waqar.hameed@axis.com>
Acked-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/pnda54bjmij.a.out@axis.com
Signed-off-by: William Breathitt Gray <wbg@kernel.org>

authored by

Waqar Hameed and committed by
William Breathitt Gray
51548c36 36ee9770

+2 -10
+2 -10
drivers/counter/ti-ecap-capture.c
··· 465 465 return IRQ_HANDLED; 466 466 } 467 467 468 - static void ecap_cnt_pm_disable(void *dev) 469 - { 470 - pm_runtime_disable(dev); 471 - } 472 - 473 468 static int ecap_cnt_probe(struct platform_device *pdev) 474 469 { 475 470 struct device *dev = &pdev->dev; ··· 518 523 519 524 platform_set_drvdata(pdev, counter_dev); 520 525 521 - pm_runtime_enable(dev); 522 - 523 - /* Register a cleanup callback to care for disabling PM */ 524 - ret = devm_add_action_or_reset(dev, ecap_cnt_pm_disable, dev); 526 + ret = devm_pm_runtime_enable(dev); 525 527 if (ret) 526 - return dev_err_probe(dev, ret, "failed to add pm disable action\n"); 528 + return ret; 527 529 528 530 ret = devm_counter_add(dev, counter_dev); 529 531 if (ret)