diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-05-16 09:48:06 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-06-04 20:57:27 +0200 |
commit | d3feff68e2f036ccf4d365eb3b6ff4a278d8b7c2 (patch) | |
tree | b8d78a5889b93a8726f4a69d13fe3e12d3761097 /arch/arm/mach-imx/iim.c | |
parent | bb9e3842b2a64a5d1d4e7ca90d6a633b42535ee3 (diff) | |
download | barebox-d3feff68e2f036ccf4d365eb3b6ff4a278d8b7c2.tar.gz barebox-d3feff68e2f036ccf4d365eb3b6ff4a278d8b7c2.tar.xz |
ARM: i.MX: iim: pass private data struct to imx_iim_fuse_sense
To make all struct members available and to reduce the argument
count.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/iim.c')
-rw-r--r-- | arch/arm/mach-imx/iim.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/arch/arm/mach-imx/iim.c b/arch/arm/mach-imx/iim.c index 0208a38f6b..f2076eec3e 100644 --- a/arch/arm/mach-imx/iim.c +++ b/arch/arm/mach-imx/iim.c @@ -52,16 +52,12 @@ struct iim_priv { struct iim_bank *bank[IIM_NUM_BANKS]; }; -static int imx_iim_fuse_sense(void __iomem *reg_base, unsigned int bank, - unsigned int row) +static int imx_iim_fuse_sense(struct iim_bank *bank, unsigned int row) { + struct iim_priv *iim = bank->iim; + void __iomem *reg_base = iim->base; u8 err, stat; - if (bank > 7) { - printf("%s: invalid bank number\n", __func__); - return -EINVAL; - } - if (row > 255) { printf("%s: invalid row index\n", __func__); return -EINVAL; @@ -72,7 +68,7 @@ static int imx_iim_fuse_sense(void __iomem *reg_base, unsigned int bank, writeb(0xfe, reg_base + IIM_ERR); /* upper and lower address halves */ - writeb((bank << 3) | (row >> 5), reg_base + IIM_UA); + writeb((bank->bank << 3) | (row >> 5), reg_base + IIM_UA); writeb((row << 3) & 0xf8, reg_base + IIM_LA); /* start fuse sensing */ @@ -99,15 +95,13 @@ static ssize_t imx_iim_cdev_read(struct cdev *cdev, void *buf, size_t count, { ulong size, i; struct iim_bank *bank = container_of(cdev, struct iim_bank, cdev); - struct iim_priv *iim = bank->iim; size = min((loff_t)count, 32 - offset); if (iim_sense_enable) { for (i = 0; i < size; i++) { int row_val; - row_val = imx_iim_fuse_sense(iim->base, - bank->bank, offset + i); + row_val = imx_iim_fuse_sense(bank, offset + i); if (row_val < 0) return row_val; ((u8 *)buf)[i] = (u8)row_val; |