Message ID | 1461805865-212590-10-git-send-email-tom.orourke@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Apr 27, 2016 at 06:10:53PM -0700, tom.orourke@intel.com wrote: > From: Tom O'Rourke <Tom.O'Rourke@intel.com> > > v2: Add mutex lock/unlock > > Signed-off-by: Tom O'Rourke <Tom.O'Rourke@intel.com> > --- > drivers/gpu/drm/i915/intel_drv.h | 1 + > drivers/gpu/drm/i915/intel_pm.c | 2 +- > drivers/gpu/drm/i915/intel_slpc.c | 5 +++++ > 3 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index 47e538a..006a8c7 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -1612,6 +1612,7 @@ void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv); > void intel_pm_setup(struct drm_device *dev); > void intel_gpu_ips_init(struct drm_i915_private *dev_priv); > void intel_gpu_ips_teardown(void); > +void gen6_init_rps_frequencies(struct drm_device *dev); ??? You appear to be exporting a private gen-specific routine. Why? You haven't explained why! From the looks of it you have a bootstrap ordering issue. Why did you choose to do this? Why didn't you choose to export a more general setup routine? Why couldn't you use an existing setup point? Why couldn't we reorder as required? -Chris
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 47e538a..006a8c7 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -1612,6 +1612,7 @@ void intel_init_clock_gating_hooks(struct drm_i915_private *dev_priv); void intel_pm_setup(struct drm_device *dev); void intel_gpu_ips_init(struct drm_i915_private *dev_priv); void intel_gpu_ips_teardown(void); +void gen6_init_rps_frequencies(struct drm_device *dev); void intel_init_gt_powersave(struct drm_device *dev); void intel_cleanup_gt_powersave(struct drm_device *dev); void intel_enable_gt_powersave(struct drm_device *dev); diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index f480551..b4f753e 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -4738,7 +4738,7 @@ int intel_enable_rc6(const struct drm_device *dev) return i915.enable_rc6; } -static void gen6_init_rps_frequencies(struct drm_device *dev) +void gen6_init_rps_frequencies(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; uint32_t rp_state_cap; diff --git a/drivers/gpu/drm/i915/intel_slpc.c b/drivers/gpu/drm/i915/intel_slpc.c index 5e039d5..bacbfed 100644 --- a/drivers/gpu/drm/i915/intel_slpc.c +++ b/drivers/gpu/drm/i915/intel_slpc.c @@ -92,6 +92,11 @@ void intel_slpc_init(struct drm_device *dev) struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_gem_object *obj; + /* Initialize the rps frequecny values */ + mutex_lock(&dev_priv->rps.hw_lock); + gen6_init_rps_frequencies(dev); + mutex_unlock(&dev_priv->rps.hw_lock); + /* Allocate shared data structure */ obj = dev_priv->guc.slpc.shared_data_obj; if (!obj) {