Qualcomm JPEG Encoder Patch Targets Mainline Kernel for SM8250
A patch series introduces support for the Qualcomm JPEG V4L2 encoder on the SM8250 SoC, enabling standard JPEG encoding via the V4L2 mem2mem framework. The driver uses device tree-described hardware resources and has been validated on the RB5 platform with v4l2-ctl and GStreamer. This upstreaming effort targets kernel media subsystem integration.
Key Takeaways
- Driver validated encoding single-frame 8192x8192 NV12 and 1920x1080 NV12/GREY on RB5 hardware using v4l2-ctl
- GStreamer pipelines confirmed working: NV12 to JPEG files and GRAY8 to MJPEG output via v4l2jpegenc
- v2 removed qcm6490 and sm8550 compatible strings present in v1, scoping the series to SM8250 only
- Driver migrated to devm_clk_bulk_get_all() and the OPP framework for clock rate and performance level management
- Known limitations: no scaling support, and width/height must be aligned to 16 pixels
Why It Matters
The patch gives SM8250-based devices a standard kernel interface for hardware JPEG encoding, reducing reliance on vendor-specific blobs for imaging and streaming pipelines. Snapdragon 865 platforms—used in robotics (RB5), IoT, and embedded devices—need JPEG/MJPEG encoding for camera feeds, remote viewing, and snapshot capture. Qualcomm's parallel upstreaming of the Iris H.264/HEVC encoder driver, with feature enhancements submitted in May 2026, signals a systematic effort to bring its full video codec stack into the mainline kernel. Watch whether the v2 scope reduction to SM8250-only accelerates merge acceptance or whether reviewers request broader SoC coverage before the driver lands in the media subsystem.
Additional Context
This JPEG encoder effort is part of a broader Qualcomm campaign to upstream its media hardware stack into the mainline Linux kernel. The initial submission on May 15, 2026, per the linux-kernel mailing list, covered six SoCs—sc7180, sm8250, sm7325, sc7280, qcm6490, and sm8550—but was only functionally validated on qcm6490 hardware. A revised v1 on June 12, 2026 narrowed to three platforms (SM8250, SM8550, QCM6490), with all three validated on RB5, RB5 Gen2, and RB3 Gen2 boards respectively. The v2 patch covered here further scoped to SM8250 only, suggesting an incremental merge strategy—get one platform fully reviewed and merged, then expand support in follow-up series. The JPEG encoder work runs parallel to Qualcomm's Iris video codec driver upstreaming, which handles H.264 and HEVC encode and decode. On May 12, 2026, Wangao Wang submitted v7 of a patch series adding intra refresh, B-frame support, long-term reference frames, and hierarchical coding to the Iris encoder, validated on SM8250, QCS6490, QCS8300, QCS8550, QCS9100, and X1E-80100, per the linux-kernel mailing list. The Iris driver passed all 54 v4l2-compliance tests on QCS8300. Together, these efforts target SM8250 (Snapdragon 865)—a chip that, per Qualcomm's own product brief, supports hardware JPEG encode and decode alongside H.265, H.264, and VP9 codecs. Luca Weiss of Fairphone reviewed the v1 device tree binding on June 23, 2026, per the linux-kernel mailing list, indicating active community engagement. The v2 changes—including migration to devm_clk_bulk_get_all(), adoption of the OPP framework, removal of reg-names, and a switch to RUNTIME_PM_OPS() macros—likely reflect reviewer feedback from that earlier round. The patch series now sits before the kernel media subsystem maintainers for further review.
Read full article at lwn.net
Get this in your inbox → Subscribe
Enjoy our coverage?
Add StreamingMeme as a preferred source on Google to see more of our streaming news at the top of your Search results.
Add as preferred source