From: Gerd Hoffmann <kraxel@redhat.com> To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, thomas@shipmail.org, tzimmermann@suse.de, ckoenig.leichtzumerken@gmail.com, bskeggs@redhat.com, daniel@ffwll.ch, Gerd Hoffmann <kraxel@redhat.com>, Christian Koenig <christian.koenig@amd.com>, Huang Rui <ray.huang@amd.com>, David Airlie <airlied@linux.ie>, linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 01/18] drm/ttm: add gem base object Date: Mon, 5 Aug 2019 14:42:53 +0200 [thread overview] Message-ID: <20190805124310.3275-2-kraxel@redhat.com> (raw) In-Reply-To: <20190805124310.3275-1-kraxel@redhat.com> Add drm_gem_object struct to ttm_buffer_object, so ttm objects are a gdm object superclass. Add a function to check whenever a given bo actually uses the embedded drm_gem_object. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Christian König <christian.koenig@amd.com> --- include/drm/ttm/ttm_bo_api.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h index 49d9cdfc58f2..082550cac92c 100644 --- a/include/drm/ttm/ttm_bo_api.h +++ b/include/drm/ttm/ttm_bo_api.h @@ -31,6 +31,7 @@ #ifndef _TTM_BO_API_H_ #define _TTM_BO_API_H_ +#include <drm/drm_gem.h> #include <drm/drm_hashtab.h> #include <drm/drm_vma_manager.h> #include <linux/kref.h> @@ -127,6 +128,7 @@ struct ttm_tt; /** * struct ttm_buffer_object * + * @base: drm_gem_object superclass data. * @bdev: Pointer to the buffer object device structure. * @type: The bo type. * @destroy: Destruction function. If NULL, kfree is used. @@ -169,6 +171,8 @@ struct ttm_tt; */ struct ttm_buffer_object { + struct drm_gem_object base; + /** * Members constant at init. */ @@ -768,4 +772,23 @@ int ttm_bo_swapout(struct ttm_bo_global *glob, struct ttm_operation_ctx *ctx); void ttm_bo_swapout_all(struct ttm_bo_device *bdev); int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo); + +/** + * ttm_bo_uses_embedded_gem_object - check if the given bo uses the + * embedded drm_gem_object. + * + * Most ttm drivers are using gem too, so the embedded + * ttm_buffer_object.base will be initialized by the driver (before + * calling ttm_bo_init). It is also possible to use ttm without gem + * though (vmwgfx does that). + * + * This helper will figure whenever a given ttm bo is a gem object too + * or not. + * + * @bo: The bo to check. + */ +static inline bool ttm_bo_uses_embedded_gem_object(struct ttm_buffer_object *bo) +{ + return bo->base.dev != NULL; +} #endif -- 2.18.1
WARNING: multiple messages have this Message-ID (diff)
From: Gerd Hoffmann <kraxel@redhat.com> To: dri-devel@lists.freedesktop.org Cc: thomas@shipmail.org, tzimmermann@suse.de, David Airlie <airlied@linux.ie>, ckoenig.leichtzumerken@gmail.com, intel-gfx@lists.freedesktop.org, open list <linux-kernel@vger.kernel.org>, Huang Rui <ray.huang@amd.com>, bskeggs@redhat.com, Christian Koenig <christian.koenig@amd.com>, Gerd Hoffmann <kraxel@redhat.com> Subject: [PATCH v5 01/18] drm/ttm: add gem base object Date: Mon, 5 Aug 2019 14:42:53 +0200 [thread overview] Message-ID: <20190805124310.3275-2-kraxel@redhat.com> (raw) In-Reply-To: <20190805124310.3275-1-kraxel@redhat.com> Add drm_gem_object struct to ttm_buffer_object, so ttm objects are a gdm object superclass. Add a function to check whenever a given bo actually uses the embedded drm_gem_object. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Christian König <christian.koenig@amd.com> --- include/drm/ttm/ttm_bo_api.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h index 49d9cdfc58f2..082550cac92c 100644 --- a/include/drm/ttm/ttm_bo_api.h +++ b/include/drm/ttm/ttm_bo_api.h @@ -31,6 +31,7 @@ #ifndef _TTM_BO_API_H_ #define _TTM_BO_API_H_ +#include <drm/drm_gem.h> #include <drm/drm_hashtab.h> #include <drm/drm_vma_manager.h> #include <linux/kref.h> @@ -127,6 +128,7 @@ struct ttm_tt; /** * struct ttm_buffer_object * + * @base: drm_gem_object superclass data. * @bdev: Pointer to the buffer object device structure. * @type: The bo type. * @destroy: Destruction function. If NULL, kfree is used. @@ -169,6 +171,8 @@ struct ttm_tt; */ struct ttm_buffer_object { + struct drm_gem_object base; + /** * Members constant at init. */ @@ -768,4 +772,23 @@ int ttm_bo_swapout(struct ttm_bo_global *glob, struct ttm_operation_ctx *ctx); void ttm_bo_swapout_all(struct ttm_bo_device *bdev); int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo); + +/** + * ttm_bo_uses_embedded_gem_object - check if the given bo uses the + * embedded drm_gem_object. + * + * Most ttm drivers are using gem too, so the embedded + * ttm_buffer_object.base will be initialized by the driver (before + * calling ttm_bo_init). It is also possible to use ttm without gem + * though (vmwgfx does that). + * + * This helper will figure whenever a given ttm bo is a gem object too + * or not. + * + * @bo: The bo to check. + */ +static inline bool ttm_bo_uses_embedded_gem_object(struct ttm_buffer_object *bo) +{ + return bo->base.dev != NULL; +} #endif -- 2.18.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-08-05 12:44 UTC|newest] Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-08-05 12:42 [PATCH v5 00/18] drm/ttm: make ttm bo a gem bo subclass Gerd Hoffmann 2019-08-05 12:42 ` Gerd Hoffmann [this message] 2019-08-05 12:42 ` [PATCH v5 01/18] drm/ttm: add gem base object Gerd Hoffmann 2019-08-05 12:42 ` [PATCH v5 02/18] drm/vram: use embedded gem object Gerd Hoffmann 2019-08-05 12:42 ` Gerd Hoffmann 2019-08-05 12:42 ` [PATCH v5 03/18] drm/qxl: " Gerd Hoffmann 2019-08-05 12:42 ` Gerd Hoffmann 2019-08-05 12:42 ` [PATCH v5 04/18] drm/radeon: " Gerd Hoffmann 2019-08-05 12:42 ` Gerd Hoffmann 2019-08-05 12:42 ` [PATCH v5 05/18] drm/amdgpu: " Gerd Hoffmann 2019-08-05 12:42 ` Gerd Hoffmann 2019-08-05 12:42 ` [PATCH v5 06/18] drm/nouveau: " Gerd Hoffmann 2019-08-05 12:42 ` Gerd Hoffmann 2019-08-05 12:42 ` [PATCH v5 07/18] drm/ttm: use gem reservation object Gerd Hoffmann 2019-08-05 12:42 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 08/18] drm/ttm: use gem vma_node Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 09/18] drm/ttm: set both resv and base.resv pointers Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 10/18] drm/ttm: switch ttm core from bo->resv to bo->base.resv Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 11/18] [fixup] ttm Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:45 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 12/18] drm/radeon: switch driver from bo->resv to bo->base.resv Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 13/18] drm/vmwgfx: " Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 14/18] drm/amdgpu: " Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 15/18] drm/nouveau: " Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 16/18] drm/qxl: " Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 17/18] drm/virtio: " Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:43 ` [PATCH v5 18/18] drm/ttm: drop ttm_buffer_object->resv Gerd Hoffmann 2019-08-05 12:43 ` Gerd Hoffmann 2019-08-05 12:49 ` ✗ Fi.CI.BAT: failure for drm/ttm: make ttm bo a gem bo subclass Patchwork
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190805124310.3275-2-kraxel@redhat.com \ --to=kraxel@redhat.com \ --cc=airlied@linux.ie \ --cc=bskeggs@redhat.com \ --cc=christian.koenig@amd.com \ --cc=ckoenig.leichtzumerken@gmail.com \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=intel-gfx@lists.freedesktop.org \ --cc=linux-kernel@vger.kernel.org \ --cc=ray.huang@amd.com \ --cc=thomas@shipmail.org \ --cc=tzimmermann@suse.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.