firmware: arm_scmi: Ensure scmi_devices are always matched by name as well
authorSudeep Holla <sudeep.holla@arm.com>
Mon, 17 Mar 2025 10:31:21 +0000 (10:31 +0000)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 14 Apr 2025 09:12:01 +0000 (10:12 +0100)
Currently, devices without a name in the id_table cannot register drivers,
and no scmi_device is created without a name via scmi_device_create().
However, the function __scmi_device_create() allows devices with no name,
which are then labeled as "unknown."

Removes support for matching scmi_device instances without a name,
ensuring consistency across the driver registration and probing process.

Message-Id: <20250317-b4-scmi_minor_cleanup-v2-1-f4be99bd9864@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scmi/bus.c

index 7af01664ce7e2f606b17ea416bf354b2cb9d6a49..fada4cf0cef719dc6f9babd49c406b69ead70137 100644 (file)
@@ -209,13 +209,10 @@ scmi_dev_match_id(struct scmi_device *scmi_dev, const struct scmi_driver *scmi_d
        if (!id)
                return NULL;
 
-       for (; id->protocol_id; id++)
-               if (id->protocol_id == scmi_dev->protocol_id) {
-                       if (!id->name)
-                               return id;
-                       else if (!strcmp(id->name, scmi_dev->name))
-                               return id;
-               }
+       for (; id->protocol_id && id->name; id++)
+               if (id->protocol_id == scmi_dev->protocol_id &&
+                   !strcmp(id->name, scmi_dev->name))
+                       return id;
 
        return NULL;
 }