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

drm/panfrost: Rename panfrost_job functions to reflect real role

panfrost_job_* prefixed functions in panfrost_job.c deal with both
panfrost_job objects and also the more general JM (Job Manager) side of
the device itself. This is confusing.

Reprefix functions that program the JM to panfrosot_jm_* instead.

Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Link: https://lore.kernel.org/r/20251019145225.3621989-12-adrian.larumbe@collabora.com
Signed-off-by: Steven Price <steven.price@arm.com>

authored by

Adrián Larumbe and committed by
Steven Price
32dd00f1 954c2621

+41 -41
+7 -7
drivers/gpu/drm/panfrost/panfrost_device.c
··· 259 259 if (err) 260 260 goto out_gpu; 261 261 262 - err = panfrost_job_init(pfdev); 262 + err = panfrost_jm_init(pfdev); 263 263 if (err) 264 264 goto out_mmu; 265 265 ··· 269 269 270 270 return 0; 271 271 out_job: 272 - panfrost_job_fini(pfdev); 272 + panfrost_jm_fini(pfdev); 273 273 out_mmu: 274 274 panfrost_mmu_fini(pfdev); 275 275 out_gpu: ··· 290 290 void panfrost_device_fini(struct panfrost_device *pfdev) 291 291 { 292 292 panfrost_perfcnt_fini(pfdev); 293 - panfrost_job_fini(pfdev); 293 + panfrost_jm_fini(pfdev); 294 294 panfrost_mmu_fini(pfdev); 295 295 panfrost_gpu_fini(pfdev); 296 296 panfrost_devfreq_fini(pfdev); ··· 407 407 panfrost_gpu_power_on(pfdev); 408 408 panfrost_mmu_reset(pfdev); 409 409 410 - panfrost_job_reset_interrupts(pfdev); 410 + panfrost_jm_reset_interrupts(pfdev); 411 411 if (enable_job_int) 412 - panfrost_job_enable_interrupts(pfdev); 412 + panfrost_jm_enable_interrupts(pfdev); 413 413 } 414 414 415 415 static int panfrost_device_runtime_resume(struct device *dev) ··· 451 451 { 452 452 struct panfrost_device *pfdev = dev_get_drvdata(dev); 453 453 454 - if (!panfrost_job_is_idle(pfdev)) 454 + if (!panfrost_jm_is_idle(pfdev)) 455 455 return -EBUSY; 456 456 457 457 panfrost_devfreq_suspend(pfdev); 458 - panfrost_job_suspend_irq(pfdev); 458 + panfrost_jm_suspend_irq(pfdev); 459 459 panfrost_mmu_suspend_irq(pfdev); 460 460 panfrost_gpu_suspend_irq(pfdev); 461 461 panfrost_gpu_power_off(pfdev);
+2 -2
drivers/gpu/drm/panfrost/panfrost_drv.c
··· 606 606 goto err_free; 607 607 } 608 608 609 - ret = panfrost_job_open(file); 609 + ret = panfrost_jm_open(file); 610 610 if (ret) 611 611 goto err_job; 612 612 ··· 625 625 struct panfrost_file_priv *panfrost_priv = file->driver_priv; 626 626 627 627 panfrost_perfcnt_close(file); 628 - panfrost_job_close(file); 628 + panfrost_jm_close(file); 629 629 630 630 panfrost_mmu_ctx_put(panfrost_priv->mmu); 631 631 kfree(panfrost_priv);
+24 -24
drivers/gpu/drm/panfrost/panfrost_job.c
··· 430 430 return fence; 431 431 } 432 432 433 - void panfrost_job_reset_interrupts(struct panfrost_device *pfdev) 433 + void panfrost_jm_reset_interrupts(struct panfrost_device *pfdev) 434 434 { 435 435 job_write(pfdev, JOB_INT_CLEAR, ALL_JS_INT_MASK); 436 436 } 437 437 438 - void panfrost_job_enable_interrupts(struct panfrost_device *pfdev) 438 + void panfrost_jm_enable_interrupts(struct panfrost_device *pfdev) 439 439 { 440 440 clear_bit(PANFROST_COMP_BIT_JOB, pfdev->is_suspended); 441 441 job_write(pfdev, JOB_INT_MASK, ALL_JS_INT_MASK); 442 442 } 443 443 444 - void panfrost_job_suspend_irq(struct panfrost_device *pfdev) 444 + void panfrost_jm_suspend_irq(struct panfrost_device *pfdev) 445 445 { 446 446 set_bit(PANFROST_COMP_BIT_JOB, pfdev->is_suspended); 447 447 ··· 503 503 } 504 504 } 505 505 506 - static void panfrost_job_handle_done(struct panfrost_device *pfdev, 507 - struct panfrost_job *job) 506 + static void panfrost_jm_handle_done(struct panfrost_device *pfdev, 507 + struct panfrost_job *job) 508 508 { 509 509 /* Set ->jc to 0 to avoid re-submitting an already finished job (can 510 510 * happen when we receive the DONE interrupt while doing a GPU reset). ··· 517 517 pm_runtime_put_autosuspend(pfdev->base.dev); 518 518 } 519 519 520 - static void panfrost_job_handle_irq(struct panfrost_device *pfdev, u32 status) 520 + static void panfrost_jm_handle_irq(struct panfrost_device *pfdev, u32 status) 521 521 { 522 522 struct panfrost_job *done[NUM_JOB_SLOTS][2] = {}; 523 523 struct panfrost_job *failed[NUM_JOB_SLOTS] = {}; ··· 592 592 } 593 593 594 594 for (i = 0; i < ARRAY_SIZE(done[0]) && done[j][i]; i++) 595 - panfrost_job_handle_done(pfdev, done[j][i]); 595 + panfrost_jm_handle_done(pfdev, done[j][i]); 596 596 } 597 597 598 598 /* And finally we requeue jobs that were waiting in the second slot ··· 610 610 struct panfrost_job *canceled = panfrost_dequeue_job(pfdev, j); 611 611 612 612 dma_fence_set_error(canceled->done_fence, -ECANCELED); 613 - panfrost_job_handle_done(pfdev, canceled); 613 + panfrost_jm_handle_done(pfdev, canceled); 614 614 } else if (!atomic_read(&pfdev->reset.pending)) { 615 615 /* Requeue the job we removed if no reset is pending */ 616 616 job_write(pfdev, JS_COMMAND_NEXT(j), JS_COMMAND_START); ··· 618 618 } 619 619 } 620 620 621 - static void panfrost_job_handle_irqs(struct panfrost_device *pfdev) 621 + static void panfrost_jm_handle_irqs(struct panfrost_device *pfdev) 622 622 { 623 623 u32 status = job_read(pfdev, JOB_INT_RAWSTAT); 624 624 ··· 626 626 pm_runtime_mark_last_busy(pfdev->base.dev); 627 627 628 628 spin_lock(&pfdev->js->job_lock); 629 - panfrost_job_handle_irq(pfdev, status); 629 + panfrost_jm_handle_irq(pfdev, status); 630 630 spin_unlock(&pfdev->js->job_lock); 631 631 status = job_read(pfdev, JOB_INT_RAWSTAT); 632 632 } ··· 707 707 dev_err(pfdev->base.dev, "Soft-stop failed\n"); 708 708 709 709 /* Handle the remaining interrupts before we reset. */ 710 - panfrost_job_handle_irqs(pfdev); 710 + panfrost_jm_handle_irqs(pfdev); 711 711 712 712 /* Remaining interrupts have been handled, but we might still have 713 713 * stuck jobs. Let's make sure the PM counters stay balanced by ··· 752 752 drm_sched_start(&pfdev->js->queue[i].sched, 0); 753 753 754 754 /* Re-enable job interrupts now that everything has been restarted. */ 755 - panfrost_job_enable_interrupts(pfdev); 755 + panfrost_jm_enable_interrupts(pfdev); 756 756 757 757 dma_fence_end_signalling(cookie); 758 758 } ··· 817 817 .free_job = panfrost_job_free 818 818 }; 819 819 820 - static irqreturn_t panfrost_job_irq_handler_thread(int irq, void *data) 820 + static irqreturn_t panfrost_jm_irq_handler_thread(int irq, void *data) 821 821 { 822 822 struct panfrost_device *pfdev = data; 823 823 824 - panfrost_job_handle_irqs(pfdev); 824 + panfrost_jm_handle_irqs(pfdev); 825 825 826 826 /* Enable interrupts only if we're not about to get suspended */ 827 827 if (!test_bit(PANFROST_COMP_BIT_JOB, pfdev->is_suspended)) ··· 830 830 return IRQ_HANDLED; 831 831 } 832 832 833 - static irqreturn_t panfrost_job_irq_handler(int irq, void *data) 833 + static irqreturn_t panfrost_jm_irq_handler(int irq, void *data) 834 834 { 835 835 struct panfrost_device *pfdev = data; 836 836 u32 status; ··· 846 846 return IRQ_WAKE_THREAD; 847 847 } 848 848 849 - int panfrost_job_init(struct panfrost_device *pfdev) 849 + int panfrost_jm_init(struct panfrost_device *pfdev) 850 850 { 851 851 struct drm_sched_init_args args = { 852 852 .ops = &panfrost_sched_ops, ··· 880 880 return js->irq; 881 881 882 882 ret = devm_request_threaded_irq(pfdev->base.dev, js->irq, 883 - panfrost_job_irq_handler, 884 - panfrost_job_irq_handler_thread, 883 + panfrost_jm_irq_handler, 884 + panfrost_jm_irq_handler_thread, 885 885 IRQF_SHARED, KBUILD_MODNAME "-job", 886 886 pfdev); 887 887 if (ret) { ··· 905 905 } 906 906 } 907 907 908 - panfrost_job_reset_interrupts(pfdev); 909 - panfrost_job_enable_interrupts(pfdev); 908 + panfrost_jm_reset_interrupts(pfdev); 909 + panfrost_jm_enable_interrupts(pfdev); 910 910 911 911 return 0; 912 912 ··· 918 918 return ret; 919 919 } 920 920 921 - void panfrost_job_fini(struct panfrost_device *pfdev) 921 + void panfrost_jm_fini(struct panfrost_device *pfdev) 922 922 { 923 923 struct panfrost_job_slot *js = pfdev->js; 924 924 int j; ··· 933 933 destroy_workqueue(pfdev->reset.wq); 934 934 } 935 935 936 - int panfrost_job_open(struct drm_file *file) 936 + int panfrost_jm_open(struct drm_file *file) 937 937 { 938 938 struct panfrost_file_priv *panfrost_priv = file->driver_priv; 939 939 int ret; ··· 955 955 return 0; 956 956 } 957 957 958 - void panfrost_job_close(struct drm_file *file) 958 + void panfrost_jm_close(struct drm_file *file) 959 959 { 960 960 struct panfrost_file_priv *panfrost_priv = file->driver_priv; 961 961 struct panfrost_jm_ctx *jm_ctx; ··· 967 967 xa_destroy(&panfrost_priv->jm_ctxs); 968 968 } 969 969 970 - int panfrost_job_is_idle(struct panfrost_device *pfdev) 970 + int panfrost_jm_is_idle(struct panfrost_device *pfdev) 971 971 { 972 972 struct panfrost_job_slot *js = pfdev->js; 973 973 int i;
+8 -8
drivers/gpu/drm/panfrost/panfrost_job.h
··· 62 62 struct panfrost_jm_ctx *panfrost_jm_ctx_get(struct panfrost_jm_ctx *jm_ctx); 63 63 struct panfrost_jm_ctx *panfrost_jm_ctx_from_handle(struct drm_file *file, u32 handle); 64 64 65 - int panfrost_job_init(struct panfrost_device *pfdev); 66 - void panfrost_job_fini(struct panfrost_device *pfdev); 67 - int panfrost_job_open(struct drm_file *file); 68 - void panfrost_job_close(struct drm_file *file); 65 + int panfrost_jm_init(struct panfrost_device *pfdev); 66 + void panfrost_jm_fini(struct panfrost_device *pfdev); 67 + int panfrost_jm_open(struct drm_file *file); 68 + void panfrost_jm_close(struct drm_file *file); 69 + void panfrost_jm_reset_interrupts(struct panfrost_device *pfdev); 70 + void panfrost_jm_enable_interrupts(struct panfrost_device *pfdev); 71 + void panfrost_jm_suspend_irq(struct panfrost_device *pfdev); 72 + int panfrost_jm_is_idle(struct panfrost_device *pfdev); 69 73 int panfrost_job_get_slot(struct panfrost_job *job); 70 74 int panfrost_job_push(struct panfrost_job *job); 71 75 void panfrost_job_put(struct panfrost_job *job); 72 - void panfrost_job_reset_interrupts(struct panfrost_device *pfdev); 73 - void panfrost_job_enable_interrupts(struct panfrost_device *pfdev); 74 - void panfrost_job_suspend_irq(struct panfrost_device *pfdev); 75 - int panfrost_job_is_idle(struct panfrost_device *pfdev); 76 76 77 77 #endif