Blame freedreno/kgsl/README

Packit Service 856e4e
This is a historical description of what is now the kgsl backend
Packit Service 856e4e
in libdrm freedreno (before the upstream drm/msm driver).  Note
Packit Service 856e4e
that the kgsl backend requires the "kgsl-drm" shim driver, which
Packit Service 856e4e
usually is in disrepair (QCOM does not build it for android), and
Packit Service 856e4e
due to random differences between different downstream android
Packit Service 856e4e
kernel branches it may or may not work.  So YMMV.
Packit Service 856e4e
Packit Service 856e4e
Original README:
Packit Service 856e4e
----------------
Packit Service 856e4e
Packit Service 856e4e
Note that current msm kernel driver is a bit strange.  It provides a
Packit Service 856e4e
DRM interface for GEM, which is basically sufficient to have DRI2
Packit Service 856e4e
working.  But it does not provide KMS.  And interface to 2d and 3d
Packit Service 856e4e
cores is via different other devices (/dev/kgsl-*).  This is not
Packit Service 856e4e
quite how I'd write a DRM driver, but at this stage it is useful for
Packit Service 856e4e
xf86-video-freedreno and fdre (and eventual gallium driver) to be
Packit Service 856e4e
able to work on existing kernel driver from QCOM, to allow to
Packit Service 856e4e
capture cmdstream dumps from the binary blob drivers without having
Packit Service 856e4e
to reboot.  So libdrm_freedreno attempts to hide most of the crazy.
Packit Service 856e4e
The intention is that when there is a proper kernel driver, it will
Packit Service 856e4e
be mostly just changes in libdrm_freedreno to adapt the gallium
Packit Service 856e4e
driver and xf86-video-freedreno (ignoring the fbdev->KMS changes).
Packit Service 856e4e
Packit Service 856e4e
So don't look at freedreno as an example of how to write a libdrm
Packit Service 856e4e
module or a DRM driver.. it is just an attempt to paper over a non-
Packit Service 856e4e
standard kernel driver architecture.