[igt-dev] [PATCH i-g-t 2/2] lib/igt_device_scan: Select intel as default vendor for intel_gpu_top

Ayaz A Siddiqui ayaz.siddiqui at intel.com
Thu Sep 3 11:01:10 UTC 2020


intel_gpu_top is selecting first discrete device as default drm subsystem.
In case of multi drm device if the first device is not intel gpu
then it will lead to an error while running intel_gpu_top.

Signed-off-by: Ayaz A Siddiqui <ayaz.siddiqui at intel.com>
---
 lib/igt_device_scan.c | 40 ++++++++++++++++++++--------------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
index 3583c69c7..3e183423c 100644
--- a/lib/igt_device_scan.c
+++ b/lib/igt_device_scan.c
@@ -426,6 +426,25 @@ static struct igt_device *igt_device_find(const char *subsystem,
 	return NULL;
 }
 
+static bool is_vendor_matched(struct igt_device *dev, const char *vendor)
+{
+	const char *vendor_id;
+
+	if (!dev->vendor || !vendor)
+		return false;
+
+	/* First we compare vendor id, like 8086 */
+	if (!strcasecmp(dev->vendor, vendor))
+		return true;
+
+	/* Likely we have vendor string instead of id */
+	vendor_id = get_pci_vendor_id_by_name(vendor);
+	if (!vendor_id)
+		return false;
+
+	return !strcasecmp(dev->vendor, vendor_id);
+}
+
 static void
 __copy_dev_to_card(struct igt_device *dev, struct igt_device_card *card)
 {
@@ -455,7 +474,7 @@ void igt_device_find_first_i915_discrete_card(struct igt_device_card *card)
 
 	igt_list_for_each_entry(dev, &igt_devs.all, link) {
 
-		if (!is_pci_subsystem(dev))
+		if (!is_pci_subsystem(dev) || !is_vendor_matched(dev, "intel"))
 			continue;
 
 		if ((strncmp(dev->pci_slot_name, INTEGRATED_I915_GPU_PCI_ID, PCI_SLOT_NAME_SIZE)) != 0) {
@@ -889,25 +908,6 @@ static bool parse_filter(const char *fstr, struct filter *filter)
 	return false;
 }
 
-static bool is_vendor_matched(struct igt_device *dev, const char *vendor)
-{
-	const char *vendor_id;
-
-	if (!dev->vendor || !vendor)
-		return false;
-
-	/* First we compare vendor id, like 8086 */
-	if (!strcasecmp(dev->vendor, vendor))
-		return true;
-
-	/* Likely we have vendor string instead of id */
-	vendor_id = get_pci_vendor_id_by_name(vendor);
-	if (!vendor_id)
-		return false;
-
-	return !strcasecmp(dev->vendor, vendor_id);
-}
-
 /* Filter which matches subsystem:/sys/... path.
  * Used as first filter in chain.
  */
-- 
2.26.2



More information about the igt-dev mailing list