/kms-drm

the DRM part of the linuxkpi-based KMS

Primary LanguageC

kms-drm

The DRM part of the linuxkpi-based KMS

This code is only used on FreeBSD 11 and 12. New development and support for FreeBSD 13 and later is available at https://github.com/freebsd/drm-kmod .

Contributing

Linux source code

Folders amd, drm, i915, radeon contain FreeBSD Makefiles for the driver modules.

Folder drivers contain source code from Linux, patched (minimally) to run on FreeBSD with LinuxKPI. Try to keep changes to the code to a minimum but if you have to patch it, leave the Linux source code intact like so:

#ifdef __linux__
...intact linux code...
#else
bsd code
#endif

When updating and patching this code with code from Linux there are often merge conflicts where the code has been changed. If there are no markers it is difficult to know what code to keep and what to throw away.

Pull requests that do not follow this will not be accepted.

Use #if(n)def __linux__ and not __FreeBSD__ to respect the other BSDs.

Unless obvious what your code does, please leave a comment to explain to fellow developers why you patched it. The source code is the documentation!

If the patch can be avoided by adding functionality to LinuxKPI, please consider the latter. Sooner or later, there will be more places where the functionality is used and having it in LinuxKPI mean we don't have to patch twice.

FreeBSD source code

Folders lindebugfs, linuxkpi

Code style and rules same as FreeBSD kernel. If a GPL'd file is copy-paste from Linux, it's OK to leave style as is.

Testing

For testing work in progress branches please see the wiki:
https://github.com/FreeBSDDesktop/kms-drm/wiki/Testing