Blame freedreno/kgsl/README

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