> -----Original Message----- > From: Roper, Matthew D > Sent: Tuesday, March 24, 2015 10:14 PM > To: Konduru, Chandra > Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; Vetter, Daniel; Conselvan De Oliveira, Ander > Subject: Re: [PATCH 05/21 v2] drm/i915: Initialize skylake scalers > > On Fri, Mar 20, 2015 at 05:04:26PM -0700, Chandra Konduru wrote: > > Initializing scalers with supported values during crtc init. > > > > v2: > > -initialize single copy of min/max values (Matt) > > > > Signed-off-by: Chandra Konduru <chandra.konduru@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/intel_display.c | 53 > ++++++++++++++++++++++++++++++++++ > > 1 file changed, 53 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c > > b/drivers/gpu/drm/i915/intel_display.c > > index 89299b6..e6ea9e0 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -103,6 +103,8 @@ static void chv_prepare_pll(struct intel_crtc *crtc, > > const struct intel_crtc_state *pipe_config); static > void > > intel_begin_crtc_commit(struct drm_crtc *crtc); static void > > intel_finish_crtc_commit(struct drm_crtc *crtc); > > +static void skl_init_scalers(struct drm_device *dev, int pipe, > > + struct intel_crtc_state *crtc_state); > > > > static struct intel_encoder *intel_find_encoder(struct > > intel_connector *connector, int pipe) { @@ -12750,6 +12752,54 @@ > > static struct drm_plane *intel_cursor_plane_create(struct drm_device *dev, > > return &cursor->base; > > } > > > > +static void skl_init_scalers(struct drm_device *dev, int pipe, > > + struct intel_crtc_state *crtc_state) { > > + int i; > > + struct intel_scaler *intel_scaler; > > + struct intel_crtc_scaler_state *scaler_state = &crtc_state->scaler_state; > > + if (INTEL_INFO(dev)->gen < 9) > > + return; > > It's probably better to move this guard out to the callsite so that we can more > easily extend this for future platforms. Unless you plan to just extend this > function in the future, in which case we should probably drop the 'skl_' prefix. That is a slip. Will move the check to callsite and send out update. > > > Matt > > > + > > + scaler_state->num_scalers = SKL_NUM_SCALERS; > > + for (i = 0; i < SKL_NUM_SCALERS; i++) { > > + intel_scaler = &scaler_state->scalers[i]; > > + intel_scaler->in_use = 0; > > + intel_scaler->id = i; > > + > > + intel_scaler->mode = PS_SCALER_MODE_DYN; > > + intel_scaler->filter = PS_FILTER_MEDIUM; > > + } > > + > > + /* down scaling ratio: 2.99 --> 1, i.e., 34% of original */ > > + scaler_state->min_hsr = 34; > > + scaler_state->min_vsr = 34; > > + scaler_state->max_hsr = 500; > > + scaler_state->max_vsr = 500; > > + > > + /* down scaling ratio: 2.99x2.99 --> 1x1, i.e., 12% of original */ > > + scaler_state->min_hvsr = 12; > > + scaler_state->max_hvsr = 2500; > > + > > + /* src_w & dst_w range 8 - 4096 */ > > + scaler_state->min_src_w = 8; > > + scaler_state->max_src_w = 4096; > > + scaler_state->min_dst_w = 8; > > + scaler_state->max_dst_w = 4096; > > + > > + /* src_h & dst_h range 8 - 2304 */ > > + scaler_state->min_src_h = 8; > > + scaler_state->max_src_h = 2304; > > + scaler_state->min_dst_h = 8; > > + scaler_state->max_dst_h = 2304; > > + > > + /* pipe C has one scaler */ > > + if (pipe == PIPE_C) { > > + scaler_state->num_scalers = 1; > > + } > > + scaler_state->scaler_id = -1; > > +} > > + > > static void intel_crtc_init(struct drm_device *dev, int pipe) { > > struct drm_i915_private *dev_priv = dev->dev_private; @@ -12769,6 > > +12819,9 @@ static void intel_crtc_init(struct drm_device *dev, int pipe) > > intel_crtc_set_state(intel_crtc, crtc_state); > > crtc_state->base.crtc = &intel_crtc->base; > > > > + /* initialize shared scalers */ > > + skl_init_scalers(dev, pipe, crtc_state); > > + > > primary = intel_primary_plane_create(dev, pipe); > > if (!primary) > > goto fail; > > -- > > 1.7.9.5 > > > > -- > Matt Roper > Graphics Software Engineer > IoTG Platform Enabling & Development > Intel Corporation > (916) 356-2795 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx