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@xxxxxxxxxxxxxxx> > > > > 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@xxxxxxxxx> > > > > > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > --- > > 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@xxxxxxxxxxxxxxxxxxxxx > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx