]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: can: mcp251x: propagate the return value of mcp251x_spi_write()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 16 Jun 2025 07:24:06 +0000 (09:24 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 18 Jun 2025 01:04:10 +0000 (18:04 -0700)
Add an integer return value to mcp251x_write_bits() and use it to
propagate the one returned by mcp251x_spi_write(). Return that value on
error in the request() GPIO callback.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de>
Link: https://patch.msgid.link/20250616-gpiochip-set-rv-net-v2-3-cae0b182a552@linaro.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/can/spi/mcp251x.c

index ec5c64006a16f703bc816983765584c5f3ac76e8..60b7fd3040d02f114693cf66d61c8a075a32e278 100644 (file)
@@ -388,8 +388,8 @@ static void mcp251x_write_2regs(struct spi_device *spi, u8 reg, u8 v1, u8 v2)
        mcp251x_spi_write(spi, 4);
 }
 
-static void mcp251x_write_bits(struct spi_device *spi, u8 reg,
-                              u8 mask, u8 val)
+static int mcp251x_write_bits(struct spi_device *spi, u8 reg,
+                             u8 mask, u8 val)
 {
        struct mcp251x_priv *priv = spi_get_drvdata(spi);
 
@@ -398,7 +398,7 @@ static void mcp251x_write_bits(struct spi_device *spi, u8 reg,
        priv->spi_tx_buf[2] = mask;
        priv->spi_tx_buf[3] = val;
 
-       mcp251x_spi_write(spi, 4);
+       return mcp251x_spi_write(spi, 4);
 }
 
 static u8 mcp251x_read_stat(struct spi_device *spi)
@@ -441,6 +441,7 @@ static int mcp251x_gpio_request(struct gpio_chip *chip,
                                unsigned int offset)
 {
        struct mcp251x_priv *priv = gpiochip_get_data(chip);
+       int ret;
        u8 val;
 
        /* nothing to be done for inputs */
@@ -450,8 +451,10 @@ static int mcp251x_gpio_request(struct gpio_chip *chip,
        val = BFPCTRL_BFE(offset - MCP251X_GPIO_RX0BF);
 
        mutex_lock(&priv->mcp_lock);
-       mcp251x_write_bits(priv->spi, BFPCTRL, val, val);
+       ret = mcp251x_write_bits(priv->spi, BFPCTRL, val, val);
        mutex_unlock(&priv->mcp_lock);
+       if (ret)
+               return ret;
 
        priv->reg_bfpctrl |= val;