summary refs log tree commit diff
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 0000000000000..32f890c84f660
--- /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 = {