Commit da98a79b authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] doc-rst: make CEC look more like other parts of the book



Better organize the contents of the CEC part, moving the
introduction to chapter 1, placing all ioctls at chapter 2
and numerating all chapters and items.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 96f69e0e
Loading
Loading
Loading
Loading
+5 −55
Original line number Diff line number Diff line
@@ -10,65 +10,15 @@ CEC API

.. _cec-api:

*********************************
CEC: Consumer Electronics Control
*********************************


.. _cec-intro:

Introduction
============

Note: this documents the proposed CEC API. This API is not yet finalized
and is currently only available as a staging kernel module.

HDMI connectors provide a single pin for use by the Consumer Electronics
Control protocol. This protocol allows different devices connected by an
HDMI cable to communicate. The protocol for CEC version 1.4 is defined
in supplements 1 (CEC) and 2 (HEAC or HDMI Ethernet and Audio Return
Channel) of the HDMI 1.4a (:ref:`hdmi`) specification and the
extensions added to CEC version 2.0 are defined in chapter 11 of the
HDMI 2.0 (:ref:`hdmi2`) specification.

The bitrate is very slow (effectively no more than 36 bytes per second)
and is based on the ancient AV.link protocol used in old SCART
connectors. The protocol closely resembles a crazy Rube Goldberg
contraption and is an unholy mix of low and high level messages. Some
messages, especially those part of the HEAC protocol layered on top of
CEC, need to be handled by the kernel, others can be handled either by
the kernel or by userspace.

In addition, CEC can be implemented in HDMI receivers, transmitters and
in USB devices that have an HDMI input and an HDMI output and that
control just the CEC pin.

Drivers that support CEC will create a CEC device node (/dev/cecX) to
give userspace access to the CEC adapter. The
:ref:`CEC_ADAP_G_CAPS` ioctl will tell
userspace what it is allowed to do.


.. _cec-user-func:

******************
Function Reference
******************

This part describes the CEC: Consumer Electronics Control

.. toctree::
    :maxdepth: 1
    :numbered:
    :caption: Table of Contents

    cec-func-open
    cec-func-close
    cec-func-ioctl
    cec-func-poll
    cec-ioc-adap-g-caps
    cec-ioc-adap-g-log-addrs
    cec-ioc-adap-g-phys-addr
    cec-ioc-dqevent
    cec-ioc-g-mode
    cec-ioc-receive
    cec-intro
    cec-funcs
    cec-header


+21 −0
Original line number Diff line number Diff line
.. _cec-user-func:

******************
Function Reference
******************


.. toctree::
    :maxdepth: 1
    :numbered:

    cec-func-open
    cec-func-close
    cec-func-ioctl
    cec-func-poll
    cec-ioc-adap-g-caps
    cec-ioc-adap-g-log-addrs
    cec-ioc-adap-g-phys-addr
    cec-ioc-dqevent
    cec-ioc-g-mode
    cec-ioc-receive
+31 −0
Original line number Diff line number Diff line
.. _cec-intro:

Introduction
============

Note: this documents the proposed CEC API. This API is not yet finalized
and is currently only available as a staging kernel module.

HDMI connectors provide a single pin for use by the Consumer Electronics
Control protocol. This protocol allows different devices connected by an
HDMI cable to communicate. The protocol for CEC version 1.4 is defined
in supplements 1 (CEC) and 2 (HEAC or HDMI Ethernet and Audio Return
Channel) of the HDMI 1.4a (:ref:`hdmi`) specification and the
extensions added to CEC version 2.0 are defined in chapter 11 of the
HDMI 2.0 (:ref:`hdmi2`) specification.

The bitrate is very slow (effectively no more than 36 bytes per second)
and is based on the ancient AV.link protocol used in old SCART
connectors. The protocol closely resembles a crazy Rube Goldberg
contraption and is an unholy mix of low and high level messages. Some
messages, especially those part of the HEAC protocol layered on top of
CEC, need to be handled by the kernel, others can be handled either by
the kernel or by userspace.

In addition, CEC can be implemented in HDMI receivers, transmitters and
in USB devices that have an HDMI input and an HDMI output and that
control just the CEC pin.

Drivers that support CEC will create a CEC device node (/dev/cecX) to
give userspace access to the CEC adapter. The
:ref:`CEC_ADAP_G_CAPS` ioctl will tell userspace what it is allowed to do.