Re: [Intel-gfx] [PATCH 02/15] drm/i915/guc: Create common entry points for log register/unregister
On 3/5/2018 7:08 PM, Michał Winiarski wrote: On Mon, Mar 05, 2018 at 12:39:58PM +0530, Sagar Arun Kamble wrote: Overall change looks good. Could you please clarify on below: intel_uc_log_register|unregister are removed in patch later in the series. Should we just stay with inner functions then to minimize changes? I've done this to move (USES_GUC/guc_log_level) checks to the callers. Otherwise it would need to stay in intel_guc_log_register, which would cause us to do more changes in intel_guc_log_control_set later in the series (when we're actually doing the decoupling). But AFAIU change in that patch (8/15) will be decoupling guc_log_register from USES_GUC/guc_log_level which would be fine I guess. Your call :) -Michał Thanks Sagar On 2/27/2018 6:22 PM, Michał Winiarski wrote: We have many functions responsible for allocating different parts of runtime called from multiple places. Let's stick with keeping everything in guc_log_register instead. Signed-off-by: Michał WiniarskiCc: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Cc: Sagar Arun Kamble --- drivers/gpu/drm/i915/i915_drv.c | 6 +- drivers/gpu/drm/i915/i915_gem.c | 4 +- drivers/gpu/drm/i915/intel_guc_log.c | 148 ++- drivers/gpu/drm/i915/intel_guc_log.h | 6 +- drivers/gpu/drm/i915/intel_uc.c | 39 - drivers/gpu/drm/i915/intel_uc.h | 6 +- 6 files changed, 91 insertions(+), 118 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index aaa861b51024..719b2be73292 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -636,7 +636,7 @@ static void i915_gem_fini(struct drm_i915_private *dev_priv) i915_gem_contexts_fini(dev_priv); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); i915_gem_cleanup_userptr(dev_priv); i915_gem_drain_freed_objects(dev_priv); @@ -1237,7 +1237,7 @@ static void i915_driver_register(struct drm_i915_private *dev_priv) /* Reveal our presence to userspace */ if (drm_dev_register(dev, 0) == 0) { i915_debugfs_register(dev_priv); - i915_guc_log_register(dev_priv); + intel_uc_log_register(dev_priv); i915_setup_sysfs(dev_priv); /* Depends on sysfs having been initialized */ @@ -1297,7 +1297,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv) i915_pmu_unregister(dev_priv); i915_teardown_sysfs(dev_priv); - i915_guc_log_unregister(dev_priv); + intel_uc_log_unregister(dev_priv); drm_dev_unregister(_priv->drm); i915_gem_shrinker_unregister(dev_priv); diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 14c855b1a3a4..4bf5f25b29e2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -5279,7 +5279,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) if (ret) return ret; - ret = intel_uc_init_misc(dev_priv); + ret = intel_uc_init_wq(dev_priv); if (ret) return ret; @@ -5375,7 +5375,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); if (ret != -EIO) i915_gem_cleanup_userptr(dev_priv); diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c index 22a05320817b..f1cab43d334e 100644 --- a/drivers/gpu/drm/i915/intel_guc_log.c +++ b/drivers/gpu/drm/i915/intel_guc_log.c @@ -441,7 +441,7 @@ void intel_guc_log_init_early(struct intel_guc *guc) INIT_WORK(>log.runtime.flush_work, capture_logs_work); } -int intel_guc_log_relay_create(struct intel_guc *guc) +int guc_log_relay_create(struct intel_guc *guc) { struct drm_i915_private *dev_priv = guc_to_i915(guc); struct rchan *guc_log_relay_chan; @@ -494,7 +494,7 @@ int intel_guc_log_relay_create(struct intel_guc *guc) return ret; } -void intel_guc_log_relay_destroy(struct intel_guc *guc) +void guc_log_relay_destroy(struct intel_guc *guc) { mutex_lock(>log.runtime.relay_lock); @@ -512,49 +512,6 @@ void intel_guc_log_relay_destroy(struct intel_guc *guc) mutex_unlock(>log.runtime.relay_lock); } -static int guc_log_late_setup(struct intel_guc *guc) -{ - struct drm_i915_private *dev_priv = guc_to_i915(guc); - int ret; - - if (!guc_log_has_runtime(guc)) { - /* -* If log was disabled at boot time, then setup needed to handle -* log buffer
Re: [Intel-gfx] [PATCH 02/15] drm/i915/guc: Create common entry points for log register/unregister
On Mon, Mar 05, 2018 at 12:39:58PM +0530, Sagar Arun Kamble wrote: > Overall change looks good. Could you please clarify on below: > > intel_uc_log_register|unregister are removed in patch later in the series. > Should we just stay with inner functions then to minimize changes? I've done this to move (USES_GUC/guc_log_level) checks to the callers. Otherwise it would need to stay in intel_guc_log_register, which would cause us to do more changes in intel_guc_log_control_set later in the series (when we're actually doing the decoupling). -Michał > > > Thanks > Sagar > > On 2/27/2018 6:22 PM, Michał Winiarski wrote: > > We have many functions responsible for allocating different parts of > > runtime called from multiple places. Let's stick with keeping > > everything in guc_log_register instead. > > > > Signed-off-by: Michał Winiarski> > Cc: Chris Wilson > > Cc: Daniele Ceraolo Spurio > > Cc: Michal Wajdeczko > > Cc: Sagar Arun Kamble > > --- > > drivers/gpu/drm/i915/i915_drv.c | 6 +- > > drivers/gpu/drm/i915/i915_gem.c | 4 +- > > drivers/gpu/drm/i915/intel_guc_log.c | 148 > > ++- > > drivers/gpu/drm/i915/intel_guc_log.h | 6 +- > > drivers/gpu/drm/i915/intel_uc.c | 39 - > > drivers/gpu/drm/i915/intel_uc.h | 6 +- > > 6 files changed, 91 insertions(+), 118 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.c > > b/drivers/gpu/drm/i915/i915_drv.c > > index aaa861b51024..719b2be73292 100644 > > --- a/drivers/gpu/drm/i915/i915_drv.c > > +++ b/drivers/gpu/drm/i915/i915_drv.c > > @@ -636,7 +636,7 @@ static void i915_gem_fini(struct drm_i915_private > > *dev_priv) > > i915_gem_contexts_fini(dev_priv); > > mutex_unlock(_priv->drm.struct_mutex); > > - intel_uc_fini_misc(dev_priv); > > + intel_uc_fini_wq(dev_priv); > > i915_gem_cleanup_userptr(dev_priv); > > i915_gem_drain_freed_objects(dev_priv); > > @@ -1237,7 +1237,7 @@ static void i915_driver_register(struct > > drm_i915_private *dev_priv) > > /* Reveal our presence to userspace */ > > if (drm_dev_register(dev, 0) == 0) { > > i915_debugfs_register(dev_priv); > > - i915_guc_log_register(dev_priv); > > + intel_uc_log_register(dev_priv); > > i915_setup_sysfs(dev_priv); > > /* Depends on sysfs having been initialized */ > > @@ -1297,7 +1297,7 @@ static void i915_driver_unregister(struct > > drm_i915_private *dev_priv) > > i915_pmu_unregister(dev_priv); > > i915_teardown_sysfs(dev_priv); > > - i915_guc_log_unregister(dev_priv); > > + intel_uc_log_unregister(dev_priv); > > drm_dev_unregister(_priv->drm); > > i915_gem_shrinker_unregister(dev_priv); > > diff --git a/drivers/gpu/drm/i915/i915_gem.c > > b/drivers/gpu/drm/i915/i915_gem.c > > index 14c855b1a3a4..4bf5f25b29e2 100644 > > --- a/drivers/gpu/drm/i915/i915_gem.c > > +++ b/drivers/gpu/drm/i915/i915_gem.c > > @@ -5279,7 +5279,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) > > if (ret) > > return ret; > > - ret = intel_uc_init_misc(dev_priv); > > + ret = intel_uc_init_wq(dev_priv); > > if (ret) > > return ret; > > @@ -5375,7 +5375,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) > > intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); > > mutex_unlock(_priv->drm.struct_mutex); > > - intel_uc_fini_misc(dev_priv); > > + intel_uc_fini_wq(dev_priv); > > if (ret != -EIO) > > i915_gem_cleanup_userptr(dev_priv); > > diff --git a/drivers/gpu/drm/i915/intel_guc_log.c > > b/drivers/gpu/drm/i915/intel_guc_log.c > > index 22a05320817b..f1cab43d334e 100644 > > --- a/drivers/gpu/drm/i915/intel_guc_log.c > > +++ b/drivers/gpu/drm/i915/intel_guc_log.c > > @@ -441,7 +441,7 @@ void intel_guc_log_init_early(struct intel_guc *guc) > > INIT_WORK(>log.runtime.flush_work, capture_logs_work); > > } > > -int intel_guc_log_relay_create(struct intel_guc *guc) > > +int guc_log_relay_create(struct intel_guc *guc) > > { > > struct drm_i915_private *dev_priv = guc_to_i915(guc); > > struct rchan *guc_log_relay_chan; > > @@ -494,7 +494,7 @@ int intel_guc_log_relay_create(struct intel_guc *guc) > > return ret; > > } > > -void intel_guc_log_relay_destroy(struct intel_guc *guc) > > +void guc_log_relay_destroy(struct intel_guc *guc) > > { > > mutex_lock(>log.runtime.relay_lock); > > @@ -512,49 +512,6 @@ void intel_guc_log_relay_destroy(struct intel_guc *guc) > > mutex_unlock(>log.runtime.relay_lock); > > } > > -static int guc_log_late_setup(struct intel_guc *guc) > > -{ > > - struct drm_i915_private *dev_priv = guc_to_i915(guc); > > - int ret; > > - > > - if (!guc_log_has_runtime(guc)) { > > - /* > > -* If log was disabled at boot time, then setup needed
Re: [Intel-gfx] [PATCH 02/15] drm/i915/guc: Create common entry points for log register/unregister
Overall change looks good. Could you please clarify on below: intel_uc_log_register|unregister are removed in patch later in the series. Should we just stay with inner functions then to minimize changes? Thanks Sagar On 2/27/2018 6:22 PM, Michał Winiarski wrote: We have many functions responsible for allocating different parts of runtime called from multiple places. Let's stick with keeping everything in guc_log_register instead. Signed-off-by: Michał WiniarskiCc: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Cc: Sagar Arun Kamble --- drivers/gpu/drm/i915/i915_drv.c | 6 +- drivers/gpu/drm/i915/i915_gem.c | 4 +- drivers/gpu/drm/i915/intel_guc_log.c | 148 ++- drivers/gpu/drm/i915/intel_guc_log.h | 6 +- drivers/gpu/drm/i915/intel_uc.c | 39 - drivers/gpu/drm/i915/intel_uc.h | 6 +- 6 files changed, 91 insertions(+), 118 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index aaa861b51024..719b2be73292 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -636,7 +636,7 @@ static void i915_gem_fini(struct drm_i915_private *dev_priv) i915_gem_contexts_fini(dev_priv); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); i915_gem_cleanup_userptr(dev_priv); i915_gem_drain_freed_objects(dev_priv); @@ -1237,7 +1237,7 @@ static void i915_driver_register(struct drm_i915_private *dev_priv) /* Reveal our presence to userspace */ if (drm_dev_register(dev, 0) == 0) { i915_debugfs_register(dev_priv); - i915_guc_log_register(dev_priv); + intel_uc_log_register(dev_priv); i915_setup_sysfs(dev_priv); /* Depends on sysfs having been initialized */ @@ -1297,7 +1297,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv) i915_pmu_unregister(dev_priv); i915_teardown_sysfs(dev_priv); - i915_guc_log_unregister(dev_priv); + intel_uc_log_unregister(dev_priv); drm_dev_unregister(_priv->drm); i915_gem_shrinker_unregister(dev_priv); diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 14c855b1a3a4..4bf5f25b29e2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -5279,7 +5279,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) if (ret) return ret; - ret = intel_uc_init_misc(dev_priv); + ret = intel_uc_init_wq(dev_priv); if (ret) return ret; @@ -5375,7 +5375,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); if (ret != -EIO) i915_gem_cleanup_userptr(dev_priv); diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c index 22a05320817b..f1cab43d334e 100644 --- a/drivers/gpu/drm/i915/intel_guc_log.c +++ b/drivers/gpu/drm/i915/intel_guc_log.c @@ -441,7 +441,7 @@ void intel_guc_log_init_early(struct intel_guc *guc) INIT_WORK(>log.runtime.flush_work, capture_logs_work); } -int intel_guc_log_relay_create(struct intel_guc *guc) +int guc_log_relay_create(struct intel_guc *guc) { struct drm_i915_private *dev_priv = guc_to_i915(guc); struct rchan *guc_log_relay_chan; @@ -494,7 +494,7 @@ int intel_guc_log_relay_create(struct intel_guc *guc) return ret; } -void intel_guc_log_relay_destroy(struct intel_guc *guc) +void guc_log_relay_destroy(struct intel_guc *guc) { mutex_lock(>log.runtime.relay_lock); @@ -512,49 +512,6 @@ void intel_guc_log_relay_destroy(struct intel_guc *guc) mutex_unlock(>log.runtime.relay_lock); } -static int guc_log_late_setup(struct intel_guc *guc) -{ - struct drm_i915_private *dev_priv = guc_to_i915(guc); - int ret; - - if (!guc_log_has_runtime(guc)) { - /* -* If log was disabled at boot time, then setup needed to handle -* log buffer flush interrupts would not have been done yet, so -* do that now. -*/ - ret = intel_guc_log_relay_create(guc); - if (ret) - goto err; - - mutex_lock(_priv->drm.struct_mutex); - intel_runtime_pm_get(dev_priv); - ret = guc_log_runtime_create(guc); - intel_runtime_pm_put(dev_priv); - mutex_unlock(_priv->drm.struct_mutex); - - if (ret) - goto err_relay; -
Re: [Intel-gfx] [PATCH 02/15] drm/i915/guc: Create common entry points for log register/unregister
On Tue, 27 Feb 2018 13:52:17 +0100, Michał Winiarskiwrote: We have many functions responsible for allocating different parts of runtime called from multiple places. Let's stick with keeping s/runtime/GuC log runtime ? everything in guc_log_register instead. Signed-off-by: Michał Winiarski Cc: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Cc: Sagar Arun Kamble --- drivers/gpu/drm/i915/i915_drv.c | 6 +- drivers/gpu/drm/i915/i915_gem.c | 4 +- drivers/gpu/drm/i915/intel_guc_log.c | 148 ++- drivers/gpu/drm/i915/intel_guc_log.h | 6 +- drivers/gpu/drm/i915/intel_uc.c | 39 - drivers/gpu/drm/i915/intel_uc.h | 6 +- 6 files changed, 91 insertions(+), 118 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index aaa861b51024..719b2be73292 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -636,7 +636,7 @@ static void i915_gem_fini(struct drm_i915_private *dev_priv) i915_gem_contexts_fini(dev_priv); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); i915_gem_cleanup_userptr(dev_priv); i915_gem_drain_freed_objects(dev_priv); @@ -1237,7 +1237,7 @@ static void i915_driver_register(struct drm_i915_private *dev_priv) /* Reveal our presence to userspace */ if (drm_dev_register(dev, 0) == 0) { i915_debugfs_register(dev_priv); - i915_guc_log_register(dev_priv); + intel_uc_log_register(dev_priv); btw, maybe we should place this function little later after /* Depends on debugfs having been initialized */ i915_setup_sysfs(dev_priv); /* Depends on sysfs having been initialized */ @@ -1297,7 +1297,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv) i915_pmu_unregister(dev_priv); i915_teardown_sysfs(dev_priv); - i915_guc_log_unregister(dev_priv); + intel_uc_log_unregister(dev_priv); drm_dev_unregister(_priv->drm); i915_gem_shrinker_unregister(dev_priv); diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 14c855b1a3a4..4bf5f25b29e2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -5279,7 +5279,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) if (ret) return ret; - ret = intel_uc_init_misc(dev_priv); + ret = intel_uc_init_wq(dev_priv); if (ret) return ret; @@ -5375,7 +5375,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); if (ret != -EIO) i915_gem_cleanup_userptr(dev_priv); diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c index 22a05320817b..f1cab43d334e 100644 --- a/drivers/gpu/drm/i915/intel_guc_log.c +++ b/drivers/gpu/drm/i915/intel_guc_log.c @@ -441,7 +441,7 @@ void intel_guc_log_init_early(struct intel_guc *guc) INIT_WORK(>log.runtime.flush_work, capture_logs_work); } -int intel_guc_log_relay_create(struct intel_guc *guc) +int guc_log_relay_create(struct intel_guc *guc) { struct drm_i915_private *dev_priv = guc_to_i915(guc); struct rchan *guc_log_relay_chan; @@ -494,7 +494,7 @@ int intel_guc_log_relay_create(struct intel_guc *guc) return ret; } -void intel_guc_log_relay_destroy(struct intel_guc *guc) +void guc_log_relay_destroy(struct intel_guc *guc) { mutex_lock(>log.runtime.relay_lock); @@ -512,49 +512,6 @@ void intel_guc_log_relay_destroy(struct intel_guc *guc) mutex_unlock(>log.runtime.relay_lock); } -static int guc_log_late_setup(struct intel_guc *guc) -{ - struct drm_i915_private *dev_priv = guc_to_i915(guc); - int ret; - - if (!guc_log_has_runtime(guc)) { - /* -* If log was disabled at boot time, then setup needed to handle -* log buffer flush interrupts would not have been done yet, so -* do that now. -*/ - ret = intel_guc_log_relay_create(guc); - if (ret) - goto err; - - mutex_lock(_priv->drm.struct_mutex); - intel_runtime_pm_get(dev_priv); - ret = guc_log_runtime_create(guc); - intel_runtime_pm_put(dev_priv); - mutex_unlock(_priv->drm.struct_mutex); - - if (ret) - goto err_relay; - } - -
[Intel-gfx] [PATCH 02/15] drm/i915/guc: Create common entry points for log register/unregister
We have many functions responsible for allocating different parts of runtime called from multiple places. Let's stick with keeping everything in guc_log_register instead. Signed-off-by: Michał WiniarskiCc: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Cc: Sagar Arun Kamble --- drivers/gpu/drm/i915/i915_drv.c | 6 +- drivers/gpu/drm/i915/i915_gem.c | 4 +- drivers/gpu/drm/i915/intel_guc_log.c | 148 ++- drivers/gpu/drm/i915/intel_guc_log.h | 6 +- drivers/gpu/drm/i915/intel_uc.c | 39 - drivers/gpu/drm/i915/intel_uc.h | 6 +- 6 files changed, 91 insertions(+), 118 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index aaa861b51024..719b2be73292 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -636,7 +636,7 @@ static void i915_gem_fini(struct drm_i915_private *dev_priv) i915_gem_contexts_fini(dev_priv); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); i915_gem_cleanup_userptr(dev_priv); i915_gem_drain_freed_objects(dev_priv); @@ -1237,7 +1237,7 @@ static void i915_driver_register(struct drm_i915_private *dev_priv) /* Reveal our presence to userspace */ if (drm_dev_register(dev, 0) == 0) { i915_debugfs_register(dev_priv); - i915_guc_log_register(dev_priv); + intel_uc_log_register(dev_priv); i915_setup_sysfs(dev_priv); /* Depends on sysfs having been initialized */ @@ -1297,7 +1297,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv) i915_pmu_unregister(dev_priv); i915_teardown_sysfs(dev_priv); - i915_guc_log_unregister(dev_priv); + intel_uc_log_unregister(dev_priv); drm_dev_unregister(_priv->drm); i915_gem_shrinker_unregister(dev_priv); diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 14c855b1a3a4..4bf5f25b29e2 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -5279,7 +5279,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) if (ret) return ret; - ret = intel_uc_init_misc(dev_priv); + ret = intel_uc_init_wq(dev_priv); if (ret) return ret; @@ -5375,7 +5375,7 @@ int i915_gem_init(struct drm_i915_private *dev_priv) intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL); mutex_unlock(_priv->drm.struct_mutex); - intel_uc_fini_misc(dev_priv); + intel_uc_fini_wq(dev_priv); if (ret != -EIO) i915_gem_cleanup_userptr(dev_priv); diff --git a/drivers/gpu/drm/i915/intel_guc_log.c b/drivers/gpu/drm/i915/intel_guc_log.c index 22a05320817b..f1cab43d334e 100644 --- a/drivers/gpu/drm/i915/intel_guc_log.c +++ b/drivers/gpu/drm/i915/intel_guc_log.c @@ -441,7 +441,7 @@ void intel_guc_log_init_early(struct intel_guc *guc) INIT_WORK(>log.runtime.flush_work, capture_logs_work); } -int intel_guc_log_relay_create(struct intel_guc *guc) +int guc_log_relay_create(struct intel_guc *guc) { struct drm_i915_private *dev_priv = guc_to_i915(guc); struct rchan *guc_log_relay_chan; @@ -494,7 +494,7 @@ int intel_guc_log_relay_create(struct intel_guc *guc) return ret; } -void intel_guc_log_relay_destroy(struct intel_guc *guc) +void guc_log_relay_destroy(struct intel_guc *guc) { mutex_lock(>log.runtime.relay_lock); @@ -512,49 +512,6 @@ void intel_guc_log_relay_destroy(struct intel_guc *guc) mutex_unlock(>log.runtime.relay_lock); } -static int guc_log_late_setup(struct intel_guc *guc) -{ - struct drm_i915_private *dev_priv = guc_to_i915(guc); - int ret; - - if (!guc_log_has_runtime(guc)) { - /* -* If log was disabled at boot time, then setup needed to handle -* log buffer flush interrupts would not have been done yet, so -* do that now. -*/ - ret = intel_guc_log_relay_create(guc); - if (ret) - goto err; - - mutex_lock(_priv->drm.struct_mutex); - intel_runtime_pm_get(dev_priv); - ret = guc_log_runtime_create(guc); - intel_runtime_pm_put(dev_priv); - mutex_unlock(_priv->drm.struct_mutex); - - if (ret) - goto err_relay; - } - - ret = guc_log_relay_file_create(guc); - if (ret) - goto err_runtime; - - return 0; - -err_runtime: - mutex_lock(_priv->drm.struct_mutex); - guc_log_runtime_destroy(guc); -