From 280b53192fda8f579289a24a1e7889da2c419b32 Mon Sep 17 00:00:00 2001 From: Fugang Duan Date: Mon, 13 Jan 2020 10:21:55 +0800 Subject: [PATCH] mwifiex: 8997: mlinux: port the driver to support L5.4 Port the driver to support L5.4 kernel. Signed-off-by: Fugang Duan --- mwifiex_8997/mlinux/moal_cfgvendor.c | 12 ++++++++++++ mwifiex_8997/mlinux/moal_main.c | 7 ++++++- mwifiex_8997/mlinux/moal_sta_cfg80211.c | 10 ++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/mwifiex_8997/mlinux/moal_cfgvendor.c b/mwifiex_8997/mlinux/moal_cfgvendor.c index 3e4af1f..cbd4415 100755 --- a/mwifiex_8997/mlinux/moal_cfgvendor.c +++ b/mwifiex_8997/mlinux/moal_cfgvendor.c @@ -1192,24 +1192,28 @@ const struct wiphy_vendor_command vendor_commands[] = { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_set_drvdbg,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_set_drvdbg, + .policy = VENDOR_CMD_RAW_DATA, }, { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_get_valid_channels,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_get_valid_channels, + .policy = VENDOR_CMD_RAW_DATA, }, { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_set_scan_mac_oui,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_set_scan_mac_oui, + .policy = VENDOR_CMD_RAW_DATA, }, #ifdef STA_CFG80211 { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_rssi_monitor,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_rssi_monitor, + .policy = VENDOR_CMD_RAW_DATA, }, #endif { @@ -1217,6 +1221,7 @@ const struct wiphy_vendor_command vendor_commands[] = { sub_cmd_set_roaming_offload_key,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_set_roaming_offload_key, + .policy = VENDOR_CMD_RAW_DATA, }, { @@ -1224,6 +1229,7 @@ const struct wiphy_vendor_command vendor_commands[] = { sub_cmd_dfs_capability,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_set_dfs_offload, + .policy = VENDOR_CMD_RAW_DATA, }, { @@ -1231,36 +1237,42 @@ const struct wiphy_vendor_command vendor_commands[] = { sub_cmd_get_correlated_time,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_get_correlated_time, + .policy = VENDOR_CMD_RAW_DATA, }, { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_nd_offload}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_11k_cfg, + .policy = VENDOR_CMD_RAW_DATA, }, { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_get_drv_version,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_get_drv_version, + .policy = VENDOR_CMD_RAW_DATA, }, { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_get_fw_version,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_get_fw_version, + .policy = VENDOR_CMD_RAW_DATA, }, { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_get_wifi_supp_feature_set,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_get_supp_feature_set, + .policy = VENDOR_CMD_RAW_DATA, }, { .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_set_country_code,}, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .doit = woal_cfg80211_subcmd_set_country_code, + .policy = VENDOR_CMD_RAW_DATA, }, }; diff --git a/mwifiex_8997/mlinux/moal_main.c b/mwifiex_8997/mlinux/moal_main.c index dff2441..8db93f9 100755 --- a/mwifiex_8997/mlinux/moal_main.c +++ b/mwifiex_8997/mlinux/moal_main.c @@ -344,9 +344,14 @@ struct net_device_stats *woal_get_stats(struct net_device *dev); #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0) #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 19, 0) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) +u16 woal_select_queue(struct net_device *dev, struct sk_buff *skb, + struct net_device *sb_dev); +#else u16 woal_select_queue(struct net_device *dev, struct sk_buff *skb, struct net_device *sb_dev, select_queue_fallback_t fallback); +#endif #else u16 woal_select_queue(struct net_device *dev, struct sk_buff *skb, void *accel_priv, select_queue_fallback_t fallback); @@ -4662,7 +4667,7 @@ woal_select_queue(struct net_device *dev, struct sk_buff *skb #else , void *accel_priv #endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(5, 3, 0)) , select_queue_fallback_t fallback #endif #endif diff --git a/mwifiex_8997/mlinux/moal_sta_cfg80211.c b/mwifiex_8997/mlinux/moal_sta_cfg80211.c index d00f633..894601c 100755 --- a/mwifiex_8997/mlinux/moal_sta_cfg80211.c +++ b/mwifiex_8997/mlinux/moal_sta_cfg80211.c @@ -2309,6 +2309,15 @@ done: if (ieee80211_is_assoc_resp (((struct ieee80211_mgmt *)ssid_bssid.assoc_rsp. assoc_resp_buf)->frame_control)) + +#if CFG80211_VERSION_CODE >= KERNEL_VERSION(5, 3, 0) + cfg80211_rx_assoc_resp(priv->netdev, req->bss, + ssid_bssid.assoc_rsp. + assoc_resp_buf, + ssid_bssid.assoc_rsp. + assoc_resp_len, -1, + NULL, 0); +#else #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) cfg80211_rx_assoc_resp(priv->netdev, req->bss, ssid_bssid.assoc_rsp. @@ -2329,6 +2338,7 @@ done: ssid_bssid.assoc_rsp. assoc_resp_len); #endif +#endif #endif } LEAVE();