From nobody Sat Apr 25 11:48:45 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88EDBC43334 for ; Sat, 9 Jul 2022 11:58:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229544AbiGIL6x (ORCPT ); Sat, 9 Jul 2022 07:58:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229482AbiGIL6u (ORCPT ); Sat, 9 Jul 2022 07:58:50 -0400 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8CCCD140A2 for ; Sat, 9 Jul 2022 04:58:48 -0700 (PDT) Received: by mail-wm1-x32c.google.com with SMTP id h14-20020a1ccc0e000000b0039eff745c53so580391wmb.5 for ; Sat, 09 Jul 2022 04:58:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=diHVyWaKn6Q/nu2QvOdZ3HTvtDhCo0LX1HleEXdmXqI=; b=DWnqE//9FMXAxffjNAXz30EtSW+qp/5vJj2E5W+p4i2W8l/cEecvh8/ar4q095uLXb Z8bjLP6cIuNiv0DLgpTYKCYDUhSKds8/BUkC15uc/B3Lw529CuCghyagrtfNDuDoh4ac wHVUFnPwK1by1BTZKBN4BN36YfOMpgytcJbZI4ZuHoPy2J8F6+Jq5o1+L8ri62UjXPiu rEr+ajtR4MU9c7URWYOU0Vx4/2K4ejgsphClfOVSJLHF2sDDl1qVCyC4u14OxcgEQzli bXgLyybpjy3npfKqkLPM629/B/3Re6ZprYhcBJg8WGz/gidLBmnAHkEZRVO/ANW7tsl7 4V+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=diHVyWaKn6Q/nu2QvOdZ3HTvtDhCo0LX1HleEXdmXqI=; b=nK1pE/Z68K4mAgNh2bvLqc2Sibqsrt/pk9o9Ptb+SBMIo3D03Rk8xLsE2iZTtynmZJ t0LFYpswl6ka2U7XBj7Hg2bckdKmGyTAn96Yd1hFXGawVDqDRz0+4CkeWMndiv0+achK /I/C2plqRcGNKc7WHYsBjiEJlNjy8UNQ7uyzafjnW0JVjegTwhK8kqNlgNBJ8Hm3kTiw AcMiST4eKIdl10O9yBwYJVjNOTSTXguEMyzTOYh7BaxYV2YYpRksA3alGMCB4hyg504e g/eRBjC0lHz0r71UKp8yYn9LQ0gaYYgiXaZqZ2n+/bkHZlTh0jI4c90buNwH4/J0M9Zg VZ+Q== X-Gm-Message-State: AJIora86L/cZubp3rbJMEiXSXLWn03rU6F4BZD0GK3StlOW+Gzk8TaKq HjznXgqekonvuB5hrBxsXXo= X-Google-Smtp-Source: AGRyM1vVsISrYMEwIKnQOUVlwE02A9wmCavPdKoQTAmON+qapDhbuEkmWNfKWaE4RiRcjz1TIDdG2Q== X-Received: by 2002:a05:600c:4e07:b0:3a1:8548:4dd7 with SMTP id b7-20020a05600c4e0700b003a185484dd7mr5198289wmq.170.1657367926988; Sat, 09 Jul 2022 04:58:46 -0700 (PDT) Received: from localhost.localdomain ([94.73.36.185]) by smtp.gmail.com with ESMTPSA id co1-20020a0560000a0100b0021cf31e1f7csm1199494wrb.102.2022.07.09.04.58.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Jul 2022 04:58:46 -0700 (PDT) From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= To: javierm@redhat.com Cc: davidgow@google.com, dlatypov@google.com, tzimmermann@suse.de, mripard@kernel.org, daniel@ffwll.ch, airlied@linux.ie, maarten.lankhorst@linux.intel.com, jani.nikula@linux.intel.com, maira.canal@usp.br, isabbasso@riseup.net, magalilemes00@gmail.com, tales.aparecida@gmail.com, dri-devel@lists.freedesktop.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Subject: [PATCH v2 1/4] drm/format-helper: Fix test on big endian architectures Date: Sat, 9 Jul 2022 13:58:34 +0200 Message-Id: <20220709115837.560877-2-jose.exposito89@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220709115837.560877-1-jose.exposito89@gmail.com> References: <20220709115837.560877-1-jose.exposito89@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The tests fail on big endian architectures, like PowerPC: $ ./tools/testing/kunit/kunit.py run \ --kunitconfig=3Ddrivers/gpu/drm/tests \ --arch=3Dpowerpc --cross_compile=3Dpowerpc64-linux-gnu- Transform the XRGB8888 buffer from little endian to the CPU endian before calling the conversion function to avoid this error. Fixes: 8f456104915f ("drm/format-helper: Add KUnit tests for drm_fb_xrgb888= 8_to_rgb332()") Reported-by: David Gow Signed-off-by: Jos=C3=A9 Exp=C3=B3sito Reviewed-by: David Gow --- .../gpu/drm/tests/drm_format_helper_test.c | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/tests/drm_format_helper_test.c b/drivers/gpu/d= rm/tests/drm_format_helper_test.c index 98583bf56044..4d074c2e48bf 100644 --- a/drivers/gpu/drm/tests/drm_format_helper_test.c +++ b/drivers/gpu/drm/tests/drm_format_helper_test.c @@ -111,6 +111,21 @@ static size_t conversion_buf_size(u32 dst_format, unsi= gned int dst_pitch, return dst_pitch * drm_rect_height(clip); } =20 +static u32 *le32buf_to_cpu(struct kunit *test, const u32 *buf, size_t buf_= size) +{ + u32 *dst =3D NULL; + int n; + + dst =3D kunit_kzalloc(test, buf_size, GFP_KERNEL); + if (!dst) + return NULL; + + for (n =3D 0; n < buf_size; n++) + dst[n] =3D le32_to_cpu(buf[n]); + + return dst; +} + static void xrgb8888_to_rgb332_case_desc(struct xrgb8888_to_rgb332_case *t, char *desc) { @@ -125,6 +140,7 @@ static void xrgb8888_to_rgb332_test(struct kunit *test) const struct xrgb8888_to_rgb332_case *params =3D test->param_value; size_t dst_size; __u8 *dst =3D NULL; + __u32 *src =3D NULL; =20 struct drm_framebuffer fb =3D { .format =3D drm_format_info(DRM_FORMAT_XRGB8888), @@ -138,8 +154,11 @@ static void xrgb8888_to_rgb332_test(struct kunit *test) dst =3D kunit_kzalloc(test, dst_size, GFP_KERNEL); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dst); =20 - drm_fb_xrgb8888_to_rgb332(dst, params->dst_pitch, params->xrgb8888, - &fb, ¶ms->clip); + src =3D le32buf_to_cpu(test, params->xrgb8888, TEST_BUF_SIZE); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, src); + + drm_fb_xrgb8888_to_rgb332(dst, params->dst_pitch, src, &fb, + ¶ms->clip); KUNIT_EXPECT_EQ(test, memcmp(dst, params->expected, dst_size), 0); } =20 --=20 2.25.1 From nobody Sat Apr 25 11:48:45 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C49ACC43334 for ; Sat, 9 Jul 2022 11:58:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229573AbiGIL65 (ORCPT ); Sat, 9 Jul 2022 07:58:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33148 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229496AbiGIL6u (ORCPT ); Sat, 9 Jul 2022 07:58:50 -0400 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69B97140D5 for ; Sat, 9 Jul 2022 04:58:49 -0700 (PDT) Received: by mail-wm1-x32a.google.com with SMTP id 133-20020a1c028b000000b003a2dfdebe47so296678wmc.3 for ; Sat, 09 Jul 2022 04:58:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dHq8eIN5kbK/6ZDjIj/3D1vTFqSkXTQkrho9nQ1d6+o=; b=lnYomu7TWcBNGp4X4XxO9j/KkPMVpk9ajD4O5axwDO/Tpr5yj79EUpdiyG4UG81N1s sq9aOoGpnRezRctUpnBoyTVFMaVQ/BD1mQLZXBQ+YBpligjqiMtBAY/Ina+C28dPHyPU bdmxeOc4juBrXH6ZXnihWiJk+qaBWrszd0++CFGMDkY5lqNNMDEkNDDUxmOrNKz5Abzq pDwTqGl82rdMM4Zdrm3B1wcHw+MCy3ymHEiu6qpA/S5FBzm4lhY0UKzOvUUl27t2NXMi PQdxztKrsj0OxFUKm0nGHCg+HoB56KWy6AA82KOCgZdDP+sDc3/6fjLDmXfUpLioakLo wd8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=dHq8eIN5kbK/6ZDjIj/3D1vTFqSkXTQkrho9nQ1d6+o=; b=NJ0vDswqz+4CM8srDwCyHsdIaKF9HpmjEfjyV/PpZuorVgCsxW7BmUQCMRmgcRMDzb vlOA1gh0JAIkeUn1yHmXR0US8JMLbWcwIoFE5Bv7rO5Yo0eY+k79arPZj5qPlmZS6MBc IMCgfSmdzQPXeFkPcogmClRz4ziG00zVf01Nav1n/xraJZHjL99Ks9vwLjdII3RBbSwL dKVvOp8DEIjh9SuBic12/+MzggeC/O1TUTECaQdSOuW8T1PqO44mPZtUjRk/zJZdGEzN En2l+VlZH2kWCT0YvvioLDG2e/nBAttKNOWFl6IaOf2/1m1Lj7O92tvIDSlt4ujnlK1c Mr4w== X-Gm-Message-State: AJIora/aj5dejbtCEJmVFjVoRnaNYod5/5iH2kPkwJ/iX+4G0n3RE5Zz Hc7F+8gWlrJbkiaeZhfJVc8= X-Google-Smtp-Source: AGRyM1v2/yU5e9CVpXAuQmo186YPK77B9a21RT4A0gSk/R4S3OtSDgaJtTvEVmX9OSElSkkT5+zyZA== X-Received: by 2002:a05:600c:4254:b0:3a1:6c19:f3aa with SMTP id r20-20020a05600c425400b003a16c19f3aamr4993203wmm.205.1657367927979; Sat, 09 Jul 2022 04:58:47 -0700 (PDT) Received: from localhost.localdomain ([94.73.36.185]) by smtp.gmail.com with ESMTPSA id co1-20020a0560000a0100b0021cf31e1f7csm1199494wrb.102.2022.07.09.04.58.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Jul 2022 04:58:47 -0700 (PDT) From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= To: javierm@redhat.com Cc: davidgow@google.com, dlatypov@google.com, tzimmermann@suse.de, mripard@kernel.org, daniel@ffwll.ch, airlied@linux.ie, maarten.lankhorst@linux.intel.com, jani.nikula@linux.intel.com, maira.canal@usp.br, isabbasso@riseup.net, magalilemes00@gmail.com, tales.aparecida@gmail.com, dri-devel@lists.freedesktop.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Subject: [PATCH v2 2/4] drm/format-helper: Rename test cases to make them more generic Date: Sat, 9 Jul 2022 13:58:35 +0200 Message-Id: <20220709115837.560877-3-jose.exposito89@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220709115837.560877-1-jose.exposito89@gmail.com> References: <20220709115837.560877-1-jose.exposito89@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The tests available at the moment only check the conversion from XRGB8888 to RGB332. However, more conversions will be tested in the future. In order to make the struct and functions present in the tests more generic, rename xrgb8888_to_rgb332_* to convert_xrgb8888_*. Tested-by: Tales L. Aparecida Acked-by: Thomas Zimmermann Signed-off-by: Jos=C3=A9 Exp=C3=B3sito Reviewed-by: David Gow --- drivers/gpu/drm/tests/drm_format_helper_test.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/tests/drm_format_helper_test.c b/drivers/gpu/d= rm/tests/drm_format_helper_test.c index 4d074c2e48bf..f66aaa0e52c9 100644 --- a/drivers/gpu/drm/tests/drm_format_helper_test.c +++ b/drivers/gpu/drm/tests/drm_format_helper_test.c @@ -16,7 +16,7 @@ =20 #define TEST_BUF_SIZE 50 =20 -struct xrgb8888_to_rgb332_case { +struct convert_xrgb8888_case { const char *name; unsigned int pitch; unsigned int dst_pitch; @@ -25,7 +25,7 @@ struct xrgb8888_to_rgb332_case { const u8 expected[4 * TEST_BUF_SIZE]; }; =20 -static struct xrgb8888_to_rgb332_case xrgb8888_to_rgb332_cases[] =3D { +static struct convert_xrgb8888_case convert_xrgb8888_cases[] =3D { { .name =3D "single_pixel_source_buffer", .pitch =3D 1 * 4, @@ -126,18 +126,18 @@ static u32 *le32buf_to_cpu(struct kunit *test, const = u32 *buf, size_t buf_size) return dst; } =20 -static void xrgb8888_to_rgb332_case_desc(struct xrgb8888_to_rgb332_case *t, - char *desc) +static void convert_xrgb8888_case_desc(struct convert_xrgb8888_case *t, + char *desc) { strscpy(desc, t->name, KUNIT_PARAM_DESC_SIZE); } =20 -KUNIT_ARRAY_PARAM(xrgb8888_to_rgb332, xrgb8888_to_rgb332_cases, - xrgb8888_to_rgb332_case_desc); +KUNIT_ARRAY_PARAM(convert_xrgb8888, convert_xrgb8888_cases, + convert_xrgb8888_case_desc); =20 static void xrgb8888_to_rgb332_test(struct kunit *test) { - const struct xrgb8888_to_rgb332_case *params =3D test->param_value; + const struct convert_xrgb8888_case *params =3D test->param_value; size_t dst_size; __u8 *dst =3D NULL; __u32 *src =3D NULL; @@ -163,8 +163,7 @@ static void xrgb8888_to_rgb332_test(struct kunit *test) } =20 static struct kunit_case drm_format_helper_test_cases[] =3D { - KUNIT_CASE_PARAM(xrgb8888_to_rgb332_test, - xrgb8888_to_rgb332_gen_params), + KUNIT_CASE_PARAM(xrgb8888_to_rgb332_test, convert_xrgb8888_gen_params), {} }; =20 --=20 2.25.1 From nobody Sat Apr 25 11:48:45 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 070DACCA47F for ; Sat, 9 Jul 2022 11:59:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229564AbiGIL66 (ORCPT ); Sat, 9 Jul 2022 07:58:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229527AbiGIL6w (ORCPT ); Sat, 9 Jul 2022 07:58:52 -0400 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93C3F1572E for ; Sat, 9 Jul 2022 04:58:50 -0700 (PDT) Received: by mail-wm1-x330.google.com with SMTP id o19-20020a05600c511300b003a2de48b4bbso1146399wms.5 for ; Sat, 09 Jul 2022 04:58:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nOA7JdIx7LclTnxriLkitT5hOMN7G/KZhm/8tzsBWhw=; b=YqACFK8JTt8y9rttRvi5GJ/9pkVKnBjIuM3PEgMXzXj8NjcWPbx+MASUjXrxE68nx6 OQGJyKbwJdK1TzXZVmWBA6EYvjJKh/yi8UlLfKJBNs1UauneT1GAlI30WhHPGgt/gfja CWvIN0ETzTGHZdov9mpfPw5GPoK1cwuHdGTO5BHvas/7DN981II+oIOW+8KzTiplEDkX sBF1rbvmuJxWTYTD9Z5WIu2MekAQm+2SQuIWVhWmSg5xPVJOJyZcMfrmjiLGHCvPW5BO WxpSlgeYlupIv7QdqEPvrxJibgYXfVgVxh4hOe0MpCdpFcxU9drTUtyTW3pDPL7Hh/Hn dzzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nOA7JdIx7LclTnxriLkitT5hOMN7G/KZhm/8tzsBWhw=; b=jcz56MxcbzCVInRrWGUE9XED07dNhyYxFAL3gyBFEecK8rxshl/kNvdjpSxQDAiHgh HN6mksK7Ve4QbyjO5ftu2izeSw6k7vg3jVihejATPr0T8XmF+MD0Z9GCKNoJhq4NJxrY qseLYMzSsfCyQhEiTAKeDsxu6ua6vCTPRXO9YiPpJ8wHVP18xa6vQxXQMEpmd9AoBbQG fzYQooGs8ag7eA4GpGlAEAYUd1ilUQdQb2eE9VEBK1NAmrIEfFNcDkkKi0aBFQc7nvXO XAg9hB0CkpiJMuNtzYvI5MEur4nWPWDhKboTwMt1lpSrEGQzPRcB9/D4TQrW6T0qmTeq 0twQ== X-Gm-Message-State: AJIora8Xct2ufG3SrbMyD+P7ePnwaAo1K1a/cXClWsrOAz9gAYBJnqP8 8iWXvk24hrAJgXS/3CxSOSg= X-Google-Smtp-Source: AGRyM1u/fsdcR6R79U7gfq+Fe7nxoZpoRlPqHJddUTulxbAGQIE9UESOGueJF2jm9IAzYcgj1IfwTA== X-Received: by 2002:a7b:cb10:0:b0:3a0:312c:fd3c with SMTP id u16-20020a7bcb10000000b003a0312cfd3cmr5155014wmj.52.1657367929092; Sat, 09 Jul 2022 04:58:49 -0700 (PDT) Received: from localhost.localdomain ([94.73.36.185]) by smtp.gmail.com with ESMTPSA id co1-20020a0560000a0100b0021cf31e1f7csm1199494wrb.102.2022.07.09.04.58.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Jul 2022 04:58:48 -0700 (PDT) From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= To: javierm@redhat.com Cc: davidgow@google.com, dlatypov@google.com, tzimmermann@suse.de, mripard@kernel.org, daniel@ffwll.ch, airlied@linux.ie, maarten.lankhorst@linux.intel.com, jani.nikula@linux.intel.com, maira.canal@usp.br, isabbasso@riseup.net, magalilemes00@gmail.com, tales.aparecida@gmail.com, dri-devel@lists.freedesktop.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Subject: [PATCH v2 3/4] drm/format-helper: Support multiple target formats results Date: Sat, 9 Jul 2022 13:58:36 +0200 Message-Id: <20220709115837.560877-4-jose.exposito89@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220709115837.560877-1-jose.exposito89@gmail.com> References: <20220709115837.560877-1-jose.exposito89@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In order to support multiple destination format conversions, store the destination pitch and the expected result in its own structure. Tested-by: Tales L. Aparecida Acked-by: Thomas Zimmermann Signed-off-by: Jos=C3=A9 Exp=C3=B3sito Reviewed-by: David Gow --- .../gpu/drm/tests/drm_format_helper_test.c | 53 ++++++++++++------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/tests/drm_format_helper_test.c b/drivers/gpu/d= rm/tests/drm_format_helper_test.c index f66aaa0e52c9..0a490ad4fd32 100644 --- a/drivers/gpu/drm/tests/drm_format_helper_test.c +++ b/drivers/gpu/drm/tests/drm_format_helper_test.c @@ -16,34 +16,42 @@ =20 #define TEST_BUF_SIZE 50 =20 +struct convert_to_rgb332_result { + unsigned int dst_pitch; + const u8 expected[TEST_BUF_SIZE]; +}; + struct convert_xrgb8888_case { const char *name; unsigned int pitch; - unsigned int dst_pitch; struct drm_rect clip; const u32 xrgb8888[TEST_BUF_SIZE]; - const u8 expected[4 * TEST_BUF_SIZE]; + struct convert_to_rgb332_result rgb332_result; }; =20 static struct convert_xrgb8888_case convert_xrgb8888_cases[] =3D { { .name =3D "single_pixel_source_buffer", .pitch =3D 1 * 4, - .dst_pitch =3D 0, .clip =3D DRM_RECT_INIT(0, 0, 1, 1), .xrgb8888 =3D { 0x01FF0000 }, - .expected =3D { 0xE0 }, + .rgb332_result =3D { + .dst_pitch =3D 0, + .expected =3D { 0xE0 }, + }, }, { .name =3D "single_pixel_clip_rectangle", .pitch =3D 2 * 4, - .dst_pitch =3D 0, .clip =3D DRM_RECT_INIT(1, 1, 1, 1), .xrgb8888 =3D { 0x00000000, 0x00000000, 0x00000000, 0x10FF0000, }, - .expected =3D { 0xE0 }, + .rgb332_result =3D { + .dst_pitch =3D 0, + .expected =3D { 0xE0 }, + }, }, { /* Well known colors: White, black, red, green, blue, magenta, @@ -52,7 +60,6 @@ static struct convert_xrgb8888_case convert_xrgb8888_case= s[] =3D { */ .name =3D "well_known_colors", .pitch =3D 4 * 4, - .dst_pitch =3D 0, .clip =3D DRM_RECT_INIT(1, 1, 2, 4), .xrgb8888 =3D { 0x00000000, 0x00000000, 0x00000000, 0x00000000, @@ -61,28 +68,33 @@ static struct convert_xrgb8888_case convert_xrgb8888_ca= ses[] =3D { 0x00000000, 0x550000FF, 0x66FF00FF, 0x00000000, 0x00000000, 0x77FFFF00, 0x8800FFFF, 0x00000000, }, - .expected =3D { - 0xFF, 0x00, - 0xE0, 0x1C, - 0x03, 0xE3, - 0xFC, 0x1F, + .rgb332_result =3D { + .dst_pitch =3D 0, + .expected =3D { + 0xFF, 0x00, + 0xE0, 0x1C, + 0x03, 0xE3, + 0xFC, 0x1F, + }, }, }, { /* Randomly picked colors. Full buffer within the clip area. */ .name =3D "destination_pitch", .pitch =3D 3 * 4, - .dst_pitch =3D 5, .clip =3D DRM_RECT_INIT(0, 0, 3, 3), .xrgb8888 =3D { 0xA10E449C, 0xB1114D05, 0xC1A80303, 0xD16C7073, 0xA20E449C, 0xB2114D05, 0xC2A80303, 0xD26C7073, 0xA30E449C, }, - .expected =3D { - 0x0A, 0x08, 0xA0, 0x00, 0x00, - 0x6D, 0x0A, 0x08, 0x00, 0x00, - 0xA0, 0x6D, 0x0A, 0x00, 0x00, + .rgb332_result =3D { + .dst_pitch =3D 5, + .expected =3D { + 0x0A, 0x08, 0xA0, 0x00, 0x00, + 0x6D, 0x0A, 0x08, 0x00, 0x00, + 0xA0, 0x6D, 0x0A, 0x00, 0x00, + }, }, }, }; @@ -138,6 +150,7 @@ KUNIT_ARRAY_PARAM(convert_xrgb8888, convert_xrgb8888_ca= ses, static void xrgb8888_to_rgb332_test(struct kunit *test) { const struct convert_xrgb8888_case *params =3D test->param_value; + const struct convert_to_rgb332_result *result =3D ¶ms->rgb332_result; size_t dst_size; __u8 *dst =3D NULL; __u32 *src =3D NULL; @@ -147,7 +160,7 @@ static void xrgb8888_to_rgb332_test(struct kunit *test) .pitches =3D { params->pitch, 0, 0 }, }; =20 - dst_size =3D conversion_buf_size(DRM_FORMAT_RGB332, params->dst_pitch, + dst_size =3D conversion_buf_size(DRM_FORMAT_RGB332, result->dst_pitch, ¶ms->clip); KUNIT_ASSERT_GT(test, dst_size, 0); =20 @@ -157,9 +170,9 @@ static void xrgb8888_to_rgb332_test(struct kunit *test) src =3D le32buf_to_cpu(test, params->xrgb8888, TEST_BUF_SIZE); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, src); =20 - drm_fb_xrgb8888_to_rgb332(dst, params->dst_pitch, src, &fb, + drm_fb_xrgb8888_to_rgb332(dst, result->dst_pitch, src, &fb, ¶ms->clip); - KUNIT_EXPECT_EQ(test, memcmp(dst, params->expected, dst_size), 0); + KUNIT_EXPECT_EQ(test, memcmp(dst, result->expected, dst_size), 0); } =20 static struct kunit_case drm_format_helper_test_cases[] =3D { --=20 2.25.1 From nobody Sat Apr 25 11:48:45 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EDCF3C43334 for ; Sat, 9 Jul 2022 11:59:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229592AbiGIL7A (ORCPT ); Sat, 9 Jul 2022 07:59:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33210 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229530AbiGIL6x (ORCPT ); Sat, 9 Jul 2022 07:58:53 -0400 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BF523140D5 for ; Sat, 9 Jul 2022 04:58:51 -0700 (PDT) Received: by mail-wm1-x32a.google.com with SMTP id n185so658938wmn.4 for ; Sat, 09 Jul 2022 04:58:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gBPnPC81YvyAZ93LszIxzzNNwpHvb+J4GVaMTH2T4lw=; b=n7ZdogiezEH+Zl1Hfv0QYr9IYLF5cU58TjVscPaBB/qUDuvSq3V0i12MD1jRzRxASm bCxyirxn/OWlmqg1UTQszLQy2WEjYWchwckgOXKtr3+Qg4wFqaMPgO/C9hTrHOO7CQf3 LJp3Dq4aBWATJaOMgZYs+qR3srN1KRRppZ9tFIoch+7/oNRszpdJNkfDKChJ7SuAb7fV 9qXJN9siikert4wfJ/MN6/FheYShh1Rv5wEUXRUgQoe9HN1OIR8vkVTWIJZqiz9Am/zd 9lEnvbqM+AEvILKPulzM8MNUzqzS8wRoQUW24UKGUc/mXb5mMFVk4qpSCSxDTd9VgNd3 TFwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gBPnPC81YvyAZ93LszIxzzNNwpHvb+J4GVaMTH2T4lw=; b=sC32EFyPOKUxEa26o2pBOi+mSi1YM3dfps0WesHhnBh18bxRgC0Gmc3q3TaMIldiEL VOxLQsqDQQEjfhtN+/hSeFw8zPOw/WSzKCnVEp8BXGmvYJ+55ftQgx+jwN86OWlgww29 rCDP+4jSP1g+Jo2s+HnkA47HF1rWg/DKLHJG3hCYiMKQW9XFdKMU++sqNzTt1kXwgOuX YNGAemut3UXaa1cw0mjICvQO7nyvbZevTfUfkiStXmMdwuipRoHkAwVKPmfIRyZldCHf X62tc9MBoE8BhCInYdTv6wRhOwfNiImFDfm1RfYycoEhcIxo9QjHnVrKOWXGVvPMU6SS y41A== X-Gm-Message-State: AJIora/7DQU0PpF4+WtZSW//zqB0Y8oELa/p3uXmqYDQurSOBJ09GsOs XK9izji8MUO+g5EEz+LyNmw= X-Google-Smtp-Source: AGRyM1tVxXqylqlgYVJmVWeOHBGL8OSYO0a6TJff9lt/hcu6YKAJmzvdi/E44HGoTDuMNhqcxyXx9g== X-Received: by 2002:a7b:c848:0:b0:3a0:3937:893 with SMTP id c8-20020a7bc848000000b003a039370893mr5010781wml.163.1657367930126; Sat, 09 Jul 2022 04:58:50 -0700 (PDT) Received: from localhost.localdomain ([94.73.36.185]) by smtp.gmail.com with ESMTPSA id co1-20020a0560000a0100b0021cf31e1f7csm1199494wrb.102.2022.07.09.04.58.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Jul 2022 04:58:49 -0700 (PDT) From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= To: javierm@redhat.com Cc: davidgow@google.com, dlatypov@google.com, tzimmermann@suse.de, mripard@kernel.org, daniel@ffwll.ch, airlied@linux.ie, maarten.lankhorst@linux.intel.com, jani.nikula@linux.intel.com, maira.canal@usp.br, isabbasso@riseup.net, magalilemes00@gmail.com, tales.aparecida@gmail.com, dri-devel@lists.freedesktop.org, kunit-dev@googlegroups.com, linux-kernel@vger.kernel.org, =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= Subject: [PATCH v2 4/4] drm/format-helper: Add KUnit tests for drm_fb_xrgb8888_to_rgb565() Date: Sat, 9 Jul 2022 13:58:37 +0200 Message-Id: <20220709115837.560877-5-jose.exposito89@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220709115837.560877-1-jose.exposito89@gmail.com> References: <20220709115837.560877-1-jose.exposito89@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Extend the existing test cases to test the conversion from XRGB8888 to RGB565. The documentation and the color picker available on [1] are useful resources to understand this patch and validate the values returned by the conversion function. Tested-by: Tales L. Aparecida Acked-by: Thomas Zimmermann Signed-off-by: Jos=C3=A9 Exp=C3=B3sito Link: http://www.barth-dev.de/online/rgb565-color-picker/ # [1] Reviewed-by: David Gow --- .../gpu/drm/tests/drm_format_helper_test.c | 76 ++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/tests/drm_format_helper_test.c b/drivers/gpu/d= rm/tests/drm_format_helper_test.c index 0a490ad4fd32..c0592c1235cf 100644 --- a/drivers/gpu/drm/tests/drm_format_helper_test.c +++ b/drivers/gpu/drm/tests/drm_format_helper_test.c @@ -21,12 +21,19 @@ struct convert_to_rgb332_result { const u8 expected[TEST_BUF_SIZE]; }; =20 +struct convert_to_rgb565_result { + unsigned int dst_pitch; + const u16 expected[TEST_BUF_SIZE]; + const u16 expected_swab[TEST_BUF_SIZE]; +}; + struct convert_xrgb8888_case { const char *name; unsigned int pitch; struct drm_rect clip; const u32 xrgb8888[TEST_BUF_SIZE]; struct convert_to_rgb332_result rgb332_result; + struct convert_to_rgb565_result rgb565_result; }; =20 static struct convert_xrgb8888_case convert_xrgb8888_cases[] =3D { @@ -39,6 +46,11 @@ static struct convert_xrgb8888_case convert_xrgb8888_cas= es[] =3D { .dst_pitch =3D 0, .expected =3D { 0xE0 }, }, + .rgb565_result =3D { + .dst_pitch =3D 0, + .expected =3D { 0xF800 }, + .expected_swab =3D { 0x00F8 }, + }, }, { .name =3D "single_pixel_clip_rectangle", @@ -52,6 +64,11 @@ static struct convert_xrgb8888_case convert_xrgb8888_cas= es[] =3D { .dst_pitch =3D 0, .expected =3D { 0xE0 }, }, + .rgb565_result =3D { + .dst_pitch =3D 0, + .expected =3D { 0xF800 }, + .expected_swab =3D { 0x00F8 }, + }, }, { /* Well known colors: White, black, red, green, blue, magenta, @@ -77,6 +94,21 @@ static struct convert_xrgb8888_case convert_xrgb8888_cas= es[] =3D { 0xFC, 0x1F, }, }, + .rgb565_result =3D { + .dst_pitch =3D 0, + .expected =3D { + 0xFFFF, 0x0000, + 0xF800, 0x07E0, + 0x001F, 0xF81F, + 0xFFE0, 0x07FF, + }, + .expected_swab =3D { + 0xFFFF, 0x0000, + 0x00F8, 0xE007, + 0x1F00, 0x1FF8, + 0xE0FF, 0xFF07, + }, + }, }, { /* Randomly picked colors. Full buffer within the clip area. */ @@ -96,6 +128,19 @@ static struct convert_xrgb8888_case convert_xrgb8888_ca= ses[] =3D { 0xA0, 0x6D, 0x0A, 0x00, 0x00, }, }, + .rgb565_result =3D { + .dst_pitch =3D 10, + .expected =3D { + 0x0A33, 0x1260, 0xA800, 0x0000, 0x0000, + 0x6B8E, 0x0A33, 0x1260, 0x0000, 0x0000, + 0xA800, 0x6B8E, 0x0A33, 0x0000, 0x0000, + }, + .expected_swab =3D { + 0x330A, 0x6012, 0x00A8, 0x0000, 0x0000, + 0x8E6B, 0x330A, 0x6012, 0x0000, 0x0000, + 0x00A8, 0x8E6B, 0x330A, 0x0000, 0x0000, + }, + }, }, }; =20 @@ -120,7 +165,7 @@ static size_t conversion_buf_size(u32 dst_format, unsig= ned int dst_pitch, if (!dst_pitch) dst_pitch =3D drm_rect_width(clip) * dst_fi->cpp[0]; =20 - return dst_pitch * drm_rect_height(clip); + return (dst_pitch * drm_rect_height(clip)) / (dst_fi->depth / 8); } =20 static u32 *le32buf_to_cpu(struct kunit *test, const u32 *buf, size_t buf_= size) @@ -175,8 +220,37 @@ static void xrgb8888_to_rgb332_test(struct kunit *test) KUNIT_EXPECT_EQ(test, memcmp(dst, result->expected, dst_size), 0); } =20 +static void xrgb8888_to_rgb565_test(struct kunit *test) +{ + const struct convert_xrgb8888_case *params =3D test->param_value; + const struct convert_to_rgb565_result *result =3D ¶ms->rgb565_result; + size_t dst_size; + __u16 *dst =3D NULL; + + struct drm_framebuffer fb =3D { + .format =3D drm_format_info(DRM_FORMAT_XRGB8888), + .pitches =3D { params->pitch, 0, 0 }, + }; + + dst_size =3D conversion_buf_size(DRM_FORMAT_RGB565, result->dst_pitch, + ¶ms->clip); + KUNIT_ASSERT_GT(test, dst_size, 0); + + dst =3D kunit_kzalloc(test, dst_size, GFP_KERNEL); + KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dst); + + drm_fb_xrgb8888_to_rgb565(dst, result->dst_pitch, params->xrgb8888, &fb, + ¶ms->clip, false); + KUNIT_EXPECT_EQ(test, memcmp(dst, result->expected, dst_size), 0); + + drm_fb_xrgb8888_to_rgb565(dst, result->dst_pitch, params->xrgb8888, &fb, + ¶ms->clip, true); + KUNIT_EXPECT_EQ(test, memcmp(dst, result->expected_swab, dst_size), 0); +} + static struct kunit_case drm_format_helper_test_cases[] =3D { KUNIT_CASE_PARAM(xrgb8888_to_rgb332_test, convert_xrgb8888_gen_params), + KUNIT_CASE_PARAM(xrgb8888_to_rgb565_test, convert_xrgb8888_gen_params), {} }; =20 --=20 2.25.1