On Tue, Nov 22, 2016 at 05:31:05PM +0530, Nabendu Maiti wrote: Try to avoid confusing contractions (i.e. no no) and give us a verb in that sentence in that Subject line. > Number of scalers initialization is moved to runtime init from > intel_crtc_init for platform specific initialization. so that... Tell us why! > Signed-off-by: Nabendu Maiti <nabendu.bikash.maiti@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_debugfs.c | 2 +- > drivers/gpu/drm/i915/i915_drv.h | 1 + > drivers/gpu/drm/i915/intel_device_info.c | 3 +++ > drivers/gpu/drm/i915/intel_display.c | 10 ++-------- > drivers/gpu/drm/i915/intel_drv.h | 4 ++-- > 5 files changed, 9 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c > index b7f42c4..8349abe 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -3080,7 +3080,7 @@ static void intel_scaler_info(struct seq_file *m, struct intel_crtc *intel_crtc) > pipe_config->scaler_state.scaler_users, > pipe_config->scaler_state.scaler_id); > > - for (i = 0; i < SKL_NUM_SCALERS; i++) { > + for (i = 0; i < num_scalers; i++) { > struct intel_scaler *sc = > &pipe_config->scaler_state.scalers[i]; Already applied. > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index be67aee..6eed9c2 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -731,6 +731,7 @@ struct intel_device_info { > u16 device_id; > u8 num_pipes; > u8 num_sprites[I915_MAX_PIPES]; > + u8 num_scalers[I915_MAX_PIPES]; > u8 gen; > u16 gen_mask; > u8 ring_mask; /* Rings supported by the HW */ > diff --git a/drivers/gpu/drm/i915/intel_device_info.c b/drivers/gpu/drm/i915/intel_device_info.c > index 185e3bb..ef26fa8 100644 > --- a/drivers/gpu/drm/i915/intel_device_info.c > +++ b/drivers/gpu/drm/i915/intel_device_info.c > @@ -282,6 +282,9 @@ void intel_device_info_runtime_init(struct drm_i915_private *dev_priv) > info->num_sprites[PIPE_A] = 2; > info->num_sprites[PIPE_B] = 2; > info->num_sprites[PIPE_C] = 1; > + info->num_scalers[PIPE_A] = 2; > + info->num_scalers[PIPE_B] = 2; > + info->num_scalers[PIPE_C] = 1; > } else if (IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv)) { > for_each_pipe(dev_priv, pipe) > info->num_sprites[pipe] = 2; > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index bd2c99e..d2023c4 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -15269,14 +15269,8 @@ static int intel_crtc_init(struct drm_i915_private *dev_priv, enum pipe pipe) > crtc_state->base.crtc = &intel_crtc->base; > > /* initialize shared scalers */ > - if (INTEL_GEN(dev_priv) >= 9) { > - if (pipe == PIPE_C) > - intel_crtc->num_scalers = 1; > - else > - intel_crtc->num_scalers = SKL_NUM_SCALERS; > - > - skl_init_scalers(dev_priv, intel_crtc, crtc_state); > - } > + intel_crtc->num_scalers = dev_priv->info.num_scalers[pipe]; Double space after =. > + skl_init_scalers(dev_priv, intel_crtc, crtc_state); Now called for everybody, not just gen9+. Why? Is it safe? If it was safe it would not be called skl_*(). intel_crtc->num_scalers is now a candidate for including in init_scalers(). > primary = intel_primary_plane_create(dev_priv, pipe); > if (IS_ERR(primary)) { > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index cd132c2..3f89607 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -430,8 +430,8 @@ struct intel_scaler { > }; > > struct intel_crtc_scaler_state { > -#define SKL_NUM_SCALERS 2 > - struct intel_scaler scalers[SKL_NUM_SCALERS]; > +#define MAX_NUM_SCALERS 2 > + struct intel_scaler scalers[MAX_NUM_SCALERS]; Replaced the gen marker rather than the abreviation. So now we have what reads as NUM_NUM_SCALERS. -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx