Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b528ae71 authored by Thierry Reding's avatar Thierry Reding
Browse files

drm: Document how to register devices without struct drm_bus



With the recent addition of the drm_set_unique() function, devices can
now be registered without requiring a drm_bus. Add a brief description
to the DRM docbook to show how that can be achieved.

Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent c6a1af8a
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -141,6 +141,12 @@
      and then pass it to one of the <function>drm_*_init()</function> functions
      to register it with the DRM subsystem.
    </para>
    <para>
      Newer drivers that no longer require a <structname>drm_bus</structname>
      structure can alternatively use the low-level device initialization and
      registration functions such as <function>drm_dev_alloc()</function> and
      <function>drm_dev_register()</function> directly.
    </para>
    <para>
      The <structname>drm_driver</structname> structure contains static
      information that describes the driver and features it supports, and
@@ -290,6 +296,26 @@ char *date;</synopsis>
!Edrivers/gpu/drm/drm_pci.c
!Edrivers/gpu/drm/drm_usb.c
!Edrivers/gpu/drm/drm_platform.c
      <para>
        New drivers that no longer rely on the services provided by the
        <structname>drm_bus</structname> structure can call the low-level
        device registration functions directly. The
        <function>drm_dev_alloc()</function> function can be used to allocate
        and initialize a new <structname>drm_device</structname> 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 <structfield>dev_private</structfield>
        field. Drivers should also set the device's unique name using the
        <function>drm_dev_set_unique()</function> function. After it has been
        set up a device can be registered with the DRM subsystem by calling
        <function>drm_dev_register()</function>. This will cause the device to
        be exposed to userspace and will call the driver's
        <structfield>.load()</structfield> implementation. When a device is
        removed, the DRM device can safely be unregistered and freed by calling
        <function>drm_dev_unregister()</function> followed by a call to
        <function>drm_dev_unref()</function>.
      </para>
!Edrivers/gpu/drm/drm_stub.c
    </sect2>
    <sect2>
      <title>Driver Load</title>