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

Signed-off-by: Andrzej Pietrasiewicz <andrze...@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);
-- 
2.17.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to