All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Bernatowicz, Marcin" <marcin.bernatowicz@linux.intel.com>
To: Kamil Konieczny <kamil.konieczny@linux.intel.com>,
	igt-dev@lists.freedesktop.org, joonas.lahtinen@intel.com,
	tvrtko.ursulin@intel.com, janusz.krzysztofik@linux.intel.com
Subject: Re: [igt-dev] [PATCH i-g-t 2/3] lib/igt_device_scan: Xe get integrated/discrete card functions
Date: Tue, 5 Sep 2023 09:29:19 +0200	[thread overview]
Message-ID: <3d002323-5ebb-dddf-696a-3ce5506f5f63@linux.intel.com> (raw)
In-Reply-To: <20230828170534.umqx2ysgnpzusseh@kamilkon-desk.igk.intel.com>



On 8/28/2023 7:05 PM, Kamil Konieczny wrote:
> Hi Marcin,
> 
> On 2023-08-25 at 13:19:12 +0000, Marcin Bernatowicz wrote:
>> Xe functions to get integrated/discrete card.
>>
>> Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
>> ---
>>   lib/igt_device_scan.c | 34 +++++++++++++++++++++++++---------
>>   lib/igt_device_scan.h |  2 ++
>>   2 files changed, 27 insertions(+), 9 deletions(-)
>>
>> diff --git a/lib/igt_device_scan.c b/lib/igt_device_scan.c
>> index ae69ed09f..f8b8ca281 100644
>> --- a/lib/igt_device_scan.c
>> +++ b/lib/igt_device_scan.c
>> @@ -769,25 +769,27 @@ __copy_dev_to_card(struct igt_device *dev, struct igt_device_card *card)
>>    * Iterate over all igt_devices array and find first discrete/integrated card.
>>    * card->pci_slot_name will be updated only if a card is found.
>>    */
>> -static bool __find_first_i915_card(struct igt_device_card *card, bool discrete)
>> +static bool __find_first_intel_card(struct igt_device_card *card, bool want_discrete,
>> +				    const char *drv_name)
>>   {
>>   	struct igt_device *dev;
>> -	int cmp;
>> +	int is_integrated;
>>   
>> +	igt_assert(drv_name);
>>   	memset(card, 0, sizeof(*card));
>>   
>>   	igt_list_for_each_entry(dev, &igt_devs.all, link) {
>>   
>> -		if (!is_pci_subsystem(dev) || strcmp(dev->driver, "i915"))
>> +		if (!is_pci_subsystem(dev) || strcmp(dev->driver, drv_name))
> --------------------------------------------------------- ^^^^^^^^
> 
> May you extend this to cover also "intel" card here?
> I mean both cases, i915 or xe.
> 

I didn't want to complicate the code too much, but isn't it
__find_first_intel_card(...,"i915") || __find_first_intel_card(...,"xe")
?


>>   			continue;
>>   
>> -		cmp = strncmp(dev->pci_slot_name, INTEGRATED_I915_GPU_PCI_ID,
>> -			      PCI_SLOT_NAME_SIZE);
>> +		is_integrated = !strncmp(dev->pci_slot_name, INTEGRATED_I915_GPU_PCI_ID,
>> +					 PCI_SLOT_NAME_SIZE);
>>   
>> -		if (discrete && cmp) {
>> +		if (want_discrete && !is_integrated) {
>>   			__copy_dev_to_card(dev, card);
>>   			return true;
>> -		} else if (!discrete && !cmp) {
>> +		} else if (!want_discrete && is_integrated) {
>>   			__copy_dev_to_card(dev, card);
>>   			return true;
>>   		}
>> @@ -800,14 +802,28 @@ bool igt_device_find_first_i915_discrete_card(struct igt_device_card *card)
>>   {
>>   	igt_assert(card);
>>   
>> -	return __find_first_i915_card(card, true);
>> +	return __find_first_intel_card(card, true, "i915");
>> +}
>> +
> 
> Document all new public lib functions.
> 
>> +bool igt_device_find_first_xe_discrete_card(struct igt_device_card *card)
>> +{
>> +	igt_assert(card);
>> +
>> +	return __find_first_intel_card(card, true, "xe");
>>   }
>>   
>>   bool igt_device_find_integrated_card(struct igt_device_card *card)
>>   {
>>   	igt_assert(card);
>>   
>> -	return __find_first_i915_card(card, false);
>> +	return __find_first_intel_card(card, false, "i915");
>> +}
>> +
> 
> Same here.
> 
> Regards,
> Kamil
> 
>> +bool igt_device_find_xe_integrated_card(struct igt_device_card *card)
>> +{
>> +	igt_assert(card);
>> +
>> +	return __find_first_intel_card(card, false, "xe");
>>   }
>>   
>>   static struct igt_device *igt_device_from_syspath(const char *syspath)
>> diff --git a/lib/igt_device_scan.h b/lib/igt_device_scan.h
>> index e6b0f1b90..b8f6a843d 100644
>> --- a/lib/igt_device_scan.h
>> +++ b/lib/igt_device_scan.h
>> @@ -87,6 +87,8 @@ bool igt_device_card_match_pci(const char *filter,
>>   	struct igt_device_card *card);
>>   bool igt_device_find_first_i915_discrete_card(struct igt_device_card *card);
>>   bool igt_device_find_integrated_card(struct igt_device_card *card);
>> +bool igt_device_find_first_xe_discrete_card(struct igt_device_card *card);
>> +bool igt_device_find_xe_integrated_card(struct igt_device_card *card);
>>   char *igt_device_get_pretty_name(struct igt_device_card *card, bool numeric);
>>   int igt_open_card(struct igt_device_card *card);
>>   int igt_open_render(struct igt_device_card *card);
>> -- 
>> 2.30.2
>>

  parent reply	other threads:[~2023-09-05  7:29 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-25 13:19 [igt-dev] [PATCH i-g-t 0/3] [RFC] benchmarks/gem_wsim: added basic xe support Marcin Bernatowicz
2023-08-25 13:19 ` [igt-dev] [PATCH i-g-t 1/3] lib/xe_spin: fixed duration xe_spin capability Marcin Bernatowicz
2023-08-30  9:37   ` Zbigniew Kempczyński
2023-08-30 11:53   ` Kamil Konieczny
2023-09-05 13:48     ` Bernatowicz, Marcin
2023-08-25 13:19 ` [igt-dev] [PATCH i-g-t 2/3] lib/igt_device_scan: Xe get integrated/discrete card functions Marcin Bernatowicz
2023-08-28 17:05   ` Kamil Konieczny
2023-08-30 10:03     ` Zbigniew Kempczyński
2023-08-30 13:54       ` Kamil Konieczny
2023-09-05  7:29     ` Bernatowicz, Marcin [this message]
2023-08-25 13:19 ` [igt-dev] [PATCH i-g-t 3/3] [RFC] benchmarks/gem_wsim: added basic xe support Marcin Bernatowicz
2023-09-01 11:49   ` Kamil Konieczny
2023-08-25 14:49 ` [igt-dev] ✗ GitLab.Pipeline: warning for " Patchwork
2023-08-25 15:14 ` [igt-dev] ✓ CI.xeBAT: success " Patchwork
2023-08-25 15:23 ` [igt-dev] ✓ Fi.CI.BAT: " Patchwork
2023-08-26  6:26 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3d002323-5ebb-dddf-696a-3ce5506f5f63@linux.intel.com \
    --to=marcin.bernatowicz@linux.intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=janusz.krzysztofik@linux.intel.com \
    --cc=joonas.lahtinen@intel.com \
    --cc=kamil.konieczny@linux.intel.com \
    --cc=tvrtko.ursulin@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.