From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: Durgesh Ajgaonkar <drajgaonkar@gmail.com>
Cc: linux-media@vger.kernel.org, laurent.pinchart@ideasonboard.com
Subject: Re: [REGRESSION?] Intel IPU6/OV2740 camera fails to stream after camera use on ThinkPad X1 Carbon Gen 10
Date: Mon, 24 Aug 2026 13:02:37 +0300 [thread overview]
Message-ID: <aowWveS-itiL_Cyv@kekkonen.localdomain> (raw)
In-Reply-To: <CAFt93pqcefoiURczzaVTH_QxSZtmkyh3B3Z3CD0QemSsyRHopQ@mail.gmail.com>
Hi Durgesh,
Thank you for the e-mail.
On Sun, Aug 23, 2026 at 06:26:45PM -0400, Durgesh Ajgaonkar wrote:
> Hello,
>
> I am reporting two problems with the built-in OV2740 camera on a ThinkPad
> X1 Carbon Gen 10 with Intel IPU6:
>
> 1. When the camera is functioning, 1280x720 video is limited to
> approximately 10-11 FPS.
Do you use libcamera (e.g. qcam) or the downstream psys driver / Intel
Camera HAL in this case?
I just tested Yoga G7 here and it works fine, albeit with a fairly high CPU
load, with qcam.
>
> 2. After certain camera-use sequences, the camera can subsequently fail to
> produce frames. In the failing state, the IPU6 ISYS/CSI2 driver reports CRC
> errors, packet-header errors, FIFO overflow, frame synchronization errors,
> and eventually a stream stop timeout.
>
> The camera can work normally from a clean state, but after using the camera
> through another camera application, qcam can subsequently fail to produce
> frames. In the failing state, the kernel reports errors from the IPU6 ISYS
> CSI2 receiver, including CRC errors, packet header errors, FIFO overflow,
> frame synchronization errors, and eventually a stream stop timeout.
>
> Hardware/software information:
>
> - Laptop: Lenovo ThinkPad X1 Carbon Gen 10
> - Camera sensor: OV2740
> - Camera interface: Intel IPU6
> - IPU6 PCI device: 0000:00:05.0
> - Sensor ACPI/I2C identifier: INT3474:01
> - Sensor I2C address: 0x36
> - Normal kernel: 7.1.8-1-cachyos
> - libcamera: 0.7.0+ov01a10.2
> - qcam: libcamera qcam
> - Distribution: CachyOS
>
> The kernel detects the IPU6 and sensor correctly:
>
> intel-ipu6 0000:00:05.0: Found supported sensor INT3474:01
> intel-ipu6 0000:00:05.0: Connected 1 cameras
> intel-ipu6 0000:00:05.0: IPU6-v3[465d] hardware version 5
>
> The media topology shows the OV2740 connected to IPU6 CSI2 port 1,
> which is connected to ISYS Capture 8 (/dev/video8):
>
> ov2740 17-0036
> -> Intel IPU6 CSI2 1
> -> Intel IPU6 ISYS Capture 8 (/dev/video8)
>
> The sensor/CSI2 topology reports:
>
> ov2740 17-0036:
> SGRBG10_1X10/1932x1092
>
> Intel IPU6 CSI2 1:
> SGRBG10_1X10/1932x1092
>
> /dev/video8:
> 1932x1092 BG10
>
> The relevant v4l2-ctl output for /dev/video8 shows:
>
> Driver name : isys
> Card type : ipu6
> Bus info : PCI:0000:00:05.0
> Driver version : 6.18.42
> Video Capture
> Metadata Capture
> I/O MC
> Streaming
>
> Format Video Capture:
> Width/Height : 1932/1092
> Pixel Format : 'BG10'
> Field : None
> Bytes per Line : 3904
> Size Image : 4267072
>
> A direct v4l2-ctl streaming attempt on /dev/video8 also fails in the
> problematic state:
>
> v4l2-ctl -d /dev/video8 \
> --set-fmt-video=width=1932,height=1092,pixelformat=BG10 \
> --stream-mmap \
> --stream-count=10
>
> returns:
>
> VIDIOC_STREAMON returned -1 (Broken pipe)
>
> and produces a zero-byte output file.
This won't work because the MC pipeline hasn't been configured yet.
>
> This indicates that the problem is not limited to qcam's UI or camera
> application. The failure also occurs when attempting to stream directly
> through the V4L2 ISYS capture device.
>
> In contrast, qcam can successfully open and stream the camera on the same
> CachyOS kernel from a working state.
>
> A successful qcam run produced:
>
> Found 5 IPU6 camera(s) via libcamhal
> Found IPU6 camera 0: ov2740-uf (facing=0)
> Adding camera 'ipu6-ov2740-uf-0'
> Opening camera device 0
> Camera device 0 opened successfully
> Configured HAL stream: 1280x720 NV12
> Streaming started for camera 0
> Streaming stopped for camera 0
Qcam works as libcamera does set up the pipeline.
>
> The complete successful qcam output is attached as:
>
> qcam-cachyos-success.txt
>
> The important difference is the kernel output observed during the failing
> state. The IPU6 ISYS reports:
>
> intel_ipu6_isys.isys intel_ipu6.isys.40:
> csi2-1 error: Payload checksum (CRC) error
>
> csi2-1 error: Single packet header error corrected
> csi2-1 error: Multiple packet header errors detected
> csi2-1 error: Payload checksum (CRC) error
> csi2-1 error: Transfer FIFO overflow
> csi2-1 error: Incomplete long packet detected
> csi2-1 error: Frame sync error
> csi2-1 error: Inter-frame long packet discarded
>
> Later the driver reports:
>
> stream stop time out
> stream close error: 3
>
> The complete dmesg from the failing state is attached as:
>
> dmesg-cachyos-qcam-failure.txt
>
> I have also observed that qcam can work when it is the first camera
> application started, while subsequent attempts can fail after the camera
> has been used by another camera application. I have not established
> whether this ordering is required to reproduce the problem in every case,
> so I am reporting it as an observed condition rather than a definitive
> cause.
>
> The failure appears to leave the IPU6 CSI2/ISYS path in a state where the
> sensor is detected and the media topology remains present, but streaming
> cannot successfully start or complete.
>
> For comparison, the sensor is correctly detected and the media links are
> present in the failing state. The relevant topology is:
>
> ov2740 17-0036
> -> Intel IPU6 CSI2 1 [ENABLED, IMMUTABLE]
> -> Intel IPU6 ISYS Capture 8 (/dev/video8) [ENABLED]
>
> I would appreciate advice on which component is responsible for this
> failure and whether this points to an IPU6 ISYS/CSI2 driver issue, an
> OV2740 sensor driver issue, or an interaction with the IPU6 userspace
> HAL/libcamera implementation.
>
> I can provide the complete media-ctl topology, v4l2-ctl output, additional
> kernel logs, and reproduction details if needed.
>
> Thank you.
> [0:13:28.593759853] [6662] INFO Camera camera_manager.cpp:340 libcamera v0.7.0+ov01a10.2
> [08-23 18:13:38.195] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb
> [08-23 18:13:38.196] CamHAL[INF] aiqb file name OV2740_CJFLE23_ADL.aiqb
> [08-23 18:13:38.197] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [08-23 18:13:38.197] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [08-23 18:13:38.197] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [08-23 18:13:38.197] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [08-23 18:13:38.197] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [08-23 18:13:38.197] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [08-23 18:13:38.198] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [08-23 18:13:38.198] CamHAL[INF] aiqb file name AR0234_TGL_10bits.aiqb
> [0:13:28.780464326] [6667] INFO IPU6 ipu6.cpp:714 Found 5 IPU6 camera(s) via libcamhal
> [0:13:28.780493938] [6667] INFO IPU6 ipu6.cpp:175 Found IPU6 camera 0: ov2740-uf (facing=0)
> [0:13:28.780512190] [6667] INFO Camera camera_manager.cpp:223 Adding camera 'ipu6-ov2740-uf-0' for pipeline handler ipu6
> [0:13:28.812790617] [6662] INFO Camera camera.cpp:1216 configuring streams: (0) 1280x720-NV12/sYCC
> [0:13:28.812904980] [6667] INFO IPU6 ipu6.cpp:232 Opening camera device 0
> [0:13:28.818307627] [6667] INFO IPU6 ipu6.cpp:240 Camera device 0 opened successfully
> [0:13:28.870234989] [6667] INFO IPU6 ipu6.cpp:276 Configured HAL stream: 1280x720 NV12, stream_id=0 size=1382400
> Using software format conversion from NV12
> [0:13:29.367371564] [6667] INFO IPU6 ipu6.cpp:327 Streaming started for camera 0
> [0:14:12.224443123] [6667] INFO IPU6 ipu6.cpp:374 Streaming stopped for camera 0
> [08-23 18:14:21.700] CamHAL[WAR] Failed to open file /run/camera/ov2740-uf_VIDEO.aiqd, error No such file or directory
Intel camera HAL issues should be filed to the intel/ipu6-camera-hal Github
project.
> [ 0.709157] SCSI subsystem initialized
> [ 0.855334] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
> [ 4.940121] intel-ipu6 0000:00:05.0: enabling device (0000 -> 0002)
> [ 4.961892] intel-ipu6 0000:00:05.0: Found supported sensor INT3474:01
> [ 4.962116] intel-ipu6 0000:00:05.0: Connected 1 cameras
> [ 4.962909] intel-ipu6 0000:00:05.0: Sending BOOT_LOAD to CSE
> [ 4.980282] intel-ipu6 0000:00:05.0: Sending AUTHENTICATE_RUN to CSE
> [ 5.049740] intel-ipu6 0000:00:05.0: CSE authenticate_run done
> [ 5.049746] intel-ipu6 0000:00:05.0: IPU6-v3[465d] hardware version 5
> [ 5.084116] intel_ipu6_psys: loading out-of-tree module taints kernel.
> [ 5.084122] intel_ipu6_psys: module verification failed: signature and/or required key missing - tainting kernel
> [ 5.099043] intel_ipu6_psys.psys intel_ipu6.psys.40: pkg_dir entry count:8
> [ 5.099420] intel_ipu6_psys.psys intel_ipu6.psys.40: psys probe minor: 0
> [ 7.894742] ov2740 i2c-INT3474:01: supply AVDD not found, using dummy regulator
> [ 7.894849] ov2740 i2c-INT3474:01: supply DOVDD not found, using dummy regulator
> [ 7.894865] ov2740 i2c-INT3474:01: supply DVDD not found, using dummy regulator
> [ 495.209979] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Payload checksum (CRC) error
> [ 495.631202] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Single packet header error corrected
> [ 495.631217] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Multiple packet header errors detected
> [ 495.631221] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Payload checksum (CRC) error
> [ 495.631225] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Transfer FIFO overflow
> [ 495.631228] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Incomplete long packet detected
> [ 495.631231] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Frame sync error
> [ 495.631234] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Inter-frame long packet discarded
> [ 495.664758] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Multiple packet header errors detected
> [ 495.664777] intel_ipu6_isys.isys intel_ipu6.isys.40: csi2-1 error: Payload checksum (CRC) error
> [ 550.389252] intel_ipu6_isys.isys intel_ipu6.isys.40: stream stop time out
> [ 550.484045] intel_ipu6_isys.isys intel_ipu6.isys.40: stream close error: 3
--
Regards,
Sakari Ailus
prev parent reply other threads:[~2026-08-24 10:02 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-23 22:26 [REGRESSION?] Intel IPU6/OV2740 camera fails to stream after camera use on ThinkPad X1 Carbon Gen 10 Durgesh Ajgaonkar
2026-08-24 10:02 ` Sakari Ailus [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aowWveS-itiL_Cyv@kekkonen.localdomain \
--to=sakari.ailus@linux.intel.com \
--cc=drajgaonkar@gmail.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox