Compare commits
2 commits
74e32e423c
...
93b652b952
Author | SHA1 | Date | |
---|---|---|---|
93b652b952 | |||
9c8bc05856 |
|
@ -38,7 +38,14 @@ in
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
boot.extraModulePackages = with config.boot.kernelPackages; [
|
||||||
|
zenpower
|
||||||
|
(pkgs.linux-bluetooth.override {
|
||||||
|
kernel = config.boot.kernelPackages.kernel;
|
||||||
|
patches = [ ../../patches/linux/v2-Bluetooth-btusb-Fix-regression-with-CSR-controllers.diff ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
boot.kernelModules = [
|
boot.kernelModules = [
|
||||||
"kvm-amd"
|
"kvm-amd"
|
||||||
|
|
|
@ -6,7 +6,7 @@ let
|
||||||
echo "manual" > power_dpm_force_performance_level
|
echo "manual" > power_dpm_force_performance_level
|
||||||
echo "1" > pp_power_profile_mode
|
echo "1" > pp_power_profile_mode
|
||||||
test -e pp_od_clk_voltage
|
test -e pp_od_clk_voltage
|
||||||
echo "vo -100" > pp_od_clk_voltage
|
echo "vo -120" > pp_od_clk_voltage
|
||||||
echo "c" > pp_od_clk_voltage
|
echo "c" > pp_od_clk_voltage
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
||||||
|
index c0b6ef8ee5da..f72218c1037e 100644
|
||||||
|
--- a/drivers/bluetooth/btusb.c
|
||||||
|
+++ b/drivers/bluetooth/btusb.c
|
||||||
|
@@ -1366,10 +1366,15 @@ static int btusb_submit_intr_urb(struct hci_dev *hdev, gfp_t mem_flags)
|
||||||
|
if (!urb)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
- /* Use maximum HCI Event size so the USB stack handles
|
||||||
|
- * ZPL/short-transfer automatically.
|
||||||
|
- */
|
||||||
|
- size = HCI_MAX_EVENT_SIZE;
|
||||||
|
+ if (le16_to_cpu(data->udev->descriptor.idVendor) == 0x0a12 &&
|
||||||
|
+ le16_to_cpu(data->udev->descriptor.idProduct) == 0x0001)
|
||||||
|
+ /* Fake CSR devices don't seem to support sort-transter */
|
||||||
|
+ size = le16_to_cpu(data->intr_ep->wMaxPacketSize);
|
||||||
|
+ else
|
||||||
|
+ /* Use maximum HCI Event size so the USB stack handles
|
||||||
|
+ * ZPL/short-transfer automatically.
|
||||||
|
+ */
|
||||||
|
+ size = HCI_MAX_EVENT_SIZE;
|
||||||
|
|
||||||
|
buf = kmalloc(size, mem_flags);
|
||||||
|
if (!buf) {
|
|
@ -8,4 +8,5 @@ rec {
|
||||||
emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
|
emmet-cli = pkgs.callPackage ./emmet-cli.nix { };
|
||||||
material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
|
material-wifi-icons = pkgs.callPackage ./material-wifi-icons.nix { };
|
||||||
gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
|
gnome-pass-search-provider = pkgs.callPackage ./gnome-pass-search-provider.nix { };
|
||||||
|
linux-bluetooth = pkgs.callPackage ./linux-bluetooth.nix { };
|
||||||
}
|
}
|
||||||
|
|
47
pkgs/linux-bluetooth.nix
Normal file
47
pkgs/linux-bluetooth.nix
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
kernel ? pkgs.linuxPackages_latest.kernel,
|
||||||
|
patches ? [ ],
|
||||||
|
}:
|
||||||
|
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
pname = "bluetooth-kernel-module";
|
||||||
|
inherit (kernel)
|
||||||
|
src
|
||||||
|
version
|
||||||
|
postPatch
|
||||||
|
nativeBuildInputs
|
||||||
|
;
|
||||||
|
|
||||||
|
inherit patches;
|
||||||
|
|
||||||
|
kernel_dev = kernel.dev;
|
||||||
|
kernelVersion = kernel.modDirVersion;
|
||||||
|
|
||||||
|
modulePath = "drivers/bluetooth";
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
BUILT_KERNEL=$kernel_dev/lib/modules/$kernelVersion/build
|
||||||
|
|
||||||
|
cp $BUILT_KERNEL/Module.symvers .
|
||||||
|
cp $BUILT_KERNEL/.config .
|
||||||
|
cp $kernel_dev/vmlinux .
|
||||||
|
|
||||||
|
make "-j$NIX_BUILD_CORES" modules_prepare
|
||||||
|
make "-j$NIX_BUILD_CORES" M=$modulePath modules
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
make \
|
||||||
|
INSTALL_MOD_PATH="$out" \
|
||||||
|
XZ="xz -T$NIX_BUILD_CORES" \
|
||||||
|
M="$modulePath" \
|
||||||
|
modules_install
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Bluetooth kernel module";
|
||||||
|
license = lib.licenses.gpl3;
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue