[igt-dev] [PATCH i-g-t 1/2] lib/kms: Add for_each_pipe_clamped

venkata.sai.patnana at intel.com venkata.sai.patnana at intel.com
Tue Mar 23 10:53:05 UTC 2021


From: Patnana Venkata Sai <venkata.sai.patnana at intel.com>

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 <uma.shankar at intel.com>
Cc: Juha-Pekka Heikkilä <juha-pekka.heikkila at intel.com>
Cc: Modem Bhanuprakash <bhanuprakash.modem at intel.com>
Cc: Karthik B S <karthik.b.s at intel.com>
Cc: Petri Latvala <petri.latvala at intel.com>
Signed-off-by: Patnana Venkata Sai <venkata.sai.patnana at intel.com>
---
 lib/igt_kms.h | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 09b10b3e04..7dbf14483c 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -534,6 +534,18 @@ static inline bool igt_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) \
+	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



More information about the igt-dev mailing list