Neatly reduce displayid boilerplate in code. No functional changes.

Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nik...@intel.com>
---
 drivers/gpu/drm/drm_edid.c | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index fbaa7d679cb2..4526e2557dca 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3266,35 +3266,28 @@ const u8 *drm_find_edid_extension(const struct edid 
*edid,
 
 static const u8 *drm_find_cea_extension(const struct edid *edid)
 {
-       int length, idx;
        const struct displayid_block *block;
+       struct displayid_iter iter;
        const u8 *cea;
-       const u8 *displayid;
-       int ext_index;
+       int ext_index = 0;
 
        /* Look for a top level CEA extension block */
        /* FIXME: make callers iterate through multiple CEA ext blocks? */
-       ext_index = 0;
        cea = drm_find_edid_extension(edid, CEA_EXT, &ext_index);
        if (cea)
                return cea;
 
        /* CEA blocks can also be found embedded in a DisplayID block */
-       ext_index = 0;
-       for (;;) {
-               displayid = drm_find_displayid_extension(edid, &length, &idx,
-                                                        &ext_index);
-               if (!displayid)
-                       return NULL;
-
-               idx += sizeof(struct displayid_hdr);
-               for_each_displayid_db(displayid, block, idx, length) {
-                       if (block->tag == DATA_BLOCK_CTA)
-                               return (const u8 *)block;
+       displayid_iter_edid_begin(edid, &iter);
+       displayid_iter_for_each(block, &iter) {
+               if (block->tag == DATA_BLOCK_CTA) {
+                       cea = (const u8 *)block;
+                       break;
                }
        }
+       displayid_iter_end(&iter);
 
-       return NULL;
+       return cea;
 }
 
 static __always_inline const struct drm_display_mode *cea_mode_for_vic(u8 vic)
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to