diff options
author | Andrew Davis <afd@ti.com> | 2024-02-08 10:51:13 -0600 |
---|---|---|
committer | Bjorn Andersson <andersson@kernel.org> | 2024-03-05 20:01:14 -0800 |
commit | 8781ec87795a8812b22579ba7ccdc0fdc16ba003 (patch) | |
tree | fc20802833803d75d7d46379d6cca5e6c60d9264 /drivers/hwspinlock | |
parent | 25f7d74d451484fc09772fc276b161d1a6bc64b6 (diff) | |
download | linux-8781ec87795a8812b22579ba7ccdc0fdc16ba003.tar.gz linux-8781ec87795a8812b22579ba7ccdc0fdc16ba003.tar.bz2 linux-8781ec87795a8812b22579ba7ccdc0fdc16ba003.zip |
hwspinlock: omap: Use devm_hwspin_lock_register() helper
This will unregister the HW spinlock on module exit automatically for us,
currently we manually unregister which can be error-prone if not done in
the right order. This also allows us to remove the remove callback.
Do that here.
Signed-off-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20240208165114.63148-3-afd@ti.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'drivers/hwspinlock')
-rw-r--r-- | drivers/hwspinlock/omap_hwspinlock.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/drivers/hwspinlock/omap_hwspinlock.c b/drivers/hwspinlock/omap_hwspinlock.c index 3bd3ffab9210..fe73da80018b 100644 --- a/drivers/hwspinlock/omap_hwspinlock.c +++ b/drivers/hwspinlock/omap_hwspinlock.c @@ -117,27 +117,13 @@ static int omap_hwspinlock_probe(struct platform_device *pdev) if (!bank) return -ENOMEM; - platform_set_drvdata(pdev, bank); - for (i = 0, hwlock = &bank->lock[0]; i < num_locks; i++, hwlock++) hwlock->priv = io_base + LOCK_BASE_OFFSET + sizeof(u32) * i; - return hwspin_lock_register(bank, &pdev->dev, &omap_hwspinlock_ops, + return devm_hwspin_lock_register(&pdev->dev, bank, &omap_hwspinlock_ops, base_id, num_locks); } -static void omap_hwspinlock_remove(struct platform_device *pdev) -{ - struct hwspinlock_device *bank = platform_get_drvdata(pdev); - int ret; - - ret = hwspin_lock_unregister(bank); - if (ret) { - dev_err(&pdev->dev, "%s failed: %d\n", __func__, ret); - return; - } -} - static const struct of_device_id omap_hwspinlock_of_match[] = { { .compatible = "ti,omap4-hwspinlock", }, { .compatible = "ti,am64-hwspinlock", }, @@ -148,7 +134,6 @@ MODULE_DEVICE_TABLE(of, omap_hwspinlock_of_match); static struct platform_driver omap_hwspinlock_driver = { .probe = omap_hwspinlock_probe, - .remove_new = omap_hwspinlock_remove, .driver = { .name = "omap_hwspinlock", .of_match_table = omap_hwspinlock_of_match, |