mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 14:19:16 +00:00
drm/bochs: Use managed initialization for GEM VRAM helpers
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
This commit is contained in:
parent
796c3e35ac
commit
11e96701d1
1 changed files with 5 additions and 38 deletions
|
@ -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[] = {
|
static const uint32_t bochs_formats[] = {
|
||||||
DRM_FORMAT_XRGB8888,
|
DRM_FORMAT_XRGB8888,
|
||||||
DRM_FORMAT_BGRX8888,
|
DRM_FORMAT_BGRX8888,
|
||||||
|
@ -581,13 +562,6 @@ static int bochs_kms_init(struct bochs_device *bochs)
|
||||||
/* ---------------------------------------------------------------------- */
|
/* ---------------------------------------------------------------------- */
|
||||||
/* drm interface */
|
/* 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)
|
static int bochs_load(struct drm_device *dev)
|
||||||
{
|
{
|
||||||
struct bochs_device *bochs;
|
struct bochs_device *bochs;
|
||||||
|
@ -601,21 +575,17 @@ static int bochs_load(struct drm_device *dev)
|
||||||
|
|
||||||
ret = bochs_hw_init(dev);
|
ret = bochs_hw_init(dev);
|
||||||
if (ret)
|
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)
|
if (ret)
|
||||||
goto err;
|
return ret;
|
||||||
|
|
||||||
ret = bochs_kms_init(bochs);
|
ret = bochs_kms_init(bochs);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
return ret;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err:
|
|
||||||
bochs_unload(dev);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_DRM_GEM_FOPS(bochs_fops);
|
DEFINE_DRM_GEM_FOPS(bochs_fops);
|
||||||
|
@ -629,7 +599,6 @@ static const struct drm_driver bochs_driver = {
|
||||||
.major = 1,
|
.major = 1,
|
||||||
.minor = 0,
|
.minor = 0,
|
||||||
DRM_GEM_VRAM_DRIVER,
|
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);
|
ret = drm_dev_register(dev, 0);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_unload;
|
goto err_free_dev;
|
||||||
|
|
||||||
drm_fbdev_generic_setup(dev, 32);
|
drm_fbdev_generic_setup(dev, 32);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
err_unload:
|
|
||||||
bochs_unload(dev);
|
|
||||||
err_free_dev:
|
err_free_dev:
|
||||||
drm_dev_put(dev);
|
drm_dev_put(dev);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in a new issue