* [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups
@ 2025-11-05 21:03 Rosen Penev
2025-11-05 21:03 ` [PATCHv4 dmaengine 1/2] dmaengine: mv_xor: use devm_platform_ioremap_resource Rosen Penev
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Rosen Penev @ 2025-11-05 21:03 UTC (permalink / raw)
To: dmaengine; +Cc: Vinod Koul, open list
Some devm cleanups that are now possible.
It's interesting that this driver lacks a _remove function to free its
resources...
v2: resent with dmaengine prefix
v3: add error handling for devm_clk_get_optional_enabled to potentially
handle EPROBE_DEFER.
v4: remove request_irq based on feedback.
Rosen Penev (2):
dmaengine: mv_xor: use devm_platform_ioremap_resource
dmaengine: mv_xor: use devm_clk_get_optional_enabled
drivers/dma/mv_xor.c | 34 +++++++++-------------------------
1 file changed, 9 insertions(+), 25 deletions(-)
--
2.51.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCHv4 dmaengine 1/2] dmaengine: mv_xor: use devm_platform_ioremap_resource
2025-11-05 21:03 [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups Rosen Penev
@ 2025-11-05 21:03 ` Rosen Penev
2025-11-05 21:03 ` [PATCHv4 dmaengine 2/2] dmaengine: mv_xor: use devm_clk_get_optional_enabled Rosen Penev
2025-12-23 11:07 ` [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups Vinod Koul
2 siblings, 0 replies; 4+ messages in thread
From: Rosen Penev @ 2025-11-05 21:03 UTC (permalink / raw)
To: dmaengine; +Cc: Vinod Koul, open list
Simplifies probe slightly by removing explicit struct resource pointers
and platform_get_resource calls.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/dma/mv_xor.c | 23 ++++++-----------------
1 file changed, 6 insertions(+), 17 deletions(-)
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index 5e8386296046..3597ad8d1220 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -1309,7 +1309,6 @@ static int mv_xor_probe(struct platform_device *pdev)
const struct mbus_dram_target_info *dram;
struct mv_xor_device *xordev;
struct mv_xor_platform_data *pdata = dev_get_platdata(&pdev->dev);
- struct resource *res;
unsigned int max_engines, max_channels;
int i, ret;
@@ -1319,23 +1318,13 @@ static int mv_xor_probe(struct platform_device *pdev)
if (!xordev)
return -ENOMEM;
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res)
- return -ENODEV;
+ xordev->xor_base = devm_platform_ioremap_resource(pdev, 0);
+ if (IS_ERR(xordev->xor_base))
+ return PTR_ERR(xordev->xor_base);
- xordev->xor_base = devm_ioremap(&pdev->dev, res->start,
- resource_size(res));
- if (!xordev->xor_base)
- return -EBUSY;
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
- if (!res)
- return -ENODEV;
-
- xordev->xor_high_base = devm_ioremap(&pdev->dev, res->start,
- resource_size(res));
- if (!xordev->xor_high_base)
- return -EBUSY;
+ xordev->xor_high_base = devm_platform_ioremap_resource(pdev, 1);
+ if (IS_ERR(xordev->xor_high_base))
+ return PTR_ERR(xordev->xor_high_base);
platform_set_drvdata(pdev, xordev);
--
2.51.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCHv4 dmaengine 2/2] dmaengine: mv_xor: use devm_clk_get_optional_enabled
2025-11-05 21:03 [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups Rosen Penev
2025-11-05 21:03 ` [PATCHv4 dmaengine 1/2] dmaengine: mv_xor: use devm_platform_ioremap_resource Rosen Penev
@ 2025-11-05 21:03 ` Rosen Penev
2025-12-23 11:07 ` [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups Vinod Koul
2 siblings, 0 replies; 4+ messages in thread
From: Rosen Penev @ 2025-11-05 21:03 UTC (permalink / raw)
To: dmaengine; +Cc: Vinod Koul, open list
Driver was written before this was available. Simplifies code slightly.
Actually also a bugfix. clk_disable_unprepare is missing in _remove,
which is also missing.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/dma/mv_xor.c | 11 +++--------
1 file changed, 3 insertions(+), 8 deletions(-)
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c
index 3597ad8d1220..d15a1990534b 100644
--- a/drivers/dma/mv_xor.c
+++ b/drivers/dma/mv_xor.c
@@ -1351,9 +1351,9 @@ static int mv_xor_probe(struct platform_device *pdev)
/* Not all platforms can gate the clock, so it is not
* an error if the clock does not exists.
*/
- xordev->clk = clk_get(&pdev->dev, NULL);
- if (!IS_ERR(xordev->clk))
- clk_prepare_enable(xordev->clk);
+ xordev->clk = devm_clk_get_optional_enabled(&pdev->dev, NULL);
+ if (IS_ERR(xordev->clk))
+ return PTR_ERR(xordev->clk);
/*
* We don't want to have more than one channel per CPU in
@@ -1441,11 +1441,6 @@ static int mv_xor_probe(struct platform_device *pdev)
irq_dispose_mapping(xordev->channels[i]->irq);
}
- if (!IS_ERR(xordev->clk)) {
- clk_disable_unprepare(xordev->clk);
- clk_put(xordev->clk);
- }
-
return ret;
}
--
2.51.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups
2025-11-05 21:03 [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups Rosen Penev
2025-11-05 21:03 ` [PATCHv4 dmaengine 1/2] dmaengine: mv_xor: use devm_platform_ioremap_resource Rosen Penev
2025-11-05 21:03 ` [PATCHv4 dmaengine 2/2] dmaengine: mv_xor: use devm_clk_get_optional_enabled Rosen Penev
@ 2025-12-23 11:07 ` Vinod Koul
2 siblings, 0 replies; 4+ messages in thread
From: Vinod Koul @ 2025-12-23 11:07 UTC (permalink / raw)
To: Rosen Penev; +Cc: dmaengine, open list
On 05-11-25, 13:03, Rosen Penev wrote:
> Some devm cleanups that are now possible.
>
> It's interesting that this driver lacks a _remove function to free its
> resources...
>
> v2: resent with dmaengine prefix
Not required to add this in within []..
[PATCHv4 0/2] dmaengine: mv_xor.. would be fin
I cant apply this as it fails for me, please rebase
> v3: add error handling for devm_clk_get_optional_enabled to potentially
> handle EPROBE_DEFER.
> v4: remove request_irq based on feedback.
>
> Rosen Penev (2):
> dmaengine: mv_xor: use devm_platform_ioremap_resource
> dmaengine: mv_xor: use devm_clk_get_optional_enabled
>
> drivers/dma/mv_xor.c | 34 +++++++++-------------------------
> 1 file changed, 9 insertions(+), 25 deletions(-)
>
> --
> 2.51.2
--
~Vinod
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-12-23 11:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-05 21:03 [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups Rosen Penev
2025-11-05 21:03 ` [PATCHv4 dmaengine 1/2] dmaengine: mv_xor: use devm_platform_ioremap_resource Rosen Penev
2025-11-05 21:03 ` [PATCHv4 dmaengine 2/2] dmaengine: mv_xor: use devm_clk_get_optional_enabled Rosen Penev
2025-12-23 11:07 ` [PATCHv4 dmaengine 0/2] mv_xor: some devm cleanups Vinod Koul
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.