Hi Frederic, On Tue, Dec 26, 2017 at 09:50:30PM +0100, Marcel Holtmann wrote: > > +static int bcm_gpio_set_device_wake(struct bcm_device *dev, bool awake) > > +{ > > + int err = 0; > > + > > + if (x86_apple_machine) > > + err = bcm_apple_set_low_power(dev, !awake); > > + else if (dev->device_wakeup) > > + gpiod_set_value(dev->device_wakeup, awake); > > + else > > + return 0; > > + > > + bt_dev_dbg(dev, "%s, delaying 15 ms", awake ? "resume" : "suspend"); > > + mdelay(15); > > Any chance for a comment here on why a delay of 15ms is needed? The delay was introduced by your commit 118612fb9165 ("Bluetooth: hci_bcm: Add suspend/resume PM functions"). Could you provide a rationale for it? Perhaps 15 ms is the time after which the controller auto-suspends following deassertion of the device wake pin (which forces it into "on" state AFAIUI)? Is there public documentation on this controller? I've tried to search for it but my google-fu is failing me. Thanks, Lukas -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html