summaryrefslogtreecommitdiff
path: root/pkgs/os-specific/linux/kernel/dell-rfkill.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/kernel/dell-rfkill.patch')
-rw-r--r--pkgs/os-specific/linux/kernel/dell-rfkill.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kernel/dell-rfkill.patch b/pkgs/os-specific/linux/kernel/dell-rfkill.patch
new file mode 100644
index 000000000000..32f890c84f66
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/dell-rfkill.patch
@@ -0,0 +1,23 @@
+Ensure that the dell-bluetooth device does not stay in the "hard
+blocked" state.
+
+From https://patchwork.kernel.org/patch/37539/
+
+diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
+index 74909c4..cf40c4e 100644
+--- a/drivers/platform/x86/dell-laptop.c
++++ b/drivers/platform/x86/dell-laptop.c
+@@ -197,8 +197,11 @@ static void dell_rfkill_query(struct rfkill *rfkill, void *data)
+ dell_send_request(&buffer, 17, 11);
+ status = buffer.output[1];
+
+- if (status & BIT(bit))
+- rfkill_set_hw_state(rfkill, !!(status & BIT(16)));
++ /*
++ * Don't change state unless the read-only HW rfkill switch is disabled.
++ */
++ if (status & BIT(16))
++ rfkill_set_hw_state(rfkill, !!(status & BIT(bit)));
+ }
+
+ static const struct rfkill_ops dell_rfkill_ops = {