Message ID | 20180719182214.4323-9-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jul 19, 2018 at 09:22:04PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > To reduce the confusion between a drm plane and the planes of > framebuffers let's desiginate the latter as "color plane". what about fb_plane instead of color? > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > --- > drivers/gpu/drm/i915/intel_display.c | 106 ++++++++++++++++++----------------- > drivers/gpu/drm/i915/intel_drv.h | 2 +- > 2 files changed, 56 insertions(+), 52 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index e6cb8238f257..bc2a712311ba 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -1916,10 +1916,10 @@ static unsigned int intel_tile_size(const struct drm_i915_private *dev_priv) > } > > static unsigned int > -intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) > +intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane) > { > struct drm_i915_private *dev_priv = to_i915(fb->dev); > - unsigned int cpp = fb->format->cpp[plane]; > + unsigned int cpp = fb->format->cpp[color_plane]; > > switch (fb->modifier) { > case DRM_FORMAT_MOD_LINEAR: > @@ -1930,7 +1930,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) > else > return 512; > case I915_FORMAT_MOD_Y_TILED_CCS: > - if (plane == 1) > + if (color_plane == 1) > return 128; > /* fall through */ > case I915_FORMAT_MOD_Y_TILED: > @@ -1939,7 +1939,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) > else > return 512; > case I915_FORMAT_MOD_Yf_TILED_CCS: > - if (plane == 1) > + if (color_plane == 1) > return 128; > /* fall through */ > case I915_FORMAT_MOD_Yf_TILED: > @@ -1964,22 +1964,22 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) > } > > static unsigned int > -intel_tile_height(const struct drm_framebuffer *fb, int plane) > +intel_tile_height(const struct drm_framebuffer *fb, int color_plane) > { > if (fb->modifier == DRM_FORMAT_MOD_LINEAR) > return 1; > else > return intel_tile_size(to_i915(fb->dev)) / > - intel_tile_width_bytes(fb, plane); > + intel_tile_width_bytes(fb, color_plane); > } > > /* Return the tile dimensions in pixel units */ > -static void intel_tile_dims(const struct drm_framebuffer *fb, int plane, > +static void intel_tile_dims(const struct drm_framebuffer *fb, int color_plane, > unsigned int *tile_width, > unsigned int *tile_height) > { > - unsigned int tile_width_bytes = intel_tile_width_bytes(fb, plane); > - unsigned int cpp = fb->format->cpp[plane]; > + unsigned int tile_width_bytes = intel_tile_width_bytes(fb, color_plane); > + unsigned int cpp = fb->format->cpp[color_plane]; > > *tile_width = tile_width_bytes / cpp; > *tile_height = intel_tile_size(to_i915(fb->dev)) / tile_width_bytes; > @@ -1987,9 +1987,9 @@ static void intel_tile_dims(const struct drm_framebuffer *fb, int plane, > > unsigned int > intel_fb_align_height(const struct drm_framebuffer *fb, > - int plane, unsigned int height) > + int color_plane, unsigned int height) > { > - unsigned int tile_height = intel_tile_height(fb, plane); > + unsigned int tile_height = intel_tile_height(fb, color_plane); > > return ALIGN(height, tile_height); > } > @@ -2043,12 +2043,12 @@ static unsigned int intel_linear_alignment(const struct drm_i915_private *dev_pr > } > > static unsigned int intel_surf_alignment(const struct drm_framebuffer *fb, > - int plane) > + int color_plane) > { > struct drm_i915_private *dev_priv = to_i915(fb->dev); > > /* AUX_DIST needs only 4K alignment */ > - if (plane == 1) > + if (color_plane == 1) > return 4096; > > switch (fb->modifier) { > @@ -2178,13 +2178,13 @@ void intel_unpin_fb_vma(struct i915_vma *vma, unsigned long flags) > i915_vma_put(vma); > } > > -static int intel_fb_pitch(const struct drm_framebuffer *fb, int plane, > +static int intel_fb_pitch(const struct drm_framebuffer *fb, int color_plane, > unsigned int rotation) > { > if (drm_rotation_90_or_270(rotation)) > - return to_intel_framebuffer(fb)->rotated[plane].pitch; > + return to_intel_framebuffer(fb)->rotated[color_plane].pitch; > else > - return fb->pitches[plane]; > + return fb->pitches[color_plane]; > } > > /* > @@ -2195,11 +2195,11 @@ static int intel_fb_pitch(const struct drm_framebuffer *fb, int plane, > */ > u32 intel_fb_xy_to_linear(int x, int y, > const struct intel_plane_state *state, > - int plane) > + int color_plane) > { > const struct drm_framebuffer *fb = state->base.fb; > - unsigned int cpp = fb->format->cpp[plane]; > - unsigned int pitch = state->color_plane[plane].stride; > + unsigned int cpp = fb->format->cpp[color_plane]; > + unsigned int pitch = state->color_plane[color_plane].stride; > > return y * pitch + x * cpp; > } > @@ -2211,18 +2211,18 @@ u32 intel_fb_xy_to_linear(int x, int y, > */ > void intel_add_fb_offsets(int *x, int *y, > const struct intel_plane_state *state, > - int plane) > + int color_plane) > > { > const struct intel_framebuffer *intel_fb = to_intel_framebuffer(state->base.fb); > unsigned int rotation = state->base.rotation; > > if (drm_rotation_90_or_270(rotation)) { > - *x += intel_fb->rotated[plane].x; > - *y += intel_fb->rotated[plane].y; > + *x += intel_fb->rotated[color_plane].x; > + *y += intel_fb->rotated[color_plane].y; > } else { > - *x += intel_fb->normal[plane].x; > - *y += intel_fb->normal[plane].y; > + *x += intel_fb->normal[color_plane].x; > + *y += intel_fb->normal[color_plane].y; > } > } > > @@ -2254,13 +2254,14 @@ static u32 intel_adjust_tile_offset(int *x, int *y, > } > > static u32 intel_adjust_aligned_offset(int *x, int *y, > - const struct drm_framebuffer *fb, int plane, > + const struct drm_framebuffer *fb, > + int color_plane, > unsigned int rotation, > unsigned int pitch, > u32 old_offset, u32 new_offset) > { > struct drm_i915_private *dev_priv = to_i915(fb->dev); > - unsigned int cpp = fb->format->cpp[plane]; > + unsigned int cpp = fb->format->cpp[color_plane]; > > WARN_ON(new_offset > old_offset); > > @@ -2269,7 +2270,7 @@ static u32 intel_adjust_aligned_offset(int *x, int *y, > unsigned int pitch_tiles; > > tile_size = intel_tile_size(dev_priv); > - intel_tile_dims(fb, plane, &tile_width, &tile_height); > + intel_tile_dims(fb, color_plane, &tile_width, &tile_height); > > if (drm_rotation_90_or_270(rotation)) { > pitch_tiles = pitch / tile_height; > @@ -2297,12 +2298,12 @@ static u32 intel_adjust_aligned_offset(int *x, int *y, > */ > static u32 intel_plane_adjust_aligned_offset(int *x, int *y, > const struct intel_plane_state *state, > - int plane, > + int color_plane, > u32 old_offset, u32 new_offset) > { > - return intel_adjust_aligned_offset(x, y, state->base.fb, plane, > + return intel_adjust_aligned_offset(x, y, state->base.fb, color_plane, > state->base.rotation, > - state->color_plane[plane].stride, > + state->color_plane[color_plane].stride, > old_offset, new_offset); > } > > @@ -2322,13 +2323,14 @@ static u32 intel_plane_adjust_aligned_offset(int *x, int *y, > */ > static u32 intel_compute_aligned_offset(struct drm_i915_private *dev_priv, > int *x, int *y, > - const struct drm_framebuffer *fb, int plane, > + const struct drm_framebuffer *fb, > + int color_plane, > unsigned int pitch, > unsigned int rotation, > u32 alignment) > { > uint64_t fb_modifier = fb->modifier; > - unsigned int cpp = fb->format->cpp[plane]; > + unsigned int cpp = fb->format->cpp[color_plane]; > u32 offset, offset_aligned; > > if (alignment) > @@ -2339,7 +2341,7 @@ static u32 intel_compute_aligned_offset(struct drm_i915_private *dev_priv, > unsigned int tile_rows, tiles, pitch_tiles; > > tile_size = intel_tile_size(dev_priv); > - intel_tile_dims(fb, plane, &tile_width, &tile_height); > + intel_tile_dims(fb, color_plane, &tile_width, &tile_height); > > if (drm_rotation_90_or_270(rotation)) { > pitch_tiles = pitch / tile_height; > @@ -2373,41 +2375,42 @@ static u32 intel_compute_aligned_offset(struct drm_i915_private *dev_priv, > > static u32 intel_plane_compute_aligned_offset(int *x, int *y, > const struct intel_plane_state *state, > - int plane) > + int color_plane) > { > struct intel_plane *intel_plane = to_intel_plane(state->base.plane); > struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev); > const struct drm_framebuffer *fb = state->base.fb; > unsigned int rotation = state->base.rotation; > - int pitch = state->color_plane[plane].stride; > + int pitch = state->color_plane[color_plane].stride; > u32 alignment; > > if (intel_plane->id == PLANE_CURSOR) > alignment = intel_cursor_alignment(dev_priv); > else > - alignment = intel_surf_alignment(fb, plane); > + alignment = intel_surf_alignment(fb, color_plane); > > - return intel_compute_aligned_offset(dev_priv, x, y, fb, plane, > + return intel_compute_aligned_offset(dev_priv, x, y, fb, color_plane, > pitch, rotation, alignment); > } > > /* Convert the fb->offset[] into x/y offsets */ > static int intel_fb_offset_to_xy(int *x, int *y, > - const struct drm_framebuffer *fb, int plane) > + const struct drm_framebuffer *fb, > + int color_plane) > { > struct drm_i915_private *dev_priv = to_i915(fb->dev); > > if (fb->modifier != DRM_FORMAT_MOD_LINEAR && > - fb->offsets[plane] % intel_tile_size(dev_priv)) > + fb->offsets[color_plane] % intel_tile_size(dev_priv)) > return -EINVAL; > > *x = 0; > *y = 0; > > intel_adjust_aligned_offset(x, y, > - fb, plane, DRM_MODE_ROTATE_0, > - fb->pitches[0], > - fb->offsets[plane], 0); > + fb, color_plane, DRM_MODE_ROTATE_0, > + fb->pitches[color_plane], > + fb->offsets[color_plane], 0); > > return 0; > } > @@ -2899,10 +2902,11 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc, > &obj->frontbuffer_bits); > } > > -static int skl_max_plane_width(const struct drm_framebuffer *fb, int plane, > +static int skl_max_plane_width(const struct drm_framebuffer *fb, > + int color_plane, > unsigned int rotation) > { > - int cpp = fb->format->cpp[plane]; > + int cpp = fb->format->cpp[color_plane]; > > switch (fb->modifier) { > case DRM_FORMAT_MOD_LINEAR: > @@ -3462,12 +3466,12 @@ static bool i9xx_plane_get_hw_state(struct intel_plane *plane, > } > > static u32 > -intel_fb_stride_alignment(const struct drm_framebuffer *fb, int plane) > +intel_fb_stride_alignment(const struct drm_framebuffer *fb, int color_plane) > { > if (fb->modifier == DRM_FORMAT_MOD_LINEAR) > return 64; > else > - return intel_tile_width_bytes(fb, plane); > + return intel_tile_width_bytes(fb, color_plane); > } > > static void skl_detach_scaler(struct intel_crtc *intel_crtc, int id) > @@ -3498,13 +3502,13 @@ static void skl_detach_scalers(struct intel_crtc *intel_crtc) > } > > u32 skl_plane_stride(const struct intel_plane_state *plane_state, > - int plane) > + int color_plane) > { > const struct drm_framebuffer *fb = plane_state->base.fb; > unsigned int rotation = plane_state->base.rotation; > - u32 stride = plane_state->color_plane[plane].stride; > + u32 stride = plane_state->color_plane[color_plane].stride; > > - if (plane >= fb->format->num_planes) > + if (color_plane >= fb->format->num_planes) > return 0; > > /* > @@ -3512,9 +3516,9 @@ u32 skl_plane_stride(const struct intel_plane_state *plane_state, > * linear buffers or in number of tiles for tiled buffers. > */ > if (drm_rotation_90_or_270(rotation)) > - stride /= intel_tile_height(fb, plane); > + stride /= intel_tile_height(fb, color_plane); > else > - stride /= intel_fb_stride_alignment(fb, plane); > + stride /= intel_fb_stride_alignment(fb, color_plane); > > return stride; > } > diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h > index d70276ff3d0e..cc381f680338 100644 > --- a/drivers/gpu/drm/i915/intel_drv.h > +++ b/drivers/gpu/drm/i915/intel_drv.h > @@ -1438,7 +1438,7 @@ void icl_unmap_plls_to_ports(struct drm_crtc *crtc, > struct drm_atomic_state *old_state); > > unsigned int intel_fb_align_height(const struct drm_framebuffer *fb, > - int plane, unsigned int height); > + int color_plane, unsigned int height); > > /* intel_audio.c */ > void intel_init_audio_hooks(struct drm_i915_private *dev_priv); > -- > 2.16.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Wed, 2018-08-22 at 18:14 -0700, Rodrigo Vivi wrote: > On Thu, Jul 19, 2018 at 09:22:04PM +0300, Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > To reduce the confusion between a drm plane and the planes of > > framebuffers let's desiginate the latter as "color plane". > > > what about fb_plane instead of color? I liked color_plane more than fb_plane. Not taking in care the choosed name, the rename looks good to me but it would be nice someone else also review it. Weak-Reviewed-by: José Roberto de Souza <jose.souza@intel.com> > > > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > > --- > > drivers/gpu/drm/i915/intel_display.c | 106 ++++++++++++++++++----- > > ------------ > > drivers/gpu/drm/i915/intel_drv.h | 2 +- > > 2 files changed, 56 insertions(+), 52 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c > > b/drivers/gpu/drm/i915/intel_display.c > > index e6cb8238f257..bc2a712311ba 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -1916,10 +1916,10 @@ static unsigned int intel_tile_size(const > > struct drm_i915_private *dev_priv) > > } > > > > static unsigned int > > -intel_tile_width_bytes(const struct drm_framebuffer *fb, int > > plane) > > +intel_tile_width_bytes(const struct drm_framebuffer *fb, int > > color_plane) > > { > > struct drm_i915_private *dev_priv = to_i915(fb->dev); > > - unsigned int cpp = fb->format->cpp[plane]; > > + unsigned int cpp = fb->format->cpp[color_plane]; > > > > switch (fb->modifier) { > > case DRM_FORMAT_MOD_LINEAR: > > @@ -1930,7 +1930,7 @@ intel_tile_width_bytes(const struct > > drm_framebuffer *fb, int plane) > > else > > return 512; > > case I915_FORMAT_MOD_Y_TILED_CCS: > > - if (plane == 1) > > + if (color_plane == 1) > > return 128; > > /* fall through */ > > case I915_FORMAT_MOD_Y_TILED: > > @@ -1939,7 +1939,7 @@ intel_tile_width_bytes(const struct > > drm_framebuffer *fb, int plane) > > else > > return 512; > > case I915_FORMAT_MOD_Yf_TILED_CCS: > > - if (plane == 1) > > + if (color_plane == 1) > > return 128; > > /* fall through */ > > case I915_FORMAT_MOD_Yf_TILED: > > @@ -1964,22 +1964,22 @@ intel_tile_width_bytes(const struct > > drm_framebuffer *fb, int plane) > > } > > > > static unsigned int > > -intel_tile_height(const struct drm_framebuffer *fb, int plane) > > +intel_tile_height(const struct drm_framebuffer *fb, int > > color_plane) > > { > > if (fb->modifier == DRM_FORMAT_MOD_LINEAR) > > return 1; > > else > > return intel_tile_size(to_i915(fb->dev)) / > > - intel_tile_width_bytes(fb, plane); > > + intel_tile_width_bytes(fb, color_plane); > > } > > > > /* Return the tile dimensions in pixel units */ > > -static void intel_tile_dims(const struct drm_framebuffer *fb, int > > plane, > > +static void intel_tile_dims(const struct drm_framebuffer *fb, int > > color_plane, > > unsigned int *tile_width, > > unsigned int *tile_height) > > { > > - unsigned int tile_width_bytes = intel_tile_width_bytes(fb, > > plane); > > - unsigned int cpp = fb->format->cpp[plane]; > > + unsigned int tile_width_bytes = intel_tile_width_bytes(fb, > > color_plane); > > + unsigned int cpp = fb->format->cpp[color_plane]; > > > > *tile_width = tile_width_bytes / cpp; > > *tile_height = intel_tile_size(to_i915(fb->dev)) / > > tile_width_bytes; > > @@ -1987,9 +1987,9 @@ static void intel_tile_dims(const struct > > drm_framebuffer *fb, int plane, > > > > unsigned int > > intel_fb_align_height(const struct drm_framebuffer *fb, > > - int plane, unsigned int height) > > + int color_plane, unsigned int height) > > { > > - unsigned int tile_height = intel_tile_height(fb, plane); > > + unsigned int tile_height = intel_tile_height(fb, color_plane); > > > > return ALIGN(height, tile_height); > > } > > @@ -2043,12 +2043,12 @@ static unsigned int > > intel_linear_alignment(const struct drm_i915_private *dev_pr > > } > > > > static unsigned int intel_surf_alignment(const struct > > drm_framebuffer *fb, > > - int plane) > > + int color_plane) > > { > > struct drm_i915_private *dev_priv = to_i915(fb->dev); > > > > /* AUX_DIST needs only 4K alignment */ > > - if (plane == 1) > > + if (color_plane == 1) > > return 4096; > > > > switch (fb->modifier) { > > @@ -2178,13 +2178,13 @@ void intel_unpin_fb_vma(struct i915_vma > > *vma, unsigned long flags) > > i915_vma_put(vma); > > } > > > > -static int intel_fb_pitch(const struct drm_framebuffer *fb, int > > plane, > > +static int intel_fb_pitch(const struct drm_framebuffer *fb, int > > color_plane, > > unsigned int rotation) > > { > > if (drm_rotation_90_or_270(rotation)) > > - return to_intel_framebuffer(fb)->rotated[plane].pitch; > > + return to_intel_framebuffer(fb)- > > >rotated[color_plane].pitch; > > else > > - return fb->pitches[plane]; > > + return fb->pitches[color_plane]; > > } > > > > /* > > @@ -2195,11 +2195,11 @@ static int intel_fb_pitch(const struct > > drm_framebuffer *fb, int plane, > > */ > > u32 intel_fb_xy_to_linear(int x, int y, > > const struct intel_plane_state *state, > > - int plane) > > + int color_plane) > > { > > const struct drm_framebuffer *fb = state->base.fb; > > - unsigned int cpp = fb->format->cpp[plane]; > > - unsigned int pitch = state->color_plane[plane].stride; > > + unsigned int cpp = fb->format->cpp[color_plane]; > > + unsigned int pitch = state->color_plane[color_plane].stride; > > > > return y * pitch + x * cpp; > > } > > @@ -2211,18 +2211,18 @@ u32 intel_fb_xy_to_linear(int x, int y, > > */ > > void intel_add_fb_offsets(int *x, int *y, > > const struct intel_plane_state *state, > > - int plane) > > + int color_plane) > > > > { > > const struct intel_framebuffer *intel_fb = > > to_intel_framebuffer(state->base.fb); > > unsigned int rotation = state->base.rotation; > > > > if (drm_rotation_90_or_270(rotation)) { > > - *x += intel_fb->rotated[plane].x; > > - *y += intel_fb->rotated[plane].y; > > + *x += intel_fb->rotated[color_plane].x; > > + *y += intel_fb->rotated[color_plane].y; > > } else { > > - *x += intel_fb->normal[plane].x; > > - *y += intel_fb->normal[plane].y; > > + *x += intel_fb->normal[color_plane].x; > > + *y += intel_fb->normal[color_plane].y; > > } > > } > > > > @@ -2254,13 +2254,14 @@ static u32 intel_adjust_tile_offset(int *x, > > int *y, > > } > > > > static u32 intel_adjust_aligned_offset(int *x, int *y, > > - const struct drm_framebuffer > > *fb, int plane, > > + const struct drm_framebuffer > > *fb, > > + int color_plane, > > unsigned int rotation, > > unsigned int pitch, > > u32 old_offset, u32 new_offset) > > { > > struct drm_i915_private *dev_priv = to_i915(fb->dev); > > - unsigned int cpp = fb->format->cpp[plane]; > > + unsigned int cpp = fb->format->cpp[color_plane]; > > > > WARN_ON(new_offset > old_offset); > > > > @@ -2269,7 +2270,7 @@ static u32 intel_adjust_aligned_offset(int > > *x, int *y, > > unsigned int pitch_tiles; > > > > tile_size = intel_tile_size(dev_priv); > > - intel_tile_dims(fb, plane, &tile_width, &tile_height); > > + intel_tile_dims(fb, color_plane, &tile_width, > > &tile_height); > > > > if (drm_rotation_90_or_270(rotation)) { > > pitch_tiles = pitch / tile_height; > > @@ -2297,12 +2298,12 @@ static u32 intel_adjust_aligned_offset(int > > *x, int *y, > > */ > > static u32 intel_plane_adjust_aligned_offset(int *x, int *y, > > const struct > > intel_plane_state *state, > > - int plane, > > + int color_plane, > > u32 old_offset, u32 > > new_offset) > > { > > - return intel_adjust_aligned_offset(x, y, state->base.fb, plane, > > + return intel_adjust_aligned_offset(x, y, state->base.fb, > > color_plane, > > state->base.rotation, > > - state- > > >color_plane[plane].stride, > > + state- > > >color_plane[color_plane].stride, > > old_offset, new_offset); > > } > > > > @@ -2322,13 +2323,14 @@ static u32 > > intel_plane_adjust_aligned_offset(int *x, int *y, > > */ > > static u32 intel_compute_aligned_offset(struct drm_i915_private > > *dev_priv, > > int *x, int *y, > > - const struct drm_framebuffer > > *fb, int plane, > > + const struct drm_framebuffer > > *fb, > > + int color_plane, > > unsigned int pitch, > > unsigned int rotation, > > u32 alignment) > > { > > uint64_t fb_modifier = fb->modifier; > > - unsigned int cpp = fb->format->cpp[plane]; > > + unsigned int cpp = fb->format->cpp[color_plane]; > > u32 offset, offset_aligned; > > > > if (alignment) > > @@ -2339,7 +2341,7 @@ static u32 > > intel_compute_aligned_offset(struct drm_i915_private *dev_priv, > > unsigned int tile_rows, tiles, pitch_tiles; > > > > tile_size = intel_tile_size(dev_priv); > > - intel_tile_dims(fb, plane, &tile_width, &tile_height); > > + intel_tile_dims(fb, color_plane, &tile_width, > > &tile_height); > > > > if (drm_rotation_90_or_270(rotation)) { > > pitch_tiles = pitch / tile_height; > > @@ -2373,41 +2375,42 @@ static u32 > > intel_compute_aligned_offset(struct drm_i915_private *dev_priv, > > > > static u32 intel_plane_compute_aligned_offset(int *x, int *y, > > const struct > > intel_plane_state *state, > > - int plane) > > + int color_plane) > > { > > struct intel_plane *intel_plane = to_intel_plane(state- > > >base.plane); > > struct drm_i915_private *dev_priv = to_i915(intel_plane- > > >base.dev); > > const struct drm_framebuffer *fb = state->base.fb; > > unsigned int rotation = state->base.rotation; > > - int pitch = state->color_plane[plane].stride; > > + int pitch = state->color_plane[color_plane].stride; > > u32 alignment; > > > > if (intel_plane->id == PLANE_CURSOR) > > alignment = intel_cursor_alignment(dev_priv); > > else > > - alignment = intel_surf_alignment(fb, plane); > > + alignment = intel_surf_alignment(fb, color_plane); > > > > - return intel_compute_aligned_offset(dev_priv, x, y, fb, plane, > > + return intel_compute_aligned_offset(dev_priv, x, y, fb, > > color_plane, > > pitch, rotation, > > alignment); > > } > > > > /* Convert the fb->offset[] into x/y offsets */ > > static int intel_fb_offset_to_xy(int *x, int *y, > > - const struct drm_framebuffer *fb, int > > plane) > > + const struct drm_framebuffer *fb, > > + int color_plane) > > { > > struct drm_i915_private *dev_priv = to_i915(fb->dev); > > > > if (fb->modifier != DRM_FORMAT_MOD_LINEAR && > > - fb->offsets[plane] % intel_tile_size(dev_priv)) > > + fb->offsets[color_plane] % intel_tile_size(dev_priv)) > > return -EINVAL; > > > > *x = 0; > > *y = 0; > > > > intel_adjust_aligned_offset(x, y, > > - fb, plane, DRM_MODE_ROTATE_0, > > - fb->pitches[0], > > - fb->offsets[plane], 0); > > + fb, color_plane, DRM_MODE_ROTATE_0, > > + fb->pitches[color_plane], > > + fb->offsets[color_plane], 0); > > > > return 0; > > } > > @@ -2899,10 +2902,11 @@ intel_find_initial_plane_obj(struct > > intel_crtc *intel_crtc, > > &obj->frontbuffer_bits); > > } > > > > -static int skl_max_plane_width(const struct drm_framebuffer *fb, > > int plane, > > +static int skl_max_plane_width(const struct drm_framebuffer *fb, > > + int color_plane, > > unsigned int rotation) > > { > > - int cpp = fb->format->cpp[plane]; > > + int cpp = fb->format->cpp[color_plane]; > > > > switch (fb->modifier) { > > case DRM_FORMAT_MOD_LINEAR: > > @@ -3462,12 +3466,12 @@ static bool i9xx_plane_get_hw_state(struct > > intel_plane *plane, > > } > > > > static u32 > > -intel_fb_stride_alignment(const struct drm_framebuffer *fb, int > > plane) > > +intel_fb_stride_alignment(const struct drm_framebuffer *fb, int > > color_plane) > > { > > if (fb->modifier == DRM_FORMAT_MOD_LINEAR) > > return 64; > > else > > - return intel_tile_width_bytes(fb, plane); > > + return intel_tile_width_bytes(fb, color_plane); > > } > > > > static void skl_detach_scaler(struct intel_crtc *intel_crtc, int > > id) > > @@ -3498,13 +3502,13 @@ static void skl_detach_scalers(struct > > intel_crtc *intel_crtc) > > } > > > > u32 skl_plane_stride(const struct intel_plane_state *plane_state, > > - int plane) > > + int color_plane) > > { > > const struct drm_framebuffer *fb = plane_state->base.fb; > > unsigned int rotation = plane_state->base.rotation; > > - u32 stride = plane_state->color_plane[plane].stride; > > + u32 stride = plane_state->color_plane[color_plane].stride; > > > > - if (plane >= fb->format->num_planes) > > + if (color_plane >= fb->format->num_planes) > > return 0; > > > > /* > > @@ -3512,9 +3516,9 @@ u32 skl_plane_stride(const struct > > intel_plane_state *plane_state, > > * linear buffers or in number of tiles for tiled buffers. > > */ > > if (drm_rotation_90_or_270(rotation)) > > - stride /= intel_tile_height(fb, plane); > > + stride /= intel_tile_height(fb, color_plane); > > else > > - stride /= intel_fb_stride_alignment(fb, plane); > > + stride /= intel_fb_stride_alignment(fb, color_plane); > > > > return stride; > > } > > diff --git a/drivers/gpu/drm/i915/intel_drv.h > > b/drivers/gpu/drm/i915/intel_drv.h > > index d70276ff3d0e..cc381f680338 100644 > > --- a/drivers/gpu/drm/i915/intel_drv.h > > +++ b/drivers/gpu/drm/i915/intel_drv.h > > @@ -1438,7 +1438,7 @@ void icl_unmap_plls_to_ports(struct drm_crtc > > *crtc, > > struct drm_atomic_state *old_state); > > > > unsigned int intel_fb_align_height(const struct drm_framebuffer > > *fb, > > - int plane, unsigned int height); > > + int color_plane, unsigned int > > height); > > > > /* intel_audio.c */ > > void intel_init_audio_hooks(struct drm_i915_private *dev_priv); > > -- > > 2.16.4 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index e6cb8238f257..bc2a712311ba 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -1916,10 +1916,10 @@ static unsigned int intel_tile_size(const struct drm_i915_private *dev_priv) } static unsigned int -intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) +intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane) { struct drm_i915_private *dev_priv = to_i915(fb->dev); - unsigned int cpp = fb->format->cpp[plane]; + unsigned int cpp = fb->format->cpp[color_plane]; switch (fb->modifier) { case DRM_FORMAT_MOD_LINEAR: @@ -1930,7 +1930,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) else return 512; case I915_FORMAT_MOD_Y_TILED_CCS: - if (plane == 1) + if (color_plane == 1) return 128; /* fall through */ case I915_FORMAT_MOD_Y_TILED: @@ -1939,7 +1939,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) else return 512; case I915_FORMAT_MOD_Yf_TILED_CCS: - if (plane == 1) + if (color_plane == 1) return 128; /* fall through */ case I915_FORMAT_MOD_Yf_TILED: @@ -1964,22 +1964,22 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int plane) } static unsigned int -intel_tile_height(const struct drm_framebuffer *fb, int plane) +intel_tile_height(const struct drm_framebuffer *fb, int color_plane) { if (fb->modifier == DRM_FORMAT_MOD_LINEAR) return 1; else return intel_tile_size(to_i915(fb->dev)) / - intel_tile_width_bytes(fb, plane); + intel_tile_width_bytes(fb, color_plane); } /* Return the tile dimensions in pixel units */ -static void intel_tile_dims(const struct drm_framebuffer *fb, int plane, +static void intel_tile_dims(const struct drm_framebuffer *fb, int color_plane, unsigned int *tile_width, unsigned int *tile_height) { - unsigned int tile_width_bytes = intel_tile_width_bytes(fb, plane); - unsigned int cpp = fb->format->cpp[plane]; + unsigned int tile_width_bytes = intel_tile_width_bytes(fb, color_plane); + unsigned int cpp = fb->format->cpp[color_plane]; *tile_width = tile_width_bytes / cpp; *tile_height = intel_tile_size(to_i915(fb->dev)) / tile_width_bytes; @@ -1987,9 +1987,9 @@ static void intel_tile_dims(const struct drm_framebuffer *fb, int plane, unsigned int intel_fb_align_height(const struct drm_framebuffer *fb, - int plane, unsigned int height) + int color_plane, unsigned int height) { - unsigned int tile_height = intel_tile_height(fb, plane); + unsigned int tile_height = intel_tile_height(fb, color_plane); return ALIGN(height, tile_height); } @@ -2043,12 +2043,12 @@ static unsigned int intel_linear_alignment(const struct drm_i915_private *dev_pr } static unsigned int intel_surf_alignment(const struct drm_framebuffer *fb, - int plane) + int color_plane) { struct drm_i915_private *dev_priv = to_i915(fb->dev); /* AUX_DIST needs only 4K alignment */ - if (plane == 1) + if (color_plane == 1) return 4096; switch (fb->modifier) { @@ -2178,13 +2178,13 @@ void intel_unpin_fb_vma(struct i915_vma *vma, unsigned long flags) i915_vma_put(vma); } -static int intel_fb_pitch(const struct drm_framebuffer *fb, int plane, +static int intel_fb_pitch(const struct drm_framebuffer *fb, int color_plane, unsigned int rotation) { if (drm_rotation_90_or_270(rotation)) - return to_intel_framebuffer(fb)->rotated[plane].pitch; + return to_intel_framebuffer(fb)->rotated[color_plane].pitch; else - return fb->pitches[plane]; + return fb->pitches[color_plane]; } /* @@ -2195,11 +2195,11 @@ static int intel_fb_pitch(const struct drm_framebuffer *fb, int plane, */ u32 intel_fb_xy_to_linear(int x, int y, const struct intel_plane_state *state, - int plane) + int color_plane) { const struct drm_framebuffer *fb = state->base.fb; - unsigned int cpp = fb->format->cpp[plane]; - unsigned int pitch = state->color_plane[plane].stride; + unsigned int cpp = fb->format->cpp[color_plane]; + unsigned int pitch = state->color_plane[color_plane].stride; return y * pitch + x * cpp; } @@ -2211,18 +2211,18 @@ u32 intel_fb_xy_to_linear(int x, int y, */ void intel_add_fb_offsets(int *x, int *y, const struct intel_plane_state *state, - int plane) + int color_plane) { const struct intel_framebuffer *intel_fb = to_intel_framebuffer(state->base.fb); unsigned int rotation = state->base.rotation; if (drm_rotation_90_or_270(rotation)) { - *x += intel_fb->rotated[plane].x; - *y += intel_fb->rotated[plane].y; + *x += intel_fb->rotated[color_plane].x; + *y += intel_fb->rotated[color_plane].y; } else { - *x += intel_fb->normal[plane].x; - *y += intel_fb->normal[plane].y; + *x += intel_fb->normal[color_plane].x; + *y += intel_fb->normal[color_plane].y; } } @@ -2254,13 +2254,14 @@ static u32 intel_adjust_tile_offset(int *x, int *y, } static u32 intel_adjust_aligned_offset(int *x, int *y, - const struct drm_framebuffer *fb, int plane, + const struct drm_framebuffer *fb, + int color_plane, unsigned int rotation, unsigned int pitch, u32 old_offset, u32 new_offset) { struct drm_i915_private *dev_priv = to_i915(fb->dev); - unsigned int cpp = fb->format->cpp[plane]; + unsigned int cpp = fb->format->cpp[color_plane]; WARN_ON(new_offset > old_offset); @@ -2269,7 +2270,7 @@ static u32 intel_adjust_aligned_offset(int *x, int *y, unsigned int pitch_tiles; tile_size = intel_tile_size(dev_priv); - intel_tile_dims(fb, plane, &tile_width, &tile_height); + intel_tile_dims(fb, color_plane, &tile_width, &tile_height); if (drm_rotation_90_or_270(rotation)) { pitch_tiles = pitch / tile_height; @@ -2297,12 +2298,12 @@ static u32 intel_adjust_aligned_offset(int *x, int *y, */ static u32 intel_plane_adjust_aligned_offset(int *x, int *y, const struct intel_plane_state *state, - int plane, + int color_plane, u32 old_offset, u32 new_offset) { - return intel_adjust_aligned_offset(x, y, state->base.fb, plane, + return intel_adjust_aligned_offset(x, y, state->base.fb, color_plane, state->base.rotation, - state->color_plane[plane].stride, + state->color_plane[color_plane].stride, old_offset, new_offset); } @@ -2322,13 +2323,14 @@ static u32 intel_plane_adjust_aligned_offset(int *x, int *y, */ static u32 intel_compute_aligned_offset(struct drm_i915_private *dev_priv, int *x, int *y, - const struct drm_framebuffer *fb, int plane, + const struct drm_framebuffer *fb, + int color_plane, unsigned int pitch, unsigned int rotation, u32 alignment) { uint64_t fb_modifier = fb->modifier; - unsigned int cpp = fb->format->cpp[plane]; + unsigned int cpp = fb->format->cpp[color_plane]; u32 offset, offset_aligned; if (alignment) @@ -2339,7 +2341,7 @@ static u32 intel_compute_aligned_offset(struct drm_i915_private *dev_priv, unsigned int tile_rows, tiles, pitch_tiles; tile_size = intel_tile_size(dev_priv); - intel_tile_dims(fb, plane, &tile_width, &tile_height); + intel_tile_dims(fb, color_plane, &tile_width, &tile_height); if (drm_rotation_90_or_270(rotation)) { pitch_tiles = pitch / tile_height; @@ -2373,41 +2375,42 @@ static u32 intel_compute_aligned_offset(struct drm_i915_private *dev_priv, static u32 intel_plane_compute_aligned_offset(int *x, int *y, const struct intel_plane_state *state, - int plane) + int color_plane) { struct intel_plane *intel_plane = to_intel_plane(state->base.plane); struct drm_i915_private *dev_priv = to_i915(intel_plane->base.dev); const struct drm_framebuffer *fb = state->base.fb; unsigned int rotation = state->base.rotation; - int pitch = state->color_plane[plane].stride; + int pitch = state->color_plane[color_plane].stride; u32 alignment; if (intel_plane->id == PLANE_CURSOR) alignment = intel_cursor_alignment(dev_priv); else - alignment = intel_surf_alignment(fb, plane); + alignment = intel_surf_alignment(fb, color_plane); - return intel_compute_aligned_offset(dev_priv, x, y, fb, plane, + return intel_compute_aligned_offset(dev_priv, x, y, fb, color_plane, pitch, rotation, alignment); } /* Convert the fb->offset[] into x/y offsets */ static int intel_fb_offset_to_xy(int *x, int *y, - const struct drm_framebuffer *fb, int plane) + const struct drm_framebuffer *fb, + int color_plane) { struct drm_i915_private *dev_priv = to_i915(fb->dev); if (fb->modifier != DRM_FORMAT_MOD_LINEAR && - fb->offsets[plane] % intel_tile_size(dev_priv)) + fb->offsets[color_plane] % intel_tile_size(dev_priv)) return -EINVAL; *x = 0; *y = 0; intel_adjust_aligned_offset(x, y, - fb, plane, DRM_MODE_ROTATE_0, - fb->pitches[0], - fb->offsets[plane], 0); + fb, color_plane, DRM_MODE_ROTATE_0, + fb->pitches[color_plane], + fb->offsets[color_plane], 0); return 0; } @@ -2899,10 +2902,11 @@ intel_find_initial_plane_obj(struct intel_crtc *intel_crtc, &obj->frontbuffer_bits); } -static int skl_max_plane_width(const struct drm_framebuffer *fb, int plane, +static int skl_max_plane_width(const struct drm_framebuffer *fb, + int color_plane, unsigned int rotation) { - int cpp = fb->format->cpp[plane]; + int cpp = fb->format->cpp[color_plane]; switch (fb->modifier) { case DRM_FORMAT_MOD_LINEAR: @@ -3462,12 +3466,12 @@ static bool i9xx_plane_get_hw_state(struct intel_plane *plane, } static u32 -intel_fb_stride_alignment(const struct drm_framebuffer *fb, int plane) +intel_fb_stride_alignment(const struct drm_framebuffer *fb, int color_plane) { if (fb->modifier == DRM_FORMAT_MOD_LINEAR) return 64; else - return intel_tile_width_bytes(fb, plane); + return intel_tile_width_bytes(fb, color_plane); } static void skl_detach_scaler(struct intel_crtc *intel_crtc, int id) @@ -3498,13 +3502,13 @@ static void skl_detach_scalers(struct intel_crtc *intel_crtc) } u32 skl_plane_stride(const struct intel_plane_state *plane_state, - int plane) + int color_plane) { const struct drm_framebuffer *fb = plane_state->base.fb; unsigned int rotation = plane_state->base.rotation; - u32 stride = plane_state->color_plane[plane].stride; + u32 stride = plane_state->color_plane[color_plane].stride; - if (plane >= fb->format->num_planes) + if (color_plane >= fb->format->num_planes) return 0; /* @@ -3512,9 +3516,9 @@ u32 skl_plane_stride(const struct intel_plane_state *plane_state, * linear buffers or in number of tiles for tiled buffers. */ if (drm_rotation_90_or_270(rotation)) - stride /= intel_tile_height(fb, plane); + stride /= intel_tile_height(fb, color_plane); else - stride /= intel_fb_stride_alignment(fb, plane); + stride /= intel_fb_stride_alignment(fb, color_plane); return stride; } diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index d70276ff3d0e..cc381f680338 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -1438,7 +1438,7 @@ void icl_unmap_plls_to_ports(struct drm_crtc *crtc, struct drm_atomic_state *old_state); unsigned int intel_fb_align_height(const struct drm_framebuffer *fb, - int plane, unsigned int height); + int color_plane, unsigned int height); /* intel_audio.c */ void intel_init_audio_hooks(struct drm_i915_private *dev_priv);