From: Harry Geyer <harry.geyer@devtank.co.uk> Date: Thu, 27 Jul 2023 16:22:55 +0000 (+0100) Subject: i2c: tiny-usb: check usb base class before assuming the interface on device is for... X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=3253f6923a7825e301e05130afede82dde62acc9;p=linux.git 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> --- diff --git a/drivers/i2c/busses/i2c-tiny-usb.c b/drivers/i2c/busses/i2c-tiny-usb.c index d1fa9ff5aeab4..1bffe36c40ad8 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 */