Linux Media Controller development
 help / color / mirror / Atom feed
* [PATCH v3 0/2] media: rcar-isp: fix core registration and IRQ lifetime
@ 2026-10-18  2:46 Myeonghun Pak
  2026-10-18  2:46 ` [PATCH v3 1/2] media: rcar-isp: distinguish absent cores from registration failures Myeonghun Pak
  2026-10-18  2:46 ` [PATCH v3 2/2] media: rcar-isp: release the core interrupt before destroying RPPX1 Myeonghun Pak
  0 siblings, 2 replies; 4+ messages in thread
From: Myeonghun Pak @ 2026-10-18  2:46 UTC (permalink / raw)
  To: Niklas Söderlund, Mauro Carvalho Chehab, Geert Uytterhoeven,
	Magnus Damm
  Cc: linux-media, linux-renesas-soc, linux-kernel, Ijae Kim,
	Jacopo Mondi, Sakari Ailus

The ISP core IRQ is registered before the RPPX1 object and interrupt
handler state are initialized. On removal, it remains registered until
after RPPX1 has been freed. A handler can therefore access RPPX1 outside
its lifetime.

Patch 1 prepares the return-value handling for the later IRQ request in
patch 2. It converts registration-stage -ENODEV to -ENXIO after cleanup,
so the parent does not mistake that failure for an absent optional core.
As requested by Niklas, the caller uses only the return value and does
not inspect core->base. Resource-setup results and the existing
channel-selector fallback behavior remain unchanged.

Patch 2 requests the IRQ after its dependencies are initialized and
releases it before destroying RPPX1. Its code is unchanged from v2.

Compile-tested with Clang 22.1.2, W=1 (arm64). No runtime testing.

Changes in v3:
- Replace the caller's core->base check with -ENODEV to -ENXIO translation
  at the registration error exit in risp_core_probe().
- Keep resource-setup return values and fallback behavior unchanged.
- Describe patch 1 as a prerequisite for patch 2, without assuming that
  the existing V4L2 registration helpers return -ENODEV.
- Keep the IRQ lifetime fix in patch 2 unchanged.

Changes in v2:
- Split the error-handling change into patch 1.
- Explain the RPPX1 allocation, free and pre-lock IRQ accesses in patch 2.

v2: https://lore.kernel.org/r/20261015004159.2202899-1-mhun512@gmail.com
v1: https://lore.kernel.org/r/20261011214448.2043581-1-mhun512@gmail.com

Myeonghun Pak (2):
  media: rcar-isp: distinguish absent cores from registration failures
  media: rcar-isp: release the core interrupt before destroying RPPX1

 drivers/media/platform/renesas/rcar-isp/core.c      | 16 +++++++++++-----
 drivers/media/platform/renesas/rcar-isp/risp-core.h |  2 ++
 2 files changed, 13 insertions(+), 5 deletions(-)

base-commit: 238650ef6c7c7cca08e032527329424c9fbd70e5

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-18  6:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-18  2:46 [PATCH v3 0/2] media: rcar-isp: fix core registration and IRQ lifetime Myeonghun Pak
2026-10-18  2:46 ` [PATCH v3 1/2] media: rcar-isp: distinguish absent cores from registration failures Myeonghun Pak
2026-10-18  6:54   ` Niklas Söderlund
2026-10-18  2:46 ` [PATCH v3 2/2] media: rcar-isp: release the core interrupt before destroying RPPX1 Myeonghun Pak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox