* [PATCH v6 0/7] document types of hardware control for V4L2 @ 2017-08-29 13:17 Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec Mauro Carvalho Chehab ` (6 more replies) 0 siblings, 7 replies; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet On Kernel 2.6.39, the omap3 driver was introduced together with a new way to control complex V4L2 devices used on embedded systems, but this was never documented, as the original idea were to have "soon" support for standard apps to use it as well, via libv4l, but that didn't happen so far. Also, it is not possible for an userspace applicatin to detect the kind of control a device supports. This series fill the gap, by documenting the new type of hardware control and adding a way for userspace to detect if the device can be used or not by an standard V4L2 application. Notes: ==== 1) For the sake of better review, this series start with the addition of a glossary, as requested by Laurent. Please notice, however, that the glossary there references some new captions that will only be added by subsequent patches. So, when this series get applied, the glossary patch should actually be merged after the patches that introduce those new captions, in order to avoid warnings for non-existing references. 2) This series doesn't contain patches that actually use the new flag. This will be added after such patch gets reviewed. v6: - Some editorial changes based on comments from Hans and Sakari. v5: - Added more terms to the glossary - Adjusted some wording as proposed by Hans on a few patches and added his ack on others v4: - Addressed Hans comments for v2; - Fixed broken references at the glossary.rst v3: - Add a glossary to be used by the new documentation about hardware control; - Add a patch removing minor number range - Use glossary terms at open.rst - Split the notice about subdev-API on vdev-centric, as this change will require further discussions. v2: - added a patch at the beginning of the series better defining the device node naming rules; - better defined the differenes between device hardware and V4L2 device node as suggested by Laurent and with changes proposed by Hans and Sakari - changed the caps flag to indicate MC-centric devices - removed the final patch that would use the new caps flag. I'll write it once we agree on the new caps flag. Mauro Carvalho Chehab (7): media: add glossary.rst with a glossary of terms used at V4L2 spec media: open.rst: better document device node naming media: open.rst: remove the minor number range media: open.rst: document devnode-centric and mc-centric types media: open.rst: Adjust some terms to match the glossary media: videodev2: add a flag for MC-centric devices media: open.rst: add a notice about subdev-API on vdev-centric Documentation/media/uapi/v4l/glossary.rst | 150 +++++++++++++++++++++++ Documentation/media/uapi/v4l/open.rst | 119 +++++++++++++++--- Documentation/media/uapi/v4l/v4l2.rst | 1 + Documentation/media/uapi/v4l/vidioc-querycap.rst | 5 + Documentation/media/videodev2.h.rst.exceptions | 1 + include/uapi/linux/videodev2.h | 2 + 6 files changed, 264 insertions(+), 14 deletions(-) create mode 100644 Documentation/media/uapi/v4l/glossary.rst -- 2.13.5 ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab @ 2017-08-29 13:17 ` Mauro Carvalho Chehab 2017-09-01 10:26 ` Hans Verkuil 2017-08-29 13:17 ` [PATCH v6 2/7] media: open.rst: better document device node naming Mauro Carvalho Chehab ` (5 subsequent siblings) 6 siblings, 1 reply; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Ricardo Ribalda Delgado, Hans Verkuil Add a glossary of terms for V4L2, as several concepts are complex enough to cause misunderstandings. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> --- Documentation/media/uapi/v4l/glossary.rst | 150 ++++++++++++++++++++++++++++++ Documentation/media/uapi/v4l/v4l2.rst | 1 + 2 files changed, 151 insertions(+) create mode 100644 Documentation/media/uapi/v4l/glossary.rst diff --git a/Documentation/media/uapi/v4l/glossary.rst b/Documentation/media/uapi/v4l/glossary.rst new file mode 100644 index 000000000000..afafe1bc1894 --- /dev/null +++ b/Documentation/media/uapi/v4l/glossary.rst @@ -0,0 +1,150 @@ +======== +Glossary +======== + +.. note:: + + This goal of section is to standardize the terms used within the V4L2 + documentation. It is written incrementally as they are standardized in + the V4L2 documentation. So, it is a Work In Progress. + +.. Please keep the glossary entries in alphabetical order + +.. glossary:: + + Bridge driver + The same as V4L2 main driver. + + Device Node + A character device node in the file system used to control and do + input/output data transfers from/to a Kernel driver. + + Digital Signal Processor - DSP + A specialized microprocessor, with its architecture optimized for + the operational needs of digital signal processing. + + Driver + The part of the Linux Kernel that implements support + for a hardware component. + + Field-programmable Gate Array - FPGA + A field-programmable gate array (FPGA) is an integrated circuit + designed to be configured by a customer or a designer after + manufacturing. + + See https://en.wikipedia.org/wiki/Field-programmable_gate_array. + + Hardware component + A subset of the media hardware. For example an I²C or SPI device, + or an IP block inside an SoC or FPGA. + + Hardware peripheral + A group of hardware components that together make a larger + user-facing functional peripheral. For instance the SoC ISP IP + cores and external camera sensors together make a + camera hardware peripheral. + + Also known as peripheral. + + Hardware peripheral control + Type of control for a hardware peripheral supported by V4L2 drivers. + + See :ref:`v4l2_hardware_control`. + + Inter-Integrated Circuit - I²C + A multi-master, multi-slave, packet switched, single-ended, + serial computer bus used to control V4L2 sub-devices. + + See http://www.nxp.com/docs/en/user-guide/UM10204.pdf. + + Integrated circuit - IC + A set of electronic circuits on one small flat piece of + semiconductor material, normally silicon. + + Also known as chip. + + IP block + The same as IP core. + + Intelectual property core - IP core + In electronic design a semiconductor intellectual property core, + is a reusable unit of logic, cell, or integrated circuit layout + design that is the intellectual property of one party. + IP cores may be licensed to another party or can be owned + and used by a single party alone. + + See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core). + + Image Signal Processor - ISP + A specialised processor that implements a set of algorithms for + processing image data. ISPs may implement algorithms for lens + shading correction, demosaic, scaling and pixel format conversion + as well as produce statistics for the use of the control + algorithms (e.g. automatic exposure, white balance and focus). + + Peripheral + The same as hardware peripheral. + + Media Controller + An API designed to expose and control devices and sub-devices + relationships to applications. + + See :ref:`media_controller`. + + MC-centric + V4L2 hardware that requires a Media controller. + + See :ref:`v4l2_hardware_control`. + + Microprocessor + An electronic circuitry that carries out the instructions + of a computer program by performing the basic arithmetic, logical, + control and input/output (I/O) operations specified by the + instructions on a single integrated circuit. + + SMBus + A subset of I²C, with defines a stricter usage of the bus. + + Serial Peripheral Interface Bus - SPI + Synchronous serial communication interface specification used for + short distance communication, primarily in embedded systems. + + System on a Chip - SoC + An integrated circuit that integrates all components of a computer + or other electronic systems. + + Sub-device hardware components + Hardware components that aren't controlled by the + V4L2 main driver. + + V4L2 device node + A device node that is associated to a V4L2 main driver, + as specified in :ref:`v4l2_device_naming`. + + V4L2 hardware + A hardware used to on a media device supported by the V4L2 + subsystem. + + V4L2 hardware control + The type of hardware control that a device supports. + + See :ref:`v4l2_hardware_control`. + + V4L2 main driver + The V4L2 device driver that implements the main logic to talk with + the V4L2 hardware. + + Also known as bridge driver. + + See :ref:`v4l2_hardware_control`. + + V4L2 sub-device + Part of the media hardware that it is implemented by a device + driver that is not part of the main V4L2 driver. + + See :ref:`subdev`. + + Vdev-centric + V4L2 hardware that it is controlled via V4L2 device nodes. + + See :ref:`v4l2_hardware_control`. diff --git a/Documentation/media/uapi/v4l/v4l2.rst b/Documentation/media/uapi/v4l/v4l2.rst index f52a11c949d3..1ee4b86d18e1 100644 --- a/Documentation/media/uapi/v4l/v4l2.rst +++ b/Documentation/media/uapi/v4l/v4l2.rst @@ -31,6 +31,7 @@ This part describes the Video for Linux API version 2 (V4L2 API) specification. videodev capture-example v4l2grab-example + glossary biblio -- 2.13.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec 2017-08-29 13:17 ` [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec Mauro Carvalho Chehab @ 2017-09-01 10:26 ` Hans Verkuil 2017-09-27 22:21 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 11+ messages in thread From: Hans Verkuil @ 2017-09-01 10:26 UTC (permalink / raw) To: Mauro Carvalho Chehab, Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Ricardo Ribalda Delgado, Hans Verkuil On 29/08/17 15:17, Mauro Carvalho Chehab wrote: > Add a glossary of terms for V4L2, as several concepts are complex > enough to cause misunderstandings. > > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> > --- > Documentation/media/uapi/v4l/glossary.rst | 150 ++++++++++++++++++++++++++++++ > Documentation/media/uapi/v4l/v4l2.rst | 1 + > 2 files changed, 151 insertions(+) > create mode 100644 Documentation/media/uapi/v4l/glossary.rst > > diff --git a/Documentation/media/uapi/v4l/glossary.rst b/Documentation/media/uapi/v4l/glossary.rst > new file mode 100644 > index 000000000000..afafe1bc1894 > --- /dev/null > +++ b/Documentation/media/uapi/v4l/glossary.rst > @@ -0,0 +1,150 @@ > +======== > +Glossary > +======== > + > +.. note:: > + > + This goal of section is to standardize the terms used within the V4L2 > + documentation. It is written incrementally as they are standardized in > + the V4L2 documentation. So, it is a Work In Progress. > + > +.. Please keep the glossary entries in alphabetical order > + > +.. glossary:: > + > + Bridge driver > + The same as V4L2 main driver. > + > + Device Node > + A character device node in the file system used to control and do > + input/output data transfers from/to a Kernel driver. > + > + Digital Signal Processor - DSP > + A specialized microprocessor, with its architecture optimized for > + the operational needs of digital signal processing. > + > + Driver > + The part of the Linux Kernel that implements support > + for a hardware component. > + > + Field-programmable Gate Array - FPGA > + A field-programmable gate array (FPGA) is an integrated circuit > + designed to be configured by a customer or a designer after > + manufacturing. > + > + See https://en.wikipedia.org/wiki/Field-programmable_gate_array. > + > + Hardware component > + A subset of the media hardware. For example an I²C or SPI device, > + or an IP block inside an SoC or FPGA. > + > + Hardware peripheral As I mentioned before, I really don't like the term 'peripheral'. I am fine with "Media hardware". A peripheral to me are keyboards, mice, webcams, printers, etc. Not an SoC with a CSI sensor on the board. > + A group of hardware components that together make a larger > + user-facing functional peripheral. For instance the SoC ISP IP > + cores and external camera sensors together make a > + camera hardware peripheral. > + > + Also known as peripheral. > + > + Hardware peripheral control So this would become "Media hardware control" > + Type of control for a hardware peripheral supported by V4L2 drivers. > + > + See :ref:`v4l2_hardware_control`. > + > + Inter-Integrated Circuit - I²C > + A multi-master, multi-slave, packet switched, single-ended, > + serial computer bus used to control V4L2 sub-devices. > + > + See http://www.nxp.com/docs/en/user-guide/UM10204.pdf. > + > + Integrated circuit - IC > + A set of electronic circuits on one small flat piece of > + semiconductor material, normally silicon. > + > + Also known as chip. > + > + IP block > + The same as IP core. > + > + Intelectual property core - IP core Typo: Intellectual > + In electronic design a semiconductor intellectual property core, > + is a reusable unit of logic, cell, or integrated circuit layout > + design that is the intellectual property of one party. > + IP cores may be licensed to another party or can be owned > + and used by a single party alone. > + > + See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core). > + > + Image Signal Processor - ISP > + A specialised processor that implements a set of algorithms for > + processing image data. ISPs may implement algorithms for lens > + shading correction, demosaic, scaling and pixel format conversion > + as well as produce statistics for the use of the control > + algorithms (e.g. automatic exposure, white balance and focus). > + > + Peripheral > + The same as hardware peripheral. I'd drop this. > + > + Media Controller > + An API designed to expose and control devices and sub-devices > + relationships to applications. > + > + See :ref:`media_controller`. > + > + MC-centric > + V4L2 hardware that requires a Media controller. > + > + See :ref:`v4l2_hardware_control`. > + > + Microprocessor > + An electronic circuitry that carries out the instructions > + of a computer program by performing the basic arithmetic, logical, > + control and input/output (I/O) operations specified by the > + instructions on a single integrated circuit. > + > + SMBus > + A subset of I²C, with defines a stricter usage of the bus. > + > + Serial Peripheral Interface Bus - SPI > + Synchronous serial communication interface specification used for > + short distance communication, primarily in embedded systems. > + > + System on a Chip - SoC > + An integrated circuit that integrates all components of a computer > + or other electronic systems. > + > + Sub-device hardware components > + Hardware components that aren't controlled by the > + V4L2 main driver. Do we really need this? If we do, then this description needs to be fixed: you only say what it isn't controller by, not what actually does control it. > + > + V4L2 device node > + A device node that is associated to a V4L2 main driver, > + as specified in :ref:`v4l2_device_naming`. > + > + V4L2 hardware > + A hardware used to on a media device supported by the V4L2 > + subsystem. > + > + V4L2 hardware control > + The type of hardware control that a device supports. > + > + See :ref:`v4l2_hardware_control`. ??? This is the same as "Hardware peripheral control". I'd stick to just one term (i.e. "Media hardware control" as I proposed). > + > + V4L2 main driver > + The V4L2 device driver that implements the main logic to talk with > + the V4L2 hardware. > + > + Also known as bridge driver. > + > + See :ref:`v4l2_hardware_control`. > + > + V4L2 sub-device > + Part of the media hardware that it is implemented by a device it is -> is I don't think this is right. A V4L2 sub-device not hardware. It represents a media hardware component and is implemented in a V4L2 sub-device driver. > + driver that is not part of the main V4L2 driver. > + > + See :ref:`subdev`. > + > + Vdev-centric I strongly prefer to call this vdevnode-centric. 'vdev' is too vague and it only works for us because we use 'vdev' in our code as the name for a video device node structure. End-users has no knowledge of that. I agree with the text in patches 2-7, except for the terminology. If others agree, then once it is changed in a v7 patch series I'll review again for consistent usage of the terminology. Regards, Hans > + V4L2 hardware that it is controlled via V4L2 device nodes. > + > + See :ref:`v4l2_hardware_control`. > diff --git a/Documentation/media/uapi/v4l/v4l2.rst b/Documentation/media/uapi/v4l/v4l2.rst > index f52a11c949d3..1ee4b86d18e1 100644 > --- a/Documentation/media/uapi/v4l/v4l2.rst > +++ b/Documentation/media/uapi/v4l/v4l2.rst > @@ -31,6 +31,7 @@ This part describes the Video for Linux API version 2 (V4L2 API) specification. > videodev > capture-example > v4l2grab-example > + glossary > biblio > > > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec 2017-09-01 10:26 ` Hans Verkuil @ 2017-09-27 22:21 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-09-27 22:21 UTC (permalink / raw) To: Hans Verkuil Cc: Linux Doc Mailing List, Linux Media Mailing List, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Ricardo Ribalda Delgado, Hans Verkuil Em Fri, 1 Sep 2017 12:26:39 +0200 Hans Verkuil <hverkuil@xs4all.nl> escreveu: > On 29/08/17 15:17, Mauro Carvalho Chehab wrote: > > Add a glossary of terms for V4L2, as several concepts are complex > > enough to cause misunderstandings. > > > > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> > > --- > > Documentation/media/uapi/v4l/glossary.rst | 150 ++++++++++++++++++++++++++++++ > > Documentation/media/uapi/v4l/v4l2.rst | 1 + > > 2 files changed, 151 insertions(+) > > create mode 100644 Documentation/media/uapi/v4l/glossary.rst > > > > diff --git a/Documentation/media/uapi/v4l/glossary.rst b/Documentation/media/uapi/v4l/glossary.rst > > new file mode 100644 > > index 000000000000..afafe1bc1894 > > --- /dev/null > > +++ b/Documentation/media/uapi/v4l/glossary.rst > > @@ -0,0 +1,150 @@ > > +======== > > +Glossary > > +======== > > + > > +.. note:: > > + > > + This goal of section is to standardize the terms used within the V4L2 > > + documentation. It is written incrementally as they are standardized in > > + the V4L2 documentation. So, it is a Work In Progress. > > + > > +.. Please keep the glossary entries in alphabetical order > > + > > +.. glossary:: > > + > > + Bridge driver > > + The same as V4L2 main driver. > > + > > + Device Node > > + A character device node in the file system used to control and do > > + input/output data transfers from/to a Kernel driver. > > + > > + Digital Signal Processor - DSP > > + A specialized microprocessor, with its architecture optimized for > > + the operational needs of digital signal processing. > > + > > + Driver > > + The part of the Linux Kernel that implements support > > + for a hardware component. > > + > > + Field-programmable Gate Array - FPGA > > + A field-programmable gate array (FPGA) is an integrated circuit > > + designed to be configured by a customer or a designer after > > + manufacturing. > > + > > + See https://en.wikipedia.org/wiki/Field-programmable_gate_array. > > + > > + Hardware component > > + A subset of the media hardware. For example an I²C or SPI device, > > + or an IP block inside an SoC or FPGA. > > + > > + Hardware peripheral > > As I mentioned before, I really don't like the term 'peripheral'. I am > fine with "Media hardware". A peripheral to me are keyboards, mice, webcams, > printers, etc. Not an SoC with a CSI sensor on the board. > > > + A group of hardware components that together make a larger > > + user-facing functional peripheral. For instance the SoC ISP IP > > + cores and external camera sensors together make a > > + camera hardware peripheral. > > + > > + Also known as peripheral. > > + > > + Hardware peripheral control > > So this would become "Media hardware control" > > > + Type of control for a hardware peripheral supported by V4L2 drivers. > > + > > + See :ref:`v4l2_hardware_control`. > > + > > + Inter-Integrated Circuit - I²C > > + A multi-master, multi-slave, packet switched, single-ended, > > + serial computer bus used to control V4L2 sub-devices. > > + > > + See http://www.nxp.com/docs/en/user-guide/UM10204.pdf. > > + > > + Integrated circuit - IC > > + A set of electronic circuits on one small flat piece of > > + semiconductor material, normally silicon. > > + > > + Also known as chip. > > + > > + IP block > > + The same as IP core. > > + > > + Intelectual property core - IP core > > Typo: Intellectual > > > + In electronic design a semiconductor intellectual property core, > > + is a reusable unit of logic, cell, or integrated circuit layout > > + design that is the intellectual property of one party. > > + IP cores may be licensed to another party or can be owned > > + and used by a single party alone. > > + > > + See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core). > > + > > + Image Signal Processor - ISP > > + A specialised processor that implements a set of algorithms for > > + processing image data. ISPs may implement algorithms for lens > > + shading correction, demosaic, scaling and pixel format conversion > > + as well as produce statistics for the use of the control > > + algorithms (e.g. automatic exposure, white balance and focus). > > + > > + Peripheral > > + The same as hardware peripheral. > > I'd drop this. > > > + > > + Media Controller > > + An API designed to expose and control devices and sub-devices > > + relationships to applications. > > + > > + See :ref:`media_controller`. > > + > > + MC-centric > > + V4L2 hardware that requires a Media controller. > > + > > + See :ref:`v4l2_hardware_control`. > > + > > + Microprocessor > > + An electronic circuitry that carries out the instructions > > + of a computer program by performing the basic arithmetic, logical, > > + control and input/output (I/O) operations specified by the > > + instructions on a single integrated circuit. > > + > > + SMBus > > + A subset of I²C, with defines a stricter usage of the bus. > > + > > + Serial Peripheral Interface Bus - SPI > > + Synchronous serial communication interface specification used for > > + short distance communication, primarily in embedded systems. > > + > > + System on a Chip - SoC > > + An integrated circuit that integrates all components of a computer > > + or other electronic systems. > > + > > + Sub-device hardware components > > + Hardware components that aren't controlled by the > > + V4L2 main driver. > > Do we really need this? If we do, then this description needs to be fixed: > you only say what it isn't controller by, not what actually does control it. > > > + > > + V4L2 device node > > + A device node that is associated to a V4L2 main driver, > > + as specified in :ref:`v4l2_device_naming`. > > + > > + V4L2 hardware > > + A hardware used to on a media device supported by the V4L2 > > + subsystem. > > + > > + V4L2 hardware control > > + The type of hardware control that a device supports. > > + > > + See :ref:`v4l2_hardware_control`. > > ??? This is the same as "Hardware peripheral control". I'd stick to just one > term (i.e. "Media hardware control" as I proposed). > > > + > > + V4L2 main driver > > + The V4L2 device driver that implements the main logic to talk with > > + the V4L2 hardware. > > + > > + Also known as bridge driver. > > + > > + See :ref:`v4l2_hardware_control`. > > + > > + V4L2 sub-device > > + Part of the media hardware that it is implemented by a device > > it is -> is > > I don't think this is right. A V4L2 sub-device not hardware. It represents > a media hardware component and is implemented in a V4L2 sub-device driver. > > > + driver that is not part of the main V4L2 driver. > > + > > + See :ref:`subdev`. > > + > > + Vdev-centric > > I strongly prefer to call this vdevnode-centric. > 'vdev' is too vague and it only works for us because we use 'vdev' in our > code as the name for a video device node structure. End-users has no knowledge > of that. > > I agree with the text in patches 2-7, except for the terminology. > > If others agree, then once it is changed in a v7 patch series I'll review again > for consistent usage of the terminology. Addressed all above comments. The diff with regards to the previous series is enclosed. I'll be sending the patches with those changes in a few. Regards, Mauro diff --git a/Documentation/media/uapi/v4l/glossary.rst b/Documentation/media/uapi/v4l/glossary.rst index afafe1bc1894..b6767da1a46e 100644 --- a/Documentation/media/uapi/v4l/glossary.rst +++ b/Documentation/media/uapi/v4l/glossary.rst @@ -38,18 +38,12 @@ Glossary A subset of the media hardware. For example an I²C or SPI device, or an IP block inside an SoC or FPGA. - Hardware peripheral - A group of hardware components that together make a larger - user-facing functional peripheral. For instance the SoC ISP IP - cores and external camera sensors together make a - camera hardware peripheral. - - Also known as peripheral. - - Hardware peripheral control - Type of control for a hardware peripheral supported by V4L2 drivers. - - See :ref:`v4l2_hardware_control`. + Image Signal Processor - ISP + A specialised processor that implements a set of algorithms for + processing image data. ISPs may implement algorithms for lens + shading correction, demosaic, scaling and pixel format conversion + as well as produce statistics for the use of the control + algorithms (e.g. automatic exposure, white balance and focus). Inter-Integrated Circuit - I²C A multi-master, multi-slave, packet switched, single-ended, @@ -63,10 +57,7 @@ Glossary Also known as chip. - IP block - The same as IP core. - - Intelectual property core - IP core + Intellectual property core - IP core In electronic design a semiconductor intellectual property core, is a reusable unit of logic, cell, or integrated circuit layout design that is the intellectual property of one party. @@ -75,15 +66,13 @@ Glossary See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core). - Image Signal Processor - ISP - A specialised processor that implements a set of algorithms for - processing image data. ISPs may implement algorithms for lens - shading correction, demosaic, scaling and pixel format conversion - as well as produce statistics for the use of the control - algorithms (e.g. automatic exposure, white balance and focus). + IP block + The same as IP core. - Peripheral - The same as hardware peripheral. + MC-centric + V4L2 hardware that requires a Media controller. + + See :ref:`v4l2_hardware_control`. Media Controller An API designed to expose and control devices and sub-devices @@ -91,8 +80,14 @@ Glossary See :ref:`media_controller`. - MC-centric - V4L2 hardware that requires a Media controller. + Media hardware + A group of hardware components that together make a larger + user-facing functional media hardware. For instance the SoC ISP IP + cores and external camera sensors together make a + camera media hardware. + + Media hardware control + Type of control for a media hardware supported by V4L2 drivers. See :ref:`v4l2_hardware_control`. @@ -113,10 +108,6 @@ Glossary An integrated circuit that integrates all components of a computer or other electronic systems. - Sub-device hardware components - Hardware components that aren't controlled by the - V4L2 main driver. - V4L2 device node A device node that is associated to a V4L2 main driver, as specified in :ref:`v4l2_device_naming`. @@ -125,11 +116,6 @@ Glossary A hardware used to on a media device supported by the V4L2 subsystem. - V4L2 hardware control - The type of hardware control that a device supports. - - See :ref:`v4l2_hardware_control`. - V4L2 main driver The V4L2 device driver that implements the main logic to talk with the V4L2 hardware. @@ -139,12 +125,12 @@ Glossary See :ref:`v4l2_hardware_control`. V4L2 sub-device - Part of the media hardware that it is implemented by a device - driver that is not part of the main V4L2 driver. + Part of the media hardware that is implemented via a + V4L2 sub-device driver. See :ref:`subdev`. - Vdev-centric + Vdevnode-centric V4L2 hardware that it is controlled via V4L2 device nodes. See :ref:`v4l2_hardware_control`. diff --git a/Documentation/media/uapi/v4l/open.rst b/Documentation/media/uapi/v4l/open.rst index 250f0b865943..ed011ed123cc 100644 --- a/Documentation/media/uapi/v4l/open.rst +++ b/Documentation/media/uapi/v4l/open.rst @@ -10,8 +10,8 @@ Opening and Closing Devices .. _v4l2_hardware_control: -Types of V4L2 hardware peripheral control -========================================= +Types of V4L2 media hardware control +==================================== V4L2 hardware periferal is usually complex: support for it is implemented via a V4L2 main driver and often by several additional drivers. @@ -26,22 +26,22 @@ controlled directly by the main driver or explicitly via the **V4L2 sub-device API** (see :ref:`subdev`). When V4L2 was originally designed, there was only one type of -peripheral control: via the **V4L2 device nodes**. We refer to this kind -of control as **V4L2 device node centric** (or, simply, "**vdev-centric**"). +media hardware control: via the **V4L2 device nodes**. We refer to this kind +of control as **V4L2 device node centric** (or, simply, "**vdevnode-centric**"). Later (kernel 2.6.39), a new type of periferal control was -added in order to support complex peripherals that are common for embedded +added in order to support complex media hardware that are common for embedded systems. This type of periferal is controlled mainly via the media controller and V4L2 sub-devices. So, it is called **Media controller centric** (or, simply, "**MC-centric**") control. -For **vdev-centric** hardware peripheral control, the peripheral is +For **vdevnode-centric** media hardware control, the media hardware is controlled via the **V4L2 device nodes**. They may optionally support the :ref:`media controller API <media_controller>` as well, in order to inform the application which device nodes are available (see :ref:`related`). -For **MC-centric** hardware peripheral control it is required to configure +For **MC-centric** media hardware control it is required to configure the pipelines via the :ref:`media controller API <media_controller>` before the periferal can be used. For such devices, the sub-devices' configuration can be controlled via the :ref:`sub-device API <subdev>`, which creates one @@ -49,14 +49,14 @@ device node per sub-device. .. note:: - A **vdev-centric** may also optionally expose V4L2 sub-devices via + A **vdevnode-centric** may also optionally expose V4L2 sub-devices via :ref:`sub-device API <subdev>`. In that case, it has to implement the :ref:`media controller API <media_controller>` as well. .. attention:: - Devices that require **MC-centric** hardware peripheral control should + Devices that require **MC-centric** media hardware control should report a ``V4L2_MC_CENTRIC`` :c:type:`v4l2_capability` flag (see :ref:`VIDIOC_QUERYCAP`). diff --git a/Documentation/media/uapi/v4l/vidioc-querycap.rst b/Documentation/media/uapi/v4l/vidioc-querycap.rst index cf69a5e33df2..944bc5ba484f 100644 --- a/Documentation/media/uapi/v4l/vidioc-querycap.rst +++ b/Documentation/media/uapi/v4l/vidioc-querycap.rst @@ -257,7 +257,7 @@ specification the ioctl returns an ``EINVAL`` error code. * - ``V4L2_MC_CENTRIC`` - 0x20000000 - Indicates that the device require **MC-centric** hardware - control, and thus can't be used by **vdev-centric** applications. + control, and thus can't be used by **vdevnode-centric** applications. See :ref:`v4l2_hardware_control` for more details. * - ``V4L2_CAP_DEVICE_CAPS`` - 0x80000000 Thanks, Mauro ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v6 2/7] media: open.rst: better document device node naming 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec Mauro Carvalho Chehab @ 2017-08-29 13:17 ` Mauro Carvalho Chehab 2017-10-06 10:23 ` Sakari Ailus 2017-08-29 13:17 ` [PATCH v6 3/7] media: open.rst: remove the minor number range Mauro Carvalho Chehab ` (4 subsequent siblings) 6 siblings, 1 reply; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Hans Verkuil, Sakari Ailus Right now, only kAPI documentation describes the device naming. However, such description is needed at the uAPI too. Add it, and describe how to get an unique identify for a given device. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> --- Documentation/media/uapi/v4l/open.rst | 44 ++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/Documentation/media/uapi/v4l/open.rst b/Documentation/media/uapi/v4l/open.rst index afd116edb40d..7e7aad784388 100644 --- a/Documentation/media/uapi/v4l/open.rst +++ b/Documentation/media/uapi/v4l/open.rst @@ -7,12 +7,14 @@ Opening and Closing Devices *************************** -Device Naming -============= +.. _v4l2_device_naming: + +V4L2 Device Node Naming +======================= V4L2 drivers are implemented as kernel modules, loaded manually by the system administrator or automatically when a device is first discovered. -The driver modules plug into the "videodev" kernel module. It provides +The driver modules plug into the ``videodev`` kernel module. It provides helper functions and a common application interface specified in this document. @@ -23,6 +25,42 @@ option CONFIG_VIDEO_FIXED_MINOR_RANGES. In that case minor numbers are allocated in ranges depending on the device node type (video, radio, etc.). +The existing V4L2 device node types are: + +======================== ====================================================== +Default device node name Usage +======================== ====================================================== +``/dev/videoX`` Video input/output devices +``/dev/vbiX`` Vertical blank data (i.e. closed captions, teletext) +``/dev/radioX`` Radio tuners and modulators +``/dev/swradioX`` Software Defined Radio tuners and modulators +``/dev/v4l-touchX`` Touch sensors +======================== ====================================================== + +Where ``X`` is a non-negative number. + +.. note:: + + 1. The actual device node name is system-dependent, as udev rules may apply. + 2. There is no guarantee that ``X`` will remain the same for the same + device, as the number depends on the device driver's probe order. + If you need an unique name, udev default rules produce + ``/dev/v4l/by-id/`` and ``/dev/v4l/by-path/`` directories containing + links that can be used uniquely to identify a V4L2 device node:: + + $ tree /dev/v4l + /dev/v4l + ├── by-id + │ └── usb-OmniVision._USB_Camera-B4.04.27.1-video-index0 -> ../../video0 + └── by-path + └── pci-0000:00:14.0-usb-0:2:1.0-video-index0 -> ../../video0 + + 3. **V4L2 sub-device nodes** (e. g. ``/dev/v4l-sudevX``) provide a + different API and aren't considered as V4L2 device nodes. + + They are covered at :ref:`subdev`. + + Many drivers support "video_nr", "radio_nr" or "vbi_nr" module options to select specific video/radio/vbi node numbers. This allows the user to request that the device node is named e.g. /dev/video5 instead -- 2.13.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v6 2/7] media: open.rst: better document device node naming 2017-08-29 13:17 ` [PATCH v6 2/7] media: open.rst: better document device node naming Mauro Carvalho Chehab @ 2017-10-06 10:23 ` Sakari Ailus 0 siblings, 0 replies; 11+ messages in thread From: Sakari Ailus @ 2017-10-06 10:23 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Linux Doc Mailing List, Linux Media Mailing List, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Hans Verkuil, Sakari Ailus On Tue, Aug 29, 2017 at 10:17:51AM -0300, Mauro Carvalho Chehab wrote: > Right now, only kAPI documentation describes the device naming. > However, such description is needed at the uAPI too. Add it, > and describe how to get an unique identify for a given device. > > Acked-by: Hans Verkuil <hans.verkuil@cisco.com> > Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> -- Sakari Ailus e-mail: sakari.ailus@iki.fi ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v6 3/7] media: open.rst: remove the minor number range 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 2/7] media: open.rst: better document device node naming Mauro Carvalho Chehab @ 2017-08-29 13:17 ` Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 4/7] media: open.rst: document devnode-centric and mc-centric types Mauro Carvalho Chehab ` (3 subsequent siblings) 6 siblings, 0 replies; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Hans Verkuil, Sakari Ailus minor numbers use to range between 0 to 255, but that was changed a long time ago. While it still applies when CONFIG_VIDEO_FIXED_MINOR_RANGES, when the minor number is dynamically allocated, this may not be true. In any case, this is not relevant, as udev will take care of it. So, remove this useless misinformation. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> --- Documentation/media/uapi/v4l/open.rst | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Documentation/media/uapi/v4l/open.rst b/Documentation/media/uapi/v4l/open.rst index 7e7aad784388..18030131ef77 100644 --- a/Documentation/media/uapi/v4l/open.rst +++ b/Documentation/media/uapi/v4l/open.rst @@ -19,11 +19,10 @@ helper functions and a common application interface specified in this document. Each driver thus loaded registers one or more device nodes with major -number 81 and a minor number between 0 and 255. Minor numbers are -allocated dynamically unless the kernel is compiled with the kernel -option CONFIG_VIDEO_FIXED_MINOR_RANGES. In that case minor numbers -are allocated in ranges depending on the device node type (video, radio, -etc.). +number 81. Minor numbers are allocated dynamically unless the kernel +is compiled with the kernel option CONFIG_VIDEO_FIXED_MINOR_RANGES. +In that case minor numbers are allocated in ranges depending on the +device node type. The existing V4L2 device node types are: -- 2.13.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v6 4/7] media: open.rst: document devnode-centric and mc-centric types 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab ` (2 preceding siblings ...) 2017-08-29 13:17 ` [PATCH v6 3/7] media: open.rst: remove the minor number range Mauro Carvalho Chehab @ 2017-08-29 13:17 ` Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 5/7] media: open.rst: Adjust some terms to match the glossary Mauro Carvalho Chehab ` (2 subsequent siblings) 6 siblings, 0 replies; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Hans Verkuil, Sakari Ailus When we added support for omap3, back in 2010, we added a new type of V4L2 devices that aren't fully controlled via the V4L2 device node. Yet, we have never clearly documented in the V4L2 specification the differences between the two types. Let's document them based on the the current implementation. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> --- Documentation/media/uapi/v4l/open.rst | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Documentation/media/uapi/v4l/open.rst b/Documentation/media/uapi/v4l/open.rst index 18030131ef77..bcfa654d5d71 100644 --- a/Documentation/media/uapi/v4l/open.rst +++ b/Documentation/media/uapi/v4l/open.rst @@ -7,6 +7,46 @@ Opening and Closing Devices *************************** +.. _v4l2_hardware_control: + + +Types of V4L2 hardware peripheral control +========================================= + +V4L2 hardware periferal is usually complex: support for it is +implemented via a V4L2 main driver and often by several additional drivers. +The main driver always exposes one or more **V4L2 device nodes** +(see :ref:`v4l2_device_naming`) with are responsible for implementing +data streaming, if applicable. + +The other drivers are called **V4L2 sub-devices** and provide control to +other hardware components usually connected via a serial bus (like +I²C, SMBus or SPI). Depending on the main driver, they can be implicitly +controlled directly by the main driver or explicitly via +the **V4L2 sub-device API** (see :ref:`subdev`). + +When V4L2 was originally designed, there was only one type of +peripheral control: via the **V4L2 device nodes**. We refer to this kind +of control as **V4L2 device node centric** (or, simply, "**vdev-centric**"). + +Later (kernel 2.6.39), a new type of periferal control was +added in order to support complex peripherals that are common for embedded +systems. This type of periferal is controlled mainly via the media +controller and V4L2 sub-devices. So, it is called +**Media controller centric** (or, simply, "**MC-centric**") control. + +For **vdev-centric** hardware peripheral control, the peripheral is +controlled via the **V4L2 device nodes**. They may optionally support the +:ref:`media controller API <media_controller>` as well, +in order to inform the application which device nodes are available +(see :ref:`related`). + +For **MC-centric** hardware peripheral control it is required to configure +the pipelines via the :ref:`media controller API <media_controller>` before +the periferal can be used. For such devices, the sub-devices' configuration +can be controlled via the :ref:`sub-device API <subdev>`, which creates one +device node per sub-device. + .. _v4l2_device_naming: V4L2 Device Node Naming -- 2.13.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v6 5/7] media: open.rst: Adjust some terms to match the glossary 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab ` (3 preceding siblings ...) 2017-08-29 13:17 ` [PATCH v6 4/7] media: open.rst: document devnode-centric and mc-centric types Mauro Carvalho Chehab @ 2017-08-29 13:17 ` Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 6/7] media: videodev2: add a flag for MC-centric devices Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 7/7] media: open.rst: add a notice about subdev-API on vdev-centric Mauro Carvalho Chehab 6 siblings, 0 replies; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Hans Verkuil, Sakari Ailus As we now have a glossary, some terms used on open.rst require adjustments. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> --- Documentation/media/uapi/v4l/open.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Documentation/media/uapi/v4l/open.rst b/Documentation/media/uapi/v4l/open.rst index bcfa654d5d71..e19295b6dafe 100644 --- a/Documentation/media/uapi/v4l/open.rst +++ b/Documentation/media/uapi/v4l/open.rst @@ -143,7 +143,7 @@ Related Devices Devices can support several functions. For example video capturing, VBI capturing and radio support. -The V4L2 API creates different nodes for each of these functions. +The V4L2 API creates different V4L2 device nodes for each of these functions. The V4L2 API was designed with the idea that one device node could support all functions. However, in practice this never worked: this @@ -153,17 +153,17 @@ switching a device node between different functions only works when using the streaming I/O API, not with the :ref:`read() <func-read>`/\ :ref:`write() <func-write>` API. -Today each device node supports just one function. +Today each V4L2 device node supports just one function. Besides video input or output the hardware may also support audio sampling or playback. If so, these functions are implemented as ALSA PCM devices with optional ALSA audio mixer devices. One problem with all these devices is that the V4L2 API makes no -provisions to find these related devices. Some really complex devices -use the Media Controller (see :ref:`media_controller`) which can be -used for this purpose. But most drivers do not use it, and while some -code exists that uses sysfs to discover related devices (see +provisions to find these related V4L2 device nodes. Some really complex +hardware use the Media Controller (see :ref:`media_controller`) which can +be used for this purpose. But several drivers do not use it, and while some +code exists that uses sysfs to discover related V4L2 device nodes (see libmedia_dev in the `v4l-utils <http://git.linuxtv.org/cgit.cgi/v4l-utils.git/>`__ git repository), there is no library yet that can provide a single API -- 2.13.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v6 6/7] media: videodev2: add a flag for MC-centric devices 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab ` (4 preceding siblings ...) 2017-08-29 13:17 ` [PATCH v6 5/7] media: open.rst: Adjust some terms to match the glossary Mauro Carvalho Chehab @ 2017-08-29 13:17 ` Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 7/7] media: open.rst: add a notice about subdev-API on vdev-centric Mauro Carvalho Chehab 6 siblings, 0 replies; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Hans Verkuil, Sakari Ailus, Laurent Pinchart As both vdev-centric and MC-centric devices may implement the same APIs, we need a flag to allow userspace to distinguish between them. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> --- Documentation/media/uapi/v4l/open.rst | 7 +++++++ Documentation/media/uapi/v4l/vidioc-querycap.rst | 5 +++++ Documentation/media/videodev2.h.rst.exceptions | 1 + include/uapi/linux/videodev2.h | 2 ++ 4 files changed, 15 insertions(+) diff --git a/Documentation/media/uapi/v4l/open.rst b/Documentation/media/uapi/v4l/open.rst index e19295b6dafe..7de8b2fe3096 100644 --- a/Documentation/media/uapi/v4l/open.rst +++ b/Documentation/media/uapi/v4l/open.rst @@ -47,6 +47,13 @@ the periferal can be used. For such devices, the sub-devices' configuration can be controlled via the :ref:`sub-device API <subdev>`, which creates one device node per sub-device. +.. attention:: + + Devices that require **MC-centric** hardware peripheral control should + report a ``V4L2_MC_CENTRIC`` :c:type:`v4l2_capability` flag + (see :ref:`VIDIOC_QUERYCAP`). + + .. _v4l2_device_naming: V4L2 Device Node Naming diff --git a/Documentation/media/uapi/v4l/vidioc-querycap.rst b/Documentation/media/uapi/v4l/vidioc-querycap.rst index 12e0d9a63cd8..3675f484b7ef 100644 --- a/Documentation/media/uapi/v4l/vidioc-querycap.rst +++ b/Documentation/media/uapi/v4l/vidioc-querycap.rst @@ -252,6 +252,11 @@ specification the ioctl returns an ``EINVAL`` error code. * - ``V4L2_CAP_TOUCH`` - 0x10000000 - This is a touch device. + * - ``V4L2_MC_CENTRIC`` + - 0x20000000 + - Indicates that the device require **MC-centric** hardware + control, and thus can't be used by **vdev-centric** applications. + See :ref:`v4l2_hardware_control` for more details. * - ``V4L2_CAP_DEVICE_CAPS`` - 0x80000000 - The driver fills the ``device_caps`` field. This capability can diff --git a/Documentation/media/videodev2.h.rst.exceptions b/Documentation/media/videodev2.h.rst.exceptions index a5cb0a8686ac..b51a575f9f75 100644 --- a/Documentation/media/videodev2.h.rst.exceptions +++ b/Documentation/media/videodev2.h.rst.exceptions @@ -157,6 +157,7 @@ replace define V4L2_CAP_META_CAPTURE device-capabilities replace define V4L2_CAP_READWRITE device-capabilities replace define V4L2_CAP_ASYNCIO device-capabilities replace define V4L2_CAP_STREAMING device-capabilities +replace define V4L2_CAP_MC_CENTRIC device-capabilities replace define V4L2_CAP_DEVICE_CAPS device-capabilities replace define V4L2_CAP_TOUCH device-capabilities diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index 45cf7359822c..a35d762c3eef 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -460,6 +460,8 @@ struct v4l2_capability { #define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */ +#define V4L2_CAP_MC_CENTRIC 0x20000000 /* Device require MC-centric hardware control */ + #define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */ /* -- 2.13.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v6 7/7] media: open.rst: add a notice about subdev-API on vdev-centric 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab ` (5 preceding siblings ...) 2017-08-29 13:17 ` [PATCH v6 6/7] media: videodev2: add a flag for MC-centric devices Mauro Carvalho Chehab @ 2017-08-29 13:17 ` Mauro Carvalho Chehab 6 siblings, 0 replies; 11+ messages in thread From: Mauro Carvalho Chehab @ 2017-08-29 13:17 UTC (permalink / raw) To: Linux Doc Mailing List, Linux Media Mailing List Cc: Mauro Carvalho Chehab, Mauro Carvalho Chehab, linux-kernel, Jonathan Corbet, Hans Verkuil, Sakari Ailus The documentation doesn't mention if vdev-centric hardware control would have subdev API or not. Add a notice about that, reflecting the current status, where three drivers use it, in order to support some subdev-specific controls. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> --- Documentation/media/uapi/v4l/open.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/media/uapi/v4l/open.rst b/Documentation/media/uapi/v4l/open.rst index 7de8b2fe3096..250f0b865943 100644 --- a/Documentation/media/uapi/v4l/open.rst +++ b/Documentation/media/uapi/v4l/open.rst @@ -47,6 +47,13 @@ the periferal can be used. For such devices, the sub-devices' configuration can be controlled via the :ref:`sub-device API <subdev>`, which creates one device node per sub-device. +.. note:: + + A **vdev-centric** may also optionally expose V4L2 sub-devices via + :ref:`sub-device API <subdev>`. In that case, it has to implement + the :ref:`media controller API <media_controller>` as well. + + .. attention:: Devices that require **MC-centric** hardware peripheral control should -- 2.13.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2017-10-06 10:23 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-08-29 13:17 [PATCH v6 0/7] document types of hardware control for V4L2 Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 1/7] media: add glossary.rst with a glossary of terms used at V4L2 spec Mauro Carvalho Chehab 2017-09-01 10:26 ` Hans Verkuil 2017-09-27 22:21 ` Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 2/7] media: open.rst: better document device node naming Mauro Carvalho Chehab 2017-10-06 10:23 ` Sakari Ailus 2017-08-29 13:17 ` [PATCH v6 3/7] media: open.rst: remove the minor number range Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 4/7] media: open.rst: document devnode-centric and mc-centric types Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 5/7] media: open.rst: Adjust some terms to match the glossary Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 6/7] media: videodev2: add a flag for MC-centric devices Mauro Carvalho Chehab 2017-08-29 13:17 ` [PATCH v6 7/7] media: open.rst: add a notice about subdev-API on vdev-centric Mauro Carvalho Chehab
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.