1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2023 Intel Corporation
4  */
5 
6 #ifndef __INTEL_HOTPLUG_IRQ_H__
7 #define __INTEL_HOTPLUG_IRQ_H__
8 
9 #include <linux/types.h>
10 
11 struct drm_i915_private;
12 struct intel_encoder;
13 
14 u32 i9xx_hpd_irq_ack(struct drm_i915_private *i915);
15 
16 void i9xx_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_status);
17 void ibx_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_trigger);
18 void ilk_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_trigger);
19 void gen11_hpd_irq_handler(struct drm_i915_private *i915, u32 iir);
20 void bxt_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_trigger);
21 void xelpdp_pica_irq_handler(struct drm_i915_private *i915, u32 iir);
22 void icp_irq_handler(struct drm_i915_private *i915, u32 pch_iir);
23 void spt_irq_handler(struct drm_i915_private *i915, u32 pch_iir);
24 
25 void i915_hotplug_interrupt_update_locked(struct drm_i915_private *i915,
26 					  u32 mask, u32 bits);
27 void i915_hotplug_interrupt_update(struct drm_i915_private *i915,
28 				   u32 mask, u32 bits);
29 
30 void intel_hpd_enable_detection(struct intel_encoder *encoder);
31 void intel_hpd_irq_setup(struct drm_i915_private *i915);
32 
33 void intel_hotplug_irq_init(struct drm_i915_private *i915);
34 
35 #endif /* __INTEL_HOTPLUG_IRQ_H__ */
36