mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
Currently, both clk_arb and channels use their own implementation of a background worker. These implementations are almost identical and can be extracted out into a single self-contained unit name nvgpu_worker. Another advantage of using a single worker unit is to avoid duplication of Unit Tests for this unit in other units. channel and clk_arb units provide their own specific implementations via an ops interface named nvgpu_worker_ops which is a part of the nvgpu_worker struct. The following high level APIs are exposed by the nvgpu_worker nvgpu_worker_should_stop nvgpu_worker_enqueue nvgpu_worker_init nvgpu_worker_deinit The nvgpu_worker_ops containg the following function pointers pre_process wakeup_early_exit wakeup_post_process wakeup_process_item wakeup_condition wakeup_timeout The specific code in channel and clk_arb is changed to use the above implementations instead of their own separate implementations. Jira NVGPU-3101 Change-Id: I14a0bba6a3d61a642b858dec70d5818d5a0472a4 Signed-off-by: Debarshi Dutta <ddutta@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2090475 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
7.0 KiB
7.0 KiB