> Subject: [PATCH 2/6] drm/i915/dp: End link configuration loops properly
> 
> 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]>

LGTM
Reviewed-by: Suraj Kandpal <[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