提交 fb2d466b 编写于 作者: L Loic Poulain 提交者: Marcel Holtmann

Bluetooth: hci_bcm: use gpiod cansleep version

Some GPIO controller drivers request sleepable context and so can't
be accessed from IRQ context. Using gpiod_set/get_value accessors
with such controller leads to a kernel warning since they are
reserved for atomic context (according to the documentation).

Use the postfixed _cansleep version instead, indicating that context
is safe for sleeping if necessary. Note that this is the case here
since we never toggle the gpio neither from IRQ nor from a spinlocked
section.
Signed-off-by: NLoic Poulain <loic.poulain@linaro.org>
Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
上级 8c59c264
...@@ -908,13 +908,13 @@ static inline int bcm_apple_get_resources(struct bcm_device *dev) ...@@ -908,13 +908,13 @@ static inline int bcm_apple_get_resources(struct bcm_device *dev)
static int bcm_gpio_set_device_wakeup(struct bcm_device *dev, bool awake) static int bcm_gpio_set_device_wakeup(struct bcm_device *dev, bool awake)
{ {
gpiod_set_value(dev->device_wakeup, awake); gpiod_set_value_cansleep(dev->device_wakeup, awake);
return 0; return 0;
} }
static int bcm_gpio_set_shutdown(struct bcm_device *dev, bool powered) static int bcm_gpio_set_shutdown(struct bcm_device *dev, bool powered)
{ {
gpiod_set_value(dev->shutdown, powered); gpiod_set_value_cansleep(dev->shutdown, powered);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册