2024-01-23 16:05:07

by Andrew Davis

[permalink] [raw]
Subject: [PATCH 1/4] hwspinlock: omap: Remove unneeded check for OF node

We do not use the OF node anymore, nor does it matter how
we got to probe, so remove the check for of_node.

Signed-off-by: Andrew Davis <[email protected]>
---
drivers/hwspinlock/omap_hwspinlock.c | 4 ----
1 file changed, 4 deletions(-)

diff --git a/drivers/hwspinlock/omap_hwspinlock.c b/drivers/hwspinlock/omap_hwspinlock.c
index a9fd9ca45f2a8..cca55143d24d4 100644
--- a/drivers/hwspinlock/omap_hwspinlock.c
+++ b/drivers/hwspinlock/omap_hwspinlock.c
@@ -74,7 +74,6 @@ static const struct hwspinlock_ops omap_hwspinlock_ops = {

static int omap_hwspinlock_probe(struct platform_device *pdev)
{
- struct device_node *node = pdev->dev.of_node;
struct hwspinlock_device *bank;
struct hwspinlock *hwlock;
void __iomem *io_base;
@@ -82,9 +81,6 @@ static int omap_hwspinlock_probe(struct platform_device *pdev)
/* Only a single hwspinlock block device is supported */
int base_id = 0;

- if (!node)
- return -ENODEV;
-
io_base = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(io_base))
return PTR_ERR(io_base);
--
2.39.2



2024-01-23 16:13:52

by Andrew Davis

[permalink] [raw]
Subject: [PATCH 3/4] hwspinlock: omap: Use devm_hwspin_lock_register() helper

This unregister the HW spinlock on module exit, allowing us to
remove the remove callback. Do this here.

Signed-off-by: Andrew Davis <[email protected]>
---
drivers/hwspinlock/omap_hwspinlock.c | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)

diff --git a/drivers/hwspinlock/omap_hwspinlock.c b/drivers/hwspinlock/omap_hwspinlock.c
index 2f18ea6c05e3f..1b0a1bea2b24a 100644
--- a/drivers/hwspinlock/omap_hwspinlock.c
+++ b/drivers/hwspinlock/omap_hwspinlock.c
@@ -117,12 +117,10 @@ 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;

- ret = hwspin_lock_register(bank, &pdev->dev, &omap_hwspinlock_ops,
+ ret = devm_hwspin_lock_register(&pdev->dev, bank, &omap_hwspinlock_ops,
base_id, num_locks);
if (ret)
return ret;
@@ -133,18 +131,6 @@ static int omap_hwspinlock_probe(struct platform_device *pdev)
return 0;
}

-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", },
@@ -155,7 +141,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,
--
2.39.2


2024-02-06 19:01:20

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH 3/4] hwspinlock: omap: Use devm_hwspin_lock_register() helper

On Tue, Jan 23, 2024 at 10:04:04AM -0600, Andrew Davis wrote:
> This unregister the HW spinlock on module exit, allowing us to
> remove the remove callback. Do this here.
>

I interpret this as stating that the driver currently doesn't unregister
the spinlocks, but as far as I can see it does, and that the patch has
no functional change.

Can you please rewrite this commit message to clearly express which
"problem" you're solving, and unless I'm mistaken clarify that there's
no functional change.


Patch itself looks good.

Regards,
Bjorn

> Signed-off-by: Andrew Davis <[email protected]>
> ---
> drivers/hwspinlock/omap_hwspinlock.c | 17 +----------------
> 1 file changed, 1 insertion(+), 16 deletions(-)
>
> diff --git a/drivers/hwspinlock/omap_hwspinlock.c b/drivers/hwspinlock/omap_hwspinlock.c
> index 2f18ea6c05e3f..1b0a1bea2b24a 100644
> --- a/drivers/hwspinlock/omap_hwspinlock.c
> +++ b/drivers/hwspinlock/omap_hwspinlock.c
> @@ -117,12 +117,10 @@ 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;
>
> - ret = hwspin_lock_register(bank, &pdev->dev, &omap_hwspinlock_ops,
> + ret = devm_hwspin_lock_register(&pdev->dev, bank, &omap_hwspinlock_ops,
> base_id, num_locks);
> if (ret)
> return ret;
> @@ -133,18 +131,6 @@ static int omap_hwspinlock_probe(struct platform_device *pdev)
> return 0;
> }
>
> -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", },
> @@ -155,7 +141,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,
> --
> 2.39.2
>