Am Sonntag, 1. November 2026, 09:22:57 Mitteleuropäische Normalzeit schrieb 
Jiaxing Hu:
> Move the part of rocket_job_handle_irq() that starts the next task or
> retires the job into rocket_job_next_locked(). No functional change.
> 
> Signed-off-by: Jiaxing Hu <[email protected]>
> Reviewed-by: Igor Paunovic <[email protected]>

this makes the irq-handler more descriptive in what it does

Reviewed-by: Heiko Stuebner <[email protected]>

> ---
>  drivers/accel/rocket/rocket_job.c | 31 ++++++++++++++++++++-----------
>  1 file changed, 20 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/accel/rocket/rocket_job.c 
> b/drivers/accel/rocket/rocket_job.c
> index 152a9098634b..417d5ef06c09 100644
> --- a/drivers/accel/rocket/rocket_job.c
> +++ b/drivers/accel/rocket/rocket_job.c
> @@ -365,6 +365,25 @@ static struct dma_fence *rocket_job_run(struct 
> drm_sched_job *sched_job)
>       return ERR_PTR(ret);
>  }
>  
> +/* Start the job's next task, or retire it. Caller holds job_lock. */
> +static void rocket_job_next_locked(struct rocket_core *core)
> +{
> +     lockdep_assert_held(&core->job_lock);
> +
> +     if (!core->in_flight_job)
> +             return;
> +
> +     if (core->in_flight_job->next_task_idx < 
> core->in_flight_job->task_count) {
> +             rocket_job_hw_submit(core, core->in_flight_job);
> +             return;
> +     }
> +
> +     iommu_detach_group(NULL, iommu_group_get(core->dev));
> +     dma_fence_signal(core->in_flight_job->done_fence);
> +     pm_runtime_put_autosuspend(core->dev);
> +     core->in_flight_job = NULL;
> +}
> +
>  static void rocket_job_handle_irq(struct rocket_core *core)
>  {
>       pm_runtime_mark_last_busy(core->dev);
> @@ -378,17 +397,7 @@ static void rocket_job_handle_irq(struct rocket_core 
> *core)
>               rocket_pc_writel(core, OPERATION_ENABLE, 0x0);
>               rocket_pc_writel(core, INTERRUPT_CLEAR, 0x1ffff);
>  
> -             if (core->in_flight_job) {
> -                     if (core->in_flight_job->next_task_idx < 
> core->in_flight_job->task_count) {
> -                             rocket_job_hw_submit(core, core->in_flight_job);
> -                             return;
> -                     }
> -
> -                     iommu_detach_group(NULL, iommu_group_get(core->dev));
> -                     dma_fence_signal(core->in_flight_job->done_fence);
> -                     pm_runtime_put_autosuspend(core->dev);
> -                     core->in_flight_job = NULL;
> -             }
> +             rocket_job_next_locked(core);
>       }
>  }
>  
> 




Reply via email to