<refentry id="media-ioc-device-info">
  <refmeta>
    <refentrytitle>ioctl MEDIA_IOC_DEVICE_INFO</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>MEDIA_IOC_DEVICE_INFO</refname>
    <refpurpose>Query device information</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>struct media_device_info *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>

    <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>File descriptor returned by
	  <link linkend='media-func-open'><function>open()</function></link>.</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>MEDIA_IOC_DEVICE_INFO</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>All media devices must support the <constant>MEDIA_IOC_DEVICE_INFO</constant>
    ioctl. To query device information, applications call the ioctl with a
    pointer to a &media-device-info;. The driver fills the structure and returns
    the information to the application.
    The ioctl never fails.</para>

    <table pgwide="1" frame="none" id="media-device-info">
      <title>struct <structname>media_device_info</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>char</entry>
	    <entry><structfield>driver</structfield>[16]</entry>
	    <entry><para>Name of the driver implementing the media API as a
	    NUL-terminated ASCII string. The driver version is stored in the
	    <structfield>driver_version</structfield> field.</para>
	    <para>Driver specific applications can use this information to
	    verify the driver identity. It is also useful to work around
	    known bugs, or to identify drivers in error reports.</para></entry>
	  </row>
	  <row>
	    <entry>char</entry>
	    <entry><structfield>model</structfield>[32]</entry>
	    <entry>Device model name as a NUL-terminated UTF-8 string. The
	    device version is stored in the <structfield>device_version</structfield>
	    field and is not be appended to the model name.</entry>
	  </row>
	  <row>
	    <entry>char</entry>
	    <entry><structfield>serial</structfield>[40]</entry>
	    <entry>Serial number as a NUL-terminated ASCII string.</entry>
	  </row>
	  <row>
	    <entry>char</entry>
	    <entry><structfield>bus_info</structfield>[32]</entry>
	    <entry>Location of the device in the system as a NUL-terminated
	    ASCII string. This includes the bus type name (PCI, USB, ...) and a
	    bus-specific identifier.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>media_version</structfield></entry>
	    <entry>Media API version, formatted with the
	    <constant>KERNEL_VERSION()</constant> macro.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>hw_revision</structfield></entry>
	    <entry>Hardware device revision in a driver-specific format.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>media_version</structfield></entry>
	    <entry>Media device driver version, formatted with the
	    <constant>KERNEL_VERSION()</constant> macro. Together with the
	    <structfield>driver</structfield> field this identifies a particular
	    driver.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[31]</entry>
	    <entry>Reserved for future extensions. Drivers and applications must
	    set this array to zero.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
    <para>The <structfield>serial</structfield> and <structfield>bus_info</structfield>
    fields can be used to distinguish between multiple instances of otherwise
    identical hardware. The serial number takes precedence when provided and can
    be assumed to be unique. If the serial number is an empty string, the
    <structfield>bus_info</structfield> field can be used instead. The
    <structfield>bus_info</structfield> field is guaranteed to be unique, but
    can vary across reboots or device unplug/replug.</para>
  </refsect1>

  <refsect1>
    &return-value;
  </refsect1>
</refentry>
