[PW_SID:1080465] [v3] Bluetooth: btintel_pcie: Support Product level reset#75
[PW_SID:1080465] [v3] Bluetooth: btintel_pcie: Support Product level reset#75BluezTestBot wants to merge 1 commit intoworkflowfrom
Conversation
When driver encounters a TOP exception, ACPI methods will be called for Product level reset since Wifi and BT share the same TOP. BT driver will first reprobe the wifi driver and then reprobe BT. Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@intel.com>
|
CheckPatch |
|
GitLint |
|
SubjectPrefix |
|
BuildKernel |
|
CheckAllWarning |
|
CheckSparse |
|
BuildKernel32 |
|
TestRunnerSetup |
|
TestRunner_l2cap-tester |
|
TestRunner_iso-tester |
|
TestRunner_bnep-tester |
|
TestRunner_mgmt-tester |
|
TestRunner_rfcomm-tester |
|
TestRunner_sco-tester |
|
TestRunner_ioctl-tester |
|
TestRunner_mesh-tester |
|
TestRunner_smp-tester |
|
TestRunner_userchan-tester |
|
TestRunner_6lowpan-tester |
|
IncrementalBuild |
When driver encounters a TOP exception, ACPI methods will be called
for Product level reset since Wifi and BT share the same TOP. BT driver
will first reprobe the wifi driver and then reprobe BT.
Signed-off-by: Chandrashekar Devegowda chandrashekar.devegowda@intel.com
Notes:
v3: incorporated review comments
- Embedded reset_work in btintel_pcie_data instead of dynamic
btintel_pcie_removal allocation to fix use-after-free race
between reset work and concurrent driver unbind
- Added cancel_work_sync in btintel_pcie_remove() with
current_work() guard to avoid deadlock in PLDR reprobe path
- Removed struct btintel_pcie_removal
- Renamed btintel_pcie_removal_work to btintel_pcie_reset_work
v2: incorporated review comments
drivers/bluetooth/btintel.c | 10 +-
drivers/bluetooth/btintel.h | 7 ++
drivers/bluetooth/btintel_pcie.c | 203 ++++++++++++++++++++++++++-----
drivers/bluetooth/btintel_pcie.h | 7 ++
4 files changed, 192 insertions(+), 35 deletions(-)