Commit b963291c authored by Daniel Vetter's avatar Daniel Vetter

drm/i915: Use dev_priv instead of dev in irq setup functions

It's the new world order!

Not going full monty on these here and rolling this out throughout the
subsequent call chains since this is just for the kerneldoc. Later on
we can go more crazy, especially once we've embedded drm_device
correctly.

v2: Also frob the runtime_pm functions ...
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
Reviewed-by: default avatarPaulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 2aeb7d3a
...@@ -1363,7 +1363,7 @@ static int i915_load_modeset_init(struct drm_device *dev) ...@@ -1363,7 +1363,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
goto cleanup_gem; goto cleanup_gem;
/* Only enable hotplug handling once the fbdev is fully set up. */ /* Only enable hotplug handling once the fbdev is fully set up. */
intel_hpd_init(dev); intel_hpd_init(dev_priv);
/* /*
* Some ports require correctly set-up hpd registers for detection to * Some ports require correctly set-up hpd registers for detection to
...@@ -1733,7 +1733,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) ...@@ -1733,7 +1733,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
goto out_freewq; goto out_freewq;
} }
intel_irq_init(dev); intel_irq_init(dev_priv);
intel_uncore_sanitize(dev); intel_uncore_sanitize(dev);
/* Try to make sure MCHBAR is enabled before poking at it */ /* Try to make sure MCHBAR is enabled before poking at it */
......
...@@ -599,7 +599,7 @@ static int i915_drm_freeze(struct drm_device *dev) ...@@ -599,7 +599,7 @@ static int i915_drm_freeze(struct drm_device *dev)
flush_delayed_work(&dev_priv->rps.delayed_resume_work); flush_delayed_work(&dev_priv->rps.delayed_resume_work);
intel_runtime_pm_disable_interrupts(dev); intel_runtime_pm_disable_interrupts(dev_priv);
intel_hpd_cancel_work(dev_priv); intel_hpd_cancel_work(dev_priv);
intel_suspend_encoders(dev_priv); intel_suspend_encoders(dev_priv);
...@@ -705,7 +705,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) ...@@ -705,7 +705,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings)
mutex_unlock(&dev->struct_mutex); mutex_unlock(&dev->struct_mutex);
/* We need working interrupts for modeset enabling ... */ /* We need working interrupts for modeset enabling ... */
intel_runtime_pm_restore_interrupts(dev); intel_runtime_pm_enable_interrupts(dev_priv);
intel_modeset_init_hw(dev); intel_modeset_init_hw(dev);
...@@ -727,7 +727,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) ...@@ -727,7 +727,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings)
* bother with the tiny race here where we might loose hotplug * bother with the tiny race here where we might loose hotplug
* notifications. * notifications.
* */ * */
intel_hpd_init(dev); intel_hpd_init(dev_priv);
/* Config may have changed between suspend and resume */ /* Config may have changed between suspend and resume */
drm_helper_hpd_irq_event(dev); drm_helper_hpd_irq_event(dev);
} }
...@@ -1473,12 +1473,12 @@ static int intel_runtime_suspend(struct device *device) ...@@ -1473,12 +1473,12 @@ static int intel_runtime_suspend(struct device *device)
* intel_mark_idle(). * intel_mark_idle().
*/ */
cancel_work_sync(&dev_priv->rps.work); cancel_work_sync(&dev_priv->rps.work);
intel_runtime_pm_disable_interrupts(dev); intel_runtime_pm_disable_interrupts(dev_priv);
ret = intel_suspend_complete(dev_priv); ret = intel_suspend_complete(dev_priv);
if (ret) { if (ret) {
DRM_ERROR("Runtime suspend failed, disabling it (%d)\n", ret); DRM_ERROR("Runtime suspend failed, disabling it (%d)\n", ret);
intel_runtime_pm_restore_interrupts(dev); intel_runtime_pm_enable_interrupts(dev_priv);
return ret; return ret;
} }
...@@ -1538,7 +1538,7 @@ static int intel_runtime_resume(struct device *device) ...@@ -1538,7 +1538,7 @@ static int intel_runtime_resume(struct device *device)
i915_gem_init_swizzling(dev); i915_gem_init_swizzling(dev);
gen6_update_ring_freq(dev); gen6_update_ring_freq(dev);
intel_runtime_pm_restore_interrupts(dev); intel_runtime_pm_enable_interrupts(dev_priv);
intel_reset_gt_powersave(dev); intel_reset_gt_powersave(dev);
if (ret) if (ret)
......
...@@ -2309,8 +2309,8 @@ void i915_handle_error(struct drm_device *dev, bool wedged, ...@@ -2309,8 +2309,8 @@ void i915_handle_error(struct drm_device *dev, bool wedged,
void gen6_set_pm_mask(struct drm_i915_private *dev_priv, u32 pm_iir, void gen6_set_pm_mask(struct drm_i915_private *dev_priv, u32 pm_iir,
int new_delay); int new_delay);
extern void intel_irq_init(struct drm_device *dev); extern void intel_irq_init(struct drm_i915_private *dev_priv);
extern void intel_hpd_init(struct drm_device *dev); extern void intel_hpd_init(struct drm_i915_private *dev_priv);
int intel_irq_install(struct drm_i915_private *dev_priv); int intel_irq_install(struct drm_i915_private *dev_priv);
void intel_irq_uninstall(struct drm_i915_private *dev_priv); void intel_irq_uninstall(struct drm_i915_private *dev_priv);
......
...@@ -4650,9 +4650,9 @@ static void intel_hpd_irq_reenable_work(struct work_struct *work) ...@@ -4650,9 +4650,9 @@ static void intel_hpd_irq_reenable_work(struct work_struct *work)
intel_runtime_pm_put(dev_priv); intel_runtime_pm_put(dev_priv);
} }
void intel_irq_init(struct drm_device *dev) void intel_irq_init(struct drm_i915_private *dev_priv)
{ {
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_device *dev = dev_priv->dev;
INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func); INIT_WORK(&dev_priv->hotplug_work, i915_hotplug_work_func);
INIT_WORK(&dev_priv->dig_port_work, i915_digport_work_func); INIT_WORK(&dev_priv->dig_port_work, i915_digport_work_func);
...@@ -4661,7 +4661,7 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4661,7 +4661,7 @@ void intel_irq_init(struct drm_device *dev)
INIT_WORK(&dev_priv->l3_parity.error_work, ivybridge_parity_work); INIT_WORK(&dev_priv->l3_parity.error_work, ivybridge_parity_work);
/* Let's track the enabled rps events */ /* Let's track the enabled rps events */
if (IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev)) if (IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv))
/* WaGsvRC0ResidencyMethod:vlv */ /* WaGsvRC0ResidencyMethod:vlv */
dev_priv->pm_rps_events = GEN6_PM_RP_UP_EI_EXPIRED; dev_priv->pm_rps_events = GEN6_PM_RP_UP_EI_EXPIRED;
else else
...@@ -4675,10 +4675,10 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4675,10 +4675,10 @@ void intel_irq_init(struct drm_device *dev)
pm_qos_add_request(&dev_priv->pm_qos, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); pm_qos_add_request(&dev_priv->pm_qos, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
if (IS_GEN2(dev)) { if (IS_GEN2(dev_priv)) {
dev->max_vblank_count = 0; dev->max_vblank_count = 0;
dev->driver->get_vblank_counter = i8xx_get_vblank_counter; dev->driver->get_vblank_counter = i8xx_get_vblank_counter;
} else if (IS_G4X(dev) || INTEL_INFO(dev)->gen >= 5) { } else if (IS_G4X(dev_priv) || INTEL_INFO(dev_priv)->gen >= 5) {
dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */ dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
dev->driver->get_vblank_counter = gm45_get_vblank_counter; dev->driver->get_vblank_counter = gm45_get_vblank_counter;
} else { } else {
...@@ -4691,7 +4691,7 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4691,7 +4691,7 @@ void intel_irq_init(struct drm_device *dev)
* Gen2 doesn't have a hardware frame counter and so depends on * Gen2 doesn't have a hardware frame counter and so depends on
* vblank interrupts to produce sane vblank seuquence numbers. * vblank interrupts to produce sane vblank seuquence numbers.
*/ */
if (!IS_GEN2(dev)) if (!IS_GEN2(dev_priv))
dev->vblank_disable_immediate = true; dev->vblank_disable_immediate = true;
if (drm_core_check_feature(dev, DRIVER_MODESET)) { if (drm_core_check_feature(dev, DRIVER_MODESET)) {
...@@ -4699,7 +4699,7 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4699,7 +4699,7 @@ void intel_irq_init(struct drm_device *dev)
dev->driver->get_scanout_position = i915_get_crtc_scanoutpos; dev->driver->get_scanout_position = i915_get_crtc_scanoutpos;
} }
if (IS_CHERRYVIEW(dev)) { if (IS_CHERRYVIEW(dev_priv)) {
dev->driver->irq_handler = cherryview_irq_handler; dev->driver->irq_handler = cherryview_irq_handler;
dev->driver->irq_preinstall = cherryview_irq_preinstall; dev->driver->irq_preinstall = cherryview_irq_preinstall;
dev->driver->irq_postinstall = cherryview_irq_postinstall; dev->driver->irq_postinstall = cherryview_irq_postinstall;
...@@ -4707,7 +4707,7 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4707,7 +4707,7 @@ void intel_irq_init(struct drm_device *dev)
dev->driver->enable_vblank = valleyview_enable_vblank; dev->driver->enable_vblank = valleyview_enable_vblank;
dev->driver->disable_vblank = valleyview_disable_vblank; dev->driver->disable_vblank = valleyview_disable_vblank;
dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
} else if (IS_VALLEYVIEW(dev)) { } else if (IS_VALLEYVIEW(dev_priv)) {
dev->driver->irq_handler = valleyview_irq_handler; dev->driver->irq_handler = valleyview_irq_handler;
dev->driver->irq_preinstall = valleyview_irq_preinstall; dev->driver->irq_preinstall = valleyview_irq_preinstall;
dev->driver->irq_postinstall = valleyview_irq_postinstall; dev->driver->irq_postinstall = valleyview_irq_postinstall;
...@@ -4715,7 +4715,7 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4715,7 +4715,7 @@ void intel_irq_init(struct drm_device *dev)
dev->driver->enable_vblank = valleyview_enable_vblank; dev->driver->enable_vblank = valleyview_enable_vblank;
dev->driver->disable_vblank = valleyview_disable_vblank; dev->driver->disable_vblank = valleyview_disable_vblank;
dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup;
} else if (INTEL_INFO(dev)->gen >= 8) { } else if (INTEL_INFO(dev_priv)->gen >= 8) {
dev->driver->irq_handler = gen8_irq_handler; dev->driver->irq_handler = gen8_irq_handler;
dev->driver->irq_preinstall = gen8_irq_reset; dev->driver->irq_preinstall = gen8_irq_reset;
dev->driver->irq_postinstall = gen8_irq_postinstall; dev->driver->irq_postinstall = gen8_irq_postinstall;
...@@ -4732,12 +4732,12 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4732,12 +4732,12 @@ void intel_irq_init(struct drm_device *dev)
dev->driver->disable_vblank = ironlake_disable_vblank; dev->driver->disable_vblank = ironlake_disable_vblank;
dev_priv->display.hpd_irq_setup = ibx_hpd_irq_setup; dev_priv->display.hpd_irq_setup = ibx_hpd_irq_setup;
} else { } else {
if (INTEL_INFO(dev)->gen == 2) { if (INTEL_INFO(dev_priv)->gen == 2) {
dev->driver->irq_preinstall = i8xx_irq_preinstall; dev->driver->irq_preinstall = i8xx_irq_preinstall;
dev->driver->irq_postinstall = i8xx_irq_postinstall; dev->driver->irq_postinstall = i8xx_irq_postinstall;
dev->driver->irq_handler = i8xx_irq_handler; dev->driver->irq_handler = i8xx_irq_handler;
dev->driver->irq_uninstall = i8xx_irq_uninstall; dev->driver->irq_uninstall = i8xx_irq_uninstall;
} else if (INTEL_INFO(dev)->gen == 3) { } else if (INTEL_INFO(dev_priv)->gen == 3) {
dev->driver->irq_preinstall = i915_irq_preinstall; dev->driver->irq_preinstall = i915_irq_preinstall;
dev->driver->irq_postinstall = i915_irq_postinstall; dev->driver->irq_postinstall = i915_irq_postinstall;
dev->driver->irq_uninstall = i915_irq_uninstall; dev->driver->irq_uninstall = i915_irq_uninstall;
...@@ -4755,9 +4755,9 @@ void intel_irq_init(struct drm_device *dev) ...@@ -4755,9 +4755,9 @@ void intel_irq_init(struct drm_device *dev)
} }
} }
void intel_hpd_init(struct drm_device *dev) void intel_hpd_init(struct drm_i915_private *dev_priv)
{ {
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_device *dev = dev_priv->dev;
struct drm_mode_config *mode_config = &dev->mode_config; struct drm_mode_config *mode_config = &dev->mode_config;
struct drm_connector *connector; struct drm_connector *connector;
int i; int i;
...@@ -4803,20 +4803,16 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv) ...@@ -4803,20 +4803,16 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)
} }
/* Disable interrupts so we can allow runtime PM. */ /* Disable interrupts so we can allow runtime PM. */
void intel_runtime_pm_disable_interrupts(struct drm_device *dev) void intel_runtime_pm_disable_interrupts(struct drm_i915_private *dev_priv)
{ {
struct drm_i915_private *dev_priv = dev->dev_private; dev_priv->dev->driver->irq_uninstall(dev_priv->dev);
dev->driver->irq_uninstall(dev);
dev_priv->pm.irqs_enabled = false; dev_priv->pm.irqs_enabled = false;
} }
/* Restore interrupts so we can recover from runtime PM. */ /* Restore interrupts so we can recover from runtime PM. */
void intel_runtime_pm_restore_interrupts(struct drm_device *dev) void intel_runtime_pm_enable_interrupts(struct drm_i915_private *dev_priv)
{ {
struct drm_i915_private *dev_priv = dev->dev_private;
dev_priv->pm.irqs_enabled = true; dev_priv->pm.irqs_enabled = true;
dev->driver->irq_preinstall(dev); dev_priv->dev->driver->irq_preinstall(dev_priv->dev);
dev->driver->irq_postinstall(dev); dev_priv->dev->driver->irq_postinstall(dev_priv->dev);
} }
...@@ -764,8 +764,8 @@ void gen6_enable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask); ...@@ -764,8 +764,8 @@ void gen6_enable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask);
void gen6_disable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask); void gen6_disable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask);
void gen8_enable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask); void gen8_enable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask);
void gen8_disable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask); void gen8_disable_pm_irq(struct drm_i915_private *dev_priv, uint32_t mask);
void intel_runtime_pm_disable_interrupts(struct drm_device *dev); void intel_runtime_pm_disable_interrupts(struct drm_i915_private *dev_priv);
void intel_runtime_pm_restore_interrupts(struct drm_device *dev); void intel_runtime_pm_enable_interrupts(struct drm_i915_private *dev_priv);
static inline bool intel_irqs_enabled(struct drm_i915_private *dev_priv) static inline bool intel_irqs_enabled(struct drm_i915_private *dev_priv)
{ {
/* /*
......
...@@ -377,7 +377,7 @@ static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv, ...@@ -377,7 +377,7 @@ static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv,
if (dev_priv->power_domains.initializing) if (dev_priv->power_domains.initializing)
return; return;
intel_hpd_init(dev_priv->dev); intel_hpd_init(dev_priv);
i915_redisable_vga_power_on(dev_priv->dev); i915_redisable_vga_power_on(dev_priv->dev);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment