Call intel_dp_link_caps_iter_end() after the link configuration loops.
At the moment this call only clears the iteration object, so the lack of
call didn't cause an actual issue.

Cc: Luca Coelho <[email protected]>
Fixes: 7266df62ed0a7 ("drm/i915/dp: Iterate configurations via link_caps for 
SST non-DSC")
Fixes: 4f104fc10a461 ("drm/i915/dp: Iterate configurations via link_caps for 
SST DSC")
Signed-off-by: Imre Deak <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dp.c | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp.c 
b/drivers/gpu/drm/i915/display/intel_dp.c
index 0922d23b284ca..0d2c696b9e4b0 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -1688,6 +1688,7 @@ intel_dp_compute_link_config_wide(struct intel_dp 
*intel_dp,
        struct intel_dp_link_caps *link_caps = intel_dp->link.caps;
        struct intel_dp_link_caps_order order =
                intel_dp_link_caps_connector_compute_order(connector);
+       int err = -EINVAL;
        int link_avail;
 
        for (bpp = fxp_q4_to_int(limits->link.max_bpp_x16);
@@ -1718,12 +1719,18 @@ intel_dp_compute_link_config_wide(struct intel_dp 
*intel_dp,
                                pipe_config->pipe_bpp = bpp;
                                pipe_config->port_clock = link_config.rate;
 
-                               return 0;
+                               err = 0;
+
+                               break;
                        }
                }
+               intel_dp_link_caps_iter_end(&iter);
+
+               if (!err)
+                       break;
        }
 
-       return -EINVAL;
+       return err;
 }
 
 int intel_dp_dsc_max_src_input_bpc(struct intel_display *display)
@@ -1924,6 +1931,7 @@ static int dsc_compute_link_config(struct intel_dp 
*intel_dp,
                intel_dp_link_caps_connector_compute_order(connector);
        struct intel_dp_link_config link_config;
        struct intel_dp_link_caps_iter iter;
+       int err = -EINVAL;
 
        intel_dp_link_caps_iter_start(&iter, link_caps, order, 
limits->link_config_filter);
        for_each_dp_link_config(&iter, &link_config) {
@@ -1966,10 +1974,13 @@ static int dsc_compute_link_config(struct intel_dp 
*intel_dp,
                                continue;
                }
 
-               return 0;
-       }
+               err = 0;
 
-       return -EINVAL;
+               break;
+       }
+       intel_dp_link_caps_iter_end(&iter);
+
+       return err;
 }
 
 static u16 intel_dp_dsc_max_delta_bppx16(const struct intel_connector 
*connector,
-- 
2.49.1

Reply via email to