patch based on https://gist.github.com/joanbm/4e7f18febc2c25f5fdf8143a739dccd1 diff -urN works/src/wl/sys/wl_cfg80211_hybrid.c fixed/src/wl/sys/wl_cfg80211_hybrid.c --- works/src/wl/sys/wl_cfg80211_hybrid.c 2026-02-25 21:07:31.214177735 +0600 +++ fixed/src/wl/sys/wl_cfg80211_hybrid.c 2026-02-25 21:19:10.577143276 +0600 @@ -68,7 +68,11 @@ static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, struct cfg80211_scan_request *request); #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) +static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, int radio_idx, u32 changed); +#else static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed); +#endif static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_ibss_params *params); static s32 wl_cfg80211_leave_ibss(struct wiphy *wiphy, struct net_device *dev); @@ -87,7 +91,10 @@ struct cfg80211_connect_params *sme); static s32 wl_cfg80211_disconnect(struct wiphy *wiphy, struct net_device *dev, u16 reason_code); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) +static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, int radio_idx, + enum nl80211_tx_power_setting type, s32 dbm); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, enum nl80211_tx_power_setting type, s32 dbm); @@ -99,7 +106,10 @@ enum tx_power_setting type, s32 dbm); #endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) +static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, int radio_idx, + u32 link_id, s32 *dbm); +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, unsigned int link_id, s32 *dbm); #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) @@ -660,7 +670,11 @@ return err; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) +static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, int radio_idx, u32 changed) +#else static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed) +#endif { struct wl_cfg80211_priv *wl = wiphy_to_wl(wiphy); struct net_device *ndev = wl_to_ndev(wl); @@ -1094,7 +1108,10 @@ return err; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) +static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, int radio_idx, + enum nl80211_tx_power_setting type, s32 dbm) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) static s32 wl_cfg80211_set_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, enum nl80211_tx_power_setting type, s32 dbm) @@ -1155,7 +1172,10 @@ return err; } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 17, 0) +static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, int radio_idx, + u32 link_id, s32 *dbm) +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(6, 14, 0) static s32 wl_cfg80211_get_tx_power(struct wiphy *wiphy, struct wireless_dev *wdev, unsigned int link_id, s32 *dbm) #elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0)