What are these headers ?
------------------------
This is the canonical source of drm headers that user space should use for
communicating with the kernel DRM subsystem.

They flow from the kernel, thus any changes must be merged there first.
Do _not_ attempt to "fix" these by deviating from the kernel ones !


Non-linux platforms - changes/patches
-------------------------------------
If your platform has local changes, please send them upstream for inclusion.
Even if your patches don't get accepted in their current form, devs will
give you feedback on how to address things properly.

git send-email --subject-prefix="PATCH libdrm" your patches to dri-devel
mailing list.

Before doing so, please consider the following:
 - Have the [libdrm vs kernel] headers on your platform deviated ?
Consider unifying them first.

 - Have you introduced additional ABI that's not available in Linux ?
Propose it for [Linux kernel] upstream inclusion.
If that doesn't work out (hopefully it never does), move it to another header
and/or keep the change(s) local ?

 - Are your changes DRI1/UMS specific ?
There is virtually no interest/power in keeping those legacy interfaces. They
are around due to the kernel "thou shalt not break existing user space" rule.

Consider porting the driver to DRI2/KMS - all (almost?) sensible hardware is
capable of supporting those.


Which headers go where ?
------------------------
A snipped from the, now removed, Makefile.am used to state:

  XXX airlied says, nothing besides *_drm.h and drm*.h should be necessary.
  however, r300 and via need their reg headers installed in order to build.
  better solutions are welcome.

Obviously the r300 and via headers are no longer around ;-)

Reason behind is that the drm headers can be used as a basic communications
channel with the respective kernel modules. If more advanced functionality is
required one can pull the specific libdrm_$driver which is free to pull
additional files from the kernel.

For example: nouveau has nouveau/nvif/*.h while vc4 has vc4/*.h

If your driver is still in prototyping/staging state, consider moving the
$driver_drm.h into $driver and _not_ installing it. An header providing opaque
definitions and access [via $driver_drmif.h or similar] would be better fit.


When and which headers to update
--------------------------------
Ideally all files will be synced (updated) with the latest released kernel on
each libdrm release. Sadly that's not yet possible since quite a few headers
differ significantly - see Outdated or Broken Headers section below.

That said, it's up-to the individual developers to sync with newer version
(from drm-next) as they see fit.


When and how to update these files
----------------------------------
Note: One should not do _any_ changes to the files apart from the steps below.

In order to update the files do the following:
 - Switch to a Linux kernel tree/branch which is not rebased.
For example: airlied/drm-next
 - Install the headers via `make headers_install' to a separate location.
 - Copy the drm header[s] + git add + git commit.
 - Note: Your commit message must include:
   a) Brief summary on the delta. If there's any change that looks like an
API/ABI break one _must_ explicitly state why it's safe to do so.
   b) "Generated using make headers_install."
   c) "Generated from $tree/branch commit $sha"


Outdated or Broken Headers
--------------------------
This section contains a list of headers and the respective "issues" they might
have relative to their kernel equivalent.

Nearly all headers:
 - Missing extern C notation.
Status: Trivial.

Most UMS headers:
 - Not using fixed size integers - compat ioctls are broken.
Status: ?
Promote to fixed size ints, which match the current (32bit) ones.


drm_mode.h
 - Missing DPI encode/connector pair.
Status: Trivial.

i915_drm.h
 - Missing PARAMS - HAS_POOLED_EU, MIN_EU_IN_POOL CONTEXT_PARAM_NO_ERROR_CAPTURE
Status: Trivial.

mga_drm.h
 - Typo fix, use struct over typedef.
Status: Trivial.

nouveau_drm.h
 - Missing macros NOUVEAU_GETPARAM*, NOUVEAU_DRM_HEADER_PATCHLEVEL, structs,
enums, using stdint.h over the __u* types.
Status: ?

qxl_drm.h
 - Using the stdint.h uint*_t over the respective __u* ones
Status: Trivial.

r128_drm.h
 - Broken compat ioctls.

radeon_drm.h
 - Missing RADEON_TILING_R600_NO_SCANOUT, CIK_TILE_MODE_*, broken UMS ioctls,
using stdint types.
 - Both kernel and libdrm: missing padding -
drm_radeon_gem_{create,{g,s}et_tiling,set_domain} others ?
Status: ?

savage_drm.h
 - Renamed ioctls - DRM_IOCTL_SAVAGE_{,BCI}_EVENT_EMIT, compat ioctls are broken.
Status: ?

sis_drm.h
 - Borken ioctls + libdrm uses int vs kernel long
Status: ?

via_drm.h
 - Borken ioctls - libdrm int vs kernel long
Status: ?


omap_drm.h (living in $TOP/omap)
 - License mismatch, missing DRM_IOCTL_OMAP_GEM_NEW and related struct
Status: ?

msm_drm.h (located in $TOP/freedreno/msm/)
 - License mismatch, missing MSM_PIPE_*, MSM_SUBMIT_*. Renamed
drm_msm_gem_submit::flags, missing drm_msm_gem_submit::fence_fd.
Status: ?

exynos_drm.h (living in $TOP/exynos)
 - License mismatch, now using fixed size ints (but not everywhere). Lots of
new stuff.
Status: ?
