debian/20260421.2 - incremental 26Q1.2 d4xx backward compatible drivers#27
Draft
Pirouf wants to merge 72 commits into
Draft
debian/20260421.2 - incremental 26Q1.2 d4xx backward compatible drivers#27Pirouf wants to merge 72 commits into
Pirouf wants to merge 72 commits into
Conversation
Pirouf
commented
Jun 15, 2026
- d4xx-max96724 : intial implementation for intel IPU6 and IPU7
- v4l2-core : Intel IPU6 /IPU7 CSI2 v4l2 stream & route API usage model
* ipu6-isys, ipu7-isys: reindex d4xx patch quilt
* v4l2core, ipu-bridge: reindex patch quilt
* ipu7-isys: fetch csi-phy frame desc walking through all active routes
* ipu7-isys: clear csi phy frame desc
* ipu7-isys, ipu6-isys: fix Y8I css pixelformat
* ipu7-isys: workaround csi2 unsupported YUYV8_1X16 css pixelformat
* ipu6-isys, ipu7-isys: add d4xx video VIDIOC_S_EXT_CTRLS by streamid, add d4xx frame fmt
* ipu6-isys, ipu7-isys : add V4L2_CID_IPU_ENUMERATE_LINK definitions
* 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!
```
* ipu7-isys : ignore HW_ERR_BAD_FRAME_DIM led isys-queue expected buffers noise
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>
Signed-off-by: florent pirou <florent.pirou@intel.com>
* serdes, sensor: use new naming convention : "<a|b|c|d>-<csi-port idx>" Signed-off-by: florent pirou <florent.pirou@intel.com>
``` [ 45.223993] IPU ACPI: d4xx current i2c_bdf 0000:00:15.1 serdes 0-1, prior 0000:00:15.1 [ 45.228600] IPU ACPI: d4xx current i2c_addr 0x14 serdes 0-1, prior 0x12 [ 45.228602] IPU ACPI: d4xx current i2c_addr 0x48 sensor 0-1, prior 0x48 [ 45.228603] IPU ACPI: Increment d4xx namespacing on aggregated-link sensors 0 ``` * ipu-acpi: fallback for camera pdata with wrong d4xx pprval and pprnum entries Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
* maintain intel-ipu6-dkms (20250703+iotgipu6-0eci1) backward compat * d4xx-compat: maitain backward compatible d4xx 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>
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>
* max929x: backported kernel6 intel#3 dmipx/ipu6-drivers@cd6786f * max929x: backported kernel6 intel#2 dmipx/ipu6-drivers@6883c69 * max929x: backported kernel6 dmipx/ipu6-drivers@f5caff7 Signed-off-by: Dmitry Perchanov <dmitry.perchanov@intel.com>
Signed-off-by: Florent Pirou <florent.pirou@intel.com>
Signed-off-by: Florent Pirou <florent.pirou@intel.com>
…ddresses (#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>
… aggregation * d4xx-max96724: control pipe set and reset per deser link source * d4xx-max96724: enable csi output right after set pipes * d4xx-max96724: disable max96712 legacy-mode compile option * d4xx-max96724: reduce i2c channel-control scope, add src-link pipe aggregation Signed-off-by: florent pirou <florent.pirou@intel.com>
Signed-off-by: florent pirou <florent.pirou@intel.com>
* d4xx-max9295: enable cphy/dphy 5/4-bits vc-extension Signed-off-by: florent pirou <florent.pirou@intel.com>
* d4xx: initialized sensor virtual-channel upto 8 * d4xx-max96724: extend dt/vc remap and aggregate upto 8 Signed-off-by: florent pirou <florent.pirou@intel.com>
d4xx-max96724: fix aggregator assignement d4xx-max96724: fix legacy-mode pipe selection d4xx-max96724: force max96712 legacy-mode Signed-off-by: florent pirou <florent.pirou@intel.com>
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 * helpers: add d4xx modprobe configs extra examples 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>
* helpers: fix edge case if only 2 cameras per ipu7 csi ``` Bus Camera Sensor Node Type Video Node RS Link ipu6 a-0 ir Stream(id=4) /dev/video5 /dev/video-rs-ir-0 ipu6 a-0 depth Stream(id=0) /dev/video1 /dev/video-rs-depth-0 ipu6 a-0 imu Stream(id=5) /dev/video6 /dev/video-rs-imu-0 ipu6 a-0 color Stream(id=2) /dev/video3 /dev/video-rs-color-0 i2c a-0 d4xx Firmware /dev/d4xx-dfu-a-0 /dev/d4xx-dfu-0 ipu6 b-0 ir Stream(id=10) /dev/video11 /dev/video-rs-ir-1 ipu6 b-0 depth Stream(id=6) /dev/video7 /dev/video-rs-depth-1 ipu6 b-0 imu Stream(id=11) /dev/video12 /dev/video-rs-imu-1 ipu6 b-0 color Stream(id=8) /dev/video9 /dev/video-rs-color-1 i2c b-0 d4xx Firmware /dev/d4xx-dfu-b-0 /dev/d4xx-dfu-1 ``` * helpers: fix edge case if more than 2 cameras per ipu7 csi ``` Bus Camera Sensor Node Type Video Node RS Link ipu7 a-2 ir Stream(id=4) /dev/video37 /dev/video-rs-ir-8 ipu7 a-2 depth Stream(id=0) /dev/video33 /dev/video-rs-depth-8 ipu7 a-2 imu Stream(id=5) /dev/video38 /dev/video-rs-imu-8 ipu7 a-2 color Stream(id=2) /dev/video35 /dev/video-rs-color-8 i2c a-2 d4xx Firmware /dev/d4xx-dfu-a-2 /dev/d4xx-dfu-8 ipu7 c-2 ir Inactive /dev/video45 /dev/video-rs-ir-10 ipu7 c-2 depth Stream(id=1) /dev/video34 /dev/video-rs-depth-10 ipu7 c-2 imu Inactive /dev/video46 /dev/video-rs-imu-10 ipu7 c-2 color Stream(id=3) /dev/video36 /dev/video-rs-color-10 i2c c-2 d4xx Firmware /dev/d4xx-dfu-c-2 /dev/d4xx-dfu-10 ipu7 d-2 ir Inactive /dev/video47 /dev/video-rs-ir-11 ipu7 d-2 depth Stream(id=7) /dev/video40 /dev/video-rs-depth-11 ipu7 d-2 imu Inactive /dev/video48 /dev/video-rs-imu-11 ipu7 d-2 color Stream(id=9) /dev/video42 /dev/video-rs-color-11 i2c d-2 d4xx Firmware /dev/d4xx-dfu-d-2 /dev/d4xx-dfu-11 ``` Signed-off-by: florent pirou <florent.pirou@intel.com>
* helpers: fix edge-cases on binding 2 and 3 cameras. * helpers: d4xx binding option to set initial frame size and intervals ``` ./helpers/rs_ipu_d457_bind.sh -n -f 1280x720@1/3 && ./helpers/rs-enum-ipu.sh -n ``` Signed-off-by: florent pirou <florent.pirou@intel.com>
* helpers: bisect ipu isys v4l2 media device from usb media Signed-off-by: florent pirou <florent.pirou@intel.com>
helpers: bind d4xx args as camera suffix list. Signed-off-by: florent pirou <florent.pirou@intel.com>
* 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 * helpers: add mtbf gmsl test scripts for isx031 * debian: fetch v4l2-core in dh configure step, fix dkms file Signed-off-by: florent pirou <florent.pirou@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.