linux/drivers/gpu/drm/i915/display/intel_hotplug_irq.c

// SPDX-License-Identifier: MIT
/*
 * Copyright © 2023 Intel Corporation
 */

#include "i915_drv.h"
#include "i915_reg.h"
#include "intel_de.h"
#include "intel_display_irq.h"
#include "intel_display_types.h"
#include "intel_dp_aux.h"
#include "intel_gmbus.h"
#include "intel_hotplug.h"
#include "intel_hotplug_irq.h"

long_pulse_detect_func;
hotplug_enables_func;
hotplug_mask_func;

static const u32 hpd_ilk[HPD_NUM_PINS] =;

static const u32 hpd_ivb[HPD_NUM_PINS] =;

static const u32 hpd_bdw[HPD_NUM_PINS] =;

static const u32 hpd_ibx[HPD_NUM_PINS] =;

static const u32 hpd_cpt[HPD_NUM_PINS] =;

static const u32 hpd_spt[HPD_NUM_PINS] =;

static const u32 hpd_mask_i915[HPD_NUM_PINS] =;

static const u32 hpd_status_g4x[HPD_NUM_PINS] =;

static const u32 hpd_status_i915[HPD_NUM_PINS] =;

static const u32 hpd_bxt[HPD_NUM_PINS] =;

static const u32 hpd_gen11[HPD_NUM_PINS] =;

static const u32 hpd_xelpdp[HPD_NUM_PINS] =;

static const u32 hpd_icp[HPD_NUM_PINS] =;

static const u32 hpd_sde_dg1[HPD_NUM_PINS] =;

static const u32 hpd_mtp[HPD_NUM_PINS] =;

static void intel_hpd_init_pins(struct drm_i915_private *dev_priv)
{}

/* For display hotplug interrupt */
void i915_hotplug_interrupt_update_locked(struct drm_i915_private *dev_priv,
					  u32 mask, u32 bits)
{}

/**
 * i915_hotplug_interrupt_update - update hotplug interrupt enable
 * @dev_priv: driver private
 * @mask: bits to update
 * @bits: bits to enable
 * NOTE: the HPD enable bits are modified both inside and outside
 * of an interrupt context. To avoid that read-modify-write cycles
 * interfer, these bits are protected by a spinlock. Since this
 * function is usually not called from a context where the lock is
 * held already, this function acquires the lock itself. A non-locking
 * version is also available.
 */
void i915_hotplug_interrupt_update(struct drm_i915_private *dev_priv,
				   u32 mask,
				   u32 bits)
{}

static bool gen11_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

static bool bxt_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

static bool icp_ddi_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

static bool icp_tc_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

static bool spt_port_hotplug2_long_detect(enum hpd_pin pin, u32 val)
{}

static bool spt_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

static bool ilk_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

static bool pch_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

static bool i9xx_port_hotplug_long_detect(enum hpd_pin pin, u32 val)
{}

/*
 * Get a bit mask of pins that have triggered, and which ones may be long.
 * This can be called multiple times with the same masks to accumulate
 * hotplug detection results from several registers.
 *
 * Note that the caller is expected to zero out the masks initially.
 */
static void intel_get_hpd_pins(struct drm_i915_private *dev_priv,
			       u32 *pin_mask, u32 *long_mask,
			       u32 hotplug_trigger, u32 dig_hotplug_reg,
			       const u32 hpd[HPD_NUM_PINS],
			       bool long_pulse_detect(enum hpd_pin pin, u32 val))
{}

static u32 intel_hpd_enabled_irqs(struct drm_i915_private *dev_priv,
				  const u32 hpd[HPD_NUM_PINS])
{}

static u32 intel_hpd_hotplug_irqs(struct drm_i915_private *dev_priv,
				  const u32 hpd[HPD_NUM_PINS])
{}

static u32 intel_hpd_hotplug_mask(struct drm_i915_private *i915,
				  hotplug_mask_func hotplug_mask)
{}

