The Generic USB Display Driver Taking Shape For Linux 5.9~5.10
One of the interesting new happenings in the Direct Rendering Manager (DRM) driver space is a Generic USB Display stack including a USB gadget driver that together allow for some interesting generic USB display setups. This work was motivated by being able to turn a $5 Raspberry Pi Zero into a USB to HDMI display adapter.
Longtime DRM developer Noralf Trønnes has been working on this Generic USB Display Driver over the past number of weeks and it's working out quite well so far for DIY USB-to-HDMI adapters, etc. Here is a video he previously shared of this code in action:
While much of his work has been done with Raspberry Pi boards, this code is designed to be "generic" and can be adapted to other USB vendor/product IDs to bind against. He's also been toying with a microcontroller-based USB display.
Since my earlier writing about this effort, he's now spun up a new version of the patches. He's also spun up a Raspberry Pi image with the USB gadget side code for easy testing. With that image loaded on the Raspberry Pi and then a patched host system, it's possible to easily make use of this Generic USB Display driver. He also now has a USB product/device ID that was reserved by the OpenMoko crew and now donated to this cause that is otherwise unused for any other hobbyists wanting to tinker with their own USB display adapters and don't want to clash with other drivers/hardware.
Noralf is hoping to see the host driver patches merged for Linux 5.9. For the USB gadget patches he is meanwhile hoping for Linux 5.10 due to the complexities of landing both drivers during the same merge window, particularly with all of the DRM churn. But there is a chance we could see both sides of this driver work make it into Linux 5.9.
Those wanting to learn more about this latest Generic USB Display driver work for Linux can see this mailing list post.