diff options
Diffstat (limited to 'drivers/remoteproc/imx_rproc.c')
| -rw-r--r-- | drivers/remoteproc/imx_rproc.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c index ff8170dbbc3c..7a096f1891e6 100644 --- a/drivers/remoteproc/imx_rproc.c +++ b/drivers/remoteproc/imx_rproc.c @@ -34,7 +34,8 @@  #define IMX7D_M4_START			(IMX7D_ENABLE_M4 | IMX7D_SW_M4P_RST \  					 | IMX7D_SW_M4C_RST) -#define IMX7D_M4_STOP			IMX7D_SW_M4C_NON_SCLR_RST +#define IMX7D_M4_STOP			(IMX7D_ENABLE_M4 | IMX7D_SW_M4C_RST | \ +					 IMX7D_SW_M4C_NON_SCLR_RST)  /* Address: 0x020D8000 */  #define IMX6SX_SRC_SCR			0x00 @@ -45,7 +46,8 @@  #define IMX6SX_M4_START			(IMX6SX_ENABLE_M4 | IMX6SX_SW_M4P_RST \  					 | IMX6SX_SW_M4C_RST) -#define IMX6SX_M4_STOP			IMX6SX_SW_M4C_NON_SCLR_RST +#define IMX6SX_M4_STOP			(IMX6SX_ENABLE_M4 | IMX6SX_SW_M4C_RST | \ +					 IMX6SX_SW_M4C_NON_SCLR_RST)  #define IMX6SX_M4_RST_MASK		(IMX6SX_ENABLE_M4 | IMX6SX_SW_M4P_RST \  					 | IMX6SX_SW_M4C_NON_SCLR_RST \  					 | IMX6SX_SW_M4C_RST) @@ -684,7 +686,7 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv)  		return ret;  	} -	if (!(val & dcfg->src_stop)) +	if ((val & dcfg->src_mask) != dcfg->src_stop)  		priv->rproc->state = RPROC_DETACHED;  	return 0; @@ -804,6 +806,7 @@ static int imx_rproc_remove(struct platform_device *pdev)  	clk_disable_unprepare(priv->clk);  	rproc_del(rproc);  	imx_rproc_free_mbox(rproc); +	destroy_workqueue(priv->workqueue);  	rproc_free(rproc);  	return 0; |