Commit d6005d3d authored by Gerd Hoffmann's avatar Gerd Hoffmann

drm/virtio: use drmm_mode_config_init

Use managed init call to simplify cleanup.
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Reviewed-by: default avatarGurchetan Singh <gurchetansingh@chromium.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20200908070723.6394-2-kraxel@redhat.com
parent 37054fc8
...@@ -325,11 +325,14 @@ static const struct drm_mode_config_funcs virtio_gpu_mode_funcs = { ...@@ -325,11 +325,14 @@ static const struct drm_mode_config_funcs virtio_gpu_mode_funcs = {
.atomic_commit = drm_atomic_helper_commit, .atomic_commit = drm_atomic_helper_commit,
}; };
void virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev) int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev)
{ {
int i; int i, ret;
ret = drmm_mode_config_init(vgdev->ddev);
if (ret)
return ret;
drm_mode_config_init(vgdev->ddev);
vgdev->ddev->mode_config.quirk_addfb_prefer_host_byte_order = true; vgdev->ddev->mode_config.quirk_addfb_prefer_host_byte_order = true;
vgdev->ddev->mode_config.funcs = &virtio_gpu_mode_funcs; vgdev->ddev->mode_config.funcs = &virtio_gpu_mode_funcs;
...@@ -343,6 +346,7 @@ void virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev) ...@@ -343,6 +346,7 @@ void virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev)
vgdev_output_init(vgdev, i); vgdev_output_init(vgdev, i);
drm_mode_config_reset(vgdev->ddev); drm_mode_config_reset(vgdev->ddev);
return 0;
} }
void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev) void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev)
...@@ -351,5 +355,4 @@ void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev) ...@@ -351,5 +355,4 @@ void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev)
for (i = 0 ; i < vgdev->num_scanouts; ++i) for (i = 0 ; i < vgdev->num_scanouts; ++i)
kfree(vgdev->outputs[i].edid); kfree(vgdev->outputs[i].edid);
drm_mode_config_cleanup(vgdev->ddev);
} }
...@@ -352,7 +352,7 @@ virtio_gpu_cmd_resource_assign_uuid(struct virtio_gpu_device *vgdev, ...@@ -352,7 +352,7 @@ virtio_gpu_cmd_resource_assign_uuid(struct virtio_gpu_device *vgdev,
struct virtio_gpu_object_array *objs); struct virtio_gpu_object_array *objs);
/* virtgpu_display.c */ /* virtgpu_display.c */
void virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev); int virtio_gpu_modeset_init(struct virtio_gpu_device *vgdev);
void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev); void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev);
/* virtgpu_plane.c */ /* virtgpu_plane.c */
......
...@@ -186,7 +186,11 @@ int virtio_gpu_init(struct drm_device *dev) ...@@ -186,7 +186,11 @@ int virtio_gpu_init(struct drm_device *dev)
num_capsets, &num_capsets); num_capsets, &num_capsets);
DRM_INFO("number of cap sets: %d\n", num_capsets); DRM_INFO("number of cap sets: %d\n", num_capsets);
virtio_gpu_modeset_init(vgdev); ret = virtio_gpu_modeset_init(vgdev);
if (ret) {
DRM_ERROR("modeset init failed\n");
goto err_scanouts;
}
virtio_device_ready(vgdev->vdev); virtio_device_ready(vgdev->vdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment