Bluetooth: Avoid WARN splat due to missing GPIOLIB

Loading hci_bcm with CONFIG_GPIOLIB=n results in the following splat
when calling gpiod_to_irq() from bcm_get_resources():

    WARNING: CPU: 0 PID: 1006 at ./include/linux/gpio/consumer.h:450 bcm_get_resources+0x50/0x80
    CPU: 0 PID: 1006 Comm: kworker/u8:4 Tainted: G       A         4.15.0-rc4custom+ #4
    Hardware name: Apple Inc. MacBook8,1/Mac-BE0E8AC46FE800CC, BIOS MB81.88Z.0168.B00.1708080033 08/08/2017
    Call Trace:
    bcm_serdev_probe+0x8b/0xc0
    driver_probe_device+0x202/0x310
    __driver_attach+0x85/0x90
    ? driver_probe_device+0x310/0x310
    bus_for_each_dev+0x57/0x80
    async_run_entry_fn+0x2c/0xd0
    process_one_work+0x1d2/0x3d0
    worker_thread+0x26/0x3c0
    ? process_one_work+0x3d0/0x3d0
    kthread+0x10c/0x130
    ? kthread_create_on_node+0x40/0x40
    ret_from_fork+0x1f/0x30

We could call gpiod_to_irq() only if IS_ENABLED(CONFIG_GPIOLIB) but
without GPIOLIB, the driver's power saving features can't be used,
so selecting GPIOLIB seems more appropriate.

The same issue is present in hci_intel.c and hci_nokia.c, fix those up
as well.

Reported-by: Max Shavrick <mxms@me.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Lukas Wunner 2017-12-26 17:07:34 +02:00 committed by Marcel Holtmann
parent 0a03f98b98
commit 27378f4c1b
1 changed files with 3 additions and 0 deletions

View File

@ -110,6 +110,7 @@ config BT_HCIUART_NOKIA
depends on PM depends on PM
select BT_HCIUART_H4 select BT_HCIUART_H4
select BT_BCM select BT_BCM
select GPIOLIB
help help
Nokia H4+ is serial protocol for communication between Bluetooth Nokia H4+ is serial protocol for communication between Bluetooth
device and host. This protocol is required for Bluetooth devices device and host. This protocol is required for Bluetooth devices
@ -170,6 +171,7 @@ config BT_HCIUART_INTEL
depends on BT_HCIUART depends on BT_HCIUART
select BT_HCIUART_H4 select BT_HCIUART_H4
select BT_INTEL select BT_INTEL
select GPIOLIB
help help
The Intel protocol support enables Bluetooth HCI over serial The Intel protocol support enables Bluetooth HCI over serial
port interface for Intel Bluetooth controllers. port interface for Intel Bluetooth controllers.
@ -183,6 +185,7 @@ config BT_HCIUART_BCM
depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT) depends on (!ACPI || SERIAL_DEV_CTRL_TTYPORT)
select BT_HCIUART_H4 select BT_HCIUART_H4
select BT_BCM select BT_BCM
select GPIOLIB
help help
The Broadcom protocol support enables Bluetooth HCI over serial The Broadcom protocol support enables Bluetooth HCI over serial
port interface for Broadcom Bluetooth controllers. port interface for Broadcom Bluetooth controllers.