diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index ba09b6f1e5b3..d95027f6e977 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -141,6 +141,12 @@
and then pass it to one of the drm_*_init() functions
to register it with the DRM subsystem.
+
+ Newer drivers that no longer require a drm_bus
+ structure can alternatively use the low-level device initialization and
+ registration functions such as drm_dev_alloc() and
+ drm_dev_register() directly.
+
The drm_driver structure contains static
information that describes the driver and features it supports, and
@@ -290,6 +296,26 @@ char *date;
!Edrivers/gpu/drm/drm_pci.c
!Edrivers/gpu/drm/drm_usb.c
!Edrivers/gpu/drm/drm_platform.c
+
+ New drivers that no longer rely on the services provided by the
+ drm_bus structure can call the low-level
+ device registration functions directly. The
+ drm_dev_alloc() function can be used to allocate
+ and initialize a new drm_device structure.
+ Drivers will typically want to perform some additional setup on this
+ structure, such as allocating driver-specific data and storing a
+ pointer to it in the DRM device's dev_private
+ field. Drivers should also set the device's unique name using the
+ drm_dev_set_unique() function. After it has been
+ set up a device can be registered with the DRM subsystem by calling
+ drm_dev_register(). This will cause the device to
+ be exposed to userspace and will call the driver's
+ .load() implementation. When a device is
+ removed, the DRM device can safely be unregistered and freed by calling
+ drm_dev_unregister() followed by a call to
+ drm_dev_unref().
+
+!Edrivers/gpu/drm/drm_stub.c
Driver Load