diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix index 661bb7fc922b..6b7d8b912fa2 100644 --- a/pkgs/os-specific/linux/broadcom-sta/default.nix +++ b/pkgs/os-specific/linux/broadcom-sta/default.nix @@ -45,6 +45,8 @@ stdenv.mkDerivation { ./linux-5.18.patch # source: https://gist.github.com/joanbm/207210d74637870c01ef5a3c262a597d ./linux-6.0.patch + # source: https://gist.github.com/joanbm/94323ea99eff1e1d1c51241b5b651549 + ./linux-6.1.patch ./pedantic-fix.patch ./null-pointer-fix.patch ./gcc.patch diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch b/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch new file mode 100644 index 000000000000..5ececd487d74 --- /dev/null +++ b/pkgs/os-specific/linux/broadcom-sta/linux-6.1.patch @@ -0,0 +1,83 @@ +From a63a5f70e5cf05f6bce4cda2e0dd67462e1d76a5 Mon Sep 17 00:00:00 2001 +From: Joan Bruguera +Date: Mon, 29 Aug 2022 00:06:53 +0200 +Subject: [PATCH] Tentative patch for broadcom-wl 6.30.223.271 driver for Linux 6.1-rc1 + +Applies on top of all the patches applied to broadcom-wl-dkms 6.30.223.271-35 on Arch Linux +--- + src/wl/sys/wl_cfg80211_hybrid.c | 21 +++++++++++++-------- + 1 file changed, 13 insertions(+), 8 deletions(-) + +diff --git a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +index 4fef22a..50d1e34 100644 +--- a/src/wl/sys/wl_cfg80211_hybrid.c ++++ b/src/wl/sys/wl_cfg80211_hybrid.c +@@ -105,20 +105,25 @@ static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wd + static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm); + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++#define MAYBE_INT_LINK_ID int link_id, ++#else ++#define MAYBE_INT_LINK_ID ++#endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, +- struct net_device *dev, u8 key_idx, bool unicast, bool multicast); ++ struct net_device *dev, MAYBE_INT_LINK_ID u8 key_idx, bool unicast, bool multicast); + #else + static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, + struct net_device *dev, u8 key_idx); + #endif + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, +- u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params); ++ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params); + static s32 wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, +- u8 key_idx, bool pairwise, const u8 *mac_addr); ++ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr); + static s32 wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, +- u8 key_idx, bool pairwise, const u8 *mac_addr, ++ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, + void *cookie, void (*callback) (void *cookie, struct key_params *params)); + #else + static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, +@@ -1165,7 +1170,7 @@ static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) + static s32 + wl_cfg80211_config_default_key(struct wiphy *wiphy, +- struct net_device *dev, u8 key_idx, bool unicast, bool multicast) ++ struct net_device *dev, MAYBE_INT_LINK_ID u8 key_idx, bool unicast, bool multicast) + #else + static s32 + wl_cfg80211_config_default_key(struct wiphy *wiphy, +@@ -1190,7 +1195,7 @@ wl_cfg80211_config_default_key(struct wiphy *wiphy, + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 + wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, +- u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params) ++ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, struct key_params *params) + #else + static s32 + wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, +@@ -1311,7 +1316,7 @@ wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 + wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, +- u8 key_idx, bool pairwise, const u8 *mac_addr) ++ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr) + #else + static s32 + wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, +@@ -1354,7 +1359,7 @@ wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) + static s32 + wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, +- u8 key_idx, bool pairwise, const u8 *mac_addr, void *cookie, ++ MAYBE_INT_LINK_ID u8 key_idx, bool pairwise, const u8 *mac_addr, void *cookie, + void (*callback) (void *cookie, struct key_params * params)) + #else + static s32 +-- +2.37.2 +