20260211/q1.1.1a - initial d4xx-max96724 implementation for Intel IPU6 and IPU7#5
Draft
Pirouf wants to merge 74 commits intointel:mainfrom
Draft
20260211/q1.1.1a - initial d4xx-max96724 implementation for Intel IPU6 and IPU7#5Pirouf wants to merge 74 commits intointel:mainfrom
Pirouf wants to merge 74 commits intointel:mainfrom
Conversation
Pirouf
commented
Mar 5, 2026
- d4xx-max96724 : intial implementation for intel IPU6 and IPU7
- v4l2-core : Intel IPU6 /IPU7 CSI2 v4l2 stream & route API usage model
* ipu-acpi: Copy ipu-acpi over from ipu6-drivers Baseline commit c8029a6769b4a1c0f6e051cc226c48ac08e41949 Signed-off-by: hepengpx <pengpengx.he@intel.com> Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
* media, i2c: build dkms modules * media: i2c: Copy over max9x from ipu6-drivers Baseline on c8029a6769b4a1c0f6e051cc226c48ac08e41949 Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com> Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
This change is to extract correct kernel version from BKC naming. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
DRIVER_VERSION_SUFFIX dkms version suffix will be passed to kernel module version. Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Baseline on c8029a6769b4a1c0f6e051cc226c48ac08e41949 Signed-off-by: Khai Wen Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
IPU6 on K6.12, IPU7 on K6.17 Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
…pi v6.12, v6.17 and v6.18 support Debian dkms build all dependencies from `ipu6-drivers` and `ipu7-drivers` github repositories based of baseline PTL release for iot on 2025-12-30. The upstream linux v6.12, v6.17 and v6.18 `v4l2-core` layers exact copies are maintained here to allow `v4l2_subdev_enable_streams_api=true` support (`=false` by default in kernel.org and Canonical Ubuntu) * dkms: use ipu6-drivers and ipu7-drivers git-submodule to build ISYS and PSYS depends * dkms : allow both with intel-lts and canonical linux headers * v4l2-core : add v6.17 v4l2_subdev_enable_streams_api support * v4l2-core : add v6.12 v4l2_subdev_enable_streams_api support * ipu6-isys : add intel-lts out-of-tree patches * v4l2-core : workaround ar0234 v4l2-cci deps missing on linux-lts 6.12 images Signed-off-by: florent pirou <florent.pirou@intel.com>
* ipu6-isys, ipu7-isys: add d4xx video VIDIOC_S_EXT_CTRLS by streamid, add d4xx frame fmt
* dkms: avoid dh_source issues
* isys-video: ignore default raw colorspace that can not be overritten by v4l2src gst plugin
```
gst-launch-1.0 -e -v v4l2src device=/dev/video-rs-color-0 ! 'video/x-raw, width=640, height=480, format=YUY2, pixel-aspect-ratio=1/1' ! videoconvert ! fakesink
```
* ipu6-isys, ipu7-isys: fix librealsense2 v4l2 backend pipeline config `rs2_pipeline_start_with_config` call returns an error in rs-depth Z16 pixel-format
```
There are 1 connected RealSense devices.
Using device 0, an Intel RealSense D457
Serial number: 242422303456
Firmware version: 5.13.1.53
The connected device doesn't support depth streaming!
```
Signed-off-by: florent pirou <florent.pirou@intel.com>
* maintain intel-ipu6-dkms (20250703+iotgipu6-0eci1) backward compat Signed-off-by: florent pirou <florent.pirou@intel.com>
RealSense PRQ d4xx version is 1.0.1.20. - support for sensor vc. - support for sensor state. - sensor own v4l2 controls. - max9295/6 serdes drivers and control for multiple pipe. - aggregation support Signed-off-by: Dmitry Perchanov <dmitry.perchanov@intel.com> Signed-off-by: florent pirou <florent.pirou@intel.com>
* d4xx: kernel6 intel#3 dmipx/ipu6-drivers@15ddce4 * d4xx: kernel6 intel#2 dmipx/ipu6-drivers@e113eca * d4xx: kernel6 dmipx/ipu6-drivers@7726252 Signed-off-by: Dmitry Perchanov <dmitry.perchanov@intel.com>
* Kernel 6.6.15 release for Ubuntu (#216) Signed-off-by: zouxiaoh <xiaohong.zou@intel.com> Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
ref-by: https://patches.linaro.org/project/linux-media/patch/20231213140450.21359-3-laurent.pinchart@ideasonboard.com/ The subdev .[gs]_frame_interval are video operations, but they operate on pads (and even on streams). Not only is this confusing, it causes practical issues for drivers as the operations don't receive a subdev state pointer, requiring manual state handling. To improve the situation, turn the operations into pad operations, and extend them to receive a state pointer like other pad operations. While at it, rename the operations to .[gs]et_frame_interval at the same time to match the naming scheme of other pad operations. This isn't strictly necessary, but given that all drivers using those operations need to be modified, handling the rename separately would generate more churn for very little gain (if at all). Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
* enable `v4l2-ctl --set-ctrl v4l2_cid_link_freq=` runtime override * add D4XX_LINK_FREQ_750MHZ to MTL CSI D-PHY * add MTL CSI2 D-PHY debug messages Signed-off-by: Florent Pirou <florent.pirou@intel.com>
Signed-off-by: Florent Pirou <florent.pirou@intel.com>
* d4xx : kernel NULL pointer dereference [ 1950.081452] #PF: supervisor write access in kernel mode [ 1950.086655] #PF: error_code(0x0002) - not-present page [ 1950.216966] Call Trace: [ 1950.219401] <TASK> [ 1950.221504] ? show_regs+0x6d/0x80 [ 1950.224902] ? __die+0x24/0x80 [ 1950.227952] ? page_fault_oops+0x99/0x1b0 [ 1950.231948] ? do_user_addr_fault+0x31d/0x6b0 [ 1950.236283] ? exc_page_fault+0x83/0x1b0 [ 1950.240190] ? asm_exc_page_fault+0x27/0x30 [ 1950.244358] ? mutex_lock+0x1d/0x50 [ 1950.247827] ? mutex_lock+0x12/0x50 [ 1950.251301] max9296_reset_control+0x26/0xf0 [max9296] [ 1950.256425] ds5_remove+0xba/0x2e0 [d4xx] [ 1950.260423] i2c_device_remove+0x25/0xc0 [ 1950.264338] device_remove+0x40/0x80 [ 1950.267899] device_release_driver_internal+0x20b/0x270 [ 1950.273096] driver_detach+0x4a/0xa0 [ 1950.276655] bus_remove_driver+0x83/0x110 [ 1950.280641] driver_unregister+0x2f/0x60 [ 1950.284542] i2c_del_driver+0x46/0x90 [ 1950.288191] ds5_i2c_driver_exit+0x10/0x18 [d4xx] Signed-off-by: Florent Pirou <florent.pirou@intel.com>
Signed-off-by: Florent Pirou <florent.pirou@intel.com>
Signed-off-by: Florent Pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: Florent Pirou <florent.pirou@intel.com>
* debian: add d4xx-max96712 build option * d4xx-max96724: configure X,Y,Z and U pipes on each GMSL inputs * d4xx-max96724: add HS/VS pipe status msgs * d4xx-max96724: delay CSI output enable after sensor stream start * d4xx-max96724: trigger link reset after set_pipe, before csi output enable * d4xx-max96724: comment out link reset after set_pipe, before csi output enable * d4xx-max96724: cleanup debug messages * d4xx-max96724: remove max9295 init error after gmsl a link reset * d4xx-max96724: revamp sdev register source mapping * d4xx-max96724: fix gmsl link source mapping * d4xx: revisit get_fram_desc mux impl, add sensor get_fram_desc support * d4xx-max96724: add link src dedicated pipe config build otion * d4xx: cleanup get frame desc impl * d4xx: change max96724 phy lanes mapping * d4xx: fix max9295 and max92724 pairing mismatchs * d4xx: fix max96724 csi mapping to ipu7 * d4xx: fix max96724 csi phy lane map to ipu7 * d4xx: add max96724 legacy mode compile option * d4xx: change to max96724 dser 4X2 mode * d4xx: configure max96724 vc_ext, ignore deskew in cphy * d4xx-max96724: fix vc_id 4bits pipe mapping * d4xx: tolerate max9295 and max96724 distinct csi mode and nlanes * d4xx-max96724: fix set pipe select and lanes configs * d4xx: clear max96724 vc_ext src 3bits msb * d4xx-max96724: remove deskew init, cleanup lane cnt config * d4xx: apply deskew init, fix csi lane config * d4xx-max96724: fix cphy link-freq, remove dphy wake seq * d4xx-max96724: fix cphy link-freq, remove dphy wake seq" * d4xx-max96724: allow alternative pipe mapping on max96712 * d4xx-max96724: add 2000bps cphy link-speed * d4xx-max96724: force dpll soft reset and config on all csi outputs * d4xx-max96724: fix dpll soft reset sequence, switch to alt2 mem8 * d4xx-max96724: remove phy and csi sync concatenation * d4xx: fix dual max96724 asymetric cphy pin map * d4xx: exclude servoss montain specific cphy mapping * d4xx: compile max96712 legacy mode by default * d4xx: compile Servoss Mountain CRD max96724 cphy pinmap expection * d4xx: compile Servoss Mountain CRD max96724 cphy pinmap expection ``` Makefile subdir-ccflags-$(CONFIG_VIDEO_D4XX_MAX96724) += -DCONFIG_VIDEO_D4XX_MAX96712_LEGACY -DCONFIG_VIDEO_D4XX_MAX96724_SERVOSS_MOUNTAIN ``` * d4xx: replace Servoss mountain by module param * d4xx-max96724: fix d4xx sensor SYNC config per pipe * d4xx-max96724: configure max9295 i2c channel A only * d4xx: init stream sink and source via substream array * d4xx: fix stream fmt, enforce channel control * d4xx: initial sensor get frame desc callback * d4xx: set mux and sensors media entity distinct funtions * d4xx: i2c channel control link mismatch * d4xx-max96724 : fix pipe virtual channel mapping Signed-off-by: florent pirou <florent.pirou@intel.com>
LRS expects success on hwmc ioctl call. [Error] /tmp/sandbox/src/librealsense-exception.h:52 - xioctl(VIDIOC_G_EXT_CTRLS) failed Last Error: Bad message Signed-off-by: Dmitry Perchanov <dmitry.perchanov@intel.com>
…s (#285) * Added err and dmesg in ds5_get_hwmc if response length is 0 * Added comments and replaced hard coded HWMC addresses
* Add D41x support * Fix D41x resolutions
* Relax Start stream TO * Use only ds5_[raw]_<read/write> wrapper and not regmap_raw_<read/write> directly
Signed-off-by: florent pirou <florent.pirou@intel.com>
* assume d457 fw 5.16.0 or higher by default * fix d4xx binding and v4l2 streamid mapping * fix rs-depth Z16 pixel-format error * add d4xx to udev rules * d4xx bind media controller reset * force d4xx isys vidcap in video group * add d4xx module param max96724 csi mapping * derive stream sink and source from isys pad index * workaround csi subdev sink stream d4xx format mismatch * fix d4xx C and D set_fmt * manage inactive routes during binding * helper: ignore pad fmt init on d4x inactive routes * helper: activate all sensor routes for d4xx single camera binding * helpers: detect d4xx vidcap with inactive routes * helpers: fix d4xx media-ctl link binding syntaxe * helpers: workaround the GMSL D eight active route per-csi2 limit * helpers: bind all d4xx sensors if singular camera Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
2562382 to
37da0d9
Compare
* debian: initial dpkg rules, control and debconf * submodule: Pin IPU6 drivers depends to 71e2e426f3e16f8bc42bf2f88a21fa95eeca5923 * submodule: Pin IPU7 drivers depends to 57304c286317ece4c0a74a52c4733486c57444ce * dkms: remove one-size-don't-fit-all dkms conf * README: rewrite the cumbersome getting started * patches: WA `media-ctl` 1-digit stream-id limitation on `v4l-utils` v1.32 latest stable Signed-off-by: florent pirou <florent.pirou@intel.com>
37da0d9 to
f41d409
Compare
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.