diff options
-rw-r--r-- | drivers/remoteproc/qcom_q6v5_pil.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/remoteproc/qcom_q6v5_pil.c b/drivers/remoteproc/qcom_q6v5_pil.c index a019796c363a..8a3fa2bcc9f6 100644 --- a/drivers/remoteproc/qcom_q6v5_pil.c +++ b/drivers/remoteproc/qcom_q6v5_pil.c | |||
@@ -580,7 +580,8 @@ static int q6v5_mpss_init_image(struct q6v5 *qproc, const struct firmware *fw) | |||
580 | if (ret) { | 580 | if (ret) { |
581 | dev_err(qproc->dev, | 581 | dev_err(qproc->dev, |
582 | "assigning Q6 access to metadata failed: %d\n", ret); | 582 | "assigning Q6 access to metadata failed: %d\n", ret); |
583 | return -EAGAIN; | 583 | ret = -EAGAIN; |
584 | goto free_dma_attrs; | ||
584 | } | 585 | } |
585 | 586 | ||
586 | writel(phys, qproc->rmb_base + RMB_PMI_META_DATA_REG); | 587 | writel(phys, qproc->rmb_base + RMB_PMI_META_DATA_REG); |
@@ -599,6 +600,7 @@ static int q6v5_mpss_init_image(struct q6v5 *qproc, const struct firmware *fw) | |||
599 | dev_warn(qproc->dev, | 600 | dev_warn(qproc->dev, |
600 | "mdt buffer not reclaimed system may become unstable\n"); | 601 | "mdt buffer not reclaimed system may become unstable\n"); |
601 | 602 | ||
603 | free_dma_attrs: | ||
602 | dma_free_attrs(qproc->dev, fw->size, ptr, phys, dma_attrs); | 604 | dma_free_attrs(qproc->dev, fw->size, ptr, phys, dma_attrs); |
603 | 605 | ||
604 | return ret < 0 ? ret : 0; | 606 | return ret < 0 ? ret : 0; |
@@ -712,7 +714,8 @@ static int q6v5_mpss_load(struct q6v5 *qproc) | |||
712 | if (ret) { | 714 | if (ret) { |
713 | dev_err(qproc->dev, | 715 | dev_err(qproc->dev, |
714 | "assigning Q6 access to mpss memory failed: %d\n", ret); | 716 | "assigning Q6 access to mpss memory failed: %d\n", ret); |
715 | return -EAGAIN; | 717 | ret = -EAGAIN; |
718 | goto release_firmware; | ||
716 | } | 719 | } |
717 | 720 | ||
718 | boot_addr = relocate ? qproc->mpss_phys : min_addr; | 721 | boot_addr = relocate ? qproc->mpss_phys : min_addr; |