diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-09-30 04:56:43 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2014-10-03 05:19:28 -0400 |
commit | 2aeb7d3a4d425be7e9185e79dd745918f7f72552 (patch) | |
tree | 9ec8786c4144cdb39a9ef2c0721db92e4474793d /drivers/gpu/drm/i915 | |
parent | 570e2a747bc06cd8620662c5125ec2dc964c511b (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.c | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/i915_irq.c | 26 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_pm.c | 1 |
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 | */ |
1425 | struct i915_runtime_pm { | 1425 | struct i915_runtime_pm { |
1426 | bool suspended; | 1426 | bool suspended; |
1427 | bool _irqs_disabled; | 1427 | bool irqs_enabled; |
1428 | }; | 1428 | }; |
1429 | 1429 | ||
1430 | enum intel_pipe_crc_source { | 1430 | enum 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); |
2312 | extern void intel_irq_init(struct drm_device *dev); | 2312 | extern void intel_irq_init(struct drm_device *dev); |
2313 | extern void intel_hpd_init(struct drm_device *dev); | 2313 | extern void intel_hpd_init(struct drm_device *dev); |
2314 | int intel_irq_install(struct drm_i915_private *dev_priv); | ||
2315 | void intel_irq_uninstall(struct drm_i915_private *dev_priv); | ||
2314 | 2316 | ||
2315 | extern void intel_uncore_sanitize(struct drm_device *dev); | 2317 | extern void intel_uncore_sanitize(struct drm_device *dev); |
2316 | extern void intel_uncore_early_sanitize(struct drm_device *dev, | 2318 | extern 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 | ||
4786 | int 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 | |||
4798 | void 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. */ |
4790 | void intel_runtime_pm_disable_interrupts(struct drm_device *dev) | 4806 | void 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 | ||
778 | int intel_get_crtc_scanline(struct intel_crtc *crtc); | 778 | int 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 | } |