Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

drm/sched: Group exported prototypes by object type

Do a bit of house keeping in gpu_scheduler.h by grouping the API by type
of object it operates on.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@igalia.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Danilo Krummrich <dakr@kernel.org>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Philipp Stanner <phasta@kernel.org>
Signed-off-by: Philipp Stanner <phasta@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20250221105038.79665-7-tvrtko.ursulin@igalia.com

authored by

Tvrtko Ursulin and committed by
Philipp Stanner
27d48151 71a18f72

+33 -27
+33 -27
include/drm/gpu_scheduler.h
··· 383 383 struct xarray dependencies; 384 384 }; 385 385 386 - static inline bool drm_sched_invalidate_job(struct drm_sched_job *s_job, 387 - int threshold) 388 - { 389 - return s_job && atomic_inc_return(&s_job->karma) > threshold; 390 - } 391 - 392 386 enum drm_gpu_sched_stat { 393 387 DRM_GPU_SCHED_STAT_NONE, /* Reserve 0 */ 394 388 DRM_GPU_SCHED_STAT_NOMINAL, ··· 560 566 struct device *dev; 561 567 }; 562 568 569 + /* Scheduler operations */ 570 + 563 571 int drm_sched_init(struct drm_gpu_scheduler *sched, 564 572 const struct drm_sched_init_args *args); 565 573 566 574 void drm_sched_fini(struct drm_gpu_scheduler *sched); 575 + 576 + unsigned long drm_sched_suspend_timeout(struct drm_gpu_scheduler *sched); 577 + void drm_sched_resume_timeout(struct drm_gpu_scheduler *sched, 578 + unsigned long remaining); 579 + void drm_sched_tdr_queue_imm(struct drm_gpu_scheduler *sched); 580 + bool drm_sched_wqueue_ready(struct drm_gpu_scheduler *sched); 581 + void drm_sched_wqueue_stop(struct drm_gpu_scheduler *sched); 582 + void drm_sched_wqueue_start(struct drm_gpu_scheduler *sched); 583 + void drm_sched_stop(struct drm_gpu_scheduler *sched, struct drm_sched_job *bad); 584 + void drm_sched_start(struct drm_gpu_scheduler *sched, int errno); 585 + void drm_sched_resubmit_jobs(struct drm_gpu_scheduler *sched); 586 + void drm_sched_fault(struct drm_gpu_scheduler *sched); 587 + 588 + struct drm_gpu_scheduler * 589 + drm_sched_pick_best(struct drm_gpu_scheduler **sched_list, 590 + unsigned int num_sched_list); 591 + 592 + /* Jobs */ 593 + 567 594 int drm_sched_job_init(struct drm_sched_job *job, 568 595 struct drm_sched_entity *entity, 569 596 u32 credits, void *owner); 570 597 void drm_sched_job_arm(struct drm_sched_job *job); 598 + void drm_sched_entity_push_job(struct drm_sched_job *sched_job); 571 599 int drm_sched_job_add_dependency(struct drm_sched_job *job, 572 600 struct dma_fence *fence); 573 601 int drm_sched_job_add_syncobj_dependency(struct drm_sched_job *job, ··· 604 588 bool write); 605 589 bool drm_sched_job_has_dependency(struct drm_sched_job *job, 606 590 struct dma_fence *fence); 607 - 608 - void drm_sched_entity_modify_sched(struct drm_sched_entity *entity, 609 - struct drm_gpu_scheduler **sched_list, 610 - unsigned int num_sched_list); 611 - 612 - void drm_sched_tdr_queue_imm(struct drm_gpu_scheduler *sched); 613 591 void drm_sched_job_cleanup(struct drm_sched_job *job); 614 - bool drm_sched_wqueue_ready(struct drm_gpu_scheduler *sched); 615 - void drm_sched_wqueue_stop(struct drm_gpu_scheduler *sched); 616 - void drm_sched_wqueue_start(struct drm_gpu_scheduler *sched); 617 - void drm_sched_stop(struct drm_gpu_scheduler *sched, struct drm_sched_job *bad); 618 - void drm_sched_start(struct drm_gpu_scheduler *sched, int errno); 619 - void drm_sched_resubmit_jobs(struct drm_gpu_scheduler *sched); 620 592 void drm_sched_increase_karma(struct drm_sched_job *bad); 621 - void drm_sched_fault(struct drm_gpu_scheduler *sched); 593 + 594 + static inline bool drm_sched_invalidate_job(struct drm_sched_job *s_job, 595 + int threshold) 596 + { 597 + return s_job && atomic_inc_return(&s_job->karma) > threshold; 598 + } 599 + 600 + /* Entities */ 622 601 623 602 int drm_sched_entity_init(struct drm_sched_entity *entity, 624 603 enum drm_sched_priority priority, ··· 623 612 long drm_sched_entity_flush(struct drm_sched_entity *entity, long timeout); 624 613 void drm_sched_entity_fini(struct drm_sched_entity *entity); 625 614 void drm_sched_entity_destroy(struct drm_sched_entity *entity); 626 - void drm_sched_entity_push_job(struct drm_sched_job *sched_job); 627 615 void drm_sched_entity_set_priority(struct drm_sched_entity *entity, 628 616 enum drm_sched_priority priority); 629 617 int drm_sched_entity_error(struct drm_sched_entity *entity); 630 - 631 - unsigned long drm_sched_suspend_timeout(struct drm_gpu_scheduler *sched); 632 - void drm_sched_resume_timeout(struct drm_gpu_scheduler *sched, 633 - unsigned long remaining); 634 - struct drm_gpu_scheduler * 635 - drm_sched_pick_best(struct drm_gpu_scheduler **sched_list, 636 - unsigned int num_sched_list); 618 + void drm_sched_entity_modify_sched(struct drm_sched_entity *entity, 619 + struct drm_gpu_scheduler **sched_list, 620 + unsigned int num_sched_list); 637 621 638 622 #endif