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 .
Linux source code
radeon contain FreeBSD Makefiles for the driver modules.
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.
#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
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.
For testing work in progress branches please see the wiki: