Re: [PATCH] crypto: caam: simplify probe resource and IRQ handling
From: Emanuele Ghidoli
Date: Tue Sep 01 2026 - 15:50:01 EST
On Thu, Jul 30, 2026 at 01:47:22PM -0700, Rosen Penev wrote:
> Replace the open-coded platform_get_resource() plus devm_ioremap()
> sequence with devm_platform_ioremap_resource(), which fetches the
> resource, requests the region and maps it in one call.
>
> Each fsl,sec-*-job-ring node has a distinct 0x10000 reg region and
> interrupts property, so the region reservation added by
> devm_ioremap_resource() is exclusive and does not introduce overlap
> failures.
This patch, now commit 9a955c0a7d11 in v7.3-rc1, breaks CAAM on most i.MX
SoCs (i.MX6, i.MX7, i.MX8). All job rings fail to probe and the machine
loses its hardware RNG:
caam_jr 30902000.jr: error -EBUSY: can't request region for resource [mem 0x30902000-0x30902fff]
caam_jr 30902000.jr: probe with driver caam_jr failed with error -16
caam_jr 30903000.jr: error -EBUSY: can't request region for resource [mem 0x30903000-0x30903fff]
caam_jr 30903000.jr: probe with driver caam_jr failed with error -16
The job rings do not overlap each other, but they all sit inside the reg
window of their parent fsl,sec-v4.0 node, which caam_probe() already
reserves exclusively via devm_of_iomap() before it populates the children.
So each job ring now collides with its own parent.
Seen on these boards (CI/CD):
- apalis-imx6
- apalis-imx8
- colibri-imx6
- colibri-imx7
- colibri-imx8
- verdin-imx8mm
- verdin-imx8mp
Reverting 9a955c0a7d11 on colibri-imx7 makes the errors disappear.
#regzbot introduced: 9a955c0a7d11
Thanks,
Emanuele