Hello Alan, Ok, I will follow the order as you comment in the next patch Thanks again Best regards José Ignacio On Tue, May 3, 2022 at 10:43 PM Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > On Tue, May 03, 2022 at 05:30:57PM +0200, Jose Ignacio Tornos Martinez wrote: > > Bluetooth Dongles with CSR chip (i.e. USB Bluetooth V4.0 Dongle by > > Trust) hang when they are unbound from 'unbind' sysfs entry and > > can not be bound again. > > > > The reason is CSR chip hangs when usb configuration command with > > index 0 (used to unconfigure) is sent during disconnection. > > > > To avoid this unwanted result, it is necessary not to send this > > command for CSR chip, so a new quirk has been created. > > > > Athough device is not unconfigured, it is better to avoid device > > hanging to be able to operate. Even bluetooth can be previously > > turned off. > > On the other hand, this is not important if usb device is going to > > be bound again (normal behavior), i.e. with usbip. > > > > Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@xxxxxxxxxx> > > --- > > This all looks okay except for one thing... > > > diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c > > index d3c14b5ed4a1..7d42fdc7404c 100644 > > --- a/drivers/usb/core/quirks.c > > +++ b/drivers/usb/core/quirks.c > > @@ -138,6 +138,9 @@ static int quirks_param_set(const char *value, const struct kernel_param *kp) > > case 'o': > > flags |= USB_QUIRK_HUB_SLOW_RESET; > > break; > > + case 'p': > > + flags |= USB_QUIRK_SKIP_UNCONFIGURE; > > + break; > > /* Ignore unrecognized flag characters */ > > } > > } > > @@ -510,6 +513,9 @@ static const struct usb_device_id usb_quirk_list[] = { > > /* INTEL VALUE SSD */ > > { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME }, > > > > + /* CSR Bluetooth */ > > + { USB_DEVICE(0x0a12, 0x0001), .driver_info = USB_QUIRK_SKIP_UNCONFIGURE }, > > These entries are supposed to be in numerical order according to the > vendor ID and product ID. Since 0x0a12 comes before 0x8086, your new > entry does not belong at the end of the list. > > Alan Stern >