@@ -212,22 +212,23 @@ enum phy_fia {
212212 base.head) \
213213 for_each_if((intel_plane)->pipe == (intel_crtc)->pipe)
214214
215- #define for_each_intel_crtc (dev , intel_crtc ) \
216- list_for_each_entry(intel_crtc, \
217- &(dev)->mode_config.crtc_list, \
218- base.head )
215+ #define for_each_intel_crtc (dev , crtc ) \
216+ list_for_each_entry((crtc), \
217+ &to_intel_display (dev)->pipe_list, \
218+ pipe_head )
219219
220- #define for_each_intel_crtc_in_pipe_mask (dev , intel_crtc , pipe_mask ) \
221- list_for_each_entry(intel_crtc, \
222- &(dev)->mode_config.crtc_list, \
223- base.head) \
224- for_each_if((pipe_mask) & BIT(intel_crtc->pipe))
220+ #define for_each_intel_crtc_reverse (dev , crtc ) \
221+ list_for_each_entry_reverse((crtc), \
222+ &to_intel_display(dev)->pipe_list, \
223+ pipe_head)
224+
225+ #define for_each_intel_crtc_in_pipe_mask (dev , crtc , pipe_mask ) \
226+ for_each_intel_crtc((dev), (crtc)) \
227+ for_each_if((pipe_mask) & BIT((crtc)->pipe))
225228
226- #define for_each_intel_crtc_in_pipe_mask_reverse (dev , intel_crtc , pipe_mask ) \
227- list_for_each_entry_reverse((intel_crtc), \
228- &(dev)->mode_config.crtc_list, \
229- base.head) \
230- for_each_if((pipe_mask) & BIT((intel_crtc)->pipe))
229+ #define for_each_intel_crtc_in_pipe_mask_reverse (dev , crtc , pipe_mask ) \
230+ for_each_intel_crtc_reverse((dev), (crtc)) \
231+ for_each_if((pipe_mask) & BIT((crtc)->pipe))
231232
232233#define for_each_intel_encoder (dev , intel_encoder ) \
233234 list_for_each_entry(intel_encoder, \
@@ -269,14 +270,6 @@ enum phy_fia {
269270 (__i)++) \
270271 for_each_if(plane)
271272
272- #define for_each_old_intel_crtc_in_state (__state , crtc , old_crtc_state , __i ) \
273- for ((__i) = 0; \
274- (__i) < (__state)->base.dev->mode_config.num_crtc && \
275- ((crtc) = to_intel_crtc((__state)->base.crtcs[__i].ptr), \
276- (old_crtc_state) = to_intel_crtc_state((__state)->base.crtcs[__i].old_state), 1); \
277- (__i)++) \
278- for_each_if(crtc)
279-
280273#define for_each_new_intel_plane_in_state (__state , plane , new_plane_state , __i ) \
281274 for ((__i) = 0; \
282275 (__i) < (__state)->base.dev->mode_config.num_total_plane && \
@@ -285,22 +278,6 @@ enum phy_fia {
285278 (__i)++) \
286279 for_each_if(plane)
287280
288- #define for_each_new_intel_crtc_in_state (__state , crtc , new_crtc_state , __i ) \
289- for ((__i) = 0; \
290- (__i) < (__state)->base.dev->mode_config.num_crtc && \
291- ((crtc) = to_intel_crtc((__state)->base.crtcs[__i].ptr), \
292- (new_crtc_state) = to_intel_crtc_state((__state)->base.crtcs[__i].new_state), 1); \
293- (__i)++) \
294- for_each_if(crtc)
295-
296- #define for_each_new_intel_crtc_in_state_reverse (__state , crtc , new_crtc_state , __i ) \
297- for ((__i) = (__state)->base.dev->mode_config.num_crtc - 1; \
298- (__i) >= 0 && \
299- ((crtc) = to_intel_crtc((__state)->base.crtcs[__i].ptr), \
300- (new_crtc_state) = to_intel_crtc_state((__state)->base.crtcs[__i].new_state), 1); \
301- (__i)--) \
302- for_each_if(crtc)
303-
304281#define for_each_oldnew_intel_plane_in_state (__state , plane , old_plane_state , new_plane_state , __i ) \
305282 for ((__i) = 0; \
306283 (__i) < (__state)->base.dev->mode_config.num_total_plane && \
@@ -310,23 +287,32 @@ enum phy_fia {
310287 (__i)++) \
311288 for_each_if(plane)
312289
290+ #define for_each_old_intel_crtc_in_state (__state , crtc , old_crtc_state , __i ) \
291+ for_each_intel_crtc((__state)->base.dev, (crtc)) \
292+ for_each_if(((__i) = drm_crtc_index(&(crtc)->base), (void)(__i), \
293+ (old_crtc_state) = intel_atomic_get_old_crtc_state((__state), (crtc))))
294+
295+ #define for_each_new_intel_crtc_in_state (__state , crtc , new_crtc_state , __i ) \
296+ for_each_intel_crtc((__state)->base.dev, (crtc)) \
297+ for_each_if(((__i) = drm_crtc_index(&(crtc)->base), (void)(__i), \
298+ (new_crtc_state) = intel_atomic_get_new_crtc_state((__state), (crtc))))
299+
300+ #define for_each_new_intel_crtc_in_state_reverse (__state , crtc , new_crtc_state , __i ) \
301+ for_each_intel_crtc_reverse((__state)->base.dev, (crtc)) \
302+ for_each_if(((__i) = drm_crtc_index(&(crtc)->base), (void)(__i), \
303+ (new_crtc_state) = intel_atomic_get_new_crtc_state((__state), (crtc))))
304+
313305#define for_each_oldnew_intel_crtc_in_state (__state , crtc , old_crtc_state , new_crtc_state , __i ) \
314- for ((__i) = 0; \
315- (__i) < (__state)->base.dev->mode_config.num_crtc && \
316- ((crtc) = to_intel_crtc((__state)->base.crtcs[__i].ptr), \
317- (old_crtc_state) = to_intel_crtc_state((__state)->base.crtcs[__i].old_state), \
318- (new_crtc_state) = to_intel_crtc_state((__state)->base.crtcs[__i].new_state), 1); \
319- (__i)++) \
320- for_each_if(crtc)
306+ for_each_intel_crtc((__state)->base.dev, (crtc)) \
307+ for_each_if(((__i) = drm_crtc_index(&(crtc)->base), (void)(__i), \
308+ (old_crtc_state) = intel_atomic_get_old_crtc_state((__state), (crtc)), \
309+ (new_crtc_state) = intel_atomic_get_new_crtc_state((__state), (crtc))))
321310
322311#define for_each_oldnew_intel_crtc_in_state_reverse (__state , crtc , old_crtc_state , new_crtc_state , __i ) \
323- for ((__i) = (__state)->base.dev->mode_config.num_crtc - 1; \
324- (__i) >= 0 && \
325- ((crtc) = to_intel_crtc((__state)->base.crtcs[__i].ptr), \
326- (old_crtc_state) = to_intel_crtc_state((__state)->base.crtcs[__i].old_state), \
327- (new_crtc_state) = to_intel_crtc_state((__state)->base.crtcs[__i].new_state), 1); \
328- (__i)--) \
329- for_each_if(crtc)
312+ for_each_intel_crtc_reverse((__state)->base.dev, (crtc)) \
313+ for_each_if(((__i) = drm_crtc_index(&(crtc)->base), (void)(__i), \
314+ (old_crtc_state) = intel_atomic_get_old_crtc_state((__state), (crtc)), \
315+ (new_crtc_state) = intel_atomic_get_new_crtc_state((__state), (crtc))))
330316
331317#define intel_atomic_crtc_state_for_each_plane_state ( \
332318 plane , plane_state , \
0 commit comments