Re: [PATCH v2] fpga: altera-cvp: Retry teardown and reset CVP state on failure

From: Xu Yilun

Date: Fri Sep 18 2026 - 12:41:54 EST


> +static int altera_cvp_recovery(struct fpga_manager *mgr,
> + struct fpga_image_info *info)
> +{
> + struct altera_cvp_conf *conf = mgr->priv;
> + int ret, retry;
> +
> + ret = altera_cvp_teardown(mgr, info);
> + for (retry = 0; ret && retry < CVP_TEARDOWN_MAX_RETRY; retry++) {
> + altera_cvp_disable_cvp_mode(conf);
> + ret = altera_cvp_teardown(mgr, info);
> + }

If one retry is sufficient, no need to define CVP_TEARDOWN_MAX_RETRY, no
need to loop.

if (ret) {
/*
* IIUC, say something like CVP_STATUS may stuck and you
* re-activate the CVP_STATUS then try teardown again.
* Please re-org the word.
*/
altera_cvp_disable_cvp_mode(conf);
ret = altera_cvp_teardown(mgr, info);
}

> +
> + if (ret)
> + dev_err(&mgr->dev, "Tear-down failed after %d retries\n",
> + CVP_TEARDOWN_MAX_RETRY);

You always retry once when failure, no need to tell I've retried.

> + else
> + dev_info(&mgr->dev, "Tear-down successful\n");

Only speak up when something goes wrong or suspicious.

>
> return ret;
> }