drm/panfrost: Queue jobs on the hardware
authorSteven Price <steven.price@arm.com>
Wed, 30 Jun 2021 06:27:50 +0000 (08:27 +0200)
committerBoris Brezillon <boris.brezillon@collabora.com>
Thu, 1 Jul 2021 06:53:37 +0000 (08:53 +0200)
commit030761e097b421d74f7aa3b71ca11ba55686ae67
tree3ae16a343e1e970872e738b4177b2ad23d953529
parent30b5d4ed5b2eeea51e634b41663f854dd2fc12c2
drm/panfrost: Queue jobs on the hardware

The hardware has a set of '_NEXT' registers that can hold a second job
while the first is executing. Make use of these registers to enqueue a
second job per slot.

v5:
* Fix a comment in panfrost_job_init()

v3:
* Fix the done/err job dequeuing logic to get a valid active state
* Only enable the second slot on GPUs supporting jobchain disambiguation
* Split interrupt handling in sub-functions

Signed-off-by: Steven Price <steven.price@arm.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210630062751.2832545-16-boris.brezillon@collabora.com
drivers/gpu/drm/panfrost/panfrost_device.h
drivers/gpu/drm/panfrost/panfrost_job.c