aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-09-30 04:56:43 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-10-03 05:19:28 -0400
commit2aeb7d3a4d425be7e9185e79dd745918f7f72552 (patch)
tree9ec8786c4144cdb39a9ef2c0721db92e4474793d /drivers/gpu/drm/i915
parent570e2a747bc06cd8620662c5125ec2dc964c511b (diff)
drm/i915: s/pm._irqs_disabled/pm.irqs_enabled/
Double negations just parse harder. Also this allows us to ditch some init code since clearing to 0 dtrt. Also ditch the assignment in intel_pm_setup, that's not redundant since we do the assignement now while setting up interrupts. While at it do engage in a bit of OCD and wrap up the few lines of setup/teardown code into little helper functions: intel_irq_fini for cleanup and intel_irq_init_hw for hw setup. v2: Use _install/_uninstall for the new wrapper function names as Paulo suggested. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c9
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h4
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c26
-rw-r--r--drivers/gpu/drm/i915/intel_display.c4
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h2
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c1
6 files changed, 27 insertions, 19 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index d58c711a55c4..515fa6d3c993 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1338,14 +1338,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
1338 1338
1339 intel_power_domains_init_hw(dev_priv); 1339 intel_power_domains_init_hw(dev_priv);
1340 1340
1341 /* 1341 ret = intel_irq_install(dev_priv);
1342 * We enable some interrupt sources in our postinstall hooks, so mark
1343 * interrupts as enabled _before_ actually enabling them to avoid
1344 * special cases in our ordering checks.
1345 */
1346 dev_priv->pm._irqs_disabled = false;
1347
1348 ret = drm_irq_install(dev, dev->pdev->irq);
1349 if (ret) 1342 if (ret)
1350 goto cleanup_gem_stolen; 1343 goto cleanup_gem_stolen;
1351 1344
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 5dbd5c92b61b..b4c4f6f1f0e1 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1424,7 +1424,7 @@ struct ilk_wm_values {
1424 */ 1424 */
1425struct i915_runtime_pm { 1425struct i915_runtime_pm {
1426 bool suspended; 1426 bool suspended;
1427 bool _irqs_disabled; 1427 bool irqs_enabled;
1428}; 1428};
1429 1429
1430enum intel_pipe_crc_source { 1430enum intel_pipe_crc_source {
@@ -2311,6 +2311,8 @@ void gen6_set_pm_mask(struct drm_i915_private *dev_priv, u32 pm_iir,
2311 int new_delay); 2311 int new_delay);
2312extern void intel_irq_init(struct drm_device *dev); 2312extern void intel_irq_init(struct drm_device *dev);
2313extern void intel_hpd_init(struct drm_device *dev); 2313extern void intel_hpd_init(struct drm_device *dev);
2314int intel_irq_install(struct drm_i915_private *dev_priv);
2315void intel_irq_uninstall(struct drm_i915_private *dev_priv);
2314 2316
2315extern void intel_uncore_sanitize(struct drm_device *dev); 2317extern void intel_uncore_sanitize(struct drm_device *dev);
2316extern void intel_uncore_early_sanitize(struct drm_device *dev, 2318extern void intel_uncore_early_sanitize(struct drm_device *dev,
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index eef74ef4736a..c07f576c5974 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -4675,9 +4675,6 @@ void intel_irq_init(struct drm_device *dev)
4675 4675
4676 pm_qos_add_request(&dev_priv->pm_qos, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); 4676 pm_qos_add_request(&dev_priv->pm_qos, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE);
4677 4677
4678 /* Haven't installed the IRQ handler yet */
4679 dev_priv->pm._irqs_disabled = true;
4680
4681 if (IS_GEN2(dev)) { 4678 if (IS_GEN2(dev)) {
4682 dev->max_vblank_count = 0; 4679 dev->max_vblank_count = 0;
4683 dev->driver->get_vblank_counter = i8xx_get_vblank_counter; 4680 dev->driver->get_vblank_counter = i8xx_get_vblank_counter;
@@ -4786,13 +4783,32 @@ void intel_hpd_init(struct drm_device *dev)
4786 spin_unlock_irq(&dev_priv->irq_lock); 4783 spin_unlock_irq(&dev_priv->irq_lock);
4787} 4784}
4788 4785
4786int intel_irq_install(struct drm_i915_private *dev_priv)
4787{
4788 /*
4789 * We enable some interrupt sources in our postinstall hooks, so mark
4790 * interrupts as enabled _before_ actually enabling them to avoid
4791 * special cases in our ordering checks.
4792 */
4793 dev_priv->pm.irqs_enabled = true;
4794
4795 return drm_irq_install(dev_priv->dev, dev_priv->dev->pdev->irq);
4796}
4797
4798void intel_irq_uninstall(struct drm_i915_private *dev_priv)
4799{
4800 drm_irq_uninstall(dev_priv->dev);
4801 intel_hpd_cancel_work(dev_priv);
4802 dev_priv->pm.irqs_enabled = false;
4803}
4804
4789/* Disable interrupts so we can allow runtime PM. */ 4805/* Disable interrupts so we can allow runtime PM. */
4790void intel_runtime_pm_disable_interrupts(struct drm_device *dev) 4806void intel_runtime_pm_disable_interrupts(struct drm_device *dev)
4791{ 4807{
4792 struct drm_i915_private *dev_priv = dev->dev_private; 4808 struct drm_i915_private *dev_priv = dev->dev_private;
4793 4809
4794 dev->driver->irq_uninstall(dev); 4810 dev->driver->irq_uninstall(dev);
4795 dev_priv->pm._irqs_disabled = true; 4811 dev_priv->pm.irqs_enabled = false;
4796} 4812}
4797 4813
4798/* Restore interrupts so we can recover from runtime PM. */ 4814/* Restore interrupts so we can recover from runtime PM. */
@@ -4800,7 +4816,7 @@ void intel_runtime_pm_restore_interrupts(struct drm_device *dev)
4800{ 4816{
4801 struct drm_i915_private *dev_priv = dev->dev_private; 4817 struct drm_i915_private *dev_priv = dev->dev_private;
4802 4818
4803 dev_priv->pm._irqs_disabled = false; 4819 dev_priv->pm.irqs_enabled = true;
4804 dev->driver->irq_preinstall(dev); 4820 dev->driver->irq_preinstall(dev);
4805 dev->driver->irq_postinstall(dev); 4821 dev->driver->irq_postinstall(dev);
4806} 4822}
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 7877b163b5b9..6fc77a100cc6 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13372,9 +13372,7 @@ void intel_modeset_cleanup(struct drm_device *dev)
13372 * Too much stuff here (turning of rps, connectors, ...) would 13372 * Too much stuff here (turning of rps, connectors, ...) would
13373 * experience fancy races otherwise. 13373 * experience fancy races otherwise.
13374 */ 13374 */
13375 drm_irq_uninstall(dev); 13375 intel_irq_uninstall(dev_priv);
13376 intel_hpd_cancel_work(dev_priv);
13377 dev_priv->pm._irqs_disabled = true;
13378 13376
13379 /* 13377 /*
13380 * Due to the hpd irq storm handling the hotplug work can re-arm the 13378 * Due to the hpd irq storm handling the hotplug work can re-arm the
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 1deb5d837049..2d029d8aaec1 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -772,7 +772,7 @@ static inline bool intel_irqs_enabled(struct drm_i915_private *dev_priv)
772 * We only use drm_irq_uninstall() at unload and VT switch, so 772 * We only use drm_irq_uninstall() at unload and VT switch, so
773 * this is the only thing we need to check. 773 * this is the only thing we need to check.
774 */ 774 */
775 return !dev_priv->pm._irqs_disabled; 775 return dev_priv->pm.irqs_enabled;
776} 776}
777 777
778int intel_get_crtc_scanline(struct intel_crtc *crtc); 778int intel_get_crtc_scanline(struct intel_crtc *crtc);
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 95006e0e982b..79108059b79b 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -6531,5 +6531,4 @@ void intel_pm_setup(struct drm_device *dev)
6531 intel_gen6_powersave_work); 6531 intel_gen6_powersave_work);
6532 6532
6533 dev_priv->pm.suspended = false; 6533 dev_priv->pm.suspended = false;
6534 dev_priv->pm._irqs_disabled = false;
6535} 6534}