drm/xe: Move test infra out of xe_pci.[ch]
authorLucas De Marchi <lucas.demarchi@intel.com>
Sat, 1 Apr 2023 08:51:46 +0000 (01:51 -0700)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Tue, 19 Dec 2023 23:31:31 +0000 (18:31 -0500)
Move code out of xe_pci.[ch] into tests/*.[ch], like is done in other
similar compilation units. Even if this is not part of "tests for
xe_pci.c", they are functions exported and required by other tests. It's
better not to clutter the module headers and sources with them.

Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Link: https://lore.kernel.org/r/20230401085151.1786204-3-lucas.demarchi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/tests/xe_bo.c
drivers/gpu/drm/xe/tests/xe_dma_buf.c
drivers/gpu/drm/xe/tests/xe_migrate.c
drivers/gpu/drm/xe/tests/xe_pci.c [new file with mode: 0644]
drivers/gpu/drm/xe/tests/xe_pci_test.h [new file with mode: 0644]
drivers/gpu/drm/xe/xe_pci.c
drivers/gpu/drm/xe/xe_pci.h

index 3c60cbdf516c1d02e0730f178dd9e121012e2f13..aa433a7b59b7ec62b87e91e2e48447920cc8de39 100644 (file)
@@ -6,6 +6,8 @@
 #include <kunit/test.h>
 
 #include "tests/xe_bo_test.h"
+#include "tests/xe_pci_test.h"
+#include "tests/xe_test.h"
 
 #include "xe_bo_evict.h"
 #include "xe_pci.h"
index e66a8361ae1f0d5007e935b4a6d83b82d9f77645..cf9dddf1a8d726cc1376d4e39f70e1de9be70be9 100644 (file)
@@ -6,6 +6,7 @@
 #include <kunit/test.h>
 
 #include "tests/xe_dma_buf_test.h"
+#include "tests/xe_pci_test.h"
 
 #include "xe_pci.h"
 
index 862d11b2210f96902045fc7749388bc701343c94..eeb6c3be2e37ee71b038b4340a2627db3e4e1ddf 100644 (file)
@@ -6,6 +6,7 @@
 #include <kunit/test.h>
 
 #include "tests/xe_migrate_test.h"
+#include "tests/xe_pci_test.h"
 
 #include "xe_pci.h"
 
diff --git a/drivers/gpu/drm/xe/tests/xe_pci.c b/drivers/gpu/drm/xe/tests/xe_pci.c
new file mode 100644 (file)
index 0000000..643bddb
--- /dev/null
@@ -0,0 +1,62 @@
+// SPDX-License-Identifier: GPL-2.0 AND MIT
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#include "tests/xe_pci_test.h"
+
+#include "tests/xe_test.h"
+
+#include <kunit/test.h>
+
+struct kunit_test_data {
+       int ndevs;
+       xe_device_fn xe_fn;
+};
+
+static int dev_to_xe_device_fn(struct device *dev, void *__data)
+
+{
+       struct drm_device *drm = dev_get_drvdata(dev);
+       struct kunit_test_data *data = __data;
+       int ret = 0;
+       int idx;
+
+       data->ndevs++;
+
+       if (drm_dev_enter(drm, &idx))
+               ret = data->xe_fn(to_xe_device(dev_get_drvdata(dev)));
+       drm_dev_exit(idx);
+
+       return ret;
+}
+
+/**
+ * xe_call_for_each_device - Iterate over all devices this driver binds to
+ * @xe_fn: Function to call for each device.
+ *
+ * This function iterated over all devices this driver binds to, and calls
+ * @xe_fn: for each one of them. If the called function returns anything else
+ * than 0, iteration is stopped and the return value is returned by this
+ * function. Across each function call, drm_dev_enter() / drm_dev_exit() is
+ * called for the corresponding drm device.
+ *
+ * Return: Zero or the error code of a call to @xe_fn returning an error
+ * code.
+ */
+int xe_call_for_each_device(xe_device_fn xe_fn)
+{
+       int ret;
+       struct kunit_test_data data = {
+           .xe_fn = xe_fn,
+           .ndevs = 0,
+       };
+
+       ret = driver_for_each_device(&xe_pci_driver.driver, NULL,
+                                    &data, dev_to_xe_device_fn);
+
+       if (!data.ndevs)
+               kunit_skip(current->kunit_test, "test runs only on hardware\n");
+
+       return ret;
+}
diff --git a/drivers/gpu/drm/xe/tests/xe_pci_test.h b/drivers/gpu/drm/xe/tests/xe_pci_test.h
new file mode 100644 (file)
index 0000000..de65d8c
--- /dev/null
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0 AND MIT */
+/*
+ * Copyright © 2023 Intel Corporation
+ */
+
+#ifndef _XE_PCI_TEST_H_
+#define _XE_PCI_TEST_H_
+
+struct xe_device;
+
+typedef int (*xe_device_fn)(struct xe_device *);
+
+int xe_call_for_each_device(xe_device_fn xe_fn);
+
+#endif
index ebd27b917c5940da26a056c25dc6f34c5f4260c7..c567436afcdc4c84c359c4bdd5f760d066a8d586 100644 (file)
@@ -627,55 +627,5 @@ void xe_unregister_pci_driver(void)
 }
 
 #if IS_ENABLED(CONFIG_DRM_XE_KUNIT_TEST)
-struct kunit_test_data {
-       int ndevs;
-       xe_device_fn xe_fn;
-};
-
-static int dev_to_xe_device_fn(struct device *dev, void *__data)
-
-{
-       struct drm_device *drm = dev_get_drvdata(dev);
-       struct kunit_test_data *data = __data;
-       int ret = 0;
-       int idx;
-
-       data->ndevs++;
-
-       if (drm_dev_enter(drm, &idx))
-               ret = data->xe_fn(to_xe_device(dev_get_drvdata(dev)));
-       drm_dev_exit(idx);
-
-       return ret;
-}
-
-/**
- * xe_call_for_each_device - Iterate over all devices this driver binds to
- * @xe_fn: Function to call for each device.
- *
- * This function iterated over all devices this driver binds to, and calls
- * @xe_fn: for each one of them. If the called function returns anything else
- * than 0, iteration is stopped and the return value is returned by this
- * function. Across each function call, drm_dev_enter() / drm_dev_exit() is
- * called for the corresponding drm device.
- *
- * Return: Zero or the error code of a call to @xe_fn returning an error
- * code.
- */
-int xe_call_for_each_device(xe_device_fn xe_fn)
-{
-       int ret;
-       struct kunit_test_data data = {
-           .xe_fn = xe_fn,
-           .ndevs = 0,
-       };
-
-       ret = driver_for_each_device(&xe_pci_driver.driver, NULL,
-                                    &data, dev_to_xe_device_fn);
-
-       if (!data.ndevs)
-               kunit_skip(current->kunit_test, "test runs only on hardware\n");
-
-       return ret;
-}
+#include "tests/xe_pci.c"
 #endif
index 9e3089549d5fb7e425a3b454bedee36d5caf6b24..611c1209b14cc5a187764f23b20aa1cff03399fe 100644 (file)
@@ -6,16 +6,7 @@
 #ifndef _XE_PCI_H_
 #define _XE_PCI_H_
 
-#include "tests/xe_test.h"
-
 int xe_register_pci_driver(void);
 void xe_unregister_pci_driver(void);
 
-#if IS_ENABLED(CONFIG_DRM_XE_KUNIT_TEST)
-struct xe_device;
-
-typedef int (*xe_device_fn)(struct xe_device *);
-
-int xe_call_for_each_device(xe_device_fn xe_fn);
-#endif
 #endif