2014-09-30 5:56 GMT-03:00 Daniel Vetter <daniel.vetter@xxxxxxxx>: > 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 ... Needs rebase. If you plan to do it correctly: Reviewed-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> If your rebase contains a bug: Nacked-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_dma.c | 4 ++-- > drivers/gpu/drm/i915/i915_drv.c | 12 +++++----- > drivers/gpu/drm/i915/i915_drv.h | 4 ++-- > drivers/gpu/drm/i915/i915_irq.c | 40 +++++++++++++++------------------ > drivers/gpu/drm/i915/intel_drv.h | 4 ++-- > drivers/gpu/drm/i915/intel_runtime_pm.c | 2 +- > 6 files changed, 31 insertions(+), 35 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c > index 969f0cff9fef..f50ecb18525f 100644 > --- a/drivers/gpu/drm/i915/i915_dma.c > +++ b/drivers/gpu/drm/i915/i915_dma.c > @@ -1363,7 +1363,7 @@ static int i915_load_modeset_init(struct drm_device *dev) > goto cleanup_gem; > > /* 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 > @@ -1733,7 +1733,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) > goto out_freewq; > } > > - intel_irq_init(dev); > + intel_irq_init(dev_priv); > intel_uncore_sanitize(dev); > > /* Try to make sure MCHBAR is enabled before poking at it */ > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index f07b8518cd39..605a4c4580d5 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -575,7 +575,7 @@ static int i915_drm_freeze(struct drm_device *dev) > > 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_suspend_encoders(dev_priv); > @@ -681,7 +681,7 @@ static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) > mutex_unlock(&dev->struct_mutex); > > /* 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); > > @@ -703,7 +703,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 > * notifications. > * */ > - intel_hpd_init(dev); > + intel_hpd_init(dev_priv); > /* Config may have changed between suspend and resume */ > drm_helper_hpd_irq_event(dev); > } > @@ -1446,12 +1446,12 @@ static int intel_runtime_suspend(struct device *device) > * intel_mark_idle(). > */ > 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); > if (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; > } > @@ -1511,7 +1511,7 @@ static int intel_runtime_resume(struct device *device) > i915_gem_init_swizzling(dev); > gen6_update_ring_freq(dev); > > - intel_runtime_pm_restore_interrupts(dev); > + intel_runtime_pm_enable_interrupts(dev_priv); > intel_reset_gt_powersave(dev); > > if (ret) > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 1eec0e81a5ca..854f1b92d3df 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -2283,8 +2283,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, > int new_delay); > -extern void intel_irq_init(struct drm_device *dev); > -extern void intel_hpd_init(struct drm_device *dev); > +extern void intel_irq_init(struct drm_i915_private *dev_priv); > +extern void intel_hpd_init(struct drm_i915_private *dev_priv); > int intel_irq_init_hw(struct drm_i915_private *dev_priv); > void intel_irq_fini(struct drm_i915_private *dev_priv); > > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index d9d09a9b4fc7..2c436e6c55b0 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -4631,9 +4631,9 @@ static void intel_hpd_irq_reenable_work(struct work_struct *work) > 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->dig_port_work, i915_digport_work_func); > @@ -4642,7 +4642,7 @@ void intel_irq_init(struct drm_device *dev) > INIT_WORK(&dev_priv->l3_parity.error_work, ivybridge_parity_work); > > /* 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 */ > dev_priv->pm_rps_events = GEN6_PM_RP_UP_EI_EXPIRED; > else > @@ -4656,10 +4656,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); > > - if (IS_GEN2(dev)) { > + if (IS_GEN2(dev_priv)) { > dev->max_vblank_count = 0; > 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->driver->get_vblank_counter = gm45_get_vblank_counter; > } else { > @@ -4672,7 +4672,7 @@ void intel_irq_init(struct drm_device *dev) > * Gen2 doesn't have a hardware frame counter and so depends on > * vblank interrupts to produce sane vblank seuquence numbers. > */ > - if (!IS_GEN2(dev)) > + if (!IS_GEN2(dev_priv)) > dev->vblank_disable_immediate = true; > > if (drm_core_check_feature(dev, DRIVER_MODESET)) { > @@ -4680,7 +4680,7 @@ void intel_irq_init(struct drm_device *dev) > 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_preinstall = cherryview_irq_preinstall; > dev->driver->irq_postinstall = cherryview_irq_postinstall; > @@ -4688,7 +4688,7 @@ void intel_irq_init(struct drm_device *dev) > dev->driver->enable_vblank = valleyview_enable_vblank; > dev->driver->disable_vblank = valleyview_disable_vblank; > 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_preinstall = valleyview_irq_preinstall; > dev->driver->irq_postinstall = valleyview_irq_postinstall; > @@ -4696,7 +4696,7 @@ void intel_irq_init(struct drm_device *dev) > dev->driver->enable_vblank = valleyview_enable_vblank; > dev->driver->disable_vblank = valleyview_disable_vblank; > dev_priv->display.hpd_irq_setup = i915_hpd_irq_setup; > - } else if (IS_GEN8(dev)) { > + } else if (IS_GEN8(dev_priv)) { > dev->driver->irq_handler = gen8_irq_handler; > dev->driver->irq_preinstall = gen8_irq_reset; > dev->driver->irq_postinstall = gen8_irq_postinstall; > @@ -4713,12 +4713,12 @@ void intel_irq_init(struct drm_device *dev) > dev->driver->disable_vblank = ironlake_disable_vblank; > dev_priv->display.hpd_irq_setup = ibx_hpd_irq_setup; > } else { > - if (INTEL_INFO(dev)->gen == 2) { > + if (INTEL_INFO(dev_priv)->gen == 2) { > dev->driver->irq_preinstall = i8xx_irq_preinstall; > dev->driver->irq_postinstall = i8xx_irq_postinstall; > dev->driver->irq_handler = i8xx_irq_handler; > 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_postinstall = i915_irq_postinstall; > dev->driver->irq_uninstall = i915_irq_uninstall; > @@ -4736,9 +4736,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_connector *connector; > int i; > @@ -4784,20 +4784,16 @@ void intel_irq_fini(struct drm_i915_private *dev_priv) > } > > /* 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->driver->irq_uninstall(dev); > + dev_priv->dev->driver->irq_uninstall(dev_priv->dev); > dev_priv->pm.irqs_enabled = false; > } > > /* 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->driver->irq_preinstall(dev); > - dev->driver->irq_postinstall(dev); > + dev_priv->dev->driver->irq_preinstall(dev_priv->dev); > + dev_priv->dev->driver->irq_postinstall(dev_priv->dev); > } > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index cf07e2225911..aba3ea938427 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -756,8 +756,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 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 intel_runtime_pm_disable_interrupts(struct drm_device *dev); > -void intel_runtime_pm_restore_interrupts(struct drm_device *dev); > +void intel_runtime_pm_disable_interrupts(struct drm_i915_private *dev_priv); > +void intel_runtime_pm_enable_interrupts(struct drm_i915_private *dev_priv); > static inline bool intel_irqs_enabled(struct drm_i915_private *dev_priv) > { > /* > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c b/drivers/gpu/drm/i915/intel_runtime_pm.c > index 6fa781a5b15c..8e322513a44a 100644 > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c > @@ -377,7 +377,7 @@ static void vlv_display_power_well_enable(struct drm_i915_private *dev_priv, > if (dev_priv->power_domains.initializing) > return; > > - intel_hpd_init(dev_priv->dev); > + intel_hpd_init(dev_priv); > > i915_redisable_vga_power_on(dev_priv->dev); > } > -- > 2.1.1 > -- Paulo Zanoni _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx