xref: /linux/drivers/gpu/host1x/intr.h (revision de848da12f752170c2ebe114804a985314fd5a6a)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Tegra host1x Interrupt Management
4  *
5  * Copyright (c) 2010-2021, NVIDIA Corporation.
6  */
7 
8 #ifndef __HOST1X_INTR_H
9 #define __HOST1X_INTR_H
10 
11 struct host1x;
12 struct host1x_syncpt_fence;
13 
14 struct host1x_intr_irq_data {
15 	struct host1x *host;
16 	u32 offset;
17 };
18 
19 /* Initialize host1x sync point interrupt */
20 int host1x_intr_init(struct host1x *host);
21 
22 /* Deinitialize host1x sync point interrupt */
23 void host1x_intr_deinit(struct host1x *host);
24 
25 /* Enable host1x sync point interrupt */
26 void host1x_intr_start(struct host1x *host);
27 
28 /* Disable host1x sync point interrupt */
29 void host1x_intr_stop(struct host1x *host);
30 
31 void host1x_intr_handle_interrupt(struct host1x *host, unsigned int id);
32 
33 void host1x_intr_add_fence_locked(struct host1x *host, struct host1x_syncpt_fence *fence);
34 
35 bool host1x_intr_remove_fence(struct host1x *host, struct host1x_syncpt_fence *fence);
36 
37 #endif
38