drm: Move drm_display_mode an related docs into kerneldoc

This was in the documentation for modeset helper hooks, where it is a
bit misplaced.

v2: Reindent the drm_mode_status enum, inspired by Ville.

v3: Suggestions from Ville and Thierry.

v4: Small fixup that 0day spotted.

v5: Slight change to avoid accidental headings in kerneldoc output.

Cc: ville.syrjala@linux.intel.com
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1449218769-16577-27-git-send-email-daniel.vetter@ffwll.ch
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> (v3)
Reviewed-by: Thierry Reding <treding@nvidia.com> (v3)
This commit is contained in:
Daniel Vetter
2015-12-09 09:29:36 +01:00
parent 7f8ee3e59c
commit 30ecad77fe
4 changed files with 302 additions and 240 deletions

View File

@@ -1757,198 +1757,6 @@ void intel_crt_init(struct drm_device *dev)
connector_status_connected. There is no need to call
<function>drm_add_edid_modes</function> manually in that case.
</para>
<para>
When adding modes manually the driver creates each mode with a call to
<function>drm_mode_create</function> and must fill the following fields.
<itemizedlist>
<listitem>
<synopsis>__u32 type;</synopsis>
<para>
Mode type bitmask, a combination of
<variablelist>
<varlistentry>
<term>DRM_MODE_TYPE_BUILTIN</term>
<listitem><para>not used?</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_TYPE_CLOCK_C</term>
<listitem><para>not used?</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_TYPE_CRTC_C</term>
<listitem><para>not used?</para></listitem>
</varlistentry>
<varlistentry>
<term>
DRM_MODE_TYPE_PREFERRED - The preferred mode for the connector
</term>
<listitem>
<para>not used?</para>
</listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_TYPE_DEFAULT</term>
<listitem><para>not used?</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_TYPE_USERDEF</term>
<listitem><para>not used?</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_TYPE_DRIVER</term>
<listitem>
<para>
The mode has been created by the driver (as opposed to
to user-created modes).
</para>
</listitem>
</varlistentry>
</variablelist>
Drivers must set the DRM_MODE_TYPE_DRIVER bit for all modes they
create, and set the DRM_MODE_TYPE_PREFERRED bit for the preferred
mode.
</para>
</listitem>
<listitem>
<synopsis>__u32 clock;</synopsis>
<para>Pixel clock frequency in kHz unit</para>
</listitem>
<listitem>
<synopsis>__u16 hdisplay, hsync_start, hsync_end, htotal;
__u16 vdisplay, vsync_start, vsync_end, vtotal;</synopsis>
<para>Horizontal and vertical timing information</para>
<screen><![CDATA[
Active Front Sync Back
Region Porch Porch
<-----------------------><----------------><-------------><-------------->
//////////////////////|
////////////////////// |
////////////////////// |.................. ................
_______________
<----- [hv]display ----->
<------------- [hv]sync_start ------------>
<--------------------- [hv]sync_end --------------------->
<-------------------------------- [hv]total ----------------------------->
]]></screen>
</listitem>
<listitem>
<synopsis>__u16 hskew;
__u16 vscan;</synopsis>
<para>Unknown</para>
</listitem>
<listitem>
<synopsis>__u32 flags;</synopsis>
<para>
Mode flags, a combination of
<variablelist>
<varlistentry>
<term>DRM_MODE_FLAG_PHSYNC</term>
<listitem><para>
Horizontal sync is active high
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_NHSYNC</term>
<listitem><para>
Horizontal sync is active low
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_PVSYNC</term>
<listitem><para>
Vertical sync is active high
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_NVSYNC</term>
<listitem><para>
Vertical sync is active low
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_INTERLACE</term>
<listitem><para>
Mode is interlaced
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_DBLSCAN</term>
<listitem><para>
Mode uses doublescan
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_CSYNC</term>
<listitem><para>
Mode uses composite sync
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_PCSYNC</term>
<listitem><para>
Composite sync is active high
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_NCSYNC</term>
<listitem><para>
Composite sync is active low
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_HSKEW</term>
<listitem><para>
hskew provided (not used?)
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_BCAST</term>
<listitem><para>
not used?
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_PIXMUX</term>
<listitem><para>
not used?
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_DBLCLK</term>
<listitem><para>
not used?
</para></listitem>
</varlistentry>
<varlistentry>
<term>DRM_MODE_FLAG_CLKDIV2</term>
<listitem><para>
?
</para></listitem>
</varlistentry>
</variablelist>
</para>
<para>
Note that modes marked with the INTERLACE or DBLSCAN flags will be
filtered out by
<function>drm_helper_probe_single_connector_modes</function> if
the connector's <structfield>interlace_allowed</structfield> or
<structfield>doublescan_allowed</structfield> field is set to 0.
</para>
</listitem>
<listitem>
<synopsis>char name[DRM_DISPLAY_MODE_LEN];</synopsis>
<para>
Mode name. The driver must call
<function>drm_mode_set_name</function> to fill the mode name from
<structfield>hdisplay</structfield>,
<structfield>vdisplay</structfield> and interlace flag after
filling the corresponding fields.
</para>
</listitem>
</itemizedlist>
</para>
<para>
The <structfield>vrefresh</structfield> value is computed by
<function>drm_helper_probe_single_connector_modes</function>.