Re: [igt-dev] [PATCH i-g-t 1/2] lib/kms: Add for_each_pipe_clamped
From: Patnana, Venkata Sai <hidden>
Date: 2021-03-29 08:19:55
-----Original Message----- From: Latvala, Petri <redacted> Sent: Tuesday, March 23, 2021 5:19 PM To: Modem, Bhanuprakash <redacted> Cc: Patnana, Venkata Sai <redacted>; igt- dev@lists.freedesktop.org; B S, Karthik [off-list ref]; Heikkila, Juha- pekka [off-list ref]; Shankar, Uma [off-list ref] Subject: Re: [PATCH i-g-t 1/2] lib/kms: Add for_each_pipe_clamped On Tue, Mar 23, 2021 at 01:32:20PM +0200, Modem, Bhanuprakash wrote:quoted
quoted
From: Patnana, Venkata Sai <redacted> Sent: Tuesday, March 23, 2021 4:23 PM To: igt-dev@lists.freedesktop.org Cc: B S, Karthik <redacted>; Heikkila, Juha-pekka <juha- pekka.heikkila@intel.com>; Shankar, Uma [off-list ref]; Patnana, Venkata Sai [off-list ref]; Modem, Bhanuprakash [off-list ref]; Latvala, Petri [off-list ref] Subject: [PATCH i-g-t 1/2] lib/kms: Add for_each_pipe_clamped From: Patnana Venkata Sai <redacted> for_each_pipe and for_each_pipe_static cannot be used for limiting pipe iteration. This api will provide limits the pipe iteration v2: Handle fused pipes (Petri) Add a variable pipe count (Bhanu) v3: change api name as suggested (Petri) Cc: Uma Shankar <redacted> Cc: Juha-Pekka Heikkilä <redacted> Cc: Modem Bhanuprakash <redacted> Cc: Karthik B S <redacted> Cc: Petri Latvala <redacted> Signed-off-by: Patnana Venkata Sai <redacted> --- lib/igt_kms.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)diff --git a/lib/igt_kms.h b/lib/igt_kms.h index09b10b3e04..7dbf14483c 100644--- a/lib/igt_kms.h +++ b/lib/igt_kms.h@@ -534,6 +534,18 @@ static inline booligt_output_is_connected(igt_output_t *output) for_each_pipe_static(pipe) \ for_each_if((display)->pipes[(pipe)].enabled) +/** + * for_each_pipe_clamped: + * @display: a pointer to an #igt_display_t structure + * @pipe: The pipe to iterate. + * @pipe_count: Number of pipes to be iterate + * + * This for loop iterates based on pipe_count and supported by IGT libraries, + */ +#define for_each_pipe_clamped(display, pipe, pipe_count) \What about other APIs like "for_each_pipe_with_valid_output" those iterates over all enabled pipes? Are we planning to implement similar APIs to limit the execution to few pipes?A good point here. At this point I suppose it might be cleaner to leave the for_each loops alone and implement clamping in the tests directly with an open- coded counting. igt_subtest_with_dynamic(....) { int count = 0; for_each_pipe(no magickry here) { igt_dynamic_f(pipe-%s) .... if (++count > limit) break; } }
Here our basic idea is to implement a cleaner code, to make lib for generic approach, Because in multiple tests we are doing this same approach for all tests. That is why we had decided to create a new api.
-- Petri Latvalaquoted
quoted
+for_each_pipe_static(pipe) \ + for_each_if((display)->pipes[(pipe)].enabled) \ +for_each_if(pipe_count-- > 0) /** * for_each_pipe_with_valid_output: * @display: a pointer to an #igt_display_t structure -- 2.25.1
_______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev