gpu: host1x: Add support for syncpoint waits in CDMA pushbuffer
authorMikko Perttunen <mperttunen@nvidia.com>
Thu, 10 Jun 2021 11:04:45 +0000 (14:04 +0300)
committerThierry Reding <treding@nvidia.com>
Tue, 10 Aug 2021 12:41:19 +0000 (14:41 +0200)
commite902585fc8b639f1a1258eaa6265e98994e34ef8
tree58bb0fab112f61f6bfcc198d36a0e0cd5d98a516
parent17a298e9ac7c011e64a9c0b6f807b43f9af22eac
gpu: host1x: Add support for syncpoint waits in CDMA pushbuffer

Add support for inserting syncpoint waits in the CDMA pushbuffer.
These waits need to be done in HOST1X class, while gather submitted
by the application execute in engine class.

Support is added by converting the gather list of job into a command
list that can include both gathers and waits. When the job is
submitted, these commands are pushed as the appropriate opcodes
on the CDMA pushbuffer.

Also supported are waits relative to the start of the job,
which are useful for jobs doing multiple things with an engine
that doesn't natively support pipelining.

While at it, use 32-bit waits on chips that support them.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/host1x/hw/channel_hw.c
drivers/gpu/host1x/hw/debug_hw.c
drivers/gpu/host1x/hw/hw_host1x02_uclass.h
drivers/gpu/host1x/hw/hw_host1x04_uclass.h
drivers/gpu/host1x/hw/hw_host1x05_uclass.h
drivers/gpu/host1x/hw/hw_host1x06_uclass.h
drivers/gpu/host1x/hw/hw_host1x07_uclass.h
drivers/gpu/host1x/job.c
drivers/gpu/host1x/job.h
include/linux/host1x.h