diff options
author | Mikko Perttunen <mperttunen@nvidia.com> | 2021-06-10 14:04:45 +0300 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2021-08-10 14:41:19 +0200 |
commit | e902585fc8b639f1a1258eaa6265e98994e34ef8 (patch) | |
tree | 58bb0fab112f61f6bfcc198d36a0e0cd5d98a516 /drivers/gpu/host1x/hw/hw_host1x05_uclass.h | |
parent | 17a298e9ac7c011e64a9c0b6f807b43f9af22eac (diff) | |
download | linux-e902585fc8b639f1a1258eaa6265e98994e34ef8.tar.gz linux-e902585fc8b639f1a1258eaa6265e98994e34ef8.tar.bz2 linux-e902585fc8b639f1a1258eaa6265e98994e34ef8.zip |
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>
Diffstat (limited to 'drivers/gpu/host1x/hw/hw_host1x05_uclass.h')
-rw-r--r-- | drivers/gpu/host1x/hw/hw_host1x05_uclass.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/host1x/hw/hw_host1x05_uclass.h b/drivers/gpu/host1x/hw/hw_host1x05_uclass.h index aee5a4e32877..2fcc9a2ad3ef 100644 --- a/drivers/gpu/host1x/hw/hw_host1x05_uclass.h +++ b/drivers/gpu/host1x/hw/hw_host1x05_uclass.h @@ -165,5 +165,17 @@ static inline u32 host1x_uclass_indoff_rwn_read_v(void) } #define HOST1X_UCLASS_INDOFF_INDROFFSET_F(v) \ host1x_uclass_indoff_indroffset_f(v) +static inline u32 host1x_uclass_load_syncpt_payload_32_r(void) +{ + return 0x4e; +} +#define HOST1X_UCLASS_LOAD_SYNCPT_PAYLOAD_32 \ + host1x_uclass_load_syncpt_payload_32_r() +static inline u32 host1x_uclass_wait_syncpt_32_r(void) +{ + return 0x50; +} +#define HOST1X_UCLASS_WAIT_SYNCPT_32 \ + host1x_uclass_wait_syncpt_32_r() #endif |