As many System-on-a-Chips (SoCs) do these days, recent Rockchip SoCs (namely, those of the RK35 generation) integrate dedicated IP blocks for video capture and image signal processing. These additions open the door to a wide range of interesting multimedia applications. However, support for these blocks in mainline Linux remains one of the last missing pieces in an otherwise well-supported SoC lineup. It is time to close that gap!
The mission
Over the last few years, Collabora has invested significant efforts into mainline support for the Rockchip RK3588 SoC. Our RK3588 upstream status matrix and the recent review blog post Running Mainline Linux, U-Boot, and Mesa on Rockchip: A year in review show the success of this mission. It is fair to say that together with the vibrant linux-rockchip community and Rockchip themselves, we were able to provide upstream support for most of the features of the RK3588. On the other hand, there are still a few unsupported hardware blocks that need to be taken care of.
The problem
Video capture blocks and image signal processors (ISPs) notoriously fall into the category of hardware blocks that gain mainline support at a late stage (if at all). The reasons for this are manifold: while the user base is substantial, it's smaller than that of other features, such as video output for instance. The hardware documentation is often not available, at least for ISPs, which seem to be considered special in terms of intellectual property. Then, the underlying hardware is not exactly trivial, making it difficult (if not impossible) for a hobbyist contributor to tackle in their free time. Even for companies, the initial efforts required to bring up that sort of hardware are a time-consuming and hence costly endeavor. As a consequence, users of these powerful hardware blocks tend to resort to a vendor Linux kernel, which can lead to regulatory compliance issues, such as under the Cyber Resilience Act (CRA).
(Towards) the solution
In a quest to overcome this deadlock, Collabora decided to start with the first step: bringing up the RK3588 video capture (VICAP) unit. It was obvious from the very start that this would not be a sprint, but a marathon. The plan was for the rkcif driver to support the RK3588 VICAP, and this driver had been under discussion on the respective mailing lists since 2020!
Collabora joined the mainlining discussion in early 2022 and the patch series went through nine iterations driven by Bootlin. Then, a major rework towards a media-controller centric V4L2 driver was requested. This led to a complete refactoring of the driver and a renewed push towards inclusion in mainline Linux.
After another seven iterations of the resulting patch series and renaming the driver twice, the work was presented at Open Source Summit Europe 2025 in Amsterdam. The talk "Towards Mainline Video Capture and Camera Support for Recent Rockchip SoCs" provided an overview of the software stack for modern multimedia SoCs and covered the contributions that had already landed in mainline and were currently in flight, respectively.
A few iterations of the rkcif driver later, the basic driver providing support for the PX30 VIP and the RK3568 VICAP was accepted (October 2025). After more than five years of development, including 25 iterations and three renamings, this was a major milestone. On the other hand, there was still a lot to do, of course. For instance, the Rockchip MIPI CSI-2 receiver unit that is coupled closely to the VICAP required a mainline driver as well. Again, the hardest part in software development proved to be naming things. After several iterations and three renamings and/or relocations, the driver found its name and place in the mainline Linux kernel (January 2026).
... continue reading