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 callbacksHandle buffer flow using videobuf2 (vb2) framework :Userspace : VIDIOC_REQBUFS, VIDIOC_QBUF, VIDIOC_STREAMONKernel : DMA streaming to frame buffersUserspace : Dequeue frames with VIDIOC_DQBUFVerify 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 ProgrammingMultimedia Subsystem (Video, ISP, Sensor)Android Camera2 FrameworkDMA / Videobuf2 / Buffer ManagementHardware Interfaces :
MIPI CSI-2, D-PHYI2C / GPIO / RegmapISP / CSI Receiver / Sensor InterfaceDebugging Tools :
v4l2-ctl, media-ctl, dmesg, trace-cmd, perf, ftraceOscilloscope / Logic Analyzer for CSI signalsProgramming :
C, C++, Embedded CKernel Synchronization (Spinlocks, Tasklets, Workqueues)Device Tree (DTS) Configuration and DebuggingPreferred Experience :
Camera bring-up on Android or embedded Linux platforms (Qualcomm, MediaTek, NVIDIA, NXP, TI, etc.)Developing and debugging camera sensor subdevicesHands-on experience with ISP pipelines and tuningPerformance optimization (latency, frame rate, bandwidth)Familiarity with libcamera or GStreamer frameworks(ref : hirist.tech)