HamburgerMenu
hirist

Job Description

Job Title :


Senior Camera Driver / Embedded Linux Kernel Engineer


Job Summary :


We are seeking a highly skilled Camera Driver Engineer with expertise in Android Camera HAL3, V4L2, and MIPI CSI-2 integration to develop, optimize, and debug the end-to-end camera pipeline from Android Camera2 API through Camera HAL, V4L2 kernel drivers, and sensor hardware.


The ideal candidate will have hands-on experience with Linux kernel driver development, multimedia subsystems, and performance optimization for camera capture, streaming, and ISP pipelines.


Key Responsibilities :


Camera Framework & HAL Development :

- Develop, integrate, and optimize the Android Camera HAL3 layer.

- Implement and manage the capture flow between Camera2 API, Camera Provider, and Camera HAL.

- Ensure proper communication between Camera Service (framework) and hardware abstraction layer (HAL) using HIDL/AIDL.

- Collaborate with SoC vendors and integrate V4L2-based drivers into the Android camera stack.

Flow Summary (End-to-End) :

- App Layer (Camera2 API) : Application creates a CaptureRequest ? sent to Camera Service.

- Framework (Camera Service) : Routes requests to Camera Provider (HIDL/AIDL) ? loads HAL implementation.

- Camera Provider : Manages available camera devices, connects to HAL shared library (camera.vendor.so).

- Camera HAL : Converts framework requests into hardware operations configures streams, manages buffers, and communicates with kernel drivers via V4L2 IOCTLs.

- Kernel Driver (V4L2) : Handles sensor, CSI-2 receiver, and ISP interaction; streams buffers using DMA/videobuf2.

- Hardware Layer : MIPI CSI-2 sensor sends frames ? captured and processed by ISP ? delivered to user-space buffers.


Kernel-Level Deferred Work (Tasklets vs Workqueues) :

- Implement tasklets for fast, atomic bottom-half handling post-ISR (e.g., DMA completion notification).

- Use workqueues for deferred tasks that require sleeping or longer operations (e.g., copying data to user buffers).

- Example : ISR triggers a tasklet to signal frame-ready ? workqueue processes the frame metadata and prepares the next capture.


Buffer Management in Kernel / Driver Context :

- Design C/C++ data structures to manage streaming buffers in kernel space.

- Manage a linked list of DMA buffers using list_head for efficient allocation, queueing, and freeing during streaming operations.

- Implement vb2_queue operations (queue_setup, buf_prepare, start_streaming, stop_streaming) for V4L2 devices.


V4L2 Camera Sensor Driver Development :

- Write and register V4L2 subdevice drivers for camera sensors using I2C interface.

- Implement essential V4L2 callbacks

- Handle buffer flow using videobuf2 (vb2) framework :

- Userspace : VIDIOC_REQBUFS, VIDIOC_QBUF, VIDIOC_STREAMON

- Kernel : DMA streaming to frame buffers

- Userspace : Dequeue frames with VIDIOC_DQBUF

- Verify operation using tools like v4l2-ctl and media-ctl.


MIPI CSI-2 Integration and Debug"

- Integrate MIPI CSI-2 camera sensors via D-PHY lanes.

- Configure timing parameters (e.g., HS_SETTLE, CLK_PREPARE, CLK_ZERO).

- Debug and fix frame drop or latency issues :

- Monitor dmesg logs for CSI errors or DMA underruns.

- Validate frame rate using v4l2-ctl - stream-mmap.

- Tune buffer queue depth, vb2 configuration, and ISP pipeline timing.

- Analyze MIPI trace logs or PHY counters for signal integrity issues.

- Optimize I2C register writes and CSI lane mapping in device tree.


Technical Skills & Keywords :

- Camera Driver Development (V4L2 / Camera HAL3 / Camera Provider)

- Linux Kernel Driver Programming

- Multimedia Subsystem (Video, ISP, Sensor)

- Android Camera2 Framework

- DMA / Videobuf2 / Buffer Management


Hardware Interfaces :

- MIPI CSI-2, D-PHY

- I2C / GPIO / Regmap

- ISP / CSI Receiver / Sensor Interface


Debugging Tools :

- v4l2-ctl, media-ctl, dmesg, trace-cmd, perf, ftrace

- Oscilloscope / Logic Analyzer for CSI signals


Programming :

- C, C++, Embedded C

- Kernel Synchronization (Spinlocks, Tasklets, Workqueues)

- Device Tree (DTS) Configuration and Debugging


Preferred Experience :


- Camera bring-up on Android or embedded Linux platforms (Qualcomm, MediaTek, NVIDIA, NXP, TI, etc.)

- Developing and debugging camera sensor subdevices

- Hands-on experience with ISP pipelines and tuning

- Performance optimization (latency, frame rate, bandwidth)

- Familiarity with libcamera or GStreamer frameworks


info-icon

Did you find something suspicious?