Message ID | 1467485491-17247-3-git-send-email-akash.goel@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 02/07/16 19:51, akash.goel@intel.com wrote: > From: Akash Goel <akash.goel@intel.com> > > So far there were 2 fields related to GuC logs in 'intel_guc' structure. > For the support of capturing GuC logs & storing them in a local buffer, > multiple new fields would have to be added. This warrants a separate > structure to contain the fields related to GuC logging state. > Added a new structure 'intel_guc_log' and instance of it inside > 'intel_guc' structure. > > Signed-off-by: Akash Goel <akash.goel@intel.com> > --- > drivers/gpu/drm/i915/i915_debugfs.c | 2 +- > drivers/gpu/drm/i915/i915_guc_submission.c | 10 +++++----- > drivers/gpu/drm/i915/intel_guc.h | 8 ++++++-- > drivers/gpu/drm/i915/intel_guc_loader.c | 2 +- > 4 files changed, 13 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c > index 5185e02..de197535 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -2625,7 +2625,7 @@ static int i915_guc_log_dump(struct seq_file *m, void *data) > struct drm_info_node *node = m->private; > struct drm_device *dev = node->minor->dev; > struct drm_i915_private *dev_priv = dev->dev_private; > - struct drm_i915_gem_object *log_obj = dev_priv->guc.log_obj; > + struct drm_i915_gem_object *log_obj = dev_priv->guc.log.obj; > u32 *log; > int i = 0, pg; > > diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c > index 28a810f..fedf82b 100644 > --- a/drivers/gpu/drm/i915/i915_guc_submission.c > +++ b/drivers/gpu/drm/i915/i915_guc_submission.c > @@ -835,7 +835,7 @@ static void guc_create_log(struct intel_guc *guc) > GUC_LOG_ISR_PAGES + 1 + > GUC_LOG_CRASH_PAGES + 1) << PAGE_SHIFT; > > - obj = guc->log_obj; > + obj = guc->log.obj; > if (!obj) { > obj = gem_allocate_guc_obj(dev_priv, size); > if (!obj) { > @@ -844,7 +844,7 @@ static void guc_create_log(struct intel_guc *guc) > return; > } > > - guc->log_obj = obj; > + guc->log.obj = obj; > } > > /* each allocated unit is a page */ > @@ -854,7 +854,7 @@ static void guc_create_log(struct intel_guc *guc) > (GUC_LOG_CRASH_PAGES << GUC_LOG_CRASH_SHIFT); > > offset = i915_gem_obj_ggtt_offset(obj) >> PAGE_SHIFT; /* in pages */ > - guc->log_flags = (offset << GUC_LOG_BUF_ADDR_SHIFT) | flags; > + guc->log.flags = (offset << GUC_LOG_BUF_ADDR_SHIFT) | flags; > } > > static void init_guc_policies(struct guc_policies *policies) > @@ -1015,8 +1015,8 @@ void i915_guc_submission_fini(struct drm_i915_private *dev_priv) > gem_release_guc_obj(dev_priv->guc.ads_obj); > guc->ads_obj = NULL; > > - gem_release_guc_obj(dev_priv->guc.log_obj); > - guc->log_obj = NULL; > + gem_release_guc_obj(dev_priv->guc.log.obj); > + guc->log.obj = NULL; > > if (guc->ctx_pool_obj) > ida_destroy(&guc->ctx_ids); > diff --git a/drivers/gpu/drm/i915/intel_guc.h b/drivers/gpu/drm/i915/intel_guc.h > index 3e3e743..d52eca3 100644 > --- a/drivers/gpu/drm/i915/intel_guc.h > +++ b/drivers/gpu/drm/i915/intel_guc.h > @@ -122,10 +122,14 @@ struct intel_guc_fw { > uint32_t ucode_offset; > }; > > +struct intel_guc_log { > + uint32_t flags; > + struct drm_i915_gem_object *obj; > +}; > + > struct intel_guc { > struct intel_guc_fw guc_fw; > - uint32_t log_flags; > - struct drm_i915_gem_object *log_obj; > + struct intel_guc_log log; > > struct drm_i915_gem_object *ads_obj; > > diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c > index db3c897..8ef9b7f 100644 > --- a/drivers/gpu/drm/i915/intel_guc_loader.c > +++ b/drivers/gpu/drm/i915/intel_guc_loader.c > @@ -173,7 +173,7 @@ static void set_guc_init_params(struct drm_i915_private *dev_priv) > params[GUC_CTL_FEATURE] |= GUC_CTL_DISABLE_SCHEDULER | > GUC_CTL_VCS2_ENABLED; > > - params[GUC_CTL_LOG_PARAMS] = guc->log_flags; > + params[GUC_CTL_LOG_PARAMS] = guc->log.flags; > > if (i915.guc_log_level >= 0) > params[GUC_CTL_DEBUG] = > Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Regards, Tvrtko
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 5185e02..de197535 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2625,7 +2625,7 @@ static int i915_guc_log_dump(struct seq_file *m, void *data) struct drm_info_node *node = m->private; struct drm_device *dev = node->minor->dev; struct drm_i915_private *dev_priv = dev->dev_private; - struct drm_i915_gem_object *log_obj = dev_priv->guc.log_obj; + struct drm_i915_gem_object *log_obj = dev_priv->guc.log.obj; u32 *log; int i = 0, pg; diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c index 28a810f..fedf82b 100644 --- a/drivers/gpu/drm/i915/i915_guc_submission.c +++ b/drivers/gpu/drm/i915/i915_guc_submission.c @@ -835,7 +835,7 @@ static void guc_create_log(struct intel_guc *guc) GUC_LOG_ISR_PAGES + 1 + GUC_LOG_CRASH_PAGES + 1) << PAGE_SHIFT; - obj = guc->log_obj; + obj = guc->log.obj; if (!obj) { obj = gem_allocate_guc_obj(dev_priv, size); if (!obj) { @@ -844,7 +844,7 @@ static void guc_create_log(struct intel_guc *guc) return; } - guc->log_obj = obj; + guc->log.obj = obj; } /* each allocated unit is a page */ @@ -854,7 +854,7 @@ static void guc_create_log(struct intel_guc *guc) (GUC_LOG_CRASH_PAGES << GUC_LOG_CRASH_SHIFT); offset = i915_gem_obj_ggtt_offset(obj) >> PAGE_SHIFT; /* in pages */ - guc->log_flags = (offset << GUC_LOG_BUF_ADDR_SHIFT) | flags; + guc->log.flags = (offset << GUC_LOG_BUF_ADDR_SHIFT) | flags; } static void init_guc_policies(struct guc_policies *policies) @@ -1015,8 +1015,8 @@ void i915_guc_submission_fini(struct drm_i915_private *dev_priv) gem_release_guc_obj(dev_priv->guc.ads_obj); guc->ads_obj = NULL; - gem_release_guc_obj(dev_priv->guc.log_obj); - guc->log_obj = NULL; + gem_release_guc_obj(dev_priv->guc.log.obj); + guc->log.obj = NULL; if (guc->ctx_pool_obj) ida_destroy(&guc->ctx_ids); diff --git a/drivers/gpu/drm/i915/intel_guc.h b/drivers/gpu/drm/i915/intel_guc.h index 3e3e743..d52eca3 100644 --- a/drivers/gpu/drm/i915/intel_guc.h +++ b/drivers/gpu/drm/i915/intel_guc.h @@ -122,10 +122,14 @@ struct intel_guc_fw { uint32_t ucode_offset; }; +struct intel_guc_log { + uint32_t flags; + struct drm_i915_gem_object *obj; +}; + struct intel_guc { struct intel_guc_fw guc_fw; - uint32_t log_flags; - struct drm_i915_gem_object *log_obj; + struct intel_guc_log log; struct drm_i915_gem_object *ads_obj; diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c index db3c897..8ef9b7f 100644 --- a/drivers/gpu/drm/i915/intel_guc_loader.c +++ b/drivers/gpu/drm/i915/intel_guc_loader.c @@ -173,7 +173,7 @@ static void set_guc_init_params(struct drm_i915_private *dev_priv) params[GUC_CTL_FEATURE] |= GUC_CTL_DISABLE_SCHEDULER | GUC_CTL_VCS2_ENABLED; - params[GUC_CTL_LOG_PARAMS] = guc->log_flags; + params[GUC_CTL_LOG_PARAMS] = guc->log.flags; if (i915.guc_log_level >= 0) params[GUC_CTL_DEBUG] =