[igt-dev] [PATCH i-g-t 2/2] lib/igt_device_scan: Select intel as default vendor for intel_gpu_top
Zbigniew Kempczyński
zbigniew.kempczynski at intel.com
Mon Oct 26 04:43:45 UTC 2020
On Fri, Oct 23, 2020 at 11:21:58PM +0530, Ayaz A Siddiqui wrote:
> intel_gpu_top is selecting first discrete device as default drm subsystem.
> In case of multi-gpu system 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>
> Cc: Petri Latvala <petri.latvala at intel.com>
> Cc: Zbigniew Kempczynski <zbigniew.kempczynski at intel.com>
> Cc: Dixit Ashutosh <ashutosh.dixit 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 55aa8159d..0967c6450 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)
> {
> @@ -457,7 +476,7 @@ bool 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) {
> @@ -893,25 +912,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
>
LGTM:
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
More information about the igt-dev
mailing list