OSDN Git Service

drm/bochs: Use managed initialization for GEM VRAM helpers
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 2 Jul 2021 07:54:33 +0000 (09:54 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 5 Jul 2021 06:55:02 +0000 (08:55 +0200)
Convert to managed GEM VRAM initialization and switch bochs to
full autocleanup.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20210702075434.27677-3-tzimmermann@suse.de
drivers/gpu/drm/tiny/bochs.c

index 0700cda..a2cfecf 100644 (file)
@@ -404,25 +404,6 @@ static void bochs_hw_setbase(struct bochs_device *bochs, int x, int y, int strid
 
 /* ---------------------------------------------------------------------- */
 
-static int bochs_mm_init(struct bochs_device *bochs)
-{
-       struct drm_vram_mm *vmm;
-
-       vmm = drm_vram_helper_alloc_mm(bochs->dev, bochs->fb_base,
-                                      bochs->fb_size);
-       return PTR_ERR_OR_ZERO(vmm);
-}
-
-static void bochs_mm_fini(struct bochs_device *bochs)
-{
-       if (!bochs->dev->vram_mm)
-               return;
-
-       drm_vram_helper_release_mm(bochs->dev);
-}
-
-/* ---------------------------------------------------------------------- */
-
 static const uint32_t bochs_formats[] = {
        DRM_FORMAT_XRGB8888,
        DRM_FORMAT_BGRX8888,
@@ -581,13 +562,6 @@ static int bochs_kms_init(struct bochs_device *bochs)
 /* ---------------------------------------------------------------------- */
 /* drm interface                                                          */
 
-static void bochs_unload(struct drm_device *dev)
-{
-       struct bochs_device *bochs = dev->dev_private;
-
-       bochs_mm_fini(bochs);
-}
-
 static int bochs_load(struct drm_device *dev)
 {
        struct bochs_device *bochs;
@@ -601,21 +575,17 @@ static int bochs_load(struct drm_device *dev)
 
        ret = bochs_hw_init(dev);
        if (ret)
-               goto err;
+               return ret;
 
-       ret = bochs_mm_init(bochs);
+       ret = drmm_vram_helper_init(dev, bochs->fb_base, bochs->fb_size);
        if (ret)
-               goto err;
+               return ret;
 
        ret = bochs_kms_init(bochs);
        if (ret)
-               goto err;
+               return ret;
 
        return 0;
-
-err:
-       bochs_unload(dev);
-       return ret;
 }
 
 DEFINE_DRM_GEM_FOPS(bochs_fops);
@@ -629,7 +599,6 @@ static const struct drm_driver bochs_driver = {
        .major                  = 1,
        .minor                  = 0,
        DRM_GEM_VRAM_DRIVER,
-       .release                = bochs_unload,
 };
 
 /* ---------------------------------------------------------------------- */
@@ -691,13 +660,11 @@ static int bochs_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent
 
        ret = drm_dev_register(dev, 0);
        if (ret)
-               goto err_unload;
+               goto err_free_dev;
 
        drm_fbdev_generic_setup(dev, 32);
        return ret;
 
-err_unload:
-       bochs_unload(dev);
 err_free_dev:
        drm_dev_put(dev);
        return ret;