[4/4] drm/i915: move gmbus setup down to intel_modeset_init()

Submitted by Jani Nikula on Oct. 2, 2019, 1:18 p.m.

Details

Message ID 20191002131800.21054-4-jani.nikula@intel.com
State New
Headers show
Series "Series without cover letter" ( rev: 2 1 ) in Intel GFX

Not browsing as part of any series.

Commit Message

Jani Nikula Oct. 2, 2019, 1:18 p.m.
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.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 2 ++
 drivers/gpu/drm/i915/i915_drv.c              | 4 ----
 2 files changed, 2 insertions(+), 4 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index d99c59e97568..2a7554e3b96d 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -16233,6 +16233,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" : "");
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 7503e16aadef..91362682f489 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -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"
@@ -301,8 +300,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);
@@ -337,7 +334,6 @@  static int i915_driver_modeset_probe(struct drm_i915_private *i915)
 	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);

Comments

On Wed, Oct 02, 2019 at 04:18:00PM +0300, Jani Nikula wrote:
> 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.
> 
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Seems safe.
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/display/intel_display.c | 2 ++
>  drivers/gpu/drm/i915/i915_drv.c              | 4 ----
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index d99c59e97568..2a7554e3b96d 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -16233,6 +16233,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" : "");
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 7503e16aadef..91362682f489 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -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"
> @@ -301,8 +300,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);
> @@ -337,7 +334,6 @@ static int i915_driver_modeset_probe(struct drm_i915_private *i915)
>  	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);
> -- 
> 2.20.1