This is the full patch set for cleaning up the TTM global-state handling and offering a nice interface for drivers. The first 3 patches have been discussed on dri-devel already. Patch [01] adds struct ttm_global, a data structure that gives drivers a handle ot the global TTM state. Patches [02] to [13] convert all TTM drivers to struct ttm_global. Patches [14] and [15] remove unused code. Patches [16] to [18] merge the functionality of struct drm_global_reference into the implementation of struct ttm_global and remove the former. I'd really like to see patches [01] to [15] being merging in one way or the other. Using struct ttm_global allows for sharing code that touches TTM internals, and it gets drivers out of the way for the cleanup of the final 3 patches. One question was if the current infrastructure around drm_global_reference isn't over-engineered and could be simplified. For now, I took the existing ref-counting as it is in drm_global.c. This can certainly be simplified if prefered. Thomas Zimmermann (18): drm/ttm: Provide struct ttm_global for referencing TTM global state drm/amdgpu: Replace TTM initialization/release with ttm_global drm/radeon: Replace TTM initialization/release with ttm_global drm/ast: Replace TTM initialization/release with ttm_global drm/bochs: Replace TTM initialization/release with ttm_global drm/cirrus: Replace TTM initialization/release with ttm_global drm/hisilicon: Replace TTM initialization/release with ttm_global drm/mgag200: Replace TTM initialization/release with ttm_global drm/nouveau: Replace TTM initialization/release with ttm_global drm/qlx: Replace TTM initialization/release with ttm_global drm/virtio: Replace TTM initialization/release with ttm_global drm/vmwgfx: Replace TTM initialization/release with ttm_global staging/vboxvideo: Replace TTM initialization/release with ttm_global drm/ttm: Remove struct ttm_bo_global_ref and helpers drm: Remove DRM_GLOBAL_TTM_OBJECT drm/ttm: Implement struct ttm_global_item and helpers drm/ttm: Implement struct ttm_global with struct ttm_global_ref drm: Remove drm_global.{c,h} drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 63 +----- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h | 4 +- drivers/gpu/drm/ast/ast_drv.h | 5 +- drivers/gpu/drm/ast/ast_ttm.c | 49 +---- drivers/gpu/drm/bochs/bochs.h | 5 +- drivers/gpu/drm/bochs/bochs_mm.c | 47 +---- drivers/gpu/drm/cirrus/cirrus_drv.h | 5 +- drivers/gpu/drm/cirrus/cirrus_ttm.c | 49 +---- drivers/gpu/drm/drm_drv.c | 2 - drivers/gpu/drm/drm_global.c | 137 ------------ drivers/gpu/drm/gma500/psb_drv.h | 4 +- .../gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h | 4 +- drivers/gpu/drm/hisilicon/hibmc/hibmc_ttm.c | 36 +--- drivers/gpu/drm/mgag200/mgag200_drv.h | 7 +- drivers/gpu/drm/mgag200/mgag200_ttm.c | 49 +---- drivers/gpu/drm/nouveau/nouveau_drv.h | 5 +- drivers/gpu/drm/nouveau/nouveau_ttm.c | 48 +---- drivers/gpu/drm/qxl/qxl_drv.h | 4 +- drivers/gpu/drm/qxl/qxl_ttm.c | 40 +--- drivers/gpu/drm/radeon/radeon.h | 4 +- drivers/gpu/drm/radeon/radeon_ttm.c | 40 +--- drivers/gpu/drm/ttm/Makefile | 2 +- drivers/gpu/drm/ttm/ttm_global.c | 198 ++++++++++++++++++ drivers/gpu/drm/virtio/virtgpu_drv.h | 4 +- drivers/gpu/drm/virtio/virtgpu_ttm.c | 40 +--- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 6 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 6 +- drivers/gpu/drm/vmwgfx/vmwgfx_ttm_glue.c | 44 +--- drivers/staging/vboxvideo/vbox_drv.h | 4 +- drivers/staging/vboxvideo/vbox_ttm.c | 42 +--- include/drm/drmP.h | 1 - include/drm/drm_global.h | 53 ----- include/drm/ttm/ttm_bo_driver.h | 40 ---- include/drm/ttm/ttm_global.h | 100 +++++++++ 35 files changed, 401 insertions(+), 748 deletions(-) delete mode 100644 drivers/gpu/drm/drm_global.c create mode 100644 drivers/gpu/drm/ttm/ttm_global.c delete mode 100644 include/drm/drm_global.h create mode 100644 include/drm/ttm/ttm_global.h -- 2.19.1 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel