summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2017-03-29 11:25:24 -0400
committerHarry Wentland <harry.wentland@amd.com>2017-03-29 11:25:24 -0400
commit31d7349932b37c4c48fbe809a65239a768a4f78f (patch)
tree84da0c85ca054656db3b21ec2dea083909576309
parentf7a40bec3c40cbcc2b9c0cae635a5aacc0929d6d (diff)
drm/amd/display: Add validate_context to atomic_statedc-drm-next-atomic-dev
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.c5
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.h2
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c10
3 files changed, 9 insertions, 8 deletions
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.c
index c61510b7b5c1..478252dd52eb 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.c
@@ -69,6 +69,11 @@ void amdgpu_dm_atomic_destroy_state(void *obj_state)
for (i = 0; i < dm_state->set_count; i++)
dc_stream_release(dm_state->set[i].stream);
+ if (dm_state->context) {
+ dc_resource_validate_ctx_destruct(dm_state->context);
+ dm_free(dm_state->context);
+ }
+
kfree(obj_state);
}
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.h b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.h
index 748fe22177c7..c6b86ac7a702 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.h
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_atomic.h
@@ -29,6 +29,7 @@
#include "dc.h"
struct amdgpu_device;
+struct validate_context;
struct amdgpu_dm_atomic_state {
struct drm_atomic_state *state;
@@ -36,6 +37,7 @@ struct amdgpu_dm_atomic_state {
struct dc_validation_set set[MAX_STREAMS];
int set_count;
+ struct validate_context *context;
};
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
index b0e04d952cb9..13e6de2cfd32 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_types.c
@@ -2905,7 +2905,6 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
struct amdgpu_device *adev = dev->dev_private;
struct dc *dc = adev->dm.dc;
bool need_to_validate = false;
- struct validate_context *context;
ret = drm_atomic_helper_check(dev, state);
@@ -3134,16 +3133,11 @@ int amdgpu_dm_atomic_check(struct drm_device *dev,
}
}
- context = dc_validate_resources(dc, dm_state->set, dm_state->set_count);
+ dm_state->context = dc_validate_resources(dc, dm_state->set, dm_state->set_count);
- if (need_to_validate == false || dm_state->set_count == 0 || context)
+ if (need_to_validate == false || dm_state->set_count == 0 || dm_state->context)
ret = 0;
- if (context) {
- dc_resource_validate_ctx_destruct(context);
- dm_free(context);
- }
-
if (ret != 0)
DRM_ERROR("Atomic check failed.\n");