cnss2: Provide platform name if it is required

Provide platform name in host_cap message if
property platform-name-required specified in DTS.

Current platform name is same as device's model name.

Change-id: I8d427602bfc7e6bb5d732fa3e29ff66c965e153b
CRs-Fixed: 3540641
This commit is contained in:
Lin Bai
2023-06-26 17:43:09 +08:00
committed by Rahul Choudhary
parent bdd3c6bf67
commit 02c2d4f750
3 changed files with 36 additions and 0 deletions

View File

@@ -467,6 +467,35 @@ int cnss_get_feature_list(struct cnss_plat_data *plat_priv,
return 0;
}
size_t cnss_get_platform_name(struct cnss_plat_data *plat_priv,
char *buf, const size_t buf_len)
{
if (unlikely(!plat_priv || !buf || !buf_len))
return 0;
if (of_property_read_bool(plat_priv->plat_dev->dev.of_node,
"platform-name-required")) {
struct device_node *root;
root = of_find_node_by_path("/");
if (root) {
const char *model;
size_t model_len;
model = of_get_property(root, "model", NULL);
if (model) {
model_len = strlcpy(buf, model, buf_len);
cnss_pr_dbg("Platform name: %s (%zu)\n",
buf, model_len);
return model_len;
}
}
}
return 0;
}
void cnss_pm_stay_awake(struct cnss_plat_data *plat_priv)
{
if (atomic_inc_return(&plat_priv->pm_count) != 1)

View File

@@ -744,4 +744,6 @@ int cnss_get_input_gpio_value(struct cnss_plat_data *plat_priv, int gpio_num);
bool cnss_check_driver_loading_allowed(void);
int cnss_dev_specific_power_on(struct cnss_plat_data *plat_priv);
void cnss_recovery_handler(struct cnss_plat_data *plat_priv);
size_t cnss_get_platform_name(struct cnss_plat_data *plat_priv,
char *buf, const size_t buf_len);
#endif /* _CNSS_MAIN_H */

View File

@@ -345,6 +345,11 @@ static int cnss_wlfw_host_cap_send_sync(struct cnss_plat_data *plat_priv)
cnss_pr_dbg("Sending feature list 0x%llx\n",
req->feature_list);
}
if (cnss_get_platform_name(plat_priv, req->platform_name,
QMI_WLFW_MAX_PLATFORM_NAME_LEN_V01))
req->platform_name_valid = 1;
ret = qmi_txn_init(&plat_priv->qmi_wlfw, &txn,
wlfw_host_cap_resp_msg_v01_ei, resp);
if (ret < 0) {