static u32 intel_hpd_hotplug_enables(struct drm_i915_private *i915,
				     hotplug_enables_func hotplug_enables)
{}

u32 i9xx_hpd_irq_ack(struct drm_i915_private *dev_priv)
{}

void i9xx_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 hotplug_status)
{}

void ibx_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 hotplug_trigger)
{}

void xelpdp_pica_irq_handler(struct drm_i915_private *i915, u32 iir)
{}

void icp_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
{}

void spt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
{}

void ilk_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 hotplug_trigger)
{}

void bxt_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 hotplug_trigger)
{}

void gen11_hpd_irq_handler(struct drm_i915_private *dev_priv, u32 iir)
{}

static u32 ibx_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 ibx_hotplug_enables(struct intel_encoder *encoder)
{}

static void ibx_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void ibx_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void ibx_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

static u32 icp_ddi_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 icp_ddi_hotplug_enables(struct intel_encoder *encoder)
{}

static u32 icp_tc_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 icp_tc_hotplug_enables(struct intel_encoder *encoder)
{}

static void icp_ddi_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void icp_ddi_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void icp_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void icp_tc_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void icp_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void icp_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

static u32 gen11_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 gen11_hotplug_enables(struct intel_encoder *encoder)
{}

static void dg1_hpd_invert(struct drm_i915_private *i915)
{}

static void dg1_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void dg1_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

static void gen11_tc_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void gen11_tc_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void gen11_tbt_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void gen11_tbt_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void gen11_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void gen11_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

static u32 mtp_ddi_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 mtp_ddi_hotplug_enables(struct intel_encoder *encoder)
{}

static u32 mtp_tc_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 mtp_tc_hotplug_enables(struct intel_encoder *encoder)
{}

static void mtp_ddi_hpd_detection_setup(struct drm_i915_private *i915)
{}

static void mtp_ddi_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void mtp_tc_hpd_detection_setup(struct drm_i915_private *i915)
{}

static void mtp_tc_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void mtp_hpd_invert(struct drm_i915_private *i915)
{}

static void mtp_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void mtp_hpd_irq_setup(struct drm_i915_private *i915)
{}

static void xe2lpd_sde_hpd_irq_setup(struct drm_i915_private *i915)
{}

static bool is_xelpdp_pica_hpd_pin(enum hpd_pin hpd_pin)
{}

static void _xelpdp_pica_hpd_detection_setup(struct drm_i915_private *i915,
					     enum hpd_pin hpd_pin, bool enable)
{}

static void xelpdp_pica_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void xelpdp_pica_hpd_detection_setup(struct drm_i915_private *i915)
{}

static void xelpdp_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void xelpdp_hpd_irq_setup(struct drm_i915_private *i915)
{}

static u32 spt_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 spt_hotplug_enables(struct intel_encoder *encoder)
{}

static u32 spt_hotplug2_mask(enum hpd_pin hpd_pin)
{}

static u32 spt_hotplug2_enables(struct intel_encoder *encoder)
{}

static void spt_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void spt_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void spt_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

static u32 ilk_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 ilk_hotplug_enables(struct intel_encoder *encoder)
{}

static void ilk_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void ilk_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void ilk_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

static u32 bxt_hotplug_mask(enum hpd_pin hpd_pin)
{}

static u32 bxt_hotplug_enables(struct intel_encoder *encoder)
{}

static void bxt_hpd_detection_setup(struct drm_i915_private *dev_priv)
{}

static void bxt_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void bxt_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

static void g45_hpd_peg_band_gap_wa(struct drm_i915_private *i915)
{}

static void i915_hpd_enable_detection(struct intel_encoder *encoder)
{}

static void i915_hpd_irq_setup(struct drm_i915_private *dev_priv)
{}

struct intel_hotplug_funcs {};

#define HPD_FUNCS

HPD_FUNCS;
HPD_FUNCS;
HPD_FUNCS;
HPD_FUNCS;
HPD_FUNCS;
HPD_FUNCS;
HPD_FUNCS;
HPD_FUNCS;
#undef HPD_FUNCS

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)
{}