summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/btintel.h
diff options
context:
space:
mode:
authorKiran K <kiran.k@intel.com>2023-06-11 12:13:42 +0530
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-08-11 11:39:19 -0700
commit8f0a3786f56d9fa4b308bdbd54757a51145dbb7a (patch)
tree721c3ea549865436ba6ef19bff3e445a709ffa8f /drivers/bluetooth/btintel.h
parent06d3fdfcdf5cefb06f2024b9d3dad356779399cf (diff)
downloadlinux-8f0a3786f56d9fa4b308bdbd54757a51145dbb7a.tar.gz
linux-8f0a3786f56d9fa4b308bdbd54757a51145dbb7a.tar.bz2
linux-8f0a3786f56d9fa4b308bdbd54757a51145dbb7a.zip
Bluetooth: btintel: Add support to reset bluetooth via ACPI DSM
New Intel platforms supports reset of Bluetooth device via ACPI DSM methods. The legacy reset mechanism via GPIO will be deprecated in future. This patch checks the platform support for reset methods and if supported uses the same instead of legacy GPIO toggling method. ACPI firmware supports two types of reset method based on NIC card. (Discrete or Integrated). 1. VSEC Type - Vendor Specific Extended Capability. Here BT_EN and BT_IF_SELECT lines are driven by a register in PCH cluster. This interface is supported on discrete BT solution. 2. WDISABLE2 - In this soluton, W_DISABLE2 pin in M.2 is connected to physical GPIO from PCH. The DSM interface shall toggle this to recover from error. Signed-off-by: Kiran K <kiran.k@intel.com> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Diffstat (limited to 'drivers/bluetooth/btintel.h')
-rw-r--r--drivers/bluetooth/btintel.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/bluetooth/btintel.h b/drivers/bluetooth/btintel.h
index d6a1dc8d8a82..7fd29ef038bd 100644
--- a/drivers/bluetooth/btintel.h
+++ b/drivers/bluetooth/btintel.h
@@ -166,12 +166,14 @@ enum {
INTEL_BROKEN_SHUTDOWN_LED,
INTEL_ROM_LEGACY,
INTEL_ROM_LEGACY_NO_WBS_SUPPORT,
+ INTEL_ACPI_RESET_ACTIVE,
__INTEL_NUM_FLAGS,
};
struct btintel_data {
DECLARE_BITMAP(flags, __INTEL_NUM_FLAGS);
+ int (*acpi_reset_method)(struct hci_dev *hdev);
};
#define btintel_set_flag(hdev, nr) \