diff options
Diffstat (limited to 'drivers/crypto/caam/ctrl.c')
| -rw-r--r-- | drivers/crypto/caam/ctrl.c | 15 | 
1 files changed, 8 insertions, 7 deletions
| diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c index d7c3c3805693..7139366da016 100644 --- a/drivers/crypto/caam/ctrl.c +++ b/drivers/crypto/caam/ctrl.c @@ -99,10 +99,13 @@ static inline int run_descriptor_deco0(struct device *ctrldev, u32 *desc,  	if (ctrlpriv->virt_en == 1 ||  	    /* -	     * Apparently on i.MX8MQ it doesn't matter if virt_en == 1 +	     * Apparently on i.MX8M{Q,M,N,P} it doesn't matter if virt_en == 1  	     * and the following steps should be performed regardless  	     */ -	    of_machine_is_compatible("fsl,imx8mq")) { +	    of_machine_is_compatible("fsl,imx8mq") || +	    of_machine_is_compatible("fsl,imx8mm") || +	    of_machine_is_compatible("fsl,imx8mn") || +	    of_machine_is_compatible("fsl,imx8mp")) {  		clrsetbits_32(&ctrl->deco_rsr, 0, DECORSR_JR0);  		while (!(rd_reg32(&ctrl->deco_rsr) & DECORSR_VALID) && @@ -508,7 +511,7 @@ static const struct soc_device_attribute caam_imx_soc_table[] = {  	{ .soc_id = "i.MX6UL", .data = &caam_imx6ul_data },  	{ .soc_id = "i.MX6*",  .data = &caam_imx6_data },  	{ .soc_id = "i.MX7*",  .data = &caam_imx7_data }, -	{ .soc_id = "i.MX8MQ", .data = &caam_imx7_data }, +	{ .soc_id = "i.MX8M*", .data = &caam_imx7_data },  	{ .family = "Freescale i.MX" },  	{ /* sentinel */ }  }; @@ -671,11 +674,9 @@ static int caam_probe(struct platform_device *pdev)  	of_node_put(np);  	if (!ctrlpriv->mc_en) -		clrsetbits_32(&ctrl->mcr, MCFGR_AWCACHE_MASK | MCFGR_LONG_PTR, +		clrsetbits_32(&ctrl->mcr, MCFGR_AWCACHE_MASK,  			      MCFGR_AWCACHE_CACH | MCFGR_AWCACHE_BUFF | -			      MCFGR_WDENABLE | MCFGR_LARGE_BURST | -			      (sizeof(dma_addr_t) == sizeof(u64) ? -			       MCFGR_LONG_PTR : 0)); +			      MCFGR_WDENABLE | MCFGR_LARGE_BURST);  	handle_imx6_err005766(&ctrl->mcr); | 
