Bluetooth: hci_intel: enable on new platform
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 3 Sep 2020 18:48:47 +0000 (21:48 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 11 Sep 2020 07:03:42 +0000 (09:03 +0200)
On new Intel platform the device is provided with INT33E3 ID.
Append it to the list.

This will require ACPI_GPIO_QUIRK_ONLY_GPIOIO to be enabled because
the relevant ASL looks like:

UartSerialBusV2 ( ... )
GpioInt ( ... ) { ... }
GpioIo ( ... ) { ... }

which means that first GPIO resource is an interrupt, while we are expecting it
to be reset one (output). Do the same for host-wake because in case of
GpioInt() the platform_get_irq() will do the job and should return correct
Linux IRQ number. That said, host-wake GPIO can only be GpioIo() resource.

While here, drop commas in terminator lines.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/hci_intel.c

index bb43514..b20a40f 100644 (file)
@@ -1059,7 +1059,8 @@ static const struct hci_uart_proto intel_proto = {
 #ifdef CONFIG_ACPI
 static const struct acpi_device_id intel_acpi_match[] = {
        { "INT33E1", 0 },
-       { },
+       { "INT33E3", 0 },
+       { }
 };
 MODULE_DEVICE_TABLE(acpi, intel_acpi_match);
 #endif
@@ -1121,9 +1122,9 @@ static const struct acpi_gpio_params reset_gpios = { 0, 0, false };
 static const struct acpi_gpio_params host_wake_gpios = { 1, 0, false };
 
 static const struct acpi_gpio_mapping acpi_hci_intel_gpios[] = {
-       { "reset-gpios", &reset_gpios, 1 },
-       { "host-wake-gpios", &host_wake_gpios, 1 },
-       { },
+       { "reset-gpios", &reset_gpios, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO },
+       { "host-wake-gpios", &host_wake_gpios, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO },
+       { }
 };
 
 static int intel_probe(struct platform_device *pdev)