drm/i915: move gmbus setup down to intel_modeset_init()
authorJani Nikula <jani.nikula@intel.com>
Fri, 4 Oct 2019 12:20:19 +0000 (15:20 +0300)
committerJani Nikula <jani.nikula@intel.com>
Sun, 6 Oct 2019 08:25:06 +0000 (11:25 +0300)
Pair the gmbus setup and teardown in the same layer. This also fixes the
double gmbus teardown on the i915_driver_modeset_probe() error path.

Move the gmbus setup a bit later in the sequence to make the follow-up
refactoring easier, and to pinpoint any unexpected consequences of this
change right here, instead of the later refactoring.

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191004122019.12009-3-jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/i915_drv.c

index c15975a..05fb672 100644 (file)
@@ -16216,6 +16216,8 @@ int intel_modeset_init(struct drm_i915_private *i915)
 
        intel_panel_sanitize_ssc(i915);
 
+       intel_gmbus_setup(i915);
+
        DRM_DEBUG_KMS("%d display pipe%s available.\n",
                      INTEL_NUM_PIPES(i915),
                      INTEL_NUM_PIPES(i915) > 1 ? "s" : "");
index 902a54b..15abad5 100644 (file)
@@ -53,7 +53,6 @@
 #include "display/intel_display_types.h"
 #include "display/intel_dp.h"
 #include "display/intel_fbdev.h"
-#include "display/intel_gmbus.h"
 #include "display/intel_hotplug.h"
 #include "display/intel_overlay.h"
 #include "display/intel_pipe_crc.h"
@@ -307,8 +306,6 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
        if (ret)
                goto cleanup_csr;
 
-       intel_gmbus_setup(i915);
-
        /* Important: The output setup functions called by modeset_init need
         * working irqs for e.g. gmbus and dp aux transfers. */
        ret = intel_modeset_init(i915);
@@ -343,7 +340,6 @@ cleanup_modeset:
        intel_modeset_driver_remove(i915);
 cleanup_irq:
        intel_irq_uninstall(i915);
-       intel_gmbus_teardown(i915);
 cleanup_csr:
        intel_csr_ucode_fini(i915);
        intel_power_domains_driver_remove(i915);