From: Ioana Ciornei <[email protected]> Add a central fsl_guts_read() function which will take into account the endianness that was already determined. No point is duplicating the if-else statement each time we need to read a DCFG register.
Signed-off-by: Ioana Ciornei <[email protected]> Signed-off-by: Vladimir Oltean <[email protected]> --- v1->v2: none --- drivers/soc/fsl/guts.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c index a0a52a5603a5..dc1a42cd9544 100644 --- a/drivers/soc/fsl/guts.c +++ b/drivers/soc/fsl/guts.c @@ -111,6 +111,14 @@ static struct fsl_soc_guts { bool little_endian; } soc; +static unsigned int fsl_guts_read(const void __iomem *reg) +{ + if (soc.little_endian) + return ioread32(reg); + + return ioread32be(reg); +} + static const struct fsl_soc_die_attr *fsl_soc_die_match( u32 svr, const struct fsl_soc_die_attr *matches) { @@ -209,10 +217,7 @@ static int __init fsl_guts_init(void) } soc.little_endian = of_property_read_bool(np, "little-endian"); - if (soc.little_endian) - svr = ioread32(&soc.dcfg_ccsr->svr); - else - svr = ioread32be(&soc.dcfg_ccsr->svr); + svr = fsl_guts_read(&soc.dcfg_ccsr->svr); of_node_put(np); /* Register soc device */ -- 2.34.1
