mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 20:53:07 -04:00
drm/vkms: Switch to managed for crtc
The current VKMS driver uses managed function to create crtc, but don't use it to properly clean the crtc workqueue. It is not an issue yet, but in order to support multiple devices easily, convert this code to use drm and device managed helpers. Acked-by: Maxime Ripard <mripard@kernel.org> Reviewed-by: José Expósito <jose.exposito89@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250116-google-vkms-managed-v9-4-3e4ae1bd05a0@bootlin.com Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <drm/drm_atomic.h>
|
||||
#include <drm/drm_atomic_helper.h>
|
||||
#include <drm/drm_managed.h>
|
||||
#include <drm/drm_probe_helper.h>
|
||||
#include <drm/drm_vblank.h>
|
||||
|
||||
@@ -296,7 +297,9 @@ int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
|
||||
spin_lock_init(&vkms_out->lock);
|
||||
spin_lock_init(&vkms_out->composer_lock);
|
||||
|
||||
vkms_out->composer_workq = alloc_ordered_workqueue("vkms_composer", 0);
|
||||
vkms_out->composer_workq = drmm_alloc_ordered_workqueue(dev, "vkms_composer", 0);
|
||||
if (IS_ERR(vkms_out->composer_workq))
|
||||
return PTR_ERR(vkms_out->composer_workq);
|
||||
if (!vkms_out->composer_workq)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
@@ -53,14 +53,6 @@ MODULE_PARM_DESC(enable_overlay, "Enable/Disable overlay support");
|
||||
|
||||
DEFINE_DRM_GEM_FOPS(vkms_driver_fops);
|
||||
|
||||
static void vkms_release(struct drm_device *dev)
|
||||
{
|
||||
struct vkms_device *vkms = drm_device_to_vkms_device(dev);
|
||||
|
||||
if (vkms->output.composer_workq)
|
||||
destroy_workqueue(vkms->output.composer_workq);
|
||||
}
|
||||
|
||||
static void vkms_atomic_commit_tail(struct drm_atomic_state *old_state)
|
||||
{
|
||||
struct drm_device *dev = old_state->dev;
|
||||
@@ -108,7 +100,6 @@ static const struct drm_debugfs_info vkms_config_debugfs_list[] = {
|
||||
|
||||
static const struct drm_driver vkms_driver = {
|
||||
.driver_features = DRIVER_MODESET | DRIVER_ATOMIC | DRIVER_GEM,
|
||||
.release = vkms_release,
|
||||
.fops = &vkms_driver_fops,
|
||||
DRM_GEM_SHMEM_DRIVER_OPS,
|
||||
DRM_FBDEV_SHMEM_DRIVER_OPS,
|
||||
|
||||
Reference in New Issue
Block a user