[PATCH v1] can: mcp251xfd: use regmap_bulk_write for compatibility
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 --- drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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; -- 2.25.1
Re: [PATCH v1] can: mcp251xfd: use regmap_bulk_write for compatibility
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 -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | signature.asc Description: OpenPGP digital signature
Re: [PATCH v1] can: mcp251xfd: use regmap_bulk_write for compatibility
在 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. Thanks. regards, Marc
Re: [PATCH v1] can: mcp251xfd: use regmap_bulk_write for compatibility
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 -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917- | signature.asc Description: OpenPGP digital signature