diff options
| author | Zhang Lixu <lixu.zhang@intel.com> | 2025-12-10 05:53:28 +0300 |
|---|---|---|
| committer | Benjamin Tissoires <bentiss@kernel.org> | 2025-12-19 14:10:53 +0300 |
| commit | daeed86b686855adda79f13729e0c9b0530990be (patch) | |
| tree | 8d1cdb9351bb9af48f2e1b5cd1786201a557f502 | |
| parent | 0e13150c1a13a3a3d6184c24bfd080d5999945d1 (diff) | |
| download | linux-daeed86b686855adda79f13729e0c9b0530990be.tar.xz | |
HID: intel-ish-hid: Update ishtp bus match to support device ID table
The ishtp_cl_bus_match() function previously only checked the first entry
in the driver's device ID table. Update it to iterate over the entire
table, allowing proper matching for drivers with multiple supported
protocol GUIDs.
Signed-off-by: Zhang Lixu <lixu.zhang@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
| -rw-r--r-- | drivers/hid/intel-ish-hid/ishtp/bus.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/hid/intel-ish-hid/ishtp/bus.c b/drivers/hid/intel-ish-hid/ishtp/bus.c index c6ce37244e49..c3915f3a060e 100644 --- a/drivers/hid/intel-ish-hid/ishtp/bus.c +++ b/drivers/hid/intel-ish-hid/ishtp/bus.c @@ -240,9 +240,17 @@ static int ishtp_cl_bus_match(struct device *dev, const struct device_driver *dr { struct ishtp_cl_device *device = to_ishtp_cl_device(dev); struct ishtp_cl_driver *driver = to_ishtp_cl_driver(drv); + struct ishtp_fw_client *client = device->fw_client; + const struct ishtp_device_id *id; - return(device->fw_client ? guid_equal(&driver->id[0].guid, - &device->fw_client->props.protocol_name) : 0); + if (client) { + for (id = driver->id; !guid_is_null(&id->guid); id++) { + if (guid_equal(&id->guid, &client->props.protocol_name)) + return 1; + } + } + + return 0; } /** |
