virtio video driver
From: | Dmitry Sepp <dmitry.sepp-AT-opensynergy.com> | |
To: | <linux-media-AT-vger.kernel.org> | |
Subject: | [RFC] virtio video driver | |
Date: | Thu, 5 Dec 2019 17:11:37 +0100 | |
Message-ID: | <4595464.3jghpSLKuc@os-lin-dmo> | |
Cc: | <virtio-dev-AT-lists.oasis-open.org>, <kraxel-AT-redhat.com>, <tfiga-AT-chromium.org>, <keiichiw-AT-chromium.org>, <acourbot-AT-chromium.org>, <hverkuil-AT-xs4all.nl>, <posciak-AT-chromium.org>, <marcheu-AT-chromium.org>, <stevensd-AT-chromium.org>, <dgreid-AT-chromium.org>, <daniel-AT-ffwll.ch>, <egranata-AT-google.com> | |
Archive-link: | Article |
Hello, My apologies for the long delay. The driver code is now available and provided as a follow-up to the discussion from this thread [1]. The reference Linux kernel 5.4 driver implementation is located here: https://github.com/OpenSynergy/linux/tree/virtio-video-dr... The driver is implemented using the V4L2 API. It allocates a v4l2 device for each probed virtio device and then creates a video device for each function within the respective virtio device. The driver implements the stateful decoder interface [2] and the stateful encoder interface (WIP) [3]. The DMA SG memory allocator tries to map buffers right away. As it is not always suitable, and some implementations might need just a physical address, we had to introduce a set of simple dma ops directly in the driver. The driver is in the RFC state and currently a bit ahead of the spec that was proposed in the discussion mentioned above. On the other hand, the driver unfortunately does not yet include changes proposed in the recent comments [4]. The driver currently supports encoder and decoder functions. Also, it does not fully pass the v4l2-compliance yet, it has been a bit out of the focus so far. Any feedback and contribution would be greatly appreciated. [1] https://markmail.org/message/gc6h25acct22niut [2] https://www.kernel.org/doc/html/v5.4/media/uapi/v4l/dev-d... [3] https://hverkuil.home.xs4all.nl/codec-api/uapi/v4l/dev-en... [4] https://markmail.org/message/yy67elx2adbivdsp Best regards, Dmitry.