From 084335e136581edc28137b152cc559778224570e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=81LI=20G=C3=A1bor=20J=C3=A1nos?= Date: Thu, 27 Jul 2023 11:05:17 +0200 Subject: Make Broadcom wireless cards work - Import Arch Linux patches for the `broadcom-wl` driver and WPA Supplicant - Implement support for Message Signaled Interrupts (MSI) to allow the card to be used with PCI pass-through References: - https://gitlab.archlinux.org/archlinux/packaging/packages/broadcom-wl-dkms/ - https://gitlab.archlinux.org/archlinux/packaging/packages/wpa_supplicant/ Tested by: venoom27 --- aports/broadcom-wl/016-linux601.patch | 90 +++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 aports/broadcom-wl/016-linux601.patch (limited to 'aports/broadcom-wl/016-linux601.patch') diff --git a/aports/broadcom-wl/016-linux601.patch b/aports/broadcom-wl/016-linux601.patch new file mode 100644 index 0000000..721967d --- /dev/null +++ b/aports/broadcom-wl/016-linux601.patch @@ -0,0 +1,90 @@ +diff -Nurp -u -r a/src/wl/sys/wl_cfg80211_hybrid.c b/src/wl/sys/wl_cfg80211_hybrid.c +--- a/src/wl/sys/wl_cfg80211_hybrid.c 2022-12-12 00:23:30.821615599 +0000 ++++ b/src/wl/sys/wl_cfg80211_hybrid.c 2022-12-12 00:35:47.854975024 +0000 +@@ -105,14 +105,28 @@ static s32 wl_cfg80211_get_tx_power(stru + static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, s32 *dbm); + #endif + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 wl_cfg80211_config_default_key(struct wiphy *wiphy, ++ struct net_device *dev, int link_id, u8 key_idx, bool unicast, ++ bool multicast); ++#elif 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); + #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) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, ++ 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, ++ 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, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr, ++ void *cookie, ++ void (*callback) (void *cookie, struct key_params *params)); ++#elif 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); + static s32 wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, +@@ -1161,7 +1175,12 @@ static s32 wl_cfg80211_get_tx_power(stru + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_config_default_key(struct wiphy *wiphy, ++ struct net_device *dev, int link_id, u8 key_idx, bool unicast, ++ bool multicast) ++#elif 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) +@@ -1186,7 +1205,12 @@ wl_cfg80211_config_default_key(struct wi + return 0; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_add_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr, ++ struct key_params *params) ++#elif 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) +@@ -1307,7 +1331,11 @@ wl_cfg80211_add_key(struct wiphy *wiphy, + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_del_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr) ++#elif 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) +@@ -1350,7 +1378,13 @@ wl_cfg80211_del_key(struct wiphy *wiphy, + return err; + } + +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 1, 0) ++static s32 ++wl_cfg80211_get_key(struct wiphy *wiphy, struct net_device *dev, ++ int link_id, u8 key_idx, bool pairwise, const u8 *mac_addr, ++ void *cookie, ++ void (*callback) (void *cookie, struct key_params * params)) ++#elif 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, -- cgit v1.2.3