/* SPDX-License-Identifier: MIT */
/*
* Copyright © 2023 Intel Corporation
*/
#ifndef __INTEL_HOTPLUG_IRQ_H__
#define __INTEL_HOTPLUG_IRQ_H__
#include <linux/types.h>
struct drm_i915_private;
struct intel_encoder;
u32 i9xx_hpd_irq_ack(struct drm_i915_private *i915);
void i9xx_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_status);
void ibx_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_trigger);
void ilk_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_trigger);
void gen11_hpd_irq_handler(struct drm_i915_private *i915, u32 iir);
void bxt_hpd_irq_handler(struct drm_i915_private *i915, u32 hotplug_trigger);
void xelpdp_pica_irq_handler(struct drm_i915_private *i915, u32 iir);
void icp_irq_handler(struct drm_i915_private *i915, u32 pch_iir);
void spt_irq_handler(struct drm_i915_private *i915, u32 pch_iir);
void i915_hotplug_interrupt_update_locked(struct drm_i915_private *i915,
u32 mask, u32 bits);
void i915_hotplug_interrupt_update(struct drm_i915_private *i915,
u32 mask, u32 bits);
void intel_hpd_enable_detection(struct intel_encoder *encoder);
void intel_hpd_irq_setup(struct drm_i915_private *i915);
void intel_hotplug_irq_init(struct drm_i915_private *i915);
#endif /* __INTEL_HOTPLUG_IRQ_H__ */