mirror of
https://github.com/torvalds/linux.git
synced 2026-04-21 16:23:59 -04:00
Add xe_gt_recovery_pending helper. This helper serves as the singular point to determine whether a GT recovery is currently in progress. Expected callers include the GuC CT layer and the GuC submission layer. Atomically visable as soon as vCPU are unhalted until VF recovery completes. v3: - Add GT layer xe_gt_recovery_inprogress (Michal) - Don't blow up in memirq not enabled (CI) - Add __memirq_received with clear argument (Michal) - xe_memirq_sw_int_0_irq_pending rename (Michal) - Use offset in xe_memirq_sw_int_0_irq_pending (Michal) v4: - Refactor xe_gt_recovery_inprogress logic around memirq (Michal) v5: - s/inprogress/pending (Michal) v7: - Fix typos, adjust comment (Michal) Signed-off-by: Matthew Brost <matthew.brost@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Reviewed-by: Tomasz Lis <tomasz.lis@intel.com> Link: https://lore.kernel.org/r/20251008214532.3442967-9-matthew.brost@intel.com
31 lines
863 B
C
31 lines
863 B
C
/* 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
|