summaryrefslogtreecommitdiff
path: root/drivers/i2c/busses/i2c-tiny-usb.c
diff options
context:
space:
mode:
authorHarry Geyer <harry.geyer@devtank.co.uk>2023-07-27 17:22:55 +0100
committerWolfram Sang <wsa@kernel.org>2023-08-14 15:14:42 +0200
commit3253f6923a7825e301e05130afede82dde62acc9 (patch)
tree793af10eb8580fb908ea7aba2f05258adb0acabc /drivers/i2c/busses/i2c-tiny-usb.c
parent2ccdd1b13c591d306f0401d98dedc4bdcd02b421 (diff)
i2c: tiny-usb: check usb base class before assuming the interface on device is for this driver
Patch allows usb devices with multiple interfaces to use this driver without this driver assuming all interfaces are i2c-tiny-usb. Signed-off-by: Harry Geyer <harry.geyer@devtank.co.uk> Reviewed-by: Andi Shyti <andi.shyti@kernel.org> Link: https://lore.kernel.org/r/20230727162255.21551-1-harry.geyer@devtank.co.uk Signed-off-by: Wolfram Sang <wsa@kernel.org>
Diffstat (limited to 'drivers/i2c/busses/i2c-tiny-usb.c')
-rw-r--r--drivers/i2c/busses/i2c-tiny-usb.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-tiny-usb.c b/drivers/i2c/busses/i2c-tiny-usb.c
index d1fa9ff5aeab..1bffe36c40ad 100644
--- a/drivers/i2c/busses/i2c-tiny-usb.c
+++ b/drivers/i2c/busses/i2c-tiny-usb.c
@@ -222,6 +222,10 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,
int retval = -ENOMEM;
u16 version;
+ if (interface->intf_assoc &&
+ interface->intf_assoc->bFunctionClass != USB_CLASS_VENDOR_SPEC)
+ return -ENODEV;
+
dev_dbg(&interface->dev, "probing usb device\n");
/* allocate memory for our device state and initialize it */