[PATCH 3/7] firmware: arm_scmi: bus: iterate the id_table

From: Peng Fan (OSS)
Date: Fri Dec 15 2023 - 06:53:28 EST


From: Peng Fan <peng.fan@xxxxxxx>

There maybe more entries in driver->id_table, just like platform
driver of_match_table. So iterate the id_table, not only use the 1st
entry.

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
drivers/firmware/arm_scmi/bus.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c
index c999edd18cd3..aeb7da841b9d 100644
--- a/drivers/firmware/arm_scmi/bus.c
+++ b/drivers/firmware/arm_scmi/bus.c
@@ -282,14 +282,18 @@ EXPORT_SYMBOL_GPL(scmi_bus_type);
int scmi_driver_register(struct scmi_driver *driver, struct module *owner,
const char *mod_name)
{
+ const struct scmi_device_id *id_table = driver->id_table;
int retval;

if (!driver->probe)
return -EINVAL;

- retval = scmi_protocol_device_request(driver->id_table);
- if (retval)
- return retval;
+ while (id_table->name) {
+ retval = scmi_protocol_device_request(id_table);
+ if (retval)
+ return retval;
+ id_table++;
+ }

driver->driver.bus = &scmi_bus_type;
driver->driver.name = driver->name;

--
2.37.1