mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 16:14:13 +08:00
drm/fourcc: Add DOC: overview comment
There's a number of things which haven't previously been documented around the usage of format modifiers. Capture the current understanding in an overview comment and add it to the rst documentation. Ideally, the generated documentation would also include documentation of all of the #defines, but the kernel-doc system doesn't currently support kernel-doc comments on #define constants. Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Brian Starkey <brian.starkey@arm.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Alexandru Gheorghe <alexandru-cosmin.gheorghe@arm.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180821161611.10424-1-brian.starkey@arm.com
This commit is contained in:
parent
c76abab59b
commit
7e7b68ef00
@ -323,6 +323,12 @@ Frame Buffer Functions Reference
|
||||
DRM Format Handling
|
||||
===================
|
||||
|
||||
.. kernel-doc:: include/uapi/drm/drm_fourcc.h
|
||||
:doc: overview
|
||||
|
||||
Format Functions Reference
|
||||
--------------------------
|
||||
|
||||
.. kernel-doc:: include/drm/drm_fourcc.h
|
||||
:internal:
|
||||
|
||||
|
@ -30,6 +30,42 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* DOC: overview
|
||||
*
|
||||
* In the DRM subsystem, framebuffer pixel formats are described using the
|
||||
* fourcc codes defined in `include/uapi/drm/drm_fourcc.h`. In addition to the
|
||||
* fourcc code, a Format Modifier may optionally be provided, in order to
|
||||
* further describe the buffer's format - for example tiling or compression.
|
||||
*
|
||||
* Format Modifiers
|
||||
* ----------------
|
||||
*
|
||||
* Format modifiers are used in conjunction with a fourcc code, forming a
|
||||
* unique fourcc:modifier pair. This format:modifier pair must fully define the
|
||||
* format and data layout of the buffer, and should be the only way to describe
|
||||
* that particular buffer.
|
||||
*
|
||||
* Having multiple fourcc:modifier pairs which describe the same layout should
|
||||
* be avoided, as such aliases run the risk of different drivers exposing
|
||||
* different names for the same data format, forcing userspace to understand
|
||||
* that they are aliases.
|
||||
*
|
||||
* Format modifiers may change any property of the buffer, including the number
|
||||
* of planes and/or the required allocation size. Format modifiers are
|
||||
* vendor-namespaced, and as such the relationship between a fourcc code and a
|
||||
* modifier is specific to the modifer being used. For example, some modifiers
|
||||
* may preserve meaning - such as number of planes - from the fourcc code,
|
||||
* whereas others may not.
|
||||
*
|
||||
* Vendors should document their modifier usage in as much detail as
|
||||
* possible, to ensure maximum compatibility across devices, drivers and
|
||||
* applications.
|
||||
*
|
||||
* The authoritative list of format modifier codes is found in
|
||||
* `include/uapi/drm/drm_fourcc.h`
|
||||
*/
|
||||
|
||||
#define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \
|
||||
((__u32)(c) << 16) | ((__u32)(d) << 24))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user