drm/i915/xe2lpd: Enable odd size and panning for planar yuv
authorJuha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Tue, 19 Sep 2023 19:21:21 +0000 (12:21 -0700)
committerLucas De Marchi <lucas.demarchi@intel.com>
Thu, 21 Sep 2023 15:18:06 +0000 (08:18 -0700)
Enable odd size and panning for planar yuv formats.

Cc: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230919192128.2045154-15-lucas.demarchi@intel.com
drivers/gpu/drm/i915/display/intel_atomic_plane.c

index d7a0bd686e4998b8dbaf8963d50105da52ad395b..b1074350616cc0b4b5c7af609f9963ee4610412d 100644 (file)
@@ -981,6 +981,14 @@ int intel_plane_check_src_coordinates(struct intel_plane_state *plane_state)
        if (fb->format->format == DRM_FORMAT_RGB565 && rotated) {
                hsub = 2;
                vsub = 2;
+       } else if (DISPLAY_VER(i915) >= 20 &&
+                  intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier)) {
+               /*
+                * This allows NV12 and P0xx formats to have odd size and/or odd
+                * source coordinates on DISPLAY_VER(i915) >= 20
+                */
+               hsub = 1;
+               vsub = 1;
        } else {
                hsub = fb->format->hsub;
                vsub = fb->format->vsub;