drm/tegra: fb: Properly support linear modifier
authorThierry Reding <treding@nvidia.com>
Thu, 15 Mar 2018 15:45:45 +0000 (16:45 +0100)
committerThierry Reding <treding@nvidia.com>
Thu, 15 Mar 2018 18:06:19 +0000 (19:06 +0100)
Instead of relying on the tiling attached to a buffer object, make sure
to set the proper tiling for linear buffers.

Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/fb.c

index 0786159..e694349 100644 (file)
@@ -55,6 +55,11 @@ int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,
        uint64_t modifier = fb->base.modifier;
 
        switch (modifier) {
+       case DRM_FORMAT_MOD_LINEAR:
+               tiling->mode = TEGRA_BO_TILING_MODE_PITCH;
+               tiling->value = 0;
+               break;
+
        case DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED:
                tiling->mode = TEGRA_BO_TILING_MODE_TILED;
                tiling->value = 0;
@@ -91,9 +96,7 @@ int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,
                break;
 
        default:
-               /* TODO: handle YUV formats? */
-               *tiling = fb->planes[0]->tiling;
-               break;
+               return -EINVAL;
        }
 
        return 0;