| From b266e0d4dac00eecdfaf50ec3f708fd0c3b39637 Mon Sep 17 00:00:00 2001 |
| From: Frank Li <Frank.Li@nxp.com> |
| Date: Wed, 8 Jan 2025 17:55:33 -0500 |
| Subject: i3c: master: Fix missing 'ret' assignment in set_speed() |
| |
| From: Frank Li <Frank.Li@nxp.com> |
| |
| commit b266e0d4dac00eecdfaf50ec3f708fd0c3b39637 upstream. |
| |
| Fix a probe failure in the i3c master driver that occurs when no i3c |
| devices are connected to the bus. |
| |
| The issue arises in `i3c_master_bus_init()` where the `ret` value is not |
| updated after calling `master->ops->set_speed()`. If no devices are |
| present, `ret` remains set to `I3C_ERROR_M2`, causing the code to |
| incorrectly proceed to `err_bus_cleanup`. |
| |
| Cc: stable@vger.kernel.org |
| Fixes: aef79e189ba2 ("i3c: master: support to adjust first broadcast address speed") |
| Signed-off-by: Frank Li <Frank.Li@nxp.com> |
| Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com> |
| Acked-by: Mukesh Kumar Savaliya <quic_msavaliy@quicinc.com> |
| Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> |
| Link: https://lore.kernel.org/r/20250108225533.915334-1-Frank.Li@nxp.com |
| Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/i3c/master.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/i3c/master.c |
| +++ b/drivers/i3c/master.c |
| @@ -1919,7 +1919,7 @@ static int i3c_master_bus_init(struct i3 |
| goto err_bus_cleanup; |
| |
| if (master->ops->set_speed) { |
| - master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED); |
| + ret = master->ops->set_speed(master, I3C_OPEN_DRAIN_NORMAL_SPEED); |
| if (ret) |
| goto err_bus_cleanup; |
| } |