Hi all, Here's the promised follow-up to get rid of the drmm_add_final_kfree calls from drivers. I've also sprinkled in a bunch of cleanups for the drivers I've had to touch anyway. I think with devm_drm_dev_alloc we now have a very neat and clean way to init the drm_device, and all the interim stage with drm_dev_init and devm_drm_dev_init are unexported. For reading, documenation changes are all concentrated in the last patch, because the interim state would result in way too much shuffling and readjusting. The driver core patch is only required for vkms, vgem and i915/selftest patches, everything else only needs the patch to add devm_drm_dev_alloc. Once that's landed we can merge driver patches in any order, only the final patch needs to wait until everything has landed. As usual, review, testing and comments very much appreciated. Cheers, Daniel Daniel Vetter (44): drivers/base: Always release devres on device_del drm: Add devm_drm_dev_alloc macro drm/device: Deprecate dev_private harder drm/vgem: Use devm_drm_dev_alloc drm/vkms: Use devm_drm_dev_alloc drm/vboxvideo: drop DRM_MTRR_WC #define drm/vboxvideo: Use devm_drm_dev_alloc drm/vboxvideo: Stop using drm_device->dev_private drm/vboxvidoe: use managed pci functions drm/vboxvideo: Use devm_gen_pool_create drm/v3d: Don't set drm_device->dev_private drm/v3d: Use devm_drm_dev_alloc drm/v3d: Delete v3d_dev->dev drm/v3d: Delete v3d_dev->pdev drm/udl: Use demv_drm_dev_alloc drm/udl: don't set drm_device->dev_private drm/st7735r: Use devm_drm_dev_alloc drm/st7586: Use devm_drm_dev_alloc drm/repaper: Use devm_drm_dev_alloc drm/mi0283qt: Use devm_drm_dev_alloc drm/ili9486: Use devm_drm_dev_alloc drm/ili9341: Use devm_drm_dev_alloc drm/ili9225: Use devm_drm_dev_alloc drm/hx8357d: Use devm_drm_dev_alloc drm/gm12u320: Use devm_drm_dev_alloc drm/gm12u320: Don't use drm_device->dev_private drm/tidss: Use devm_drm_dev_alloc drm/tidss: Don't use drm_device->dev_private drm/tidss: Delete tidss->saved_state drm/qxl: Use devm_drm_dev_alloc drm/qxl: Don't use drm_device->dev_private drm/mcde: Use devm_drm_dev_alloc drm/mcde: Don't use drm_device->dev_private drm/ingenic: Use devm_drm_dev_alloc drm/ingenic: Don't set drm_device->dev_private drm/komeda: use devm_drm_dev_alloc drm/armada: Use devm_drm_dev_alloc drm/armada: Don't use drm_device->dev_private drm/cirrus: Use devm_drm_dev_alloc drm/cirrus: Don't use drm_device->dev_private drm/i915: Use devm_drm_dev_alloc drm/i915/selftest: Create mock_destroy_device drm/i915/selftests: align more to real device lifetimes drm/managed: Cleanup of unused functions and polishing docs .../driver-api/driver-model/devres.rst | 2 +- drivers/base/dd.c | 2 + .../gpu/drm/arm/display/komeda/komeda_kms.c | 16 +- drivers/gpu/drm/armada/armada_crtc.c | 4 +- drivers/gpu/drm/armada/armada_debugfs.c | 2 +- drivers/gpu/drm/armada/armada_drm.h | 2 + drivers/gpu/drm/armada/armada_drv.c | 30 +--- drivers/gpu/drm/armada/armada_fbdev.c | 4 +- drivers/gpu/drm/armada/armada_gem.c | 4 +- drivers/gpu/drm/armada/armada_overlay.c | 8 +- drivers/gpu/drm/cirrus/cirrus.c | 22 ++- drivers/gpu/drm/drm_drv.c | 142 ++++++------------ drivers/gpu/drm/drm_internal.h | 1 + drivers/gpu/drm/drm_managed.c | 15 +- .../gpu/drm/i915/gem/selftests/huge_pages.c | 2 +- .../drm/i915/gem/selftests/i915_gem_context.c | 2 +- .../drm/i915/gem/selftests/i915_gem_dmabuf.c | 2 +- .../drm/i915/gem/selftests/i915_gem_object.c | 2 +- .../drm/i915/gem/selftests/i915_gem_phys.c | 2 +- drivers/gpu/drm/i915/gt/selftest_timeline.c | 2 +- drivers/gpu/drm/i915/i915_drv.c | 17 +-- drivers/gpu/drm/i915/i915_pci.c | 2 - .../gpu/drm/i915/selftests/i915_gem_evict.c | 2 +- drivers/gpu/drm/i915/selftests/i915_gem_gtt.c | 2 +- drivers/gpu/drm/i915/selftests/i915_request.c | 2 +- drivers/gpu/drm/i915/selftests/i915_vma.c | 2 +- .../drm/i915/selftests/intel_memory_region.c | 2 +- .../gpu/drm/i915/selftests/mock_gem_device.c | 33 ++-- .../gpu/drm/i915/selftests/mock_gem_device.h | 5 + drivers/gpu/drm/ingenic/ingenic-drm.c | 15 +- drivers/gpu/drm/mcde/mcde_display.c | 10 +- drivers/gpu/drm/mcde/mcde_drm.h | 2 + drivers/gpu/drm/mcde/mcde_drv.c | 21 +-- drivers/gpu/drm/mcde/mcde_dsi.c | 2 +- drivers/gpu/drm/qxl/qxl_debugfs.c | 7 +- drivers/gpu/drm/qxl/qxl_display.c | 32 ++-- drivers/gpu/drm/qxl/qxl_drv.c | 23 +-- drivers/gpu/drm/qxl/qxl_drv.h | 7 +- drivers/gpu/drm/qxl/qxl_dumb.c | 2 +- drivers/gpu/drm/qxl/qxl_gem.c | 2 +- drivers/gpu/drm/qxl/qxl_ioctl.c | 14 +- drivers/gpu/drm/qxl/qxl_irq.c | 2 +- drivers/gpu/drm/qxl/qxl_kms.c | 13 +- drivers/gpu/drm/qxl/qxl_object.c | 2 +- drivers/gpu/drm/qxl/qxl_release.c | 2 +- drivers/gpu/drm/qxl/qxl_ttm.c | 2 +- drivers/gpu/drm/tidss/tidss_crtc.c | 16 +- drivers/gpu/drm/tidss/tidss_drv.c | 17 +-- drivers/gpu/drm/tidss/tidss_drv.h | 4 +- drivers/gpu/drm/tidss/tidss_irq.c | 12 +- drivers/gpu/drm/tidss/tidss_kms.c | 2 +- drivers/gpu/drm/tidss/tidss_plane.c | 6 +- drivers/gpu/drm/tiny/gm12u320.c | 24 ++- drivers/gpu/drm/tiny/hx8357d.c | 13 +- drivers/gpu/drm/tiny/ili9225.c | 13 +- drivers/gpu/drm/tiny/ili9341.c | 13 +- drivers/gpu/drm/tiny/ili9486.c | 13 +- drivers/gpu/drm/tiny/mi0283qt.c | 13 +- drivers/gpu/drm/tiny/repaper.c | 14 +- drivers/gpu/drm/tiny/st7586.c | 13 +- drivers/gpu/drm/tiny/st7735r.c | 13 +- drivers/gpu/drm/udl/udl_connector.c | 4 +- drivers/gpu/drm/udl/udl_drv.c | 37 ++--- drivers/gpu/drm/udl/udl_modeset.c | 6 +- drivers/gpu/drm/v3d/v3d_debugfs.c | 12 +- drivers/gpu/drm/v3d/v3d_drv.c | 47 +++--- drivers/gpu/drm/v3d/v3d_drv.h | 7 +- drivers/gpu/drm/v3d/v3d_gem.c | 17 ++- drivers/gpu/drm/v3d/v3d_irq.c | 16 +- drivers/gpu/drm/v3d/v3d_mmu.c | 10 +- drivers/gpu/drm/v3d/v3d_sched.c | 10 +- drivers/gpu/drm/vboxvideo/vbox_drv.c | 26 +--- drivers/gpu/drm/vboxvideo/vbox_drv.h | 1 + drivers/gpu/drm/vboxvideo/vbox_irq.c | 2 +- drivers/gpu/drm/vboxvideo/vbox_main.c | 29 ++-- drivers/gpu/drm/vboxvideo/vbox_mode.c | 10 +- drivers/gpu/drm/vboxvideo/vbox_ttm.c | 12 -- drivers/gpu/drm/vgem/vgem_drv.c | 51 ++----- drivers/gpu/drm/vkms/vkms_drv.c | 48 ++---- include/drm/drm_device.h | 9 +- include/drm/drm_drv.h | 51 +++++-- 81 files changed, 422 insertions(+), 660 deletions(-) -- 2.25.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel