root/drivers/gpu/drm/xe/xe_memirq.h
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2023 Intel Corporation
 */

#ifndef _XE_MEMIRQ_H_
#define _XE_MEMIRQ_H_

#include <linux/types.h>

struct xe_guc;
struct xe_hw_engine;
struct xe_memirq;

int xe_memirq_init(struct xe_memirq *memirq);

u32 xe_memirq_source_ptr(struct xe_memirq *memirq, struct xe_hw_engine *hwe);
u32 xe_memirq_status_ptr(struct xe_memirq *memirq, struct xe_hw_engine *hwe);
u32 xe_memirq_enable_ptr(struct xe_memirq *memirq);

void xe_memirq_reset(struct xe_memirq *memirq);
void xe_memirq_postinstall(struct xe_memirq *memirq);
void xe_memirq_hwe_handler(struct xe_memirq *memirq, struct xe_hw_engine *hwe);
void xe_memirq_handler(struct xe_memirq *memirq);

int xe_memirq_init_guc(struct xe_memirq *memirq, struct xe_guc *guc);

bool xe_memirq_guc_sw_int_0_irq_pending(struct xe_memirq *memirq, struct xe_guc *guc);

#endif