2013/10/25 Imre Deak <imre.deak@xxxxxxxxx>: > The only real need for this field was in > i915_{request,release}_power_well, but there we can get at it by a > container_of magic. Also since in the future we'll have multiple power > wells each with its own power_well struct it makes sense to remove the > field from there where it'd be just redundancy. > > Suggested-by: Paulo Zanoni <paulo.zanoni@xxxxxxxxx> My original idea was to just move it from i915_power_well to i915_power_domains, so hsw_pwr (which is the new external static thing) would still have a pointer to our driver. This way we wouldn't need the container_of magic. But your solution works too, and saves 4/8 bytes :) Reviewed-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > Signed-off-by: Imre Deak <imre.deak@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.h | 1 - > drivers/gpu/drm/i915/intel_pm.c | 29 ++++++++++++++++++++--------- > 2 files changed, 20 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 3565db2..2731fbb 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -911,7 +911,6 @@ struct intel_ilk_power_mgmt { > > /* Power well structure for haswell */ > struct i915_power_well { > - struct drm_device *device; > /* power well enable/disable usage count */ > int count; > }; > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 4c38e28..4f84a4b 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -5608,17 +5608,19 @@ static void __intel_set_power_well(struct drm_device *dev, bool enable) > } > } > > -static void __intel_power_well_get(struct i915_power_well *power_well) > +static void __intel_power_well_get(struct drm_device *dev, > + struct i915_power_well *power_well) > { > if (!power_well->count++) > - __intel_set_power_well(power_well->device, true); > + __intel_set_power_well(dev, true); > } > > -static void __intel_power_well_put(struct i915_power_well *power_well) > +static void __intel_power_well_put(struct drm_device *dev, > + struct i915_power_well *power_well) > { > WARN_ON(!power_well->count); > if (!--power_well->count) > - __intel_set_power_well(power_well->device, false); > + __intel_set_power_well(dev, false); > } > > void intel_display_power_get(struct drm_device *dev, > @@ -5636,7 +5638,7 @@ void intel_display_power_get(struct drm_device *dev, > power_domains = &dev_priv->power_domains; > > mutex_lock(&power_domains->lock); > - __intel_power_well_get(&power_domains->power_wells[0]); > + __intel_power_well_get(dev, &power_domains->power_wells[0]); > mutex_unlock(&power_domains->lock); > } > > @@ -5655,7 +5657,7 @@ void intel_display_power_put(struct drm_device *dev, > power_domains = &dev_priv->power_domains; > > mutex_lock(&power_domains->lock); > - __intel_power_well_put(&power_domains->power_wells[0]); > + __intel_power_well_put(dev, &power_domains->power_wells[0]); > mutex_unlock(&power_domains->lock); > } > > @@ -5664,11 +5666,16 @@ static struct i915_power_domains *hsw_pwr; > /* Display audio driver power well request */ > void i915_request_power_well(void) > { > + struct drm_i915_private *dev_priv; > + > if (WARN_ON(!hsw_pwr)) > return; > > + dev_priv = container_of(hsw_pwr, struct drm_i915_private, > + power_domains); > + > mutex_lock(&hsw_pwr->lock); > - __intel_power_well_get(&hsw_pwr->power_wells[0]); > + __intel_power_well_get(dev_priv->dev, &hsw_pwr->power_wells[0]); > mutex_unlock(&hsw_pwr->lock); > } > EXPORT_SYMBOL_GPL(i915_request_power_well); > @@ -5676,11 +5683,16 @@ EXPORT_SYMBOL_GPL(i915_request_power_well); > /* Display audio driver power well release */ > void i915_release_power_well(void) > { > + struct drm_i915_private *dev_priv; > + > if (WARN_ON(!hsw_pwr)) > return; > > + dev_priv = container_of(hsw_pwr, struct drm_i915_private, > + power_domains); > + > mutex_lock(&hsw_pwr->lock); > - __intel_power_well_put(&hsw_pwr->power_wells[0]); > + __intel_power_well_put(dev_priv->dev, &hsw_pwr->power_wells[0]); > mutex_unlock(&hsw_pwr->lock); > } > EXPORT_SYMBOL_GPL(i915_release_power_well); > @@ -5695,7 +5707,6 @@ int i915_init_power_well(struct drm_device *dev) > hsw_pwr = power_domains; > > power_well = &power_domains->power_wells[0]; > - power_well->device = dev; > power_well->count = 0; > > return 0; > -- > 1.8.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Paulo Zanoni _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx