Commit 4d3e00da authored by Shirish S's avatar Shirish S Committed by Alex Deucher

drm/amd/display : add high part address calculation for underlay

Currently the high part of the address structure is not
populated in case of luma and chroma.
This patch adds this calculation.
Signed-off-by: default avatarShirish S <shirish.s@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 3b21b6d2
...@@ -1771,6 +1771,7 @@ static int fill_plane_attributes_from_fb(struct amdgpu_device *adev, ...@@ -1771,6 +1771,7 @@ static int fill_plane_attributes_from_fb(struct amdgpu_device *adev,
{ {
uint64_t tiling_flags; uint64_t tiling_flags;
uint64_t fb_location = 0; uint64_t fb_location = 0;
uint64_t chroma_addr = 0;
unsigned int awidth; unsigned int awidth;
const struct drm_framebuffer *fb = &amdgpu_fb->base; const struct drm_framebuffer *fb = &amdgpu_fb->base;
int ret = 0; int ret = 0;
...@@ -1833,9 +1834,13 @@ static int fill_plane_attributes_from_fb(struct amdgpu_device *adev, ...@@ -1833,9 +1834,13 @@ static int fill_plane_attributes_from_fb(struct amdgpu_device *adev,
plane_state->address.type = PLN_ADDR_TYPE_VIDEO_PROGRESSIVE; plane_state->address.type = PLN_ADDR_TYPE_VIDEO_PROGRESSIVE;
plane_state->address.video_progressive.luma_addr.low_part plane_state->address.video_progressive.luma_addr.low_part
= lower_32_bits(fb_location); = lower_32_bits(fb_location);
plane_state->address.video_progressive.luma_addr.high_part
= upper_32_bits(fb_location);
chroma_addr = fb_location + (u64)(awidth * fb->height);
plane_state->address.video_progressive.chroma_addr.low_part plane_state->address.video_progressive.chroma_addr.low_part
= lower_32_bits(fb_location) + = lower_32_bits(chroma_addr);
(awidth * fb->height); plane_state->address.video_progressive.chroma_addr.high_part
= upper_32_bits(chroma_addr);
plane_state->plane_size.video.luma_size.x = 0; plane_state->plane_size.video.luma_size.x = 0;
plane_state->plane_size.video.luma_size.y = 0; plane_state->plane_size.video.luma_size.y = 0;
plane_state->plane_size.video.luma_size.width = awidth; plane_state->plane_size.video.luma_size.width = awidth;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment