суббота

[Bug 2138756] Re: [ov02c10] Camera unusable on Lenovo Yoga Slim 7x - system hangs, I2C timeouts, color artifacts

I have submitted two patch series to the upstream Linux kernel to fix
the OV02C10 camera issues on Lenovo Yoga Slim 7x (Snapdragon X Elite):

- Series 1: Camera Stability and Power Cycling Fixes (Submitted Jan 24,
2026)

Status: Under review on linux-media@vger.kernel.org

Patches:
1. [media: qcom: camss: Fix pipeline lock leak in stop_streaming](https://lore.kernel.org/linux-media/20260124071751.5885-2-bjsaikiran@gmail.com/)
- Fixes camera becoming permanently locked after browser/app closes
- Prevents "Pipeline handler in use by another process" errors

2. [media: i2c: ov02c10: Check for errors in disable_streams](https://lore.kernel.org/linux-media/20260124071751.5885-3-bjsaikiran@gmail.com/)
- Adds proper error logging when camera fails to stop
- Aids in debugging power management issues

3. [media: i2c: ov02c10: Enforce cool-down period to prevent brownout](https://lore.kernel.org/linux-media/20260124071751.5885-4-bjsaikiran@gmail.com/)
- Fixes brownout/latch-up during rapid power cycling
- Prevents system crashes requiring reboot
- Enforces 2-second minimum gap between power cycles

Cover letter: https://lore.kernel.org/linux-
media/20260124071751.5885-1-bjsaikiran@gmail.com/


Series 2: Camera Color and Basic Stability Fixes (Submitting shortly)

Status: Prepared, will be submitted to linux-media@vger.kernel.org

Patches:
1. [media: i2c: ov02c10: Fix incorrect Bayer pattern to SGRBG10] (https://lore.kernel.org/linux-media/20260124074402.7165-2-bjsaikiran@gmail.com/T/#u)
- Fixes severe green color tint in all captured images
- Changes from incorrect SBGGR10 to correct SGRBG10 pattern
- Tested all 4 Bayer patterns - only SGRBG10 produces natural colors

2. [media: i2c: ov02c10: Fix race condition in remove and relax reset timings] (https://lore.kernel.org/linux-media/20260124074402.7165-3-bjsaikiran@gmail.com/T/#u)
- Fixes kernel oops ("Execute from non-executable memory") during camera removal
- Fixes "master 1 queue 0 timeout" CCI I2C errors during initialization
- Reorders cleanup sequence to prevent Use-After-Free

Cover letter: https://lore.kernel.org/linux-media/20260124074402.7165-1-bjsaikiran@gmail.com/T/#t

Prerequisites:
Full camera enablement also requires device tree patches by Aleksandrs Vinarskis:
- Fix RGB camera regulator supplies (avdd/dvdd/dovdd)
- Enable camera privacy indicator LED

Submission Status - Unknown

Testing:

All patches have been tested together on:
- Linux kernel 6.19-rc5
- Lenovo Yoga Slim 7x (Snapdragon X Elite x1e80100)

Results:
With all patches applied:
- Camera produces natural colors (no green tint)
- No crashes on camera close/removal
- Survives rapid open/close cycles
- No system lockups requiring reboot
- Stable operation with all tested applications

** Attachment added: "Patch series fixing camera brownout issue upon rapidly turning the camera on and off"
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2138756/+attachment/5940524/+files/Camera_brownout_fixes.zip

--
You received this bug notification because you are subscribed to linux
in Ubuntu.
Matching subscriptions: Bgg, Bmail, Nb
https://bugs.launchpad.net/bugs/2138756

Title:
[ov02c10] Camera unusable on Lenovo Yoga Slim 7x - system hangs, I2C
timeouts, color artifacts

Status in linux package in Ubuntu:
New

Bug description:
Impact:
The OV02C10 camera sensor on Lenovo Yoga Slim 7x is completely unusable due to system hangs, I2C timeouts, and severe color corruption.

Affected Hardware:
- Device: Lenovo Yoga Slim 7x (Snapdragon X Elite / x1e80100)
- Camera sensor: OmniVision OV02C10 (RGB, 2MP)
- Platform: Qualcomm Camera Control Interface (CCI)

Ubuntu Version:
Ubuntu 25.10

Symptoms:
1. System Hangs/Crashes (Critical):
- System hangs or kernel oops during camera initialization or usage
- "master 1 queue 0 timeout" errors from CCI/I2C
- Hangs persist across camera app launches (Cheese, qcam, PipeWire)

2. Initialization Failures:
- Camera fails to probe or initialize
- Regulator supply errors in dmesg

3. Color Artifacts:
- Severe green/incorrect color tint in all images
- Cannot be corrected by white balance adjustments
- Raw Bayer pattern mismatch

Root Causes:

Issue 1 - System Hang (Critical):
Race condition in ov02c10_remove() where resources are freed before sensor power-off, causing use-after-free errors when Runtime PM or PipeWire/WirePlumber interact with the device. Additionally, internal sensor reset timings are too aggressive for reliable hardware initialization.

Issue 2 - Color Pattern:
Driver reports incorrect Bayer pattern (SBGGR10 or SGBRG10), but the physical sensor layout on this device is SGRBG10, causing color channel misalignment.

Issue 3 - DTS Configuration:
Missing regulator supplies for RGB sensor and camera privacy LED not configured.

Fix:
A patch series of 4 commits addresses all issues:

1. DTS: Fix regulator supplies for RGB sensor
- Adds missing vdda/vddd supplies
- Fixes camera initialization failures

2. DTS: Enable Camera Privacy LED
- Configures GPIO 110 for privacy indicator

3. Driver: Update Bayer pattern to SGRBG10
- Changes MEDIA_BUS_FMT_SBGGR10_1X10 → MEDIA_BUS_FMT_SGRBG10_1X10
- Fixes severe green color cast

4. Driver: Fix race condition and relax reset timings
- Reorders cleanup in ov02c10_remove(): disable Runtime PM *before* freeing resources
- Increases reset timing: 5ms assert, 20ms post-delay (was 1ms/2ms)
- Fixes system hangs and "master 1 queue 0 timeout" errors

Testing Results:
- Camera stable across repeated sessions (no hangs/crashes)
- Proper initialization on every boot
- Sharp images with correct orientation
- Color accuracy significantly improved (green tint eliminated)
- Userspace color tuning still needed for perfect white balance (libcamera YAML)

Configuration Requirements:

Kernel config:
CONFIG_VIDEO_OV02C10=m

Userspace packages:
libcamera-tools libcamera-ipa gstreamer1.0-libcamera

Pipeline: libcamera 'simple' pipeline with SoftISP (Software Image
Signal Processor)

Reference:
Camera stack setup for X1E: https://github.com/alexVinarskis/linux-x1e80100-zenbook-a14#camera-configuration

Complete Technical Details:
Full description, patches, and optional YAML tuning file available at:
https://bugs.launchpad.net/ubuntu-concept/+bug/2138706

Patches attached as lenovo-yoga-slim7x-camera-fixes.zip

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2138756/+subscriptions

Комментариев нет:

Отправить комментарий