[PATCHv4 17/36] drm/komeda: Free komeda_fb_afbc_size_check from framebuffer dependency

Andrzej Pietrasiewicz
2019-12-13T21:24:58Z

It does still depend on komeda_fb, but only for komeda-specific parameters.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
---
.../drm/arm/display/komeda/komeda_framebuffer.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
index 4e29fa5bd342..cc9dc8588e8d 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_framebuffer.c
@@ -43,19 +43,18 @@ komeda_fb_afbc_size_check(struct komeda_fb *kfb,
struct drm_file *file,
const struct drm_mode_fb_cmd2 *mode_cmd)
{
- struct drm_framebuffer *fb = &kfb->base;
struct drm_gem_object *obj;
u32 alignment_w = 0, alignment_h = 0, alignment_header, n_blocks, bpp;
u64 min_size;

obj = objs[0];

- if (!drm_afbc_get_superblock_wh(fb->modifier,
+ if (!drm_afbc_get_superblock_wh(mode_cmd->modifier[0],
&alignment_w, &alignment_h))
return -EINVAL;

/* tiled header afbc */
- if (fb->modifier & AFBC_FORMAT_MOD_TILED) {
+ if (mode_cmd->modifier[0] & AFBC_FORMAT_MOD_TILED) {
alignment_w *= AFBC_TH_LAYOUT_ALIGNMENT;
alignment_h *= AFBC_TH_LAYOUT_ALIGNMENT;
alignment_header = AFBC_TH_BODY_START_ALIGNMENT;
@@ -63,10 +62,10 @@ komeda_fb_afbc_size_check(struct komeda_fb *kfb,
alignment_header = AFBC_BODY_START_ALIGNMENT;
}

- kfb->aligned_w = ALIGN(fb->width, alignment_w);
- kfb->aligned_h = ALIGN(fb->height, alignment_h);
+ kfb->aligned_w = ALIGN(mode_cmd->width, alignment_w);
+ kfb->aligned_h = ALIGN(mode_cmd->height, alignment_h);

- if (fb->offsets[0] % alignment_header) {
+ if (mode_cmd->offsets[0] % alignment_header) {
DRM_DEBUG_KMS("afbc offset alignment check failed.\n");
return -EINVAL;
}
@@ -75,11 +74,11 @@ komeda_fb_afbc_size_check(struct komeda_fb *kfb,
kfb->offset_payload = ALIGN(n_blocks * AFBC_HEADER_SIZE,
alignment_header);

- bpp = komeda_get_afbc_format_bpp(info, fb->modifier);
+ bpp = komeda_get_afbc_format_bpp(info, mode_cmd->modifier[0]);
kfb->afbc_size = kfb->offset_payload + n_blocks *
ALIGN(bpp * AFBC_SUPERBLK_PIXELS / 8,
AFBC_SUPERBLK_ALIGNMENT);
- min_size = kfb->afbc_size + fb->offsets[0];
+ min_size = kfb->afbc_size + mode_cmd->offsets[0];
if (min_size > obj->size) {
DRM_DEBUG_KMS("afbc size check failed, obj_size: 0x%zx. min_size 0x%llx.\n",
obj->size, min_size);