drm/i915: Restore full symmetry in i915_driver_modeset_probe/remove

Commit 2d6f6f359f ("drm/i915: add i915_driver_modeset_remove()")
claimed removal of asymmetry in probe() and remove() calls, however, it
didn't take care of calling intel_irq_uninstall() on driver remove.
That doesn't hurt as long as we still call it from
intel_modeset_driver_remove() but in order to have full symmetry we
should call it again from i915_driver_modeset_remove().

Note that it's safe to call intel_irq_uninstall() twice thanks to
commit b318b82455 ("drm/i915: Nuke drm_driver irq vfuncs").  We may
only want to mention the case we are adding in a related FIXME comment
provided by that commit.  While being at it, update the name of
function mentioned as calling it out of sequence as that name has been
changed meanwhile by commit 78dae1ac35 ("drm/i915: Propagate
"_remove" function name suffix down").

Suggested-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: https://patchwork.freedesktop.org/patch/msgid/6250061.7lZMOAyebC@jkrzyszt-desk.ger.corp.intel.com
This commit is contained in:
Janusz Krzysztofik 2019-10-18 12:07:10 +02:00 committed by Chris Wilson
parent e83c467358
commit 789fa8746d
2 changed files with 6 additions and 4 deletions

View File

@ -354,6 +354,8 @@ static void i915_driver_modeset_remove(struct drm_i915_private *i915)
{ {
intel_modeset_driver_remove(i915); intel_modeset_driver_remove(i915);
intel_irq_uninstall(i915);
intel_bios_driver_remove(i915); intel_bios_driver_remove(i915);
i915_switcheroo_unregister(i915); i915_switcheroo_unregister(i915);

View File

@ -4486,10 +4486,10 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)
int irq = dev_priv->drm.pdev->irq; int irq = dev_priv->drm.pdev->irq;
/* /*
* FIXME we can get called twice during driver load * FIXME we can get called twice during driver probe
* error handling due to intel_modeset_cleanup() * error handling as well as during driver remove due to
* calling us out of sequence. Would be nice if * intel_modeset_driver_remove() calling us out of sequence.
* it didn't do that... * Would be nice if it didn't do that...
*/ */
if (!dev_priv->drm.irq_enabled) if (!dev_priv->drm.irq_enabled)
return; return;