Re: [PATCH v8 1/1] virtio-media: Add virtio media device specification

Albert Esteve <[email protected]>
Newsgroups dev.linux.lists.virtio-comment
Message-ID <CADSE00JOBEqiFjAioJxf-PAB-FfSSy+1Z8WMuU9ktyf=dk-1TA@mail.gmail.com>
On Wed, Jul 9, 2025 at 2:09 PM Albert Esteve <[email protected]> wrote:
>
> On Wed, Jul 9, 2025 at 11:38 AM Albert Esteve <[email protected]> wrote:
> >
> > On Wed, Jul 9, 2025 at 11:32 AM Alex Bennée <[email protected]> wrote:
> > >
> > > Albert Esteve <[email protected]> writes:
> > >
> > > > On Fri, Mar 14, 2025 at 2:26 PM Alexandre Courbot <[email protected]> wrote:
> > > >>
> > > >> Hello Albert,
> > > >>
> > > >> On Tue Mar 4, 2025 at 10:01 PM JST, Albert Esteve wrote:
> > > >> > Virtio-media is an encapsulation of the V4L2 UAPI into
> > > >> > virtio, able to virtualize any video device supported
> > > >> > by V4L2.
> > > >> >
> > > >> > Note that virtio-media does not require the use of a
> > > >> > V4L2 device driver on the host or guest side -
> > > >> > V4L2 is only used as a host-guest protocol,
> > > >> > and both sides are free to convert it from/to any
> > > >> > model that they wish to use.
> > > >>
> > > >> Thank you for your patience with this. I have done a final pass on this
> > > >> version and it looks great to me!
> > > >>
> > > >> Reviewed-by: Alexandre Courbot <[email protected]>
> > > >>
> > > >
> > > > Thanks! Could we please open a voting ballot for these changes?
> > > >
> > > > Fixes: https://github.com/oasis-tcs/virtio-spec/issues/214
> > >
> > > What was the result of the ballot?
> >
> > AFAIU the ballot was approved. There were conflicts with the
> > virtio-1.4 branch, which may have delayed the integration. I've just
> > sent a new version of the patch rebased to virtio-1.4 to try to ease
> > the process.
>
> Adding the diff here on the v8 instead, to avoid having to vote again
> on a new patch version.
> The diff should allow applying the original v8 patch cleanly to
> virtio-1.4. Let me know if this is enough.
>
> ----
> diff --git a/content.tex b/content.tex
> index 59925ae..56b2cb1 100644
> --- a/content.tex
> +++ b/content.tex
> @@ -100,7 +100,7 @@ \section{Feature Bits}\label{sec:Basic Facilities
> of a Virtio Device / Feature B
>  \item[0 to 23, and 50 to 127] Feature bits for the specific device type
>
>  \item[24 to 41] Feature bits reserved for extensions to the queue and
> -  feature negotiation mechanisms
> +  feature negotiation mechanisms, see \ref{sec:Reserved Feature Bits}
>
>  \item[42 to 49, and 128 and above] Feature bits reserved for future extensions.
>  \end{description}
> @@ -493,7 +493,7 @@ \section{Driver Notifications} \label{sec:Basic
> Facilities of a Virtio Device /
>  \section{Exporting Objects}\label{sec:Basic Facilities of a Virtio
> Device / Exporting Objects}
>
>  When an object created by one virtio device needs to be
> -shared with a seperate virtio device, the first device can
> +shared with a separate virtio device, the first device can
>  export the object by generating a UUID which can then
>  be passed to the second device to identify the object.
>
> @@ -503,11 +503,12 @@ \section{Exporting Objects}\label{sec:Basic
> Facilities of a Virtio Device / Expo
>  UUIDs as specified by \hyperref[intro:rfc4122]{[RFC4122]}.
>
>  \input{admin.tex}
> +\input{device-parts.tex}
>
>  \chapter{General Initialization And Device
> Operation}\label{sec:General Initialization And Device Operation}
>
>  We start with an overview of device initialization, then expand on the
> -details of the device and how each step is preformed.  This section
> +details of the device and how each step is performed.  This section
>  is best read along with the bus-specific section which describes
>  how to communicate with the specific device.
>
> @@ -649,7 +650,7 @@ \chapter{Device Types}\label{sec:Device Types}
>
>  Discovering what devices are available and their type is bus-dependent.
>
> -\begin{tabular} { |l|c| }
> +\begin{longtable} { |l|c| }
>  \hline
>  Device ID  &  Virtio Device    \\
>  \hline \hline
> @@ -737,9 +738,17 @@ \chapter{Device Types}\label{sec:Device Types}
>  \hline
>  44         &   ISM device \\
>  \hline
> -45         &   SPI master \\
> +45         &   SPI controller \\
>  \hline
> -\end{tabular}
> +46         &   TEE device \\
> +\hline
> +47         &   CPU balloon device \\
> +\hline
> +48         &   Media device \\
> +\hline
> +49         &   USB controller \\
> +\hline
> +\end{longtable}
>
>  Some of the devices above are unspecified by this document,
>  because they are seen as immature or especially niche.  Be warned
> @@ -767,6 +776,8 @@ \chapter{Device Types}\label{sec:Device Types}
>  \input{device-types/scmi/description.tex}
>  \input{device-types/gpio/description.tex}
>  \input{device-types/pmem/description.tex}
> +\input{device-types/can/description.tex}
> +\input{device-types/spi/description.tex}
>  \input{device-types/media/description.tex}
>
>  \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
>
> diff --git a/conformance.tex b/conformance.tex
> index 2564034..0856353 100644
> --- a/conformance.tex
> +++ b/conformance.tex
> @@ -33,6 +33,9 @@ \section{Conformance Targets}\label{sec:Conformance
> / Conformance Targets}
>  \ref{sec:Conformance / Driver Conformance / I2C Adapter Driver Conformance},
>  \ref{sec:Conformance / Driver Conformance / SCMI Driver Conformance},
>  \ref{sec:Conformance / Driver Conformance / GPIO Driver Conformance},
> +\ref{sec:Conformance / Driver Conformance / PMEM Driver Conformance},
> +\ref{sec:Conformance / Driver Conformance / CAN Driver Conformance},
> +\ref{sec:Conformance / Driver Conformance / SPI Controller Driver Conformance},
>  \ref{sec:Conformance / Driver Conformance / PMEM Driver Conformance} or
>  \ref{sec:Conformance / Driver Conformance / Media Driver Conformance}.
>
> @@ -61,7 +64,10 @@ \section{Conformance Targets}\label{sec:Conformance
> / Conformance Targets}
>  \ref{sec:Conformance / Device Conformance / I2C Adapter Device Conformance},
>  \ref{sec:Conformance / Device Conformance / SCMI Device Conformance},
>  \ref{sec:Conformance / Device Conformance / GPIO Device Conformance},
> -\ref{sec:Conformance / Device Conformance / PMEM Device Conformance} or
> +\ref{sec:Conformance / Device Conformance / PMEM Device Conformance},
> +\ref{sec:Conformance / Device Conformance / CAN Device Conformance},
> +\ref{sec:Conformance / Device Conformance / SPI Controller Device Conformance},
> +\ref{sec:Conformance / Device Conformance / PMEM Device Conformance},
>  \ref{sec:Conformance / Device Conformance / Media Device Conformance}.
>
>      \item Clause \ref{sec:Conformance / Legacy Interface:
> Transitional Device and Transitional Driver Conformance}.
> @@ -78,6 +84,7 @@ \section{Conformance Targets}\label{sec:Conformance
> / Conformance Targets}
>  \item \ref{drivernormative:Basic Facilities of a Virtio Device / Device Reset}
>  \item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Device Configuration Space}
>  \item \ref{drivernormative:Basic Facilities of a Virtio Device / Virtqueues}
> +\item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Virtqueues / Virtqueue Reset / Virtqueue Reset}
>  \item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Message Framing}
>  \item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Virtqueues / The Virtqueue Descriptor Table}
>  \item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Virtqueues / The Virtqueue Descriptor Table / Indirect Descriptors}
> @@ -96,6 +103,9 @@ \section{Conformance Targets}\label{sec:Conformance
> / Conformance Targets}
>  \item \ref{drivernormative:General Initialization And Device
> Operation / Device Initialization}
>  \item \ref{drivernormative:General Initialization And Device
> Operation / Device Cleanup}
>  \item \ref{drivernormative:Reserved Feature Bits}
> +\item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Device groups / Group administration commands / Device and driver
> capabilities}
> +\item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Device groups / Group administration commands / Device resource
> objects}
> +\item \ref{drivernormative:Basic Facilities of a Virtio Device /
> Device groups / Group administration commands / Device parts}
>  \end{itemize}
>
>  \conformance{\subsection}{PCI Driver
> Conformance}\label{sec:Conformance / Driver Conformance / PCI Driver
> Conformance}
> @@ -154,6 +164,8 @@ \section{Conformance
> Targets}\label{sec:Conformance / Conformance Targets}
>  \input{device-types/scmi/driver-conformance.tex}
>  \input{device-types/gpio/driver-conformance.tex}
>  \input{device-types/pmem/driver-conformance.tex}
> +\input{device-types/can/driver-conformance.tex}
> +\input{device-types/spi/driver-conformance.tex}
>  \input{device-types/media/driver-conformance.tex}
>
>  \conformance{\section}{Device Conformance}\label{sec:Conformance /
> Device Conformance}
> @@ -165,6 +177,7 @@ \section{Conformance
> Targets}\label{sec:Conformance / Conformance Targets}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device / Feature Bits}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device / Device Reset}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Device Configuration Space}
> +\item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Virtqueues / Virtqueue Reset / Virtqueue Reset}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Message Framing}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Virtqueues / The Virtqueue Descriptor Table}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Virtqueues / The Virtqueue Descriptor Table / Indirect Descriptors}
> @@ -176,6 +189,9 @@ \section{Conformance
> Targets}\label{sec:Conformance / Conformance Targets}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Packed Virtqueues / Scatter-Gather Support}
>  \item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Shared Memory Regions}
>  \item \ref{devicenormative:Reserved Feature Bits}
> +\item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Device groups / Group administration commands / Device and driver
> capabilities}
> +\item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Device groups / Group administration commands / Device resource
> objects}
> +\item \ref{devicenormative:Basic Facilities of a Virtio Device /
> Device groups / Group administration commands / Device parts}
>  \end{itemize}
>
>  \conformance{\subsection}{PCI Device
> Conformance}\label{sec:Conformance / Device Conformance / PCI Device
> Conformance}
> @@ -241,6 +257,8 @@ \section{Conformance
> Targets}\label{sec:Conformance / Conformance Targets}
>  \input{device-types/scmi/device-conformance.tex}
>  \input{device-types/gpio/device-conformance.tex}
>  \input{device-types/pmem/device-conformance.tex}
> +\input{device-types/can/device-conformance.tex}
> +\input{device-types/spi/device-conformance.tex}
>  \input{device-types/media/device-conformance.tex}
>
>  \conformance{\section}{Legacy Interface: Transitional Device and
> Transitional Driver Conformance}\label{sec:Conformance / Legacy
> Interface: Transitional Device and Transitional Driver Conformance}
>

A cleaner attempt, noticed a duplication of one listed item. Also
removed the parts of the diff that caused no collision beforehand.

---
diff --git a/content.tex b/content.tex
index 59925ae..56b2cb1 100644
--- a/content.tex
+++ b/content.tex

+\end{longtable}

 Some of the devices above are unspecified by this document,
 because they are seen as immature or especially niche.  Be warned
@@ -767,6 +776,8 @@ \chapter{Device Types}\label{sec:Device Types}
 \input{device-types/scmi/description.tex}
 \input{device-types/gpio/description.tex}
 \input{device-types/pmem/description.tex}
+\input{device-types/can/description.tex}
+\input{device-types/spi/description.tex}
 \input{device-types/media/description.tex}

 \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}

diff --git a/conformance.tex b/conformance.tex
index 2564034..85a227f 100644
--- a/conformance.tex
+++ b/conformance.tex
@@ -33,7 +33,9 @@ \section{Conformance Targets}\label{sec:Conformance
/ Conformance Targets}
 \ref{sec:Conformance / Driver Conformance / I2C Adapter Driver Conformance},
 \ref{sec:Conformance / Driver Conformance / SCMI Driver Conformance},
 \ref{sec:Conformance / Driver Conformance / GPIO Driver Conformance},
-\ref{sec:Conformance / Driver Conformance / PMEM Driver Conformance} or
+\ref{sec:Conformance / Driver Conformance / PMEM Driver Conformance},
+\ref{sec:Conformance / Driver Conformance / CAN Driver Conformance},
+\ref{sec:Conformance / Driver Conformance / SPI Controller Driver
Conformance} or
 \ref{sec:Conformance / Driver Conformance / Media Driver Conformance}.

     \item Clause \ref{sec:Conformance / Legacy Interface:
Transitional Device and Transitional Driver Conformance}.
@@ -61,7 +63,9 @@ \section{Conformance Targets}\label{sec:Conformance
/ Conformance Targets}
 \ref{sec:Conformance / Device Conformance / I2C Adapter Device Conformance},
 \ref{sec:Conformance / Device Conformance / SCMI Device Conformance},
 \ref{sec:Conformance / Device Conformance / GPIO Device Conformance},
-\ref{sec:Conformance / Device Conformance / PMEM Device Conformance} or
+\ref{sec:Conformance / Device Conformance / PMEM Device Conformance},
+\ref{sec:Conformance / Device Conformance / CAN Device Conformance},
+\ref{sec:Conformance / Device Conformance / SPI Controller Device
Conformance} or
 \ref{sec:Conformance / Device Conformance / Media Device Conformance}.

     \item Clause \ref{sec:Conformance / Legacy Interface:
Transitional Device and Transitional Driver Conformance}.
@@ -154,6 +162,8 @@ \section{Conformance
Targets}\label{sec:Conformance / Conformance Targets}
 \input{device-types/scmi/driver-conformance.tex}
 \input{device-types/gpio/driver-conformance.tex}
 \input{device-types/pmem/driver-conformance.tex}
+\input{device-types/can/driver-conformance.tex}
+\input{device-types/spi/driver-conformance.tex}
 \input{device-types/media/driver-conformance.tex}

 \conformance{\section}{Device Conformance}\label{sec:Conformance /
Device Conformance}
@@ -241,6 +255,8 @@ \section{Conformance
Targets}\label{sec:Conformance / Conformance Targets}
 \input{device-types/scmi/device-conformance.tex}
 \input{device-types/gpio/device-conformance.tex}
 \input{device-types/pmem/device-conformance.tex}
+\input{device-types/can/device-conformance.tex}
+\input{device-types/spi/device-conformance.tex}
 \input{device-types/media/device-conformance.tex}

 \conformance{\section}{Legacy Interface: Transitional Device and
Transitional Driver Conformance}\label{sec:Conformance / Legacy
Interface: Transitional Device and Transitional Driver Conformance}

> >
> > >
> > > --
> > > Alex Bennée
> > > Virtualisation Tech Lead @ Linaro
> > >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.