Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27378f4c authored by Lukas Wunner's avatar Lukas Wunner Committed by Marcel Holtmann
Browse files

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: default avatarMax Shavrick <mxms@me.com>
Signed-off-by: default avatarLukas Wunner <lukas@wunner.de>
Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
parent 0a03f98b
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -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.