media: i2c: ov9281: Fix async subdev matching for Rockchip CSI2 DPHY#509
Open
sintjuri wants to merge 1 commit intoradxa:linux-6.1-stan-rkr5.1from
Open
media: i2c: ov9281: Fix async subdev matching for Rockchip CSI2 DPHY#509sintjuri wants to merge 1 commit intoradxa:linux-6.1-stan-rkr5.1from
sintjuri wants to merge 1 commit intoradxa:linux-6.1-stan-rkr5.1from
Conversation
The Rockchip CSI2 DPHY driver expects sensors to register with endpoint fwnode for async matching to work. The ov9281 driver was using v4l2_async_register_subdev_sensor() which registers with device fwnode, causing the async matching to fail. Fix this by explicitly setting sd->fwnode to the endpoint fwnode before registration and using v4l2_async_register_subdev() instead. Without this fix, the sensor is never bound to the DPHY and camera capture fails on Rockchip RK3588 based boards like Radxa CM5. Tested on Radxa CM5 IO Board with OV9281 camera module. Signed-off-by: Iurii Sintiaev <sintjuri@yandex.ru>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The OV9281 camera sensor driver fails to work on Rockchip RK3588-based
boards (like Radxa CM5 IO) because async subdev matching never completes.
The Rockchip CSI2 DPHY driver registers an async notifier waiting for
the sensor's endpoint fwnode, but the ov9281 driver was registering
with its device fwnode via
v4l2_async_register_subdev_sensor().This mismatch causes the DPHY to wait forever for the sensor, resulting in:
Solution
Set
sd->fwnodeto the sensor's endpoint fwnode before registration,and use
v4l2_async_register_subdev()instead of the_sensorvariant.Testing
Tested on:
After this fix:
Media topology after fix
m00_b_ov9281 7-0060 → rockchip-csi2-dphy1 → rockchip-mipi-csi2 → stream_cif_mipi_id0