@@ -48,17 +48,17 @@ vmw_user_context_base_to_res(struct ttm_base_object *base);
static int vmw_gb_context_create(struct vmw_resource *res);
static int vmw_gb_context_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_gb_context_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_gb_context_destroy(struct vmw_resource *res);
static int vmw_dx_context_create(struct vmw_resource *res);
static int vmw_dx_context_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_dx_context_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_dx_context_destroy(struct vmw_resource *res);
static const struct vmw_user_resource_conv user_context_conv = {
@@ -339,7 +339,7 @@ static int vmw_gb_context_create(struct vmw_resource *res)
}
static int vmw_gb_context_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct {
@@ -367,7 +367,7 @@ static int vmw_gb_context_bind(struct vmw_resource *res,
static int vmw_gb_context_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct ttm_buffer_object *bo = val_buf->bo;
@@ -506,7 +506,7 @@ static int vmw_dx_context_create(struct vmw_resource *res)
}
static int vmw_dx_context_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct {
@@ -576,7 +576,7 @@ void vmw_dx_context_scrub_cotables(struct vmw_resource *ctx,
static int vmw_dx_context_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct ttm_buffer_object *bo = val_buf->bo;
@@ -122,10 +122,10 @@ const SVGACOTableType vmw_cotable_scrub_order[] = {
};
static int vmw_cotable_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_cotable_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_cotable_create(struct vmw_resource *res);
static int vmw_cotable_destroy(struct vmw_resource *res);
@@ -214,14 +214,14 @@ static int vmw_cotable_unscrub(struct vmw_resource *res)
* vmw_cotable_bind - Undo a cotable unscrub operation
*
* @res: Pointer to the cotable resource
- * @val_buf: Pointer to a struct ttm_validate_buffer prepared by the caller
+ * @val_buf: Pointer to a struct vmw_validate_buffer prepared by the caller
* for convenience / fencing.
*
* This function issues commands to (re)bind the cotable to
* its backing mob, which needs to be validated and reserved at this point.
*/
static int vmw_cotable_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
/*
* The create() callback may have changed @res->backup without
@@ -313,14 +313,14 @@ int vmw_cotable_scrub(struct vmw_resource *res, bool readback)
*
* @res: Pointer to the cotable resource.
* @readback: Whether to read back cotable data to the backup buffer.
- * @val_buf: Pointer to a struct ttm_validate_buffer prepared by the caller
+ * @val_buf: Pointer to a struct vmw_validate_buffer prepared by the caller
* for convenience / fencing.
*
* Unbinds the cotable from the device and fences the backup buffer.
*/
static int vmw_cotable_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_cotable *vcotbl = vmw_cotable(res);
struct vmw_private *dev_priv = res->dev_priv;
@@ -38,7 +38,6 @@
#include <drm/drm_file.h>
#include <drm/drm_rect.h>
-#include <drm/ttm/ttm_execbuf_util.h>
#include <drm/ttm/ttm_tt.h>
#include <drm/ttm/ttm_placement.h>
#include <drm/ttm/ttm_bo.h>
@@ -130,10 +130,9 @@ static void vmw_resource_release(struct kref *kref)
BUG_ON(ret);
if (vmw_resource_mob_attached(res) &&
res->func->unbind != NULL) {
- struct ttm_validate_buffer val_buf;
+ struct vmw_validate_buffer val_buf;
val_buf.bo = bo;
- val_buf.num_shared = 0;
res->func->unbind(res, false, &val_buf);
}
res->guest_memory_size = false;
@@ -370,7 +369,7 @@ static int vmw_resource_buf_alloc(struct vmw_resource *res,
* should be retried once resources have been freed up.
*/
static int vmw_resource_do_validate(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf,
+ struct vmw_validate_buffer *val_buf,
bool dirtying)
{
int ret = 0;
@@ -614,14 +613,13 @@ int vmw_resource_reserve(struct vmw_resource *res, bool interruptible,
static int vmw_resource_do_evict(struct ww_acquire_ctx *ticket,
struct vmw_resource *res, bool interruptible)
{
- struct ttm_validate_buffer val_buf;
+ struct vmw_validate_buffer val_buf;
const struct vmw_res_func *func = res->func;
int ret;
BUG_ON(!func->may_evict);
val_buf.bo = NULL;
- val_buf.num_shared = 0;
ret = vmw_resource_check_buffer(ticket, res, interruptible, &val_buf.bo);
if (unlikely(ret != 0))
return ret;
@@ -668,14 +666,13 @@ int vmw_resource_validate(struct vmw_resource *res, bool intr,
struct vmw_resource *evict_res;
struct vmw_private *dev_priv = res->dev_priv;
struct list_head *lru_list = &dev_priv->res_lru[res->func->res_type];
- struct ttm_validate_buffer val_buf;
+ struct vmw_validate_buffer val_buf;
unsigned err_count = 0;
if (!res->func->create)
return 0;
val_buf.bo = NULL;
- val_buf.num_shared = 0;
if (res->guest_memory_bo)
val_buf.bo = &res->guest_memory_bo->tbo;
do {
@@ -742,9 +739,8 @@ int vmw_resource_validate(struct vmw_resource *res, bool intr,
*/
void vmw_resource_unbind_list(struct vmw_bo *vbo)
{
- struct ttm_validate_buffer val_buf = {
+ struct vmw_validate_buffer val_buf = {
.bo = &vbo->tbo,
- .num_shared = 0
};
dma_resv_assert_held(vbo->tbo.base.resv);
@@ -93,10 +93,10 @@ struct vmw_res_func {
int (*create) (struct vmw_resource *res);
int (*destroy) (struct vmw_resource *res);
int (*bind) (struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
int (*unbind) (struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
void (*commit_notify)(struct vmw_resource *res,
enum vmw_cmdbuf_res_state state);
int (*dirty_alloc)(struct vmw_resource *res);
@@ -60,18 +60,18 @@ vmw_user_shader_base_to_res(struct ttm_base_object *base);
static int vmw_gb_shader_create(struct vmw_resource *res);
static int vmw_gb_shader_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_gb_shader_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_gb_shader_destroy(struct vmw_resource *res);
static int vmw_dx_shader_create(struct vmw_resource *res);
static int vmw_dx_shader_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_dx_shader_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static void vmw_dx_shader_commit_notify(struct vmw_resource *res,
enum vmw_cmdbuf_res_state state);
static bool vmw_shader_id_ok(u32 user_key, SVGA3dShaderType shader_type);
@@ -243,7 +243,7 @@ static int vmw_gb_shader_create(struct vmw_resource *res)
}
static int vmw_gb_shader_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct {
@@ -271,7 +271,7 @@ static int vmw_gb_shader_bind(struct vmw_resource *res,
static int vmw_gb_shader_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct {
@@ -443,7 +443,7 @@ static int vmw_dx_shader_create(struct vmw_resource *res)
*
*/
static int vmw_dx_shader_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct ttm_buffer_object *bo = val_buf->bo;
@@ -505,7 +505,7 @@ static int vmw_dx_shader_scrub(struct vmw_resource *res)
*/
static int vmw_dx_shader_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct vmw_fence_obj *fence;
@@ -55,9 +55,9 @@ struct vmw_dx_streamoutput {
static int vmw_dx_streamoutput_create(struct vmw_resource *res);
static int vmw_dx_streamoutput_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_dx_streamoutput_unbind(struct vmw_resource *res, bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static void vmw_dx_streamoutput_commit_notify(struct vmw_resource *res,
enum vmw_cmdbuf_res_state state);
@@ -136,7 +136,7 @@ static int vmw_dx_streamoutput_create(struct vmw_resource *res)
}
static int vmw_dx_streamoutput_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct ttm_buffer_object *bo = val_buf->bo;
@@ -191,7 +191,7 @@ static int vmw_dx_streamoutput_scrub(struct vmw_resource *res)
}
static int vmw_dx_streamoutput_unbind(struct vmw_resource *res, bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct vmw_fence_obj *fence;
@@ -81,18 +81,18 @@ static void vmw_user_surface_free(struct vmw_resource *res);
static struct vmw_resource *
vmw_user_surface_base_to_res(struct ttm_base_object *base);
static int vmw_legacy_srf_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_legacy_srf_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_legacy_srf_create(struct vmw_resource *res);
static int vmw_legacy_srf_destroy(struct vmw_resource *res);
static int vmw_gb_surface_create(struct vmw_resource *res);
static int vmw_gb_surface_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_gb_surface_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf);
+ struct vmw_validate_buffer *val_buf);
static int vmw_gb_surface_destroy(struct vmw_resource *res);
static int
vmw_gb_surface_define_internal(struct drm_device *dev,
@@ -461,7 +461,7 @@ static int vmw_legacy_srf_create(struct vmw_resource *res)
*
* @res: Pointer to a struct vmw_res embedded in a struct
* vmw_surface.
- * @val_buf: Pointer to a struct ttm_validate_buffer containing
+ * @val_buf: Pointer to a struct vmw_validate_buffer containing
* information about the backup buffer.
* @bind: Boolean wether to DMA to the surface.
*
@@ -473,7 +473,7 @@ static int vmw_legacy_srf_create(struct vmw_resource *res)
* will also be returned reserved iff @bind is true.
*/
static int vmw_legacy_srf_dma(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf,
+ struct vmw_validate_buffer *val_buf,
bool bind)
{
SVGAGuestPtr ptr;
@@ -515,14 +515,14 @@ static int vmw_legacy_srf_dma(struct vmw_resource *res,
*
* @res: Pointer to a struct vmw_res embedded in a struct
* vmw_surface.
- * @val_buf: Pointer to a struct ttm_validate_buffer containing
+ * @val_buf: Pointer to a struct vmw_validate_buffer containing
* information about the backup buffer.
*
* This function will copy backup data to the surface if the
* backup buffer is dirty.
*/
static int vmw_legacy_srf_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
if (!res->guest_memory_dirty)
return 0;
@@ -538,14 +538,14 @@ static int vmw_legacy_srf_bind(struct vmw_resource *res,
* @res: Pointer to a struct vmw_res embedded in a struct
* vmw_surface.
* @readback: Readback - only true if dirty
- * @val_buf: Pointer to a struct ttm_validate_buffer containing
+ * @val_buf: Pointer to a struct vmw_validate_buffer containing
* information about the backup buffer.
*
* This function will copy backup data from the surface.
*/
static int vmw_legacy_srf_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
if (unlikely(readback))
return vmw_legacy_srf_dma(res, val_buf, false);
@@ -1285,7 +1285,7 @@ static int vmw_gb_surface_create(struct vmw_resource *res)
static int vmw_gb_surface_bind(struct vmw_resource *res,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct {
@@ -1331,7 +1331,7 @@ static int vmw_gb_surface_bind(struct vmw_resource *res,
static int vmw_gb_surface_unbind(struct vmw_resource *res,
bool readback,
- struct ttm_validate_buffer *val_buf)
+ struct vmw_validate_buffer *val_buf)
{
struct vmw_private *dev_priv = res->dev_priv;
struct ttm_buffer_object *bo = val_buf->bo;
@@ -43,7 +43,7 @@
* large numbers and space conservation is desired.
*/
struct vmw_validation_bo_node {
- struct ttm_validate_buffer base;
+ struct vmw_validate_buffer base;
struct vmwgfx_hash_item hash;
unsigned int coherent_count;
};
@@ -250,7 +250,7 @@ int vmw_validation_add_bo(struct vmw_validation_context *ctx,
bo_node = vmw_validation_find_bo_dup(ctx, vbo);
if (!bo_node) {
- struct ttm_validate_buffer *val_buf;
+ struct vmw_validate_buffer *val_buf;
bo_node = vmw_validation_mem_alloc(ctx, sizeof(*bo_node));
if (!bo_node)
@@ -265,7 +265,6 @@ int vmw_validation_add_bo(struct vmw_validation_context *ctx,
val_buf->bo = ttm_bo_get_unless_zero(&vbo->tbo);
if (!val_buf->bo)
return -ESRCH;
- val_buf->num_shared = 0;
list_add_tail(&val_buf->head, &ctx->bo_list);
}
@@ -65,6 +65,16 @@ struct vmw_validation_context {
u8 *page_address;
};
+/**
+ * struct vmw_validate_buffer - Linked list of TTM BOs for validation
+ * @head: linked list node
+ * @bo: The TTM BO
+ */
+struct vmw_validate_buffer {
+ struct list_head head;
+ struct ttm_buffer_object *bo;
+};
+
struct vmw_bo;
struct vmw_resource;
struct vmw_fence_obj;
Finish remove the ttm_eu depoendency. No functional difference. Signed-off-by: Christian König <christian.koenig@amd.com> --- drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 16 ++++++------- drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c | 12 +++++----- drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1 - drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 14 ++++------- drivers/gpu/drm/vmwgfx/vmwgfx_resource_priv.h | 4 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 16 ++++++------- drivers/gpu/drm/vmwgfx/vmwgfx_streamoutput.c | 8 +++---- drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 24 +++++++++---------- drivers/gpu/drm/vmwgfx/vmwgfx_validation.c | 5 ++-- drivers/gpu/drm/vmwgfx/vmwgfx_validation.h | 10 ++++++++ 10 files changed, 57 insertions(+), 53 deletions(-)