Commit a9c85170 authored by Michal Wajdeczko's avatar Michal Wajdeczko
Browse files

drm/xe/kunit: Promote fake platform parameter list



The list of all known representative platforms defined in xe_wa
could be used in more places by other test suites.

Signed-off-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
Link: https://lore.kernel.org/r/20250829171922.572-6-michal.wajdeczko@intel.com
parent ddbe5aec
Loading
Loading
Loading
Loading
+69 −0
Original line number Diff line number Diff line
@@ -12,6 +12,75 @@
#include <kunit/test-bug.h>
#include <kunit/visibility.h>

#define PLATFORM_CASE(platform__, graphics_step__)					\
	{										\
		.platform = XE_ ## platform__,						\
		.subplatform = XE_SUBPLATFORM_NONE,					\
		.step = { .graphics = STEP_ ## graphics_step__ }			\
	}

#define SUBPLATFORM_CASE(platform__, subplatform__, graphics_step__)			\
	{										\
		.platform = XE_ ## platform__,						\
		.subplatform = XE_SUBPLATFORM_ ## platform__ ## _ ## subplatform__,	\
		.step = { .graphics = STEP_ ## graphics_step__ }			\
	}

#define GMDID_CASE(platform__, graphics_verx100__, graphics_step__,			\
		   media_verx100__, media_step__)					\
	{										\
		.platform = XE_ ## platform__,						\
		.subplatform = XE_SUBPLATFORM_NONE,					\
		.graphics_verx100 = graphics_verx100__,					\
		.media_verx100 = media_verx100__,					\
		.step = { .graphics = STEP_ ## graphics_step__,				\
			   .media = STEP_ ## media_step__ }				\
	}

static const struct xe_pci_fake_data cases[] = {
	PLATFORM_CASE(TIGERLAKE, B0),
	PLATFORM_CASE(DG1, A0),
	PLATFORM_CASE(DG1, B0),
	PLATFORM_CASE(ALDERLAKE_S, A0),
	PLATFORM_CASE(ALDERLAKE_S, B0),
	PLATFORM_CASE(ALDERLAKE_S, C0),
	PLATFORM_CASE(ALDERLAKE_S, D0),
	PLATFORM_CASE(ALDERLAKE_P, A0),
	PLATFORM_CASE(ALDERLAKE_P, B0),
	PLATFORM_CASE(ALDERLAKE_P, C0),
	SUBPLATFORM_CASE(ALDERLAKE_S, RPLS, D0),
	SUBPLATFORM_CASE(ALDERLAKE_P, RPLU, E0),
	SUBPLATFORM_CASE(DG2, G10, C0),
	SUBPLATFORM_CASE(DG2, G11, B1),
	SUBPLATFORM_CASE(DG2, G12, A1),
	GMDID_CASE(METEORLAKE, 1270, A0, 1300, A0),
	GMDID_CASE(METEORLAKE, 1271, A0, 1300, A0),
	GMDID_CASE(METEORLAKE, 1274, A0, 1300, A0),
	GMDID_CASE(LUNARLAKE, 2004, A0, 2000, A0),
	GMDID_CASE(LUNARLAKE, 2004, B0, 2000, A0),
	GMDID_CASE(BATTLEMAGE, 2001, A0, 1301, A1),
	GMDID_CASE(PANTHERLAKE, 3000, A0, 3000, A0),
};

KUNIT_ARRAY_PARAM(platform, cases, xe_pci_fake_data_desc);

/**
 * xe_pci_fake_data_gen_params - Generate struct xe_pci_fake_data parameters
 * @prev: the pointer to the previous parameter to iterate from or NULL
 * @desc: output buffer with minimum size of KUNIT_PARAM_DESC_SIZE
 *
 * This function prepares struct xe_pci_fake_data parameter.
 *
 * To be used only as a parameter generator function in &KUNIT_CASE_PARAM.
 *
 * Return: pointer to the next parameter or NULL if no more parameters
 */
const void *xe_pci_fake_data_gen_params(const void *prev, char *desc)
{
	return platform_gen_params(prev, desc);
}
EXPORT_SYMBOL_IF_KUNIT(xe_pci_fake_data_gen_params);

static const struct xe_device_desc *lookup_desc(enum xe_platform p)
{
	const struct xe_device_desc *desc;
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ struct xe_pci_fake_data {
};

int xe_pci_fake_device_init(struct xe_device *xe);
const void *xe_pci_fake_data_gen_params(const void *prev, char *desc);
void xe_pci_fake_data_desc(const struct xe_pci_fake_data *param, char *desc);

const void *xe_pci_graphics_ip_gen_param(const void *prev, char *desc);
+1 −54
Original line number Diff line number Diff line
@@ -15,59 +15,6 @@
#include "xe_tuning.h"
#include "xe_wa.h"

#define PLATFORM_CASE(platform__, graphics_step__)				\
	{									\
		.platform = XE_ ## platform__,					\
		.subplatform = XE_SUBPLATFORM_NONE,				\
		.step = { .graphics = STEP_ ## graphics_step__ }		\
	}


#define SUBPLATFORM_CASE(platform__, subplatform__, graphics_step__)			\
	{										\
		.platform = XE_ ## platform__,						\
		.subplatform = XE_SUBPLATFORM_ ## platform__ ## _ ## subplatform__,	\
		.step = { .graphics = STEP_ ## graphics_step__ }			\
	}

#define GMDID_CASE(platform__, graphics_verx100__, graphics_step__,		\
		   media_verx100__, media_step__)				\
	{									\
		.platform = XE_ ## platform__,					\
		.subplatform = XE_SUBPLATFORM_NONE,				\
		.graphics_verx100 = graphics_verx100__,				\
		.media_verx100 = media_verx100__,				\
		.step = { .graphics = STEP_ ## graphics_step__,			\
			   .media = STEP_ ## media_step__ }			\
	}

static const struct xe_pci_fake_data cases[] = {
	PLATFORM_CASE(TIGERLAKE, B0),
	PLATFORM_CASE(DG1, A0),
	PLATFORM_CASE(DG1, B0),
	PLATFORM_CASE(ALDERLAKE_S, A0),
	PLATFORM_CASE(ALDERLAKE_S, B0),
	PLATFORM_CASE(ALDERLAKE_S, C0),
	PLATFORM_CASE(ALDERLAKE_S, D0),
	PLATFORM_CASE(ALDERLAKE_P, A0),
	PLATFORM_CASE(ALDERLAKE_P, B0),
	PLATFORM_CASE(ALDERLAKE_P, C0),
	SUBPLATFORM_CASE(ALDERLAKE_S, RPLS, D0),
	SUBPLATFORM_CASE(ALDERLAKE_P, RPLU, E0),
	SUBPLATFORM_CASE(DG2, G10, C0),
	SUBPLATFORM_CASE(DG2, G11, B1),
	SUBPLATFORM_CASE(DG2, G12, A1),
	GMDID_CASE(METEORLAKE, 1270, A0, 1300, A0),
	GMDID_CASE(METEORLAKE, 1271, A0, 1300, A0),
	GMDID_CASE(METEORLAKE, 1274, A0, 1300, A0),
	GMDID_CASE(LUNARLAKE, 2004, A0, 2000, A0),
	GMDID_CASE(LUNARLAKE, 2004, B0, 2000, A0),
	GMDID_CASE(BATTLEMAGE, 2001, A0, 1301, A1),
	GMDID_CASE(PANTHERLAKE, 3000, A0, 3000, A0),
};

KUNIT_ARRAY_PARAM(platform, cases, xe_pci_fake_data_desc);

static int xe_wa_test_init(struct kunit *test)
{
	const struct xe_pci_fake_data *param = test->param_value;
@@ -120,7 +67,7 @@ static void xe_wa_gt(struct kunit *test)
}

static struct kunit_case xe_wa_tests[] = {
	KUNIT_CASE_PARAM(xe_wa_gt, platform_gen_params),
	KUNIT_CASE_PARAM(xe_wa_gt, xe_pci_fake_data_gen_params),
	{}
};