aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu.h
diff options
context:
space:
mode:
authorChunming Zhou <david1.zhou@amd.com>2015-07-21 04:52:10 -0400
committerAlex Deucher <alexander.deucher@amd.com>2015-08-17 16:50:37 -0400
commitd5fc5e82a3127b8839c4a4457f3b950a009737a7 (patch)
tree4fa16b5508f599e63da7e41a331252fd6f623237 /drivers/gpu/drm/amd/amdgpu/amdgpu.h
parent23ca0e4e478836dcb93a54aa68cb48fbc66fb0ed (diff)
drm/amdgpu: dispatch job for vm
use kernel context to submit command for vm Signed-off-by: Chunming Zhou <david1.zhou@amd.com> Acked-by: Christian K?nig <christian.koenig@amd.com> Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 47e4809c6e71..1b8d05ff88e7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1221,6 +1221,19 @@ struct amdgpu_cs_chunk {
1221 void __user *user_ptr; 1221 void __user *user_ptr;
1222}; 1222};
1223 1223
1224union amdgpu_sched_job_param {
1225 struct {
1226 struct amdgpu_vm *vm;
1227 uint64_t start;
1228 uint64_t last;
1229 struct amdgpu_fence **fence;
1230
1231 } vm_mapping;
1232 struct {
1233 struct amdgpu_bo *bo;
1234 } vm;
1235};
1236
1224struct amdgpu_cs_parser { 1237struct amdgpu_cs_parser {
1225 struct amdgpu_device *adev; 1238 struct amdgpu_device *adev;
1226 struct drm_file *filp; 1239 struct drm_file *filp;
@@ -1245,6 +1258,7 @@ struct amdgpu_cs_parser {
1245 struct mutex job_lock; 1258 struct mutex job_lock;
1246 struct work_struct job_work; 1259 struct work_struct job_work;
1247 int (*prepare_job)(struct amdgpu_cs_parser *sched_job); 1260 int (*prepare_job)(struct amdgpu_cs_parser *sched_job);
1261 union amdgpu_sched_job_param job_param;
1248 int (*run_job)(struct amdgpu_cs_parser *sched_job); 1262 int (*run_job)(struct amdgpu_cs_parser *sched_job);
1249 int (*free_job)(struct amdgpu_cs_parser *sched_job); 1263 int (*free_job)(struct amdgpu_cs_parser *sched_job);
1250}; 1264};
@@ -2255,6 +2269,12 @@ void amdgpu_pci_config_reset(struct amdgpu_device *adev);
2255bool amdgpu_card_posted(struct amdgpu_device *adev); 2269bool amdgpu_card_posted(struct amdgpu_device *adev);
2256void amdgpu_update_display_priority(struct amdgpu_device *adev); 2270void amdgpu_update_display_priority(struct amdgpu_device *adev);
2257bool amdgpu_boot_test_post_card(struct amdgpu_device *adev); 2271bool amdgpu_boot_test_post_card(struct amdgpu_device *adev);
2272struct amdgpu_cs_parser *amdgpu_cs_parser_create(struct amdgpu_device *adev,
2273 struct drm_file *filp,
2274 struct amdgpu_ctx *ctx,
2275 struct amdgpu_ib *ibs,
2276 uint32_t num_ibs);
2277
2258int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data); 2278int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data);
2259int amdgpu_cs_get_ring(struct amdgpu_device *adev, u32 ip_type, 2279int amdgpu_cs_get_ring(struct amdgpu_device *adev, u32 ip_type,
2260 u32 ip_instance, u32 ring, 2280 u32 ip_instance, u32 ring,