From 0da6b34f45859ac786db6bdcab52e659f91b5b2d Mon Sep 17 00:00:00 2001 From: Dmitry Tarnyagin Date: Sun, 10 Feb 2013 12:39:04 +0100 Subject: [PATCH] --- yaml --- r: 362331 b: refs/heads/master c: 1cd425b660bd5b4f41b9175b0b7bf3828ce88144 h: refs/heads/master i: 362329: df61e9097270c173bcb0c72cf3a9dc810347936d 362327: 82dfa5df5e93fb04088c9764a0b135c94315ce61 v: v3 --- [refs] | 2 +- trunk/drivers/remoteproc/ste_modem_rproc.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 8eb3a93f183a..fa78077a2e68 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b39599b7cb8f295205b04827ff82e3afec687cde +refs/heads/master: 1cd425b660bd5b4f41b9175b0b7bf3828ce88144 diff --git a/trunk/drivers/remoteproc/ste_modem_rproc.c b/trunk/drivers/remoteproc/ste_modem_rproc.c index a7743c069339..fb95c4220052 100644 --- a/trunk/drivers/remoteproc/ste_modem_rproc.c +++ b/trunk/drivers/remoteproc/ste_modem_rproc.c @@ -240,6 +240,8 @@ static int sproc_drv_remove(struct platform_device *pdev) /* Unregister as remoteproc device */ rproc_del(sproc->rproc); + dma_free_coherent(sproc->rproc->dev.parent, SPROC_FW_SIZE, + sproc->fw_addr, sproc->fw_dma_addr); rproc_put(sproc->rproc); mdev->drv_data = NULL; @@ -297,10 +299,13 @@ static int sproc_probe(struct platform_device *pdev) /* Register as a remoteproc device */ err = rproc_add(rproc); if (err) - goto free_rproc; + goto free_mem; return 0; +free_mem: + dma_free_coherent(rproc->dev.parent, SPROC_FW_SIZE, + sproc->fw_addr, sproc->fw_dma_addr); free_rproc: /* Reset device data upon error */ mdev->drv_data = NULL;