mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
drm/cirrus: Drop explicit drm_mode_config_cleanup call
We can even delete the drm_driver.release hook now! This is made possible by a preceeding patch which added a drmm_ cleanup action to drm_mode_config_init(), hence all we need to do to ensure that drm_mode_config_cleanup() is run on final drm_device cleanup is check the new error code for _init(). v2: Explain why this cleanup is possible (Laurent). v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas) Acked-by: Gerd Hoffmann <kraxel@redhat.com> Cc: Sam Ravnborg <sam@ravnborg.org> Acked-by: Sam Ravnborg <sam@ravnborg.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: "Noralf Trønnes" <noralf@tronnes.org> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: virtualization@lists.linux-foundation.org Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-30-daniel.vetter@ffwll.ch
This commit is contained in:
parent
b771a5687d
commit
bb1e0dfaa7
1 changed files with 11 additions and 10 deletions
|
@ -510,11 +510,15 @@ static const struct drm_mode_config_funcs cirrus_mode_config_funcs = {
|
|||
.atomic_commit = drm_atomic_helper_commit,
|
||||
};
|
||||
|
||||
static void cirrus_mode_config_init(struct cirrus_device *cirrus)
|
||||
static int cirrus_mode_config_init(struct cirrus_device *cirrus)
|
||||
{
|
||||
struct drm_device *dev = &cirrus->dev;
|
||||
int ret;
|
||||
|
||||
ret = drmm_mode_config_init(dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
drm_mode_config_init(dev);
|
||||
dev->mode_config.min_width = 0;
|
||||
dev->mode_config.min_height = 0;
|
||||
dev->mode_config.max_width = CIRRUS_MAX_PITCH / 2;
|
||||
|
@ -522,15 +526,12 @@ static void cirrus_mode_config_init(struct cirrus_device *cirrus)
|
|||
dev->mode_config.preferred_depth = 16;
|
||||
dev->mode_config.prefer_shadow = 0;
|
||||
dev->mode_config.funcs = &cirrus_mode_config_funcs;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
|
||||
static void cirrus_release(struct drm_device *dev)
|
||||
{
|
||||
drm_mode_config_cleanup(dev);
|
||||
}
|
||||
|
||||
DEFINE_DRM_GEM_FOPS(cirrus_fops);
|
||||
|
||||
static struct drm_driver cirrus_driver = {
|
||||
|
@ -544,7 +545,6 @@ static struct drm_driver cirrus_driver = {
|
|||
|
||||
.fops = &cirrus_fops,
|
||||
DRM_GEM_SHMEM_DRIVER_OPS,
|
||||
.release = cirrus_release,
|
||||
};
|
||||
|
||||
static int cirrus_pci_probe(struct pci_dev *pdev,
|
||||
|
@ -591,7 +591,9 @@ static int cirrus_pci_probe(struct pci_dev *pdev,
|
|||
if (cirrus->mmio == NULL)
|
||||
goto err_unmap_vram;
|
||||
|
||||
cirrus_mode_config_init(cirrus);
|
||||
ret = cirrus_mode_config_init(cirrus);
|
||||
if (ret)
|
||||
goto err_cleanup;
|
||||
|
||||
ret = cirrus_conn_init(cirrus);
|
||||
if (ret < 0)
|
||||
|
@ -613,7 +615,6 @@ static int cirrus_pci_probe(struct pci_dev *pdev,
|
|||
return 0;
|
||||
|
||||
err_cleanup:
|
||||
drm_mode_config_cleanup(dev);
|
||||
iounmap(cirrus->mmio);
|
||||
err_unmap_vram:
|
||||
iounmap(cirrus->vram);
|
||||
|
|
Loading…
Add table
Reference in a new issue