aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/busses
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
parent2ccdd1b13c591d306f0401d98dedc4bdcd02b421 (diff)
downloadlinux-3253f6923a7825e301e05130afede82dde62acc9.tar.gz
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')
-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 d1fa9ff5aeab48..1bffe36c40ad89 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 */