Commit cdc4c698 authored by Su Yanjun's avatar Su Yanjun Committed by Marc Kleine-Budde

can: mcp251xfd: replace sizeof(u32) with val_bytes in regmap

The sizeof(u32) is hardcoded. It's better to use the config value from the
regmap.

It increases the size of target object, but it's flexible when new mcp chip
need other val_bytes.

Link: https://lore.kernel.org/r/20210122081334.213957-1-suyanjun218@gmail.comSigned-off-by: default avatarSu Yanjun <suyanjun218@gmail.com>
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 22d63be9
...@@ -1308,6 +1308,7 @@ mcp251xfd_tef_obj_read(const struct mcp251xfd_priv *priv, ...@@ -1308,6 +1308,7 @@ mcp251xfd_tef_obj_read(const struct mcp251xfd_priv *priv,
const u8 offset, const u8 len) const u8 offset, const u8 len)
{ {
const struct mcp251xfd_tx_ring *tx_ring = priv->tx; const struct mcp251xfd_tx_ring *tx_ring = priv->tx;
const int val_bytes = regmap_get_val_bytes(priv->map_rx);
if (IS_ENABLED(CONFIG_CAN_MCP251XFD_SANITY) && if (IS_ENABLED(CONFIG_CAN_MCP251XFD_SANITY) &&
(offset > tx_ring->obj_num || (offset > tx_ring->obj_num ||
...@@ -1322,7 +1323,7 @@ mcp251xfd_tef_obj_read(const struct mcp251xfd_priv *priv, ...@@ -1322,7 +1323,7 @@ mcp251xfd_tef_obj_read(const struct mcp251xfd_priv *priv,
return regmap_bulk_read(priv->map_rx, return regmap_bulk_read(priv->map_rx,
mcp251xfd_get_tef_obj_addr(offset), mcp251xfd_get_tef_obj_addr(offset),
hw_tef_obj, hw_tef_obj,
sizeof(*hw_tef_obj) / sizeof(u32) * len); sizeof(*hw_tef_obj) / val_bytes * len);
} }
static int mcp251xfd_handle_tefif(struct mcp251xfd_priv *priv) static int mcp251xfd_handle_tefif(struct mcp251xfd_priv *priv)
...@@ -1510,12 +1511,13 @@ mcp251xfd_rx_obj_read(const struct mcp251xfd_priv *priv, ...@@ -1510,12 +1511,13 @@ mcp251xfd_rx_obj_read(const struct mcp251xfd_priv *priv,
struct mcp251xfd_hw_rx_obj_canfd *hw_rx_obj, struct mcp251xfd_hw_rx_obj_canfd *hw_rx_obj,
const u8 offset, const u8 len) const u8 offset, const u8 len)
{ {
const int val_bytes = regmap_get_val_bytes(priv->map_rx);
int err; int err;
err = regmap_bulk_read(priv->map_rx, err = regmap_bulk_read(priv->map_rx,
mcp251xfd_get_rx_obj_addr(ring, offset), mcp251xfd_get_rx_obj_addr(ring, offset),
hw_rx_obj, hw_rx_obj,
len * ring->obj_size / sizeof(u32)); len * ring->obj_size / val_bytes);
return err; return err;
} }
...@@ -2137,6 +2139,7 @@ static int mcp251xfd_handle_spicrcif(struct mcp251xfd_priv *priv) ...@@ -2137,6 +2139,7 @@ static int mcp251xfd_handle_spicrcif(struct mcp251xfd_priv *priv)
static irqreturn_t mcp251xfd_irq(int irq, void *dev_id) static irqreturn_t mcp251xfd_irq(int irq, void *dev_id)
{ {
struct mcp251xfd_priv *priv = dev_id; struct mcp251xfd_priv *priv = dev_id;
const int val_bytes = regmap_get_val_bytes(priv->map_reg);
irqreturn_t handled = IRQ_NONE; irqreturn_t handled = IRQ_NONE;
int err; int err;
...@@ -2162,7 +2165,7 @@ static irqreturn_t mcp251xfd_irq(int irq, void *dev_id) ...@@ -2162,7 +2165,7 @@ static irqreturn_t mcp251xfd_irq(int irq, void *dev_id)
err = regmap_bulk_read(priv->map_reg, MCP251XFD_REG_INT, err = regmap_bulk_read(priv->map_reg, MCP251XFD_REG_INT,
&priv->regs_status, &priv->regs_status,
sizeof(priv->regs_status) / sizeof(priv->regs_status) /
sizeof(u32)); val_bytes);
if (err) if (err)
goto out_fail; goto out_fail;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment