Linux Media Controller development
 help / color / mirror / Atom feed
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

      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