gpu: host1x-fence: fence support for multi-instance host1x

Update host1x-fence driver for handling fences for
multi-instance host1x

Bug 4793553
Jira HOSTX-5413

Signed-off-by: Santosh BS <santoshb@nvidia.com>
Change-Id: Ice32d6f7ffe5bced50e2d50abe71530a5c75928f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3198410
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
This commit is contained in:
Santosh BS
2024-08-22 09:45:13 +00:00
committed by Jon Hunter
parent edf6adc357
commit 98a6db4289
3 changed files with 77 additions and 17 deletions

View File

@@ -219,10 +219,13 @@ static inline void host1x_bo_munmap(struct host1x_bo *bo, void *addr)
#define HOST1X_SYNCPT_GPU (1 << 2)
#define HOST1X_GLOBAL_TO_LOCAL_SYNCPOINT(global_syncpoint_id) \
(global_syncpoint_id & 0xFFFFFF)
(global_syncpoint_id & 0xFFFFFF)
#define HOST1X_INSTANCE_NUM_FROM_GLOBAL_SYNCPOINT(global_syncpoint_id) \
((global_syncpoint_id & 0xFF000000) >> 24)
#define HOST1X_LOCAL_TO_GLOBAL_SYNCPOINT(local_syncpoint_id, instance) \
((instance << 24) | (local_syncpoint_id))
((instance << 24) | (local_syncpoint_id))
struct host1x_syncpt_base;
struct host1x_syncpt;
@@ -257,6 +260,7 @@ void host1x_syncpt_release_vblank_reservation(struct host1x_client *client,
struct dma_fence *host1x_fence_create(struct host1x_syncpt *sp, u32 threshold,
bool timeout);
int host1x_fence_extract(struct dma_fence *fence, u32 *id, u32 *threshold);
int host1x_fence_get_node(struct dma_fence *fence);
void host1x_fence_cancel(struct dma_fence *fence);
/*