Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c1958fc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull media updates from Mauro Carvalho Chehab:

 - new framework support for HDMI CEC and remote control support

 - new encoding codec driver for Mediatek SoC

 - new frontend driver: helene tuner

 - added support for NetUp almost universal devices, with supports
   DVB-C/S/S2/T/T2 and ISDB-T

 - the mn88472 frontend driver got promoted from staging

 - a new driver for RCar video input

 - some soc_camera legacy drivers got removed: timb, omap1, mx2, mx3

 - lots of driver cleanups, improvements and fixups

* tag 'media/v4.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (377 commits)
  [media] cec: always check all_device_types and features
  [media] cec: poll should check if there is room in the tx queue
  [media] vivid: support monitor all mode
  [media] cec: fix test for unconfigured adapter in main message loop
  [media] cec: limit the size of the transmit queue
  [media] cec: zero unused msg part after msg->len
  [media] cec: don't set fh to NULL in CEC_TRANSMIT
  [media] cec: clear all status fields before transmit and always fill in sequence
  [media] cec: CEC_RECEIVE overwrote the timeout field
  [media] cxd2841er: Reading SNR for DVB-C added
  [media] cxd2841er: Reading BER and UCB for DVB-C added
  [media] cxd2841er: fix switch-case for DVB-C
  [media] cxd2841er: fix signal strength scale for ISDB-T
  [media] cxd2841er: adjust the dB scale for DVB-C
  [media] cxd2841er: provide signal strength for DVB-C
  [media] cxd2841er: fix BER report via DVBv5 stats API
  [media] mb86a20s: apply mask to val after checking for read failure
  [media] airspy: fix error logic during device register
  [media] s5p-cec/TODO: add TODO item
  [media] cec/TODO: drop comment about sphinx documentation
  ...
parents 1b3fc0be 009a6208
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -300,6 +300,9 @@ X!Isound/sound_firmware.c
!Iinclude/media/media-devnode.h
!Iinclude/media/media-entity.h
    </sect1>
    <sect1><title>Consumer Electronics Control devices</title>
!Iinclude/media/cec-edid.h
    </sect1>

  </chapter>

+2 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ IOCTLS = \
	$(shell perl -ne 'print "$$1 " if /\#define\s+([A-Z][^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/net.h) \
	$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/video.h) \
	$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/media.h) \
	$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/linux/cec.h) \
	$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/v4l2-subdev.h) \

DEFINES = \
@@ -100,6 +101,7 @@ STRUCTS = \
	$(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/ && !/_old/)' $(srctree)/include/uapi/linux/dvb/net.h) \
	$(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/video.h) \
	$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/media.h) \
	$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/linux/cec.h) \
	$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/v4l2-subdev.h) \
	$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/v4l2-mediabus.h)

+10 −0
Original line number Diff line number Diff line
@@ -342,6 +342,16 @@ in the frequency range from 87,5 to 108,0 MHz</title>
      <subtitle>Specification Version 1.4a</subtitle>
    </biblioentry>

    <biblioentry id="hdmi2">
      <abbrev>HDMI2</abbrev>
      <authorgroup>
	<corpauthor>HDMI Licensing LLC
(<ulink url="http://www.hdmi.org">http://www.hdmi.org</ulink>)</corpauthor>
      </authorgroup>
      <title>High-Definition Multimedia Interface</title>
      <subtitle>Specification Version 2.0</subtitle>
    </biblioentry>

    <biblioentry id="dp">
      <abbrev>DP</abbrev>
      <authorgroup>
+75 −0
Original line number Diff line number Diff line
<partinfo>
  <authorgroup>
    <author>
      <firstname>Hans</firstname>
      <surname>Verkuil</surname>
      <affiliation><address><email>hans.verkuil@cisco.com</email></address></affiliation>
      <contrib>Initial version.</contrib>
    </author>
  </authorgroup>
  <copyright>
    <year>2016</year>
    <holder>Hans Verkuil</holder>
  </copyright>

  <revhistory>
    <!-- Put document revisions here, newest first. -->
    <revision>
      <revnumber>1.0.0</revnumber>
      <date>2016-03-17</date>
      <authorinitials>hv</authorinitials>
      <revremark>Initial revision</revremark>
    </revision>
  </revhistory>
</partinfo>

<title>CEC API</title>

<chapter id="cec-api">
  <title>CEC: Consumer Electronics Control</title>

  <section id="cec-intro">
    <title>Introduction</title>
    <para>
      Note: this documents the proposed CEC API. This API is not yet finalized and
      is currently only available as a staging kernel module.
    </para>
    <para>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
    (<xref linkend="hdmi" />) specification and the extensions added to CEC version 2.0
    are defined in chapter 11 of the HDMI 2.0 (<xref linkend="hdmi2" />) specification.
    </para>

    <para>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.</para>

    <para>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.</para>

    <para>Drivers that support CEC will create a CEC device node (/dev/cecX)
    to give userspace access to the CEC adapter. The &CEC-ADAP-G-CAPS; ioctl will tell userspace
    what it is allowed to do.</para>
  </section>
</chapter>

<appendix id="cec-user-func">
  <title>Function Reference</title>
  <!-- Keep this alphabetically sorted. -->
  &sub-cec-func-open;
  &sub-cec-func-close;
  &sub-cec-func-ioctl;
  &sub-cec-func-poll;
  <!-- All ioctls go here. -->
  &sub-cec-ioc-adap-g-caps;
  &sub-cec-ioc-adap-g-log-addrs;
  &sub-cec-ioc-adap-g-phys-addr;
  &sub-cec-ioc-dqevent;
  &sub-cec-ioc-g-mode;
  &sub-cec-ioc-receive;
</appendix>
+64 −0
Original line number Diff line number Diff line
<refentry id="cec-func-close">
  <refmeta>
    <refentrytitle>cec close()</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>cec-close</refname>
    <refpurpose>Close a cec device</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcsynopsisinfo>#include &lt;unistd.h&gt;</funcsynopsisinfo>
      <funcprototype>
	<funcdef>int <function>close</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>

    <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fd;</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

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

    <para>Closes the cec device. Resources associated with the file descriptor
    are freed. The device configuration remain unchanged.</para>
  </refsect1>

  <refsect1>
    <title>Return Value</title>

    <para><function>close</function> returns 0 on success. On error, -1 is
    returned, and <varname>errno</varname> is set appropriately. Possible error
    codes are:</para>

    <variablelist>
      <varlistentry>
	<term><errorcode>EBADF</errorcode></term>
	<listitem>
	  <para><parameter>fd</parameter> is not a valid open file descriptor.
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>
Loading