Add OV13B10 direct-MIPI support and D4xx suspend/resume plus mc-setup robustness updates - #46
Merged
Merged
Conversation
Register the OV13B10 ACPI HID and sensor model for direct-MIPI discovery. Use the sensor active format when configuring direct-MIPI capture, and add OV13B10 entity handling to format propagation. Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
Add SSDT overlay for dual OV13B10 sensors on IPU75XA IPU7 platform: - CAM0: I2C1, MIPI port 0, 4 lanes, reset GPIO pin 10 (COM1 C_D_E_H pad 10) - CAM1: I2C2, MIPI port 2, 2 lanes, reset GPIO pin 1 (COM1 C_D_E_H pad 1) Use OV13B10 common include for direct MIPI camera resources and device properties, aligned with existing direct-MIPI camera overlays. Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
Add SSDT overlay for dual OV13B10 sensors on NVL IPU8 platform: - CAM0: I2C1, MIPI port 0, 4 lanes, reset GPIO pin 36 (COM1 C_E_V pad 10) - CAM1: I2C0, MIPI port 2, 2 lanes, reset GPIO pin 11 (COM1 B_D_F_S pad 11) Use OV13B10 common include for direct MIPI camera resources and device properties, aligned with existing direct-MIPI camera overlays. Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
After S3 (s2idle) resume, the MAX96717 serializer's cached runtime state (pipe->enabled, phy->active, streams_masks) remained stale from before suspend. When enable_streams() ran post-resume, idempotency guards saw the cached state matched the requested state and skipped re-enabling pipes and PHYs that were actually disabled in hardware by max_ser_init(). This caused the second stream (RGB on VC1) to have its serializer pipe and PHY left disabled, so data from the D457 sensor never reached the CSI-2 output despite the sensor FW confirming it was streaming. Fix by clearing all cached serializer runtime state in max_ser_resume() after hardware re-initialization, so enable_streams() detects a real delta and reprograms the hardware. Also implement d4xx ds5_suspend/ds5_resume to clear stale streaming flags and reinitialize D457 FW (MIPI lanes, data rate, stream reset) on resume, and propagate errors from ds5_enable/disable_streams. Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
- Add mutex locking in suspend/resume for thread safety - Actually stop streaming by writing DS5_STREAM_STOP to firmware instead of just clearing streaming flags - Control reset GPIO in suspend (low) and resume (high) to properly power cycle the sensor - Add 200ms delay after GPIO high for sensor I2C readiness - Add error logging on resume failure Similar to isx031.c suspend/resume implementation. Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
- IPU6 driver submodule: a810b67d4857db8440fe7271f34fce421c74621c - IPU7 driver submodule: 495acc90feb09d8008c0a6228fb8bb4c6415ca62 Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
There is no point calling out streams for 2D sensor since they only have single stream, and will only take up 1 capture node. Remove the 2D sensors from MODEL_STREAMS and MODEL_DEFAULT_STREAMS to reduce the maintenance effort and also reduce the blocks to modify when there are new sensors. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Update comments to match with latest implementation. Fix MIPI so that it uses sensor_active_format to get active format and resolution before calling media-ctl. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Depth node remains 0,1,2,3 RGB node remains 4,5,6,7 IR node now uses 6,7,4,5 IMU node now uses 2,3,0,1 This is to fit in all streams within 8 video nodes. Hence, there are certain combinations that are not supported if the capture node collides. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
When changing format, if current resolution is not supported by the format, select the largest resolution supported by the format. Then, checks the FPS supported by the resolution. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
d4xx IR stream has RGB888_1X24 format. Add the format into script and ipu7-drivers. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
If getting default format from D457, depth stream returns FIXED. This format is interpreted by IPU driver as Z16. Add a format conversion in mc-setup to set Z16 correctly towards IPU capture node. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Rejects Models with invalid stream token. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
There might be unintentional white space when running script, such as stream=[depth], [rgb]; or stream=[depth m res=xxx]. Add handling to trim white spaces unless intentional whitespace that is within quote, such as format='Z16 '. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Remove STREAM-MAJOR comments. Remove unused variable. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
MEDIA_BUS_FMT_FIXED caused mismatch with video node where Z16 is mapped to UYVY8_1X16 due to patch 0006. Add a STREAM_FORMAT_MAP table that specifically map depth stream FIXED format as UYVY8_1X16 throughout the pipeline. To add new mapping, follow sensor_stream_format syntax. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
ASL update. Change 3 D3 cameras from channel 0,1 to channel 1,2. Change d457 camera from DES1 channel 2 to DES 1 channel 1. Signed-off-by: Seng Guan, Chng <seng.guan.chng@intel.com>
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.
Description of changes
OV13B10 direct-MIPI enablement across platforms
This PR adds full direct-MIPI bring-up support for OV13B10, including sensor discovery updates and platform ACPI/SSDT integration for both IPU7 and IPU8 targets. It also includes ASL adjustments for channel mapping alignment on LGE-required configurations, so dual-camera topologies enumerate and initialize correctly.
D4xx suspend/resume stability fixes (S3/s2idle)
It resolves a key resume regression where RGB streaming could remain stuck after S3 by clearing stale serializer runtime state and forcing proper reprogramming after hardware re-init. The D4xx suspend/resume path is tightened with explicit stream-stop behavior, reset GPIO sequencing, readiness delay, and stronger error propagation, improving post-resume stream reliability.
IPU6/IPU7 driver baseline alignment
The branch updates IPU6 and IPU7 driver submodules to revisions compatible with the camera-flow and resume-path changes in this series. This keeps kernel-side dependencies in sync and reduces integration friction between script-level setup and driver runtime behavior.
mc-setup hardening and D4xx format/stream correctness
Multiple mc-setup fixes improve robustness: better token validation/parsing, whitespace handling, corrected MIPI active-format flow, node-mapping updates for IR/IMU, and safer format-change resolution fallback logic. It also adds/normalizes D4xx format support (including RGB888_1X24 and FIXED-depth mapping behavior such as Z16 handling) to prevent pipeline mismatches and invalid runtime configurations.