• Andrey Smirnov's avatar
    crytpo: caam - make use of iowrite64*_hi_lo in wr_reg64 · 9f5db8b5
    Andrey Smirnov authored
    In order to be able to unify 64 and 32 bit implementations of
    wr_reg64, let's convert it to use helpers from
    <linux/io-64-nonatomic-hi-lo.h> first. Here are the steps of the
    transformation:
    
    1. Inline wr_reg32 helpers:
    
    	if (!caam_imx && caam_little_end) {
    		if (caam_little_end) {
    			iowrite32(data >> 32, (u32 __iomem *)(reg) + 1);
    			iowrite32(data, (u32 __iomem *)(reg));
    		} else {
    			iowrite32be(data >> 32, (u32 __iomem *)(reg) + 1);
    			iowrite32be(data, (u32 __iomem *)(reg));
    		}
    	} else {
    		if (caam_little_end) {
    			iowrite32(data >> 32, (u32 __iomem *)(reg));
    			iowrite32(data, (u32 __iomem *)(reg) + 1);
    		} else {
    			iowrite32be(data >> 32, (u32 __iomem *)(reg));
    			iowrite32be(data, (u32 __iomem *)(reg) + 1);
    		}
    	}
    
    2. Transfrom the conditionals such that the check for
    'caam_little_end' is at the top level:
    
    	if (caam_little_end) {
    		if (!caam_imx) {
    			iowrite32(data >> 32, (u32 __iomem *)(reg) + 1);
    			iowrite32(data, (u32 __iomem *)(reg));
    		} else {
    			iowrite32(data >> 32, (u32 __iomem *)(reg));
    			iowrite32(data, (u32 __iomem *)(reg) + 1);
    		}
    	} else {
    		iowrite32be(data >> 32, (u32 __iomem *)(reg));
    		iowrite32be(data, (u32 __iomem *)(reg) + 1);
    	}
    
    3. Invert the check for !caam_imx:
    
    	if (caam_little_end) {
    		if (caam_imx) {
    			iowrite32(data >> 32, (u32 __iomem *)(reg));
    			iowrite32(data, (u32 __iomem *)(reg) + 1);
    		} else {
    			iowrite32(data >> 32, (u32 __iomem *)(reg) + 1);
    			iowrite32(data, (u32 __iomem *)(reg));
    		}
    	} else {
    		iowrite32be(data >> 32, (u32 __iomem *)(reg));
    		iowrite32be(data, (u32 __iomem *)(reg) + 1);
    	}
    
    4. Make use of iowrite64* helpers from <linux/io-64-nonatomic-hi-lo.h>
    
    	if (caam_little_end) {
    		if (caam_imx) {
    			iowrite32(data >> 32, (u32 __iomem *)(reg));
    			iowrite32(data, (u32 __iomem *)(reg) + 1);
    		} else {
    			iowrite64(data, reg);
    		}
    	} else {
    		iowrite64be(data, reg);
    	}
    
    No functional change intended.
    Signed-off-by: default avatarAndrey Smirnov <andrew.smirnov@gmail.com>
    Reviewed-by: default avatarHoria Geantă <horia.geanta@nxp.com>
    Cc: Chris Spencer <christopher.spencer@sea.co.uk>
    Cc: Cory Tusar <cory.tusar@zii.aero>
    Cc: Chris Healy <cphealy@gmail.com>
    Cc: Lucas Stach <l.stach@pengutronix.de>
    Cc: Horia Geantă <horia.geanta@nxp.com>
    Cc: Aymen Sghaier <aymen.sghaier@nxp.com>
    Cc: Leonard Crestez <leonard.crestez@nxp.com>
    Cc: linux-crypto@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    9f5db8b5
regs.h 30.4 KB