mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
Collect CLOCK_MONOTONIC timestamps in the interrupt handler when a syncpoint wait completes, and report it back in dma_fences and syncpoint wait UAPI. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Change-Id: I9f783833698df7d96c99c9ffef3205aa82adceb5 Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2801167 Reviewed-by: Jonathan Hunter <jonathanh@nvidia.com> Reviewed-by: svc_kernel_abi <svc_kernel_abi@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
35 lines
895 B
C
35 lines
895 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Tegra host1x Interrupt Management
|
|
*
|
|
* Copyright (c) 2010-2021, NVIDIA Corporation.
|
|
*/
|
|
|
|
#ifndef __HOST1X_INTR_H
|
|
#define __HOST1X_INTR_H
|
|
|
|
#include <linux/timekeeping.h>
|
|
|
|
struct host1x;
|
|
struct host1x_syncpt_fence;
|
|
|
|
/* Initialize host1x sync point interrupt */
|
|
int host1x_intr_init(struct host1x *host);
|
|
|
|
/* Deinitialize host1x sync point interrupt */
|
|
void host1x_intr_deinit(struct host1x *host);
|
|
|
|
/* Enable host1x sync point interrupt */
|
|
void host1x_intr_start(struct host1x *host);
|
|
|
|
/* Disable host1x sync point interrupt */
|
|
void host1x_intr_stop(struct host1x *host);
|
|
|
|
void host1x_intr_handle_interrupt(struct host1x *host, unsigned int id, ktime_t ts);
|
|
|
|
void host1x_intr_add_fence_locked(struct host1x *host, struct host1x_syncpt_fence *fence);
|
|
|
|
bool host1x_intr_remove_fence(struct host1x *host, struct host1x_syncpt_fence *fence);
|
|
|
|
#endif
|