[PATCH v3 03/14] spi: Refactor bus number assigning code in spi_register_controller()

From: Andy Shevchenko
Date: Tue Jul 11 2023 - 13:20:20 EST


Instead of 'else' branching use two sequential if:s, which allows
to re-use the logic of IDR allocation in both cases.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
---
drivers/spi/spi.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index d8064998aa27..6d74218cf38e 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -3122,8 +3122,8 @@ int spi_register_controller(struct spi_controller *ctlr)
{
struct device *dev = ctlr->dev.parent;
struct boardinfo *bi;
+ int first_dynamic;
int status;
- int id, first_dynamic;

if (!dev)
return -ENODEV;
@@ -3136,19 +3136,13 @@ int spi_register_controller(struct spi_controller *ctlr)
if (status)
return status;

+ if (ctlr->bus_num < 0)
+ ctlr->bus_num = of_alias_get_id(ctlr->dev.of_node, "spi");
if (ctlr->bus_num >= 0) {
/* Devices with a fixed bus num must check-in with the num */
status = spi_controller_id_alloc(ctlr, ctlr->bus_num, ctlr->bus_num + 1);
if (status)
return status;
- } else {
- /* Allocate dynamic bus number using Linux idr */
- id = of_alias_get_id(ctlr->dev.of_node, "spi");
- if (id >= 0) {
- status = spi_controller_id_alloc(ctlr, id, id + 1);
- if (status)
- return status;
- }
}
if (ctlr->bus_num < 0) {
first_dynamic = of_alias_get_highest_id("spi");
--
2.40.0.1.gaa8946217a0b