Gerd Hoffmann (3): drm/virtio: add missing drm_atomic_helper_shutdown() call. drm/bochs: add missing drm_atomic_helper_shutdown() call. drm/cirrus: add missing drm_helper_force_disable_all() call.
drivers/gpu/drm/bochs/bochs_kms.c | 1 + drivers/gpu/drm/cirrus/cirrus_mode.c | 1 + drivers/gpu/drm/virtio/virtgpu_display.c | 1 + 3 files changed, 3 insertions(+)
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- drivers/gpu/drm/virtio/virtgpu_display.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c index 653ec7d0bf4d..86843a4d6102 100644 --- a/drivers/gpu/drm/virtio/virtgpu_display.c +++ b/drivers/gpu/drm/virtio/virtgpu_display.c @@ -385,5 +385,6 @@ void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev)
for (i = 0 ; i < vgdev->num_scanouts; ++i) kfree(vgdev->outputs[i].edid); + drm_atomic_helper_shutdown(vgdev->ddev); drm_mode_config_cleanup(vgdev->ddev); }
Please atleast mention here why it is required?
-Mukesh
On 4/1/2019 7:33 PM, Gerd Hoffmann wrote:
Signed-off-by: Gerd Hoffmann kraxel@redhat.com
drivers/gpu/drm/virtio/virtgpu_display.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/virtio/virtgpu_display.c index 653ec7d0bf4d..86843a4d6102 100644 --- a/drivers/gpu/drm/virtio/virtgpu_display.c +++ b/drivers/gpu/drm/virtio/virtgpu_display.c @@ -385,5 +385,6 @@ void virtio_gpu_modeset_fini(struct virtio_gpu_device *vgdev)
for (i = 0 ; i < vgdev->num_scanouts; ++i) kfree(vgdev->outputs[i].edid);
- drm_atomic_helper_shutdown(vgdev->ddev); drm_mode_config_cleanup(vgdev->ddev); }
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- drivers/gpu/drm/bochs/bochs_kms.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/bochs/bochs_kms.c b/drivers/gpu/drm/bochs/bochs_kms.c index 9e7cd6b34106..93cb27f93d39 100644 --- a/drivers/gpu/drm/bochs/bochs_kms.c +++ b/drivers/gpu/drm/bochs/bochs_kms.c @@ -293,6 +293,7 @@ int bochs_kms_init(struct bochs_device *bochs) void bochs_kms_fini(struct bochs_device *bochs) { if (bochs->mode_config_initialized) { + drm_atomic_helper_shutdown(bochs->dev); drm_mode_config_cleanup(bochs->dev); bochs->mode_config_initialized = false; }
On Mon, Apr 01, 2019 at 04:03:05PM +0200, Gerd Hoffmann wrote:
Signed-off-by: Gerd Hoffmann kraxel@redhat.com
drivers/gpu/drm/bochs/bochs_kms.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/bochs/bochs_kms.c b/drivers/gpu/drm/bochs/bochs_kms.c index 9e7cd6b34106..93cb27f93d39 100644 --- a/drivers/gpu/drm/bochs/bochs_kms.c +++ b/drivers/gpu/drm/bochs/bochs_kms.c @@ -293,6 +293,7 @@ int bochs_kms_init(struct bochs_device *bochs) void bochs_kms_fini(struct bochs_device *bochs) { if (bochs->mode_config_initialized) {
This mode_config_initialized is hilarious. I think (from looking at git history and all) this started in radeon, back when kms was an add-on, and radeon.ko still supported ums. Then it was dutifully copypasted into cirrus, bochs, mgag200, hisilicon and also amdgpu.
Afaict none of these drivers need this (but I didn't bother to review amdgpu and radeon fully). Would be nice little cleanup to follow up with.
Anyway, on your 3 patches here:
Reviewed-by: Daniel Vetter daniel.vetter@ffwll.ch
drm_mode_config_cleanup(bochs->dev); bochs->mode_config_initialized = false; }drm_atomic_helper_shutdown(bochs->dev);
-- 2.18.1
Signed-off-by: Gerd Hoffmann kraxel@redhat.com --- drivers/gpu/drm/cirrus/cirrus_mode.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/cirrus/cirrus_mode.c b/drivers/gpu/drm/cirrus/cirrus_mode.c index 7f9bc32af685..32ce2c1040b4 100644 --- a/drivers/gpu/drm/cirrus/cirrus_mode.c +++ b/drivers/gpu/drm/cirrus/cirrus_mode.c @@ -615,6 +615,7 @@ void cirrus_modeset_fini(struct cirrus_device *cdev) cirrus_fbdev_fini(cdev);
if (cdev->mode_info.mode_config_initialized) { + drm_helper_force_disable_all(cdev->dev); drm_mode_config_cleanup(cdev->dev); cdev->mode_info.mode_config_initialized = false; }
dri-devel@lists.freedesktop.org