mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 07:03:03 +02:00
drm/i915/hotplug: convert intel_hotplug_irq.[ch] to struct intel_display
Going forward, struct intel_display is the main display device data pointer. Convert as much as possible of intel_hotplug_irq.[ch] to struct intel_display. Reviewed-by: Uma Shankar <uma.shankar@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://lore.kernel.org/r/8ddf27ea31b543f88c5f124f029c2eaa06a9aae7.1742481923.git.jani.nikula@intel.com
This commit is contained in:
parent
79e23d576c
commit
1e40b20ed4
|
|
@ -606,7 +606,7 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
|
|||
|
||||
for (i = 0; i < tries ; i++) {
|
||||
/* turn on the FORCE_DETECT */
|
||||
i915_hotplug_interrupt_update(dev_priv,
|
||||
i915_hotplug_interrupt_update(display,
|
||||
CRT_HOTPLUG_FORCE_DETECT,
|
||||
CRT_HOTPLUG_FORCE_DETECT);
|
||||
/* wait for FORCE_DETECT to go off */
|
||||
|
|
@ -624,7 +624,7 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
|
|||
intel_de_write(display, PORT_HOTPLUG_STAT(display),
|
||||
CRT_HOTPLUG_INT_STATUS);
|
||||
|
||||
i915_hotplug_interrupt_update(dev_priv, CRT_HOTPLUG_FORCE_DETECT, 0);
|
||||
i915_hotplug_interrupt_update(display, CRT_HOTPLUG_FORCE_DETECT, 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -675,7 +675,7 @@ static void ibx_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
|
|||
enum pipe pipe;
|
||||
u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_MASK;
|
||||
|
||||
ibx_hpd_irq_handler(dev_priv, hotplug_trigger);
|
||||
ibx_hpd_irq_handler(display, hotplug_trigger);
|
||||
|
||||
if (pch_iir & SDE_AUDIO_POWER_MASK) {
|
||||
int port = ffs((pch_iir & SDE_AUDIO_POWER_MASK) >>
|
||||
|
|
@ -812,7 +812,7 @@ static void cpt_irq_handler(struct drm_i915_private *dev_priv, u32 pch_iir)
|
|||
enum pipe pipe;
|
||||
u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_MASK_CPT;
|
||||
|
||||
ibx_hpd_irq_handler(dev_priv, hotplug_trigger);
|
||||
ibx_hpd_irq_handler(display, hotplug_trigger);
|
||||
|
||||
if (pch_iir & SDE_AUDIO_POWER_MASK_CPT) {
|
||||
int port = ffs((pch_iir & SDE_AUDIO_POWER_MASK_CPT) >>
|
||||
|
|
@ -901,7 +901,7 @@ void ilk_display_irq_handler(struct drm_i915_private *dev_priv, u32 de_iir)
|
|||
u32 hotplug_trigger = de_iir & DE_DP_A_HOTPLUG;
|
||||
|
||||
if (hotplug_trigger)
|
||||
ilk_hpd_irq_handler(dev_priv, hotplug_trigger);
|
||||
ilk_hpd_irq_handler(display, hotplug_trigger);
|
||||
|
||||
if (de_iir & DE_AUX_CHANNEL_A)
|
||||
intel_dp_aux_irq_handler(display);
|
||||
|
|
@ -953,7 +953,7 @@ void ivb_display_irq_handler(struct drm_i915_private *dev_priv, u32 de_iir)
|
|||
u32 hotplug_trigger = de_iir & DE_DP_A_HOTPLUG_IVB;
|
||||
|
||||
if (hotplug_trigger)
|
||||
ilk_hpd_irq_handler(dev_priv, hotplug_trigger);
|
||||
ilk_hpd_irq_handler(display, hotplug_trigger);
|
||||
|
||||
if (de_iir & DE_ERR_INT_IVB)
|
||||
ivb_err_int_handler(dev_priv);
|
||||
|
|
@ -1382,7 +1382,7 @@ void gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
|
|||
iir = intel_de_read(display, GEN11_DE_HPD_IIR);
|
||||
if (iir) {
|
||||
intel_de_write(display, GEN11_DE_HPD_IIR, iir);
|
||||
gen11_hpd_irq_handler(dev_priv, iir);
|
||||
gen11_hpd_irq_handler(display, iir);
|
||||
} else {
|
||||
drm_err_ratelimited(&dev_priv->drm,
|
||||
"The master control interrupt lied, (DE HPD)!\n");
|
||||
|
|
@ -1405,14 +1405,14 @@ void gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
|
|||
u32 hotplug_trigger = iir & BXT_DE_PORT_HOTPLUG_MASK;
|
||||
|
||||
if (hotplug_trigger) {
|
||||
bxt_hpd_irq_handler(dev_priv, hotplug_trigger);
|
||||
bxt_hpd_irq_handler(display, hotplug_trigger);
|
||||
found = true;
|
||||
}
|
||||
} else if (IS_BROADWELL(dev_priv)) {
|
||||
u32 hotplug_trigger = iir & BDW_DE_PORT_HOTPLUG_MASK;
|
||||
|
||||
if (hotplug_trigger) {
|
||||
ilk_hpd_irq_handler(dev_priv, hotplug_trigger);
|
||||
ilk_hpd_irq_handler(display, hotplug_trigger);
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -1498,12 +1498,12 @@ void gen8_de_irq_handler(struct drm_i915_private *dev_priv, u32 master_ctl)
|
|||
gen8_read_and_ack_pch_irqs(dev_priv, &iir, &pica_iir);
|
||||
if (iir) {
|
||||
if (pica_iir)
|
||||
xelpdp_pica_irq_handler(dev_priv, pica_iir);
|
||||
xelpdp_pica_irq_handler(display, pica_iir);
|
||||
|
||||
if (INTEL_PCH_TYPE(dev_priv) >= PCH_ICP)
|
||||
icp_irq_handler(dev_priv, iir);
|
||||
icp_irq_handler(display, iir);
|
||||
else if (INTEL_PCH_TYPE(dev_priv) >= PCH_SPT)
|
||||
spt_irq_handler(dev_priv, iir);
|
||||
spt_irq_handler(display, iir);
|
||||
else
|
||||
cpt_irq_handler(dev_priv, iir);
|
||||
} else {
|
||||
|
|
@ -1904,7 +1904,7 @@ static void _vlv_display_irq_reset(struct drm_i915_private *dev_priv)
|
|||
gen2_error_reset(to_intel_uncore(display->drm),
|
||||
VLV_ERROR_REGS);
|
||||
|
||||
i915_hotplug_interrupt_update_locked(dev_priv, 0xffffffff, 0);
|
||||
i915_hotplug_interrupt_update_locked(display, 0xffffffff, 0);
|
||||
intel_de_rmw(display, PORT_HOTPLUG_STAT(dev_priv), 0, 0);
|
||||
|
||||
i9xx_pipestat_irq_reset(dev_priv);
|
||||
|
|
@ -1924,7 +1924,7 @@ void i9xx_display_irq_reset(struct drm_i915_private *i915)
|
|||
struct intel_display *display = &i915->display;
|
||||
|
||||
if (I915_HAS_HOTPLUG(i915)) {
|
||||
i915_hotplug_interrupt_update(i915, 0xffffffff, 0);
|
||||
i915_hotplug_interrupt_update(display, 0xffffffff, 0);
|
||||
intel_de_rmw(display, PORT_HOTPLUG_STAT(i915), 0, 0);
|
||||
}
|
||||
|
||||
|
|
@ -2348,10 +2348,11 @@ void dg1_de_irq_postinstall(struct drm_i915_private *i915)
|
|||
|
||||
void intel_display_irq_init(struct drm_i915_private *i915)
|
||||
{
|
||||
i915->drm.vblank_disable_immediate = true;
|
||||
struct intel_display *display = &i915->display;
|
||||
|
||||
intel_hotplug_irq_init(i915);
|
||||
display->drm->vblank_disable_immediate = true;
|
||||
|
||||
INIT_WORK(&i915->display.irq.vblank_dc_work,
|
||||
intel_display_vblank_dc_work);
|
||||
intel_hotplug_irq_init(display);
|
||||
|
||||
INIT_WORK(&display->irq.vblank_dc_work, intel_display_vblank_dc_work);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -305,7 +305,7 @@ static void intel_hpd_irq_storm_reenable_work(struct work_struct *work)
|
|||
display->hotplug.stats[pin].state = HPD_ENABLED;
|
||||
}
|
||||
|
||||
intel_hpd_irq_setup(dev_priv);
|
||||
intel_hpd_irq_setup(display);
|
||||
|
||||
spin_unlock_irq(&dev_priv->irq_lock);
|
||||
|
||||
|
|
@ -696,7 +696,7 @@ void intel_hpd_irq_handler(struct intel_display *display,
|
|||
* happens later in our hotplug work.
|
||||
*/
|
||||
if (storm_detected)
|
||||
intel_hpd_irq_setup(dev_priv);
|
||||
intel_hpd_irq_setup(display);
|
||||
|
||||
/*
|
||||
* Our hotplug handler can grab modeset locks (by calling down into the
|
||||
|
|
@ -745,7 +745,7 @@ void intel_hpd_init(struct intel_display *display)
|
|||
* just to make the assert_spin_locked checks happy.
|
||||
*/
|
||||
spin_lock_irq(&dev_priv->irq_lock);
|
||||
intel_hpd_irq_setup(dev_priv);
|
||||
intel_hpd_irq_setup(display);
|
||||
spin_unlock_irq(&dev_priv->irq_lock);
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -8,28 +8,28 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct drm_i915_private;
|
||||
struct intel_display;
|
||||
struct intel_encoder;
|
||||
|
||||
u32 i9xx_hpd_irq_ack(struct drm_i915_private *i915);
|
||||
u32 i9xx_hpd_irq_ack(struct intel_display *display);
|
||||
|
||||
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 i9xx_hpd_irq_handler(struct intel_display *display, u32 hotplug_status);
|
||||
void ibx_hpd_irq_handler(struct intel_display *display, u32 hotplug_trigger);
|
||||
void ilk_hpd_irq_handler(struct intel_display *display, u32 hotplug_trigger);
|
||||
void gen11_hpd_irq_handler(struct intel_display *display, u32 iir);
|
||||
void bxt_hpd_irq_handler(struct intel_display *display, u32 hotplug_trigger);
|
||||
void xelpdp_pica_irq_handler(struct intel_display *display, u32 iir);
|
||||
void icp_irq_handler(struct intel_display *display, u32 pch_iir);
|
||||
void spt_irq_handler(struct intel_display *display, u32 pch_iir);
|
||||
|
||||
void i915_hotplug_interrupt_update_locked(struct drm_i915_private *i915,
|
||||
void i915_hotplug_interrupt_update_locked(struct intel_display *display,
|
||||
u32 mask, u32 bits);
|
||||
void i915_hotplug_interrupt_update(struct drm_i915_private *i915,
|
||||
void i915_hotplug_interrupt_update(struct intel_display *display,
|
||||
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_hpd_irq_setup(struct intel_display *display);
|
||||
|
||||
void intel_hotplug_irq_init(struct drm_i915_private *i915);
|
||||
void intel_hotplug_irq_init(struct intel_display *display);
|
||||
|
||||
#endif /* __INTEL_HOTPLUG_IRQ_H__ */
|
||||
|
|
|
|||
|
|
@ -277,7 +277,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
|
|||
intel_uncore_write(&dev_priv->uncore, GEN6_PMIIR, pm_iir);
|
||||
|
||||
if (iir & I915_DISPLAY_PORT_INTERRUPT)
|
||||
hotplug_status = i9xx_hpd_irq_ack(dev_priv);
|
||||
hotplug_status = i9xx_hpd_irq_ack(display);
|
||||
|
||||
if (iir & I915_MASTER_ERROR_INTERRUPT)
|
||||
vlv_display_error_irq_ack(display, &eir, &dpinvgtt);
|
||||
|
|
@ -306,7 +306,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
|
|||
gen6_rps_irq_handler(&to_gt(dev_priv)->rps, pm_iir);
|
||||
|
||||
if (hotplug_status)
|
||||
i9xx_hpd_irq_handler(dev_priv, hotplug_status);
|
||||
i9xx_hpd_irq_handler(display, hotplug_status);
|
||||
|
||||
if (iir & I915_MASTER_ERROR_INTERRUPT)
|
||||
vlv_display_error_irq_handler(display, eir, dpinvgtt);
|
||||
|
|
@ -367,7 +367,7 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg)
|
|||
gen8_gt_irq_handler(to_gt(dev_priv), master_ctl);
|
||||
|
||||
if (iir & I915_DISPLAY_PORT_INTERRUPT)
|
||||
hotplug_status = i9xx_hpd_irq_ack(dev_priv);
|
||||
hotplug_status = i9xx_hpd_irq_ack(display);
|
||||
|
||||
if (iir & I915_MASTER_ERROR_INTERRUPT)
|
||||
vlv_display_error_irq_ack(display, &eir, &dpinvgtt);
|
||||
|
|
@ -392,7 +392,7 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg)
|
|||
intel_uncore_write(&dev_priv->uncore, GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL);
|
||||
|
||||
if (hotplug_status)
|
||||
i9xx_hpd_irq_handler(dev_priv, hotplug_status);
|
||||
i9xx_hpd_irq_handler(display, hotplug_status);
|
||||
|
||||
if (iir & I915_MASTER_ERROR_INTERRUPT)
|
||||
vlv_display_error_irq_handler(display, eir, dpinvgtt);
|
||||
|
|
@ -952,6 +952,7 @@ static void i915_irq_postinstall(struct drm_i915_private *dev_priv)
|
|||
static irqreturn_t i915_irq_handler(int irq, void *arg)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = arg;
|
||||
struct intel_display *display = &dev_priv->display;
|
||||
irqreturn_t ret = IRQ_NONE;
|
||||
|
||||
if (!intel_irqs_enabled(dev_priv))
|
||||
|
|
@ -974,7 +975,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
|
|||
|
||||
if (I915_HAS_HOTPLUG(dev_priv) &&
|
||||
iir & I915_DISPLAY_PORT_INTERRUPT)
|
||||
hotplug_status = i9xx_hpd_irq_ack(dev_priv);
|
||||
hotplug_status = i9xx_hpd_irq_ack(display);
|
||||
|
||||
/* Call regardless, as some status bits might not be
|
||||
* signalled in IIR */
|
||||
|
|
@ -992,7 +993,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
|
|||
i9xx_error_irq_handler(dev_priv, eir, eir_stuck);
|
||||
|
||||
if (hotplug_status)
|
||||
i9xx_hpd_irq_handler(dev_priv, hotplug_status);
|
||||
i9xx_hpd_irq_handler(display, hotplug_status);
|
||||
|
||||
i915_pipestat_irq_handler(dev_priv, iir, pipe_stats);
|
||||
} while (0);
|
||||
|
|
@ -1075,6 +1076,7 @@ static void i965_irq_postinstall(struct drm_i915_private *dev_priv)
|
|||
static irqreturn_t i965_irq_handler(int irq, void *arg)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = arg;
|
||||
struct intel_display *display = &dev_priv->display;
|
||||
irqreturn_t ret = IRQ_NONE;
|
||||
|
||||
if (!intel_irqs_enabled(dev_priv))
|
||||
|
|
@ -1096,7 +1098,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
|
|||
ret = IRQ_HANDLED;
|
||||
|
||||
if (iir & I915_DISPLAY_PORT_INTERRUPT)
|
||||
hotplug_status = i9xx_hpd_irq_ack(dev_priv);
|
||||
hotplug_status = i9xx_hpd_irq_ack(display);
|
||||
|
||||
/* Call regardless, as some status bits might not be
|
||||
* signalled in IIR */
|
||||
|
|
@ -1119,7 +1121,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
|
|||
i9xx_error_irq_handler(dev_priv, eir, eir_stuck);
|
||||
|
||||
if (hotplug_status)
|
||||
i9xx_hpd_irq_handler(dev_priv, hotplug_status);
|
||||
i9xx_hpd_irq_handler(display, hotplug_status);
|
||||
|
||||
i965_pipestat_irq_handler(dev_priv, iir, pipe_stats);
|
||||
} while (0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user