| From 6b7498e172d4458499a3ba406bf7975478f46d21 Mon Sep 17 00:00:00 2001 |
| From: Sam Shih <sam.shih@mediatek.com> |
| Date: Fri, 2 Jun 2023 13:06:17 +0800 |
| Subject: [PATCH] |
| [spi-and-storage][999-2351-nvmem-mtk-efuse-support-minimum-one-byte-access-stri.patch] |
| |
| --- |
| drivers/nvmem/mtk-efuse.c | 13 +++++++------ |
| 1 file changed, 7 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c |
| index 856d9c3fc..2e728fed0 100644 |
| --- a/drivers/nvmem/mtk-efuse.c |
| +++ b/drivers/nvmem/mtk-efuse.c |
| @@ -19,11 +19,12 @@ static int mtk_reg_read(void *context, |
| unsigned int reg, void *_val, size_t bytes) |
| { |
| struct mtk_efuse_priv *priv = context; |
| - u32 *val = _val; |
| - int i = 0, words = bytes / 4; |
| + void __iomem *addr = priv->base + reg; |
| + u8 *val = _val; |
| + int i; |
| |
| - while (words--) |
| - *val++ = readl(priv->base + reg + (i++ * 4)); |
| + for (i = 0; i < bytes; i++, val++) |
| + *val = readb(addr + i); |
| |
| return 0; |
| } |
| @@ -58,8 +59,8 @@ static int mtk_efuse_probe(struct platform_device *pdev) |
| if (IS_ERR(priv->base)) |
| return PTR_ERR(priv->base); |
| |
| - econfig.stride = 4; |
| - econfig.word_size = 4; |
| + econfig.stride = 1; |
| + econfig.word_size = 1; |
| econfig.reg_read = mtk_reg_read; |
| econfig.reg_write = mtk_reg_write; |
| econfig.size = resource_size(res); |
| -- |
| 2.34.1 |
| |