1*2ae09687SHuang, Sean Z /* SPDX-License-Identifier: MIT */
2*2ae09687SHuang, Sean Z /*
3*2ae09687SHuang, Sean Z  * Copyright(c) 2020, Intel Corporation. All rights reserved.
4*2ae09687SHuang, Sean Z  */
5*2ae09687SHuang, Sean Z 
6*2ae09687SHuang, Sean Z #ifndef __INTEL_PXP_IRQ_H__
7*2ae09687SHuang, Sean Z #define __INTEL_PXP_IRQ_H__
8*2ae09687SHuang, Sean Z 
9*2ae09687SHuang, Sean Z #include <linux/types.h>
10*2ae09687SHuang, Sean Z 
11*2ae09687SHuang, Sean Z struct intel_pxp;
12*2ae09687SHuang, Sean Z 
13*2ae09687SHuang, Sean Z #define GEN12_DISPLAY_PXP_STATE_TERMINATED_INTERRUPT BIT(1)
14*2ae09687SHuang, Sean Z #define GEN12_DISPLAY_APP_TERMINATED_PER_FW_REQ_INTERRUPT BIT(2)
15*2ae09687SHuang, Sean Z #define GEN12_DISPLAY_STATE_RESET_COMPLETE_INTERRUPT BIT(3)
16*2ae09687SHuang, Sean Z 
17*2ae09687SHuang, Sean Z #define GEN12_PXP_INTERRUPTS \
18*2ae09687SHuang, Sean Z 	(GEN12_DISPLAY_PXP_STATE_TERMINATED_INTERRUPT | \
19*2ae09687SHuang, Sean Z 	 GEN12_DISPLAY_APP_TERMINATED_PER_FW_REQ_INTERRUPT | \
20*2ae09687SHuang, Sean Z 	 GEN12_DISPLAY_STATE_RESET_COMPLETE_INTERRUPT)
21*2ae09687SHuang, Sean Z 
22*2ae09687SHuang, Sean Z #ifdef CONFIG_DRM_I915_PXP
23*2ae09687SHuang, Sean Z void intel_pxp_irq_enable(struct intel_pxp *pxp);
24*2ae09687SHuang, Sean Z void intel_pxp_irq_disable(struct intel_pxp *pxp);
25*2ae09687SHuang, Sean Z void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir);
26*2ae09687SHuang, Sean Z #else
27*2ae09687SHuang, Sean Z static inline void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir)
28*2ae09687SHuang, Sean Z {
29*2ae09687SHuang, Sean Z }
30*2ae09687SHuang, Sean Z #endif
31*2ae09687SHuang, Sean Z 
32*2ae09687SHuang, Sean Z #endif /* __INTEL_PXP_IRQ_H__ */
33