mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
qcacld-3.0: Parse device info nl attribute in the oem vendor cmd
Userspace uses enum qca_vendor_oem_device_type to indicate device type as vdev or pdev in the oem data vendor nl command. This attribute is set to 1 to indicate that the oem data command is meant for pdev and it is 0 for vdev. The default is vdev when this nl attribute is not present. The host driver should update the pdev_id of the vdev and fill the pdev_vdev_flag to 1 for pdev commands. Change-Id: I8bdf436759e0935c52bb09c2865fcb4a7a5ee4fc CRs-Fixed: 2693892
This commit is contained in:
parent
caa2bd2e72
commit
706377360e
1 changed files with 17 additions and 0 deletions
|
|
@ -1126,6 +1126,7 @@ oem_data_attr_policy[QCA_WLAN_VENDOR_ATTR_OEM_DATA_PARAMS_MAX + 1] = {
|
|||
.len = OEM_DATA_MAX_SIZE
|
||||
},
|
||||
|
||||
[QCA_WLAN_VENDOR_ATTR_OEM_DEVICE_INFO] = {.type = NLA_U8},
|
||||
[QCA_WLAN_VENDOR_ATTR_OEM_DATA_RESPONSE_EXPECTED] = {.type = NLA_FLAG},
|
||||
};
|
||||
|
||||
|
|
@ -1235,6 +1236,7 @@ __wlan_hdd_cfg80211_oem_data_handler(struct wiphy *wiphy,
|
|||
{
|
||||
struct net_device *dev = wdev->netdev;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
uint8_t mac_id;
|
||||
int ret;
|
||||
struct sk_buff *skb = NULL;
|
||||
struct oem_data oem_data = {0};
|
||||
|
|
@ -1274,6 +1276,21 @@ __wlan_hdd_cfg80211_oem_data_handler(struct wiphy *wiphy,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (tb[QCA_WLAN_VENDOR_ATTR_OEM_DEVICE_INFO])
|
||||
oem_data.pdev_vdev_flag =
|
||||
nla_get_u8(tb[QCA_WLAN_VENDOR_ATTR_OEM_DEVICE_INFO]);
|
||||
|
||||
if (oem_data.pdev_vdev_flag) {
|
||||
status = policy_mgr_get_mac_id_by_session_id(hdd_ctx->psoc,
|
||||
adapter->vdev_id,
|
||||
&mac_id);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
hdd_err("get mac id failed");
|
||||
return -EINVAL;
|
||||
}
|
||||
oem_data.pdev_id = mac_id;
|
||||
oem_data.is_host_pdev_id = true;
|
||||
}
|
||||
oem_data.data_len =
|
||||
nla_len(tb[QCA_WLAN_VENDOR_ATTR_OEM_DATA_CMD_DATA]);
|
||||
if (!oem_data.data_len) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue