mwifiex: 8997: mlinux: port the driver to support L5.4

Port the driver to support L5.4 kernel.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
This commit is contained in:
Fugang Duan 2020-01-13 10:21:55 +08:00
parent bd8827d169
commit 280b53192f
3 changed files with 28 additions and 1 deletions

View file

@ -1192,24 +1192,28 @@ const struct wiphy_vendor_command vendor_commands[] = {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_set_drvdbg,}, .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_set_drvdbg,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_set_drvdbg, .doit = woal_cfg80211_subcmd_set_drvdbg,
.policy = VENDOR_CMD_RAW_DATA,
}, },
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd =
sub_cmd_get_valid_channels,}, sub_cmd_get_valid_channels,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_get_valid_channels, .doit = woal_cfg80211_subcmd_get_valid_channels,
.policy = VENDOR_CMD_RAW_DATA,
}, },
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd =
sub_cmd_set_scan_mac_oui,}, sub_cmd_set_scan_mac_oui,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_set_scan_mac_oui, .doit = woal_cfg80211_subcmd_set_scan_mac_oui,
.policy = VENDOR_CMD_RAW_DATA,
}, },
#ifdef STA_CFG80211 #ifdef STA_CFG80211
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_rssi_monitor,}, .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_rssi_monitor,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_rssi_monitor, .doit = woal_cfg80211_subcmd_rssi_monitor,
.policy = VENDOR_CMD_RAW_DATA,
}, },
#endif #endif
{ {
@ -1217,6 +1221,7 @@ const struct wiphy_vendor_command vendor_commands[] = {
sub_cmd_set_roaming_offload_key,}, sub_cmd_set_roaming_offload_key,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_set_roaming_offload_key, .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,}, sub_cmd_dfs_capability,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_set_dfs_offload, .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,}, sub_cmd_get_correlated_time,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_get_correlated_time, .doit = woal_cfg80211_subcmd_get_correlated_time,
.policy = VENDOR_CMD_RAW_DATA,
}, },
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_nd_offload}, .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = sub_cmd_nd_offload},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_11k_cfg, .doit = woal_cfg80211_subcmd_11k_cfg,
.policy = VENDOR_CMD_RAW_DATA,
}, },
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd =
sub_cmd_get_drv_version,}, sub_cmd_get_drv_version,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_get_drv_version, .doit = woal_cfg80211_subcmd_get_drv_version,
.policy = VENDOR_CMD_RAW_DATA,
}, },
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd =
sub_cmd_get_fw_version,}, sub_cmd_get_fw_version,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_get_fw_version, .doit = woal_cfg80211_subcmd_get_fw_version,
.policy = VENDOR_CMD_RAW_DATA,
}, },
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd =
sub_cmd_get_wifi_supp_feature_set,}, sub_cmd_get_wifi_supp_feature_set,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_get_supp_feature_set, .doit = woal_cfg80211_subcmd_get_supp_feature_set,
.policy = VENDOR_CMD_RAW_DATA,
}, },
{ {
.info = {.vendor_id = MRVL_VENDOR_ID,.subcmd = .info = {.vendor_id = MRVL_VENDOR_ID,.subcmd =
sub_cmd_set_country_code,}, sub_cmd_set_country_code,},
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV, .flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = woal_cfg80211_subcmd_set_country_code, .doit = woal_cfg80211_subcmd_set_country_code,
.policy = VENDOR_CMD_RAW_DATA,
}, },
}; };

View file

@ -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, 13, 0)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 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(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, u16 woal_select_queue(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev, struct net_device *sb_dev,
select_queue_fallback_t fallback); select_queue_fallback_t fallback);
#endif
#else #else
u16 woal_select_queue(struct net_device *dev, struct sk_buff *skb, u16 woal_select_queue(struct net_device *dev, struct sk_buff *skb,
void *accel_priv, select_queue_fallback_t fallback); void *accel_priv, select_queue_fallback_t fallback);
@ -4662,7 +4667,7 @@ woal_select_queue(struct net_device *dev, struct sk_buff *skb
#else #else
, void *accel_priv , void *accel_priv
#endif #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 , select_queue_fallback_t fallback
#endif #endif
#endif #endif

View file

@ -2309,6 +2309,15 @@ done:
if (ieee80211_is_assoc_resp if (ieee80211_is_assoc_resp
(((struct ieee80211_mgmt *)ssid_bssid.assoc_rsp. (((struct ieee80211_mgmt *)ssid_bssid.assoc_rsp.
assoc_resp_buf)->frame_control)) 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) #if CFG80211_VERSION_CODE >= KERNEL_VERSION(3, 18, 0)
cfg80211_rx_assoc_resp(priv->netdev, req->bss, cfg80211_rx_assoc_resp(priv->netdev, req->bss,
ssid_bssid.assoc_rsp. ssid_bssid.assoc_rsp.
@ -2329,6 +2338,7 @@ done:
ssid_bssid.assoc_rsp. ssid_bssid.assoc_rsp.
assoc_resp_len); assoc_resp_len);
#endif #endif
#endif
#endif #endif
} }
LEAVE(); LEAVE();