drm/i915/irq: split out hotplug irq handling
Split hotplug irq handling out of i915_irq.[ch] into display/intel_hotplug_irq.[ch]. The line between the new intel_hotplug_irq.[ch] and the existing intel_hotplug.[ch] needs further clarification, but the first step is to move the stuff out of i915_irq.[ch]. Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230515101738.2399816-2-jani.nikula@intel.com
This commit is contained in:
@@ -260,6 +260,7 @@ i915-y += \
|
||||
display/intel_hdcp.o \
|
||||
display/intel_hdcp_gsc.o \
|
||||
display/intel_hotplug.o \
|
||||
display/intel_hotplug_irq.o \
|
||||
display/intel_hti.o \
|
||||
display/intel_load_detect.o \
|
||||
display/intel_lpe_audio.o \
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "intel_fifo_underrun.h"
|
||||
#include "intel_gmbus.h"
|
||||
#include "intel_hotplug.h"
|
||||
#include "intel_hotplug_irq.h"
|
||||
#include "intel_load_detect.h"
|
||||
#include "intel_pch_display.h"
|
||||
#include "intel_pch_refclk.h"
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
#include "intel_hdcp.h"
|
||||
#include "intel_hdmi.h"
|
||||
#include "intel_hotplug.h"
|
||||
#include "intel_hotplug_irq.h"
|
||||
#include "intel_lspcon.h"
|
||||
#include "intel_lvds.h"
|
||||
#include "intel_panel.h"
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "i915_irq.h"
|
||||
#include "intel_display_types.h"
|
||||
#include "intel_hotplug.h"
|
||||
#include "intel_hotplug_irq.h"
|
||||
|
||||
/**
|
||||
* DOC: Hotplug
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,35 @@
|
||||
/* 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__ */
|
||||
+9
-1437
File diff suppressed because it is too large
Load Diff
@@ -38,18 +38,18 @@ i915_disable_pipestat(struct drm_i915_private *dev_priv, enum pipe pipe,
|
||||
void valleyview_enable_display_irqs(struct drm_i915_private *dev_priv);
|
||||
void valleyview_disable_display_irqs(struct drm_i915_private *dev_priv);
|
||||
|
||||
void intel_hpd_enable_detection(struct intel_encoder *encoder);
|
||||
void intel_hpd_irq_setup(struct drm_i915_private *i915);
|
||||
void i915_hotplug_interrupt_update(struct drm_i915_private *dev_priv,
|
||||
u32 mask,
|
||||
u32 bits);
|
||||
|
||||
void ilk_update_display_irq(struct drm_i915_private *i915,
|
||||
u32 interrupt_mask, u32 enabled_irq_mask);
|
||||
void ilk_enable_display_irq(struct drm_i915_private *i915, u32 bits);
|
||||
void ilk_disable_display_irq(struct drm_i915_private *i915, u32 bits);
|
||||
|
||||
void bdw_update_port_irq(struct drm_i915_private *i915,
|
||||
u32 interrupt_mask, u32 enabled_irq_mask);
|
||||
void bdw_enable_pipe_irq(struct drm_i915_private *i915, enum pipe pipe, u32 bits);
|
||||
void bdw_disable_pipe_irq(struct drm_i915_private *i915, enum pipe pipe, u32 bits);
|
||||
|
||||
void ibx_display_interrupt_update(struct drm_i915_private *i915,
|
||||
u32 interrupt_mask, u32 enabled_irq_mask);
|
||||
void ibx_enable_display_interrupt(struct drm_i915_private *i915, u32 bits);
|
||||
void ibx_disable_display_interrupt(struct drm_i915_private *i915, u32 bits);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user