On Wed, Jul 27, 2016 at 12:14:56PM +0100, Chris Wilson wrote: > Rather than a mismash of struct drm_device *dev and struct > drm_i915_private *dev_priv being used freely within a function, be > consistent and only pass along dev_priv. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> Yeah, with the embedding there's really no reason any more not to use dev_priv everywhere for internal functions. Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/i915/intel_display.c | 10 ++++---- > drivers/gpu/drm/i915/intel_dp.c | 14 +++++------- > drivers/gpu/drm/i915/intel_drv.h | 21 +++++++++-------- > drivers/gpu/drm/i915/intel_frontbuffer.c | 39 ++++++++++++-------------------- > drivers/gpu/drm/i915/intel_overlay.c | 3 +-- > drivers/gpu/drm/i915/intel_psr.c | 26 +++++++++------------ > 6 files changed, 49 insertions(+), 64 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 1c70f68328b4..9f15ced6fc7c 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -4565,12 +4565,11 @@ static void intel_post_plane_update(struct intel_crtc_state *old_crtc_state) > struct drm_atomic_state *old_state = old_crtc_state->base.state; > struct intel_crtc_state *pipe_config = > to_intel_crtc_state(crtc->base.state); > - struct drm_device *dev = crtc->base.dev; > struct drm_plane *primary = crtc->base.primary; > struct drm_plane_state *old_pri_state = > drm_atomic_get_existing_plane_state(old_state, primary); > > - intel_frontbuffer_flip(dev, pipe_config->fb_bits); > + intel_frontbuffer_flip(to_i915(crtc->base.dev), pipe_config->fb_bits); > > crtc->wm.cxsr_allowed = true; > > @@ -4693,7 +4692,7 @@ static void intel_crtc_disable_planes(struct drm_crtc *crtc, unsigned plane_mask > * to compute the mask of flip planes precisely. For the time being > * consider this a flip to a NULL plane. > */ > - intel_frontbuffer_flip(dev, INTEL_FRONTBUFFER_ALL_MASK(pipe)); > + intel_frontbuffer_flip(to_i915(dev), INTEL_FRONTBUFFER_ALL_MASK(pipe)); > } > > static void ironlake_crtc_enable(struct drm_crtc *crtc) > @@ -10959,7 +10958,8 @@ static void intel_unpin_work_fn(struct work_struct *__work) > > i915_gem_request_put(work->flip_queued_req); > > - intel_frontbuffer_flip_complete(dev, to_intel_plane(primary)->frontbuffer_bit); > + intel_frontbuffer_flip_complete(to_i915(dev), > + to_intel_plane(primary)->frontbuffer_bit); > intel_fbc_post_update(crtc); > drm_framebuffer_unreference(work->old_fb); > > @@ -11734,7 +11734,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, > to_intel_plane(primary)->frontbuffer_bit); > mutex_unlock(&dev->struct_mutex); > > - intel_frontbuffer_flip_prepare(dev, > + intel_frontbuffer_flip_prepare(to_i915(dev), > to_intel_plane(primary)->frontbuffer_bit); > > trace_i915_flip_request(intel_crtc->plane, obj); > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c > index 21b04c3eda41..2fd90d153fe7 100644 > --- a/drivers/gpu/drm/i915/intel_dp.c > +++ b/drivers/gpu/drm/i915/intel_dp.c > @@ -5186,7 +5186,7 @@ unlock: > > /** > * intel_edp_drrs_invalidate - Disable Idleness DRRS > - * @dev: DRM device > + * @dev_priv: i915 device > * @frontbuffer_bits: frontbuffer plane tracking bits > * > * This function gets called everytime rendering on the given planes start. > @@ -5194,10 +5194,9 @@ unlock: > * > * Dirty frontbuffers relevant to DRRS are tracked in busy_frontbuffer_bits. > */ > -void intel_edp_drrs_invalidate(struct drm_device *dev, > - unsigned frontbuffer_bits) > +void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv, > + unsigned frontbuffer_bits) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > struct drm_crtc *crtc; > enum pipe pipe; > > @@ -5229,7 +5228,7 @@ void intel_edp_drrs_invalidate(struct drm_device *dev, > > /** > * intel_edp_drrs_flush - Restart Idleness DRRS > - * @dev: DRM device > + * @dev_priv: i915 device > * @frontbuffer_bits: frontbuffer plane tracking bits > * > * This function gets called every time rendering on the given planes has > @@ -5239,10 +5238,9 @@ void intel_edp_drrs_invalidate(struct drm_device *dev, > * > * Dirty frontbuffers relevant to DRRS are tracked in busy_frontbuffer_bits. > */ > -void intel_edp_drrs_flush(struct drm_device *dev, > - unsigned frontbuffer_bits) > +void intel_edp_drrs_flush(struct drm_i915_private *dev_priv, > + unsigned frontbuffer_bits) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > struct drm_crtc *crtc; > enum pipe pipe; > > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index 5294039cf238..6f447d485db1 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -1135,11 +1135,11 @@ void intel_ddi_set_vc_payload_alloc(struct drm_crtc *crtc, bool state); > uint32_t ddi_signal_levels(struct intel_dp *intel_dp); > > /* intel_frontbuffer.c */ > -void intel_frontbuffer_flip_prepare(struct drm_device *dev, > +void intel_frontbuffer_flip_prepare(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits); > -void intel_frontbuffer_flip_complete(struct drm_device *dev, > +void intel_frontbuffer_flip_complete(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits); > -void intel_frontbuffer_flip(struct drm_device *dev, > +void intel_frontbuffer_flip(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits); > unsigned int intel_fb_align_height(struct drm_device *dev, > unsigned int height, > @@ -1413,11 +1413,12 @@ uint32_t intel_dp_pack_aux(const uint8_t *src, int src_bytes); > void intel_plane_destroy(struct drm_plane *plane); > void intel_edp_drrs_enable(struct intel_dp *intel_dp); > void intel_edp_drrs_disable(struct intel_dp *intel_dp); > -void intel_edp_drrs_invalidate(struct drm_device *dev, > - unsigned frontbuffer_bits); > -void intel_edp_drrs_flush(struct drm_device *dev, unsigned frontbuffer_bits); > +void intel_edp_drrs_invalidate(struct drm_i915_private *dev_priv, > + unsigned frontbuffer_bits); > +void intel_edp_drrs_flush(struct drm_i915_private *dev_priv, > + unsigned frontbuffer_bits); > bool intel_digital_port_connected(struct drm_i915_private *dev_priv, > - struct intel_digital_port *port); > + struct intel_digital_port *port); > > void > intel_dp_program_link_training_pattern(struct intel_dp *intel_dp, > @@ -1590,13 +1591,13 @@ static inline void intel_backlight_device_unregister(struct intel_connector *con > /* intel_psr.c */ > void intel_psr_enable(struct intel_dp *intel_dp); > void intel_psr_disable(struct intel_dp *intel_dp); > -void intel_psr_invalidate(struct drm_device *dev, > +void intel_psr_invalidate(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits); > -void intel_psr_flush(struct drm_device *dev, > +void intel_psr_flush(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits, > enum fb_op_origin origin); > void intel_psr_init(struct drm_device *dev); > -void intel_psr_single_frame_update(struct drm_device *dev, > +void intel_psr_single_frame_update(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits); > > /* intel_runtime_pm.c */ > diff --git a/drivers/gpu/drm/i915/intel_frontbuffer.c b/drivers/gpu/drm/i915/intel_frontbuffer.c > index 636324da21c2..42f718bb584c 100644 > --- a/drivers/gpu/drm/i915/intel_frontbuffer.c > +++ b/drivers/gpu/drm/i915/intel_frontbuffer.c > @@ -80,8 +80,7 @@ void __intel_fb_obj_invalidate(struct drm_i915_gem_object *obj, > enum fb_op_origin origin, > unsigned int frontbuffer_bits) > { > - struct drm_device *dev = obj->base.dev; > - struct drm_i915_private *dev_priv = to_i915(dev); > + struct drm_i915_private *dev_priv = to_i915(obj->base.dev); > > if (origin == ORIGIN_CS) { > spin_lock(&dev_priv->fb_tracking.lock); > @@ -90,8 +89,8 @@ void __intel_fb_obj_invalidate(struct drm_i915_gem_object *obj, > spin_unlock(&dev_priv->fb_tracking.lock); > } > > - intel_psr_invalidate(dev, frontbuffer_bits); > - intel_edp_drrs_invalidate(dev, frontbuffer_bits); > + intel_psr_invalidate(dev_priv, frontbuffer_bits); > + intel_edp_drrs_invalidate(dev_priv, frontbuffer_bits); > intel_fbc_invalidate(dev_priv, frontbuffer_bits, origin); > } > > @@ -107,12 +106,10 @@ void __intel_fb_obj_invalidate(struct drm_i915_gem_object *obj, > * > * Can be called without any locks held. > */ > -static void intel_frontbuffer_flush(struct drm_device *dev, > +static void intel_frontbuffer_flush(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits, > enum fb_op_origin origin) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > - > /* Delay flushing when rings are still busy.*/ > spin_lock(&dev_priv->fb_tracking.lock); > frontbuffer_bits &= ~dev_priv->fb_tracking.busy_bits; > @@ -121,8 +118,8 @@ static void intel_frontbuffer_flush(struct drm_device *dev, > if (frontbuffer_bits == 0) > return; > > - intel_edp_drrs_flush(dev, frontbuffer_bits); > - intel_psr_flush(dev, frontbuffer_bits, origin); > + intel_edp_drrs_flush(dev_priv, frontbuffer_bits); > + intel_psr_flush(dev_priv, frontbuffer_bits, origin); > intel_fbc_flush(dev_priv, frontbuffer_bits, origin); > } > > @@ -141,8 +138,7 @@ void __intel_fb_obj_flush(struct drm_i915_gem_object *obj, > enum fb_op_origin origin, > unsigned int frontbuffer_bits) > { > - struct drm_device *dev = obj->base.dev; > - struct drm_i915_private *dev_priv = to_i915(dev); > + struct drm_i915_private *dev_priv = to_i915(obj->base.dev); > > if (retire) { > spin_lock(&dev_priv->fb_tracking.lock); > @@ -153,7 +149,7 @@ void __intel_fb_obj_flush(struct drm_i915_gem_object *obj, > } > > if (frontbuffer_bits) > - intel_frontbuffer_flush(dev, frontbuffer_bits, origin); > + intel_frontbuffer_flush(dev_priv, frontbuffer_bits, origin); > } > > /** > @@ -168,18 +164,16 @@ void __intel_fb_obj_flush(struct drm_i915_gem_object *obj, > * > * Can be called without any locks held. > */ > -void intel_frontbuffer_flip_prepare(struct drm_device *dev, > +void intel_frontbuffer_flip_prepare(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > - > spin_lock(&dev_priv->fb_tracking.lock); > dev_priv->fb_tracking.flip_bits |= frontbuffer_bits; > /* Remove stale busy bits due to the old buffer. */ > dev_priv->fb_tracking.busy_bits &= ~frontbuffer_bits; > spin_unlock(&dev_priv->fb_tracking.lock); > > - intel_psr_single_frame_update(dev, frontbuffer_bits); > + intel_psr_single_frame_update(dev_priv, frontbuffer_bits); > } > > /** > @@ -192,11 +186,9 @@ void intel_frontbuffer_flip_prepare(struct drm_device *dev, > * > * Can be called without any locks held. > */ > -void intel_frontbuffer_flip_complete(struct drm_device *dev, > +void intel_frontbuffer_flip_complete(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > - > spin_lock(&dev_priv->fb_tracking.lock); > /* Mask any cancelled flips. */ > frontbuffer_bits &= dev_priv->fb_tracking.flip_bits; > @@ -204,7 +196,8 @@ void intel_frontbuffer_flip_complete(struct drm_device *dev, > spin_unlock(&dev_priv->fb_tracking.lock); > > if (frontbuffer_bits) > - intel_frontbuffer_flush(dev, frontbuffer_bits, ORIGIN_FLIP); > + intel_frontbuffer_flush(dev_priv, > + frontbuffer_bits, ORIGIN_FLIP); > } > > /** > @@ -218,15 +211,13 @@ void intel_frontbuffer_flip_complete(struct drm_device *dev, > * > * Can be called without any locks held. > */ > -void intel_frontbuffer_flip(struct drm_device *dev, > +void intel_frontbuffer_flip(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > - > spin_lock(&dev_priv->fb_tracking.lock); > /* Remove stale busy bits due to the old buffer. */ > dev_priv->fb_tracking.busy_bits &= ~frontbuffer_bits; > spin_unlock(&dev_priv->fb_tracking.lock); > > - intel_frontbuffer_flush(dev, frontbuffer_bits, ORIGIN_FLIP); > + intel_frontbuffer_flush(dev_priv, frontbuffer_bits, ORIGIN_FLIP); > } > diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c > index 217fefc49bf9..ad08df49ed48 100644 > --- a/drivers/gpu/drm/i915/intel_overlay.c > +++ b/drivers/gpu/drm/i915/intel_overlay.c > @@ -839,8 +839,7 @@ static int intel_overlay_do_put_image(struct intel_overlay *overlay, > overlay->old_vid_bo = overlay->vid_bo; > overlay->vid_bo = new_bo; > > - intel_frontbuffer_flip(&dev_priv->drm, > - INTEL_FRONTBUFFER_OVERLAY(pipe)); > + intel_frontbuffer_flip(dev_priv, INTEL_FRONTBUFFER_OVERLAY(pipe)); > > return 0; > > diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c > index 68bd0bb34817..adf2ce0f38c0 100644 > --- a/drivers/gpu/drm/i915/intel_psr.c > +++ b/drivers/gpu/drm/i915/intel_psr.c > @@ -628,9 +628,8 @@ unlock: > mutex_unlock(&dev_priv->psr.lock); > } > > -static void intel_psr_exit(struct drm_device *dev) > +static void intel_psr_exit(struct drm_i915_private *dev_priv) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > struct intel_dp *intel_dp = dev_priv->psr.enabled; > struct drm_crtc *crtc = dp_to_dig_port(intel_dp)->base.base.crtc; > enum pipe pipe = to_intel_crtc(crtc)->pipe; > @@ -639,7 +638,7 @@ static void intel_psr_exit(struct drm_device *dev) > if (!dev_priv->psr.active) > return; > > - if (HAS_DDI(dev)) { > + if (HAS_DDI(dev_priv)) { > val = I915_READ(EDP_PSR_CTL); > > WARN_ON(!(val & EDP_PSR_ENABLE)); > @@ -674,7 +673,7 @@ static void intel_psr_exit(struct drm_device *dev) > > /** > * intel_psr_single_frame_update - Single Frame Update > - * @dev: DRM device > + * @dev_priv: i915 device > * @frontbuffer_bits: frontbuffer plane tracking bits > * > * Some platforms support a single frame update feature that is used to > @@ -682,10 +681,9 @@ static void intel_psr_exit(struct drm_device *dev) > * So far it is only implemented for Valleyview and Cherryview because > * hardware requires this to be done before a page flip. > */ > -void intel_psr_single_frame_update(struct drm_device *dev, > +void intel_psr_single_frame_update(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > struct drm_crtc *crtc; > enum pipe pipe; > u32 val; > @@ -694,7 +692,7 @@ void intel_psr_single_frame_update(struct drm_device *dev, > * Single frame update is already supported on BDW+ but it requires > * many W/A and it isn't really needed. > */ > - if (!IS_VALLEYVIEW(dev) && !IS_CHERRYVIEW(dev)) > + if (!IS_VALLEYVIEW(dev_priv) && !IS_CHERRYVIEW(dev_priv)) > return; > > mutex_lock(&dev_priv->psr.lock); > @@ -720,7 +718,7 @@ void intel_psr_single_frame_update(struct drm_device *dev, > > /** > * intel_psr_invalidate - Invalidade PSR > - * @dev: DRM device > + * @dev_priv: i915 device > * @frontbuffer_bits: frontbuffer plane tracking bits > * > * Since the hardware frontbuffer tracking has gaps we need to integrate > @@ -730,10 +728,9 @@ void intel_psr_single_frame_update(struct drm_device *dev, > * > * Dirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits." > */ > -void intel_psr_invalidate(struct drm_device *dev, > +void intel_psr_invalidate(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > struct drm_crtc *crtc; > enum pipe pipe; > > @@ -750,14 +747,14 @@ void intel_psr_invalidate(struct drm_device *dev, > dev_priv->psr.busy_frontbuffer_bits |= frontbuffer_bits; > > if (frontbuffer_bits) > - intel_psr_exit(dev); > + intel_psr_exit(dev_priv); > > mutex_unlock(&dev_priv->psr.lock); > } > > /** > * intel_psr_flush - Flush PSR > - * @dev: DRM device > + * @dev_priv: i915 device > * @frontbuffer_bits: frontbuffer plane tracking bits > * @origin: which operation caused the flush > * > @@ -768,10 +765,9 @@ void intel_psr_invalidate(struct drm_device *dev, > * > * Dirty frontbuffers relevant to PSR are tracked in busy_frontbuffer_bits. > */ > -void intel_psr_flush(struct drm_device *dev, > +void intel_psr_flush(struct drm_i915_private *dev_priv, > unsigned frontbuffer_bits, enum fb_op_origin origin) > { > - struct drm_i915_private *dev_priv = to_i915(dev); > struct drm_crtc *crtc; > enum pipe pipe; > > @@ -789,7 +785,7 @@ void intel_psr_flush(struct drm_device *dev, > > /* By definition flush = invalidate + flush */ > if (frontbuffer_bits) > - intel_psr_exit(dev); > + intel_psr_exit(dev_priv); > > if (!dev_priv->psr.active && !dev_priv->psr.busy_frontbuffer_bits) > if (!work_busy(&dev_priv->psr.work.work)) > -- > 2.8.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx