diff mbox series

[v1] can: mcp251xfd: use regmap_bulk_write for compatibility

Message ID 20210122030214.166334-1-suyanjun218@gmail.com
State New
Headers show
Series [v1] can: mcp251xfd: use regmap_bulk_write for compatibility | expand

Commit Message

knigh dark Jan. 22, 2021, 3:02 a.m. UTC
Recently i use mcp2518fd on 4.x kernel which multiple write is not
backported, regmap_raw_write will cause old kernel crash because the
tx buffer in driver is smaller then 2K. Use regmap_bulk_write instead
for compatibility.

Signed-off-by: Su Yanjun <suyanjun218@gmail.com>
---
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Marc Kleine-Budde Jan. 22, 2021, 7:26 a.m. UTC | #1
On 1/22/21 4:02 AM, Su Yanjun wrote:
> Recently i use mcp2518fd on 4.x kernel which multiple write is not
> backported, regmap_raw_write will cause old kernel crash because the
> tx buffer in driver is smaller then 2K. Use regmap_bulk_write instead
> for compatibility.

Hmmm, this patch will never be backported to any 4.x kernel, as the driver is
not available on these kernels. You have to carry patches for these kernels
anyway, so I think I'll not take that patch. Sorry. Drop me a note if you are
interested in updating your kernel to a recent v5.11 kernel.

regards,
Marc
Marc Kleine-Budde Jan. 22, 2021, 8:14 a.m. UTC | #2
On 1/22/21 8:59 AM, Su wrote:
> 
> 在 2021/1/22 下午3:26, Marc Kleine-Budde 写道:
>> On 1/22/21 4:02 AM, Su Yanjun wrote:
>>> Recently i use mcp2518fd on 4.x kernel which multiple write is not
>>> backported, regmap_raw_write will cause old kernel crash because the
>>> tx buffer in driver is smaller then 2K. Use regmap_bulk_write instead
>>> for compatibility.
>> Hmmm, this patch will never be backported to any 4.x kernel, as the driver is
>> not available on these kernels. You have to carry patches for these kernels
>> anyway, so I think I'll not take that patch. Sorry. Drop me a note if you are
>> interested in updating your kernel to a recent v5.11 kernel.
> 
> I got it. I have already port it to 4.x kernel. I just want anyone 
> working on old kernels to use the driver more easier.

Ok, you can post a link yo your repo with the patches for the interested reader.

Marc
diff mbox series

Patch

diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index 3dde52669343..ab8aad0a7594 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -932,6 +932,7 @@  static int mcp251xfd_chip_ecc_init(struct mcp251xfd_priv *priv)
 	void *ram;
 	u32 val = 0;
 	int err;
+	int val_bytes = regmap_get_val_bytes(priv->map_reg);
 
 	ecc->ecc_stat = 0;
 
@@ -947,8 +948,8 @@  static int mcp251xfd_chip_ecc_init(struct mcp251xfd_priv *priv)
 	if (!ram)
 		return -ENOMEM;
 
-	err = regmap_raw_write(priv->map_reg, MCP251XFD_RAM_START, ram,
-			       MCP251XFD_RAM_SIZE);
+	err = regmap_bulk_write(priv->map_reg, MCP251XFD_RAM_START, ram,
+			       MCP251XFD_RAM_SIZE / val_bytes);
 	kfree(ram);
 
 	return err;