162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Tegra host1x Interrupt Management
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2010-2021, NVIDIA Corporation.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef __HOST1X_INTR_H
962306a36Sopenharmony_ci#define __HOST1X_INTR_H
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cistruct host1x;
1262306a36Sopenharmony_cistruct host1x_syncpt_fence;
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci/* Initialize host1x sync point interrupt */
1562306a36Sopenharmony_ciint host1x_intr_init(struct host1x *host);
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci/* Deinitialize host1x sync point interrupt */
1862306a36Sopenharmony_civoid host1x_intr_deinit(struct host1x *host);
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci/* Enable host1x sync point interrupt */
2162306a36Sopenharmony_civoid host1x_intr_start(struct host1x *host);
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci/* Disable host1x sync point interrupt */
2462306a36Sopenharmony_civoid host1x_intr_stop(struct host1x *host);
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_civoid host1x_intr_handle_interrupt(struct host1x *host, unsigned int id);
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_civoid host1x_intr_add_fence_locked(struct host1x *host, struct host1x_syncpt_fence *fence);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_cibool host1x_intr_remove_fence(struct host1x *host, struct host1x_syncpt_fence *fence);
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#endif
33