18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Test cases for the drm_format functions 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#define pr_fmt(fmt) "drm_format: " fmt 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/errno.h> 98c2ecf20Sopenharmony_ci#include <linux/kernel.h> 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <drm/drm_fourcc.h> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include "test-drm_modeset_common.h" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciint igt_check_drm_format_block_width(void *ignored) 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci const struct drm_format_info *info = NULL; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci /* Test invalid arguments */ 208c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 0) != 0); 218c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, -1) != 0); 228c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 1) != 0); 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci /* Test 1 plane format */ 258c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_XRGB4444); 268c2ecf20Sopenharmony_ci FAIL_ON(!info); 278c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 0) != 1); 288c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 1) != 0); 298c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, -1) != 0); 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci /* Test 2 planes format */ 328c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_NV12); 338c2ecf20Sopenharmony_ci FAIL_ON(!info); 348c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 0) != 1); 358c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 1) != 1); 368c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 2) != 0); 378c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, -1) != 0); 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci /* Test 3 planes format */ 408c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_YUV422); 418c2ecf20Sopenharmony_ci FAIL_ON(!info); 428c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 0) != 1); 438c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 1) != 1); 448c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 2) != 1); 458c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 3) != 0); 468c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, -1) != 0); 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci /* Test a tiled format */ 498c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_X0L0); 508c2ecf20Sopenharmony_ci FAIL_ON(!info); 518c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 0) != 2); 528c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, 1) != 0); 538c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_width(info, -1) != 0); 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci return 0; 568c2ecf20Sopenharmony_ci} 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciint igt_check_drm_format_block_height(void *ignored) 598c2ecf20Sopenharmony_ci{ 608c2ecf20Sopenharmony_ci const struct drm_format_info *info = NULL; 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci /* Test invalid arguments */ 638c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 0) != 0); 648c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, -1) != 0); 658c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 1) != 0); 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci /* Test 1 plane format */ 688c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_XRGB4444); 698c2ecf20Sopenharmony_ci FAIL_ON(!info); 708c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 0) != 1); 718c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 1) != 0); 728c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, -1) != 0); 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ci /* Test 2 planes format */ 758c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_NV12); 768c2ecf20Sopenharmony_ci FAIL_ON(!info); 778c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 0) != 1); 788c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 1) != 1); 798c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 2) != 0); 808c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, -1) != 0); 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci /* Test 3 planes format */ 838c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_YUV422); 848c2ecf20Sopenharmony_ci FAIL_ON(!info); 858c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 0) != 1); 868c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 1) != 1); 878c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 2) != 1); 888c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 3) != 0); 898c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, -1) != 0); 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci /* Test a tiled format */ 928c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_X0L0); 938c2ecf20Sopenharmony_ci FAIL_ON(!info); 948c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 0) != 2); 958c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, 1) != 0); 968c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_block_height(info, -1) != 0); 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ci return 0; 998c2ecf20Sopenharmony_ci} 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ciint igt_check_drm_format_min_pitch(void *ignored) 1028c2ecf20Sopenharmony_ci{ 1038c2ecf20Sopenharmony_ci const struct drm_format_info *info = NULL; 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci /* Test invalid arguments */ 1068c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 1078c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 1088c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci /* Test 1 plane 8 bits per pixel format */ 1118c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_RGB332); 1128c2ecf20Sopenharmony_ci FAIL_ON(!info); 1138c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 1148c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 1158c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1) != 1); 1188c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 2) != 2); 1198c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 640) != 640); 1208c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1024) != 1024); 1218c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1920) != 1920); 1228c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 4096) != 4096); 1238c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 671) != 671); 1248c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX) != 1258c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX); 1268c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, (UINT_MAX - 1)) != 1278c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1)); 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ci /* Test 1 plane 16 bits per pixel format */ 1308c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_XRGB4444); 1318c2ecf20Sopenharmony_ci FAIL_ON(!info); 1328c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 1338c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 1348c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 1358c2ecf20Sopenharmony_ci 1368c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1) != 2); 1378c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 2) != 4); 1388c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 640) != 1280); 1398c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1024) != 2048); 1408c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1920) != 3840); 1418c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 4096) != 8192); 1428c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 671) != 1342); 1438c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX) != 1448c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX * 2); 1458c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, (UINT_MAX - 1)) != 1468c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1) * 2); 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci /* Test 1 plane 24 bits per pixel format */ 1498c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_RGB888); 1508c2ecf20Sopenharmony_ci FAIL_ON(!info); 1518c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 1528c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 1538c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1) != 3); 1568c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 2) != 6); 1578c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 640) != 1920); 1588c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1024) != 3072); 1598c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1920) != 5760); 1608c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 4096) != 12288); 1618c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 671) != 2013); 1628c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX) != 1638c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX * 3); 1648c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX - 1) != 1658c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1) * 3); 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci /* Test 1 plane 32 bits per pixel format */ 1688c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_ABGR8888); 1698c2ecf20Sopenharmony_ci FAIL_ON(!info); 1708c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 1718c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 1728c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1) != 4); 1758c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 2) != 8); 1768c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 640) != 2560); 1778c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1024) != 4096); 1788c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1920) != 7680); 1798c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 4096) != 16384); 1808c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 671) != 2684); 1818c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX) != 1828c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX * 4); 1838c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX - 1) != 1848c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1) * 4); 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci /* Test 2 planes format */ 1878c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_NV12); 1888c2ecf20Sopenharmony_ci FAIL_ON(!info); 1898c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 1908c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 1918c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 1928c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 0) != 0); 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1) != 1); 1958c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 1) != 2); 1968c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 2) != 2); 1978c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 1) != 2); 1988c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 640) != 640); 1998c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 320) != 640); 2008c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1024) != 1024); 2018c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 512) != 1024); 2028c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1920) != 1920); 2038c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 960) != 1920); 2048c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 4096) != 4096); 2058c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 2048) != 4096); 2068c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 671) != 671); 2078c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 336) != 672); 2088c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX) != 2098c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX); 2108c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, UINT_MAX / 2 + 1) != 2118c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX + 1); 2128c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, (UINT_MAX - 1)) != 2138c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1)); 2148c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, (UINT_MAX - 1) / 2) != 2158c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1)); 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci /* Test 3 planes 8 bits per pixel format */ 2188c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_YUV422); 2198c2ecf20Sopenharmony_ci FAIL_ON(!info); 2208c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 2218c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 2228c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 0) != 0); 2238c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 2248c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 3, 0) != 0); 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1) != 1); 2278c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 1) != 1); 2288c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 1) != 1); 2298c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 2) != 2); 2308c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 2) != 2); 2318c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 2) != 2); 2328c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 640) != 640); 2338c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 320) != 320); 2348c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 320) != 320); 2358c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1024) != 1024); 2368c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 512) != 512); 2378c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 512) != 512); 2388c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1920) != 1920); 2398c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 960) != 960); 2408c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 960) != 960); 2418c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 4096) != 4096); 2428c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 2048) != 2048); 2438c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 2048) != 2048); 2448c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 671) != 671); 2458c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 336) != 336); 2468c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, 336) != 336); 2478c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX) != 2488c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX); 2498c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, UINT_MAX / 2 + 1) != 2508c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX / 2 + 1); 2518c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, UINT_MAX / 2 + 1) != 2528c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX / 2 + 1); 2538c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, (UINT_MAX - 1) / 2) != 2548c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1) / 2); 2558c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, (UINT_MAX - 1) / 2) != 2568c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1) / 2); 2578c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 2, (UINT_MAX - 1) / 2) != 2588c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1) / 2); 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_ci /* Test tiled format */ 2618c2ecf20Sopenharmony_ci info = drm_format_info(DRM_FORMAT_X0L2); 2628c2ecf20Sopenharmony_ci FAIL_ON(!info); 2638c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 0) != 0); 2648c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, -1, 0) != 0); 2658c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 1, 0) != 0); 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1) != 2); 2688c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 2) != 4); 2698c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 640) != 1280); 2708c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1024) != 2048); 2718c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 1920) != 3840); 2728c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 4096) != 8192); 2738c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, 671) != 1342); 2748c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX) != 2758c2ecf20Sopenharmony_ci (uint64_t)UINT_MAX * 2); 2768c2ecf20Sopenharmony_ci FAIL_ON(drm_format_info_min_pitch(info, 0, UINT_MAX - 1) != 2778c2ecf20Sopenharmony_ci (uint64_t)(UINT_MAX - 1) * 2); 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ci return 0; 2808c2ecf20Sopenharmony_ci} 281