summary refs log tree commit diff
path: root/pkgs/os-specific/linux
diff options
context:
space:
mode:
authorEduard Bopp <eduard.bopp@aepsil0n.de>2020-12-20 14:36:07 +0100
committerEduard Bopp <eduard.bopp@aepsil0n.de>2020-12-20 14:36:07 +0100
commit6ac71f593d7c7f81831372cdeefa96236ffb7cb1 (patch)
tree36e83e2d2d089c769d5cea5e36e175335fc58a86 /pkgs/os-specific/linux
parent45395aaf31edae1ecc57c69d196564999909e423 (diff)
downloadnixpkgs-6ac71f593d7c7f81831372cdeefa96236ffb7cb1.tar
nixpkgs-6ac71f593d7c7f81831372cdeefa96236ffb7cb1.tar.gz
nixpkgs-6ac71f593d7c7f81831372cdeefa96236ffb7cb1.tar.bz2
nixpkgs-6ac71f593d7c7f81831372cdeefa96236ffb7cb1.tar.lz
nixpkgs-6ac71f593d7c7f81831372cdeefa96236ffb7cb1.tar.xz
nixpkgs-6ac71f593d7c7f81831372cdeefa96236ffb7cb1.tar.zst
nixpkgs-6ac71f593d7c7f81831372cdeefa96236ffb7cb1.zip
linux: backport support for RTL8761b to 5.4
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix7
-rw-r--r--pkgs/os-specific/linux/kernel/rtl8761b-support.patch33
2 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index e2805c315b8..23c01d04192 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -76,6 +76,13 @@
     };
   };
 
+  # Adapted for Linux 5.4 from:
+  # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=04896832c94aae4842100cafb8d3a73e1bed3a45
+  rtl8761b_support =
+    { name = "rtl8761b-support";
+      patch = ./rtl8761b-support.patch;
+    };
+
   export_kernel_fpu_functions = {
     "4.14" = {
       name = "export_kernel_fpu_functions";
diff --git a/pkgs/os-specific/linux/kernel/rtl8761b-support.patch b/pkgs/os-specific/linux/kernel/rtl8761b-support.patch
new file mode 100644
index 00000000000..b6d80d5bc8d
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/rtl8761b-support.patch
@@ -0,0 +1,33 @@
+diff --git a/drivers/bluetooth/btrtl.c b/drivers/bluetooth/btrtl.c
+index 67f4bc21e7c5..3a9afc905f24 100644
+--- a/drivers/bluetooth/btrtl.c
++++ b/drivers/bluetooth/btrtl.c
+@@ -130,12 +130,19 @@  static const struct id_table ic_id_table[] = {
+ 	  .cfg_name = "rtl_bt/rtl8821c_config" },
+
+ 	/* 8761A */
+-	{ IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_8761A, 0x0,
++	{ IC_INFO(RTL_ROM_LMP_8761A, 0xa),
+ 	  .config_needed = false,
+ 	  .has_rom_version = true,
+ 	  .fw_name  = "rtl_bt/rtl8761a_fw.bin",
+ 	  .cfg_name = "rtl_bt/rtl8761a_config" },
+
++	/* 8761B */
++	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb),
++	  .config_needed = false,
++	  .has_rom_version = true,
++	  .fw_name  = "rtl_bt/rtl8761b_fw.bin",
++	  .cfg_name = "rtl_bt/rtl8761b_config" },
++
+	/* 8822C with USB interface */
+	{ IC_INFO(RTL_ROM_LMP_8822B, 0xc),
+	  .config_needed = false,
+@@ -251,6 +258,7 @@  static int rtlbt_parse_firmware(struct hci_dev *hdev,
+ 		{ RTL_ROM_LMP_8723B, 9 },	/* 8723D */
+ 		{ RTL_ROM_LMP_8821A, 10 },	/* 8821C */
+ 		{ RTL_ROM_LMP_8822B, 13 },	/* 8822C */
++		{ RTL_ROM_LMP_8761A, 14 },	/* 8761B */
+ 	};
+
+ 	min_size = sizeof(struct rtl_epatch_header) + sizeof(extension_sig) + 3;