Lines Matching full:drm
44 #include <drm/drm_accel.h>
45 #include <drm/drm_bridge.h>
46 #include <drm/drm_cache.h>
47 #include <drm/drm_client_event.h>
48 #include <drm/drm_color_mgmt.h>
49 #include <drm/drm_drv.h>
50 #include <drm/drm_file.h>
51 #include <drm/drm_managed.h>
52 #include <drm/drm_mode_object.h>
53 #include <drm/drm_panic.h>
54 #include <drm/drm_print.h>
55 #include <drm/drm_privacy_screen_machine.h>
56 #include <drm/drm_ras_genl_family.h>
62 MODULE_DESCRIPTION("DRM shared core routines");
68 * If the drm core fails to init for whatever reason,
79 * DRM Minors
80 * A DRM device can provide several char-dev interfaces on the DRM-Major. Each
86 * valid. This means, DRM minors have the same life-time as the underlying
130 * DRM used to support 64 devices, for backwards compatibility we need to maintain the
190 DRM_ERROR("DRM: Failed to initialize /sys/kernel/debug/dri.\n"); in drm_minor_register()
232 * Looks up the given minor-ID and returns the respective DRM-minor object. The
268 * A device instance for a drm driver is represented by &struct drm_device. This
271 * needs to initialize all the various subsystems for the drm device like memory
301 * The following example shows a typical structure of a DRM display driver.
308 * struct drm_device drm;
320 * struct drm_device *drm;
324 * struct driver_device, drm);
327 * drm = &priv->drm;
329 * ret = drmm_mode_config_init(drm);
343 * platform_set_drvdata(pdev, drm);
345 * drm_mode_config_reset(drm);
347 * ret = drm_dev_register(drm);
351 * drm_fbdev_{...}_setup(drm, 32);
359 * struct drm_device *drm = platform_get_drvdata(pdev);
361 * drm_dev_unregister(drm);
362 * drm_atomic_helper_shutdown(drm)
411 * drm_put_dev - Unregister and release a DRM device
412 * @dev: DRM device
416 * Cleans up all DRM device, calling drm_lastclose().
440 * @dev: DRM device
477 * drm_dev_unplug - unplug a DRM device
478 * @dev: DRM device
480 * This unplugs a hotpluggable DRM device, which makes it inaccessible to
505 * drm_dev_set_dma_dev - set the DMA device for a DRM device
506 * @dev: DRM device
509 * Sets the DMA device of the given DRM device. Only required if
510 * the DMA device is different from the DRM device's parent. After
511 * calling this function, the DRM device holds a reference on
549 * @dev: DRM device
553 * This generates a device wedged uevent for the DRM device specified by @dev.
559 * Refer to "Device Wedging" chapter in Documentation/gpu/drm-uapi.rst for more
604 * DRM internal mount
630 .name = "drm",
665 * DRM drivers that drive hardware where a logical device consists of a pile of
711 DRM_ERROR("DRM core is not initialized\n"); in drm_dev_init()
731 DRM_ERROR("DRM driver can't be both a compute acceleration and graphics driver\n"); in drm_dev_init()
825 struct drm_device *drm; in __devm_drm_dev_alloc() local
832 drm = container + offset; in __devm_drm_dev_alloc()
833 ret = devm_drm_dev_init(parent, drm, driver); in __devm_drm_dev_alloc()
838 drmm_add_final_kfree(drm, container); in __devm_drm_dev_alloc()
847 * @driver: DRM driver
859 * Returns: A pointer to new DRM device, or an ERR_PTR on failure.
866 struct drm_device *drm; in __drm_dev_alloc() local
873 drm = container + offset; in __drm_dev_alloc()
874 ret = drm_dev_init(drm, driver, parent); in __drm_dev_alloc()
879 drmm_add_final_kfree(drm, container); in __drm_dev_alloc()
886 * drm_dev_alloc - Allocate new DRM device
887 * @driver: DRM driver to allocate device for
895 * Pointer to new DRM device, or ERR_PTR on failure.
920 * drm_dev_get - Take reference of a DRM device
939 * drm_dev_put - Drop reference of a DRM device
958 * drmm_cgroup_register_region - Register a region of a DRM device to cgroups
971 region = dmem_cgroup_register_region(size, "drm/%s/%s", dev->unique, region_name); in drmm_cgroup_register_region()
1040 * drm_dev_register - Register DRM device
1044 * Register the DRM device @dev with the system, advertise device to user-space
1133 * drm_dev_unregister - Unregister DRM device
1136 * Unregister the DRM device from the system. This does the reverse of
1172 * DRM Core
1173 * The DRM core module initializes all global DRM objects and makes them
1177 * - The "DRM-Global" key/value database
1179 * - DRM major number allocation
1180 * - DRM minor management
1181 * - DRM sysfs class
1182 * - DRM debugfs root
1184 * Furthermore, the DRM core provides dynamic char-dev lookups. For each
1185 * interface registered on a DRM device, you can request minor numbers from DRM
1186 * core. DRM core takes care of major-number management and char-dev
1233 unregister_chrdev(DRM_MAJOR, "drm"); in drm_core_exit()
1249 DRM_ERROR("Cannot create DRM class: %d\n", ret); in drm_core_init()
1256 ret = register_chrdev(DRM_MAJOR, "drm", &drm_stub_fops); in drm_core_init()