[PATCH v4 3/7] wcn36xx: Move BSS parameter setup to wcn36xx_smd_set_bss_params()
kernel test robot
lkp at intel.com
Thu Sep 10 03:11:37 EDT 2020
Hi Bryan,
I love your patch! Perhaps something to improve:
[auto build test WARNING on 160b351d75cb50a0dd2abf9b63e1891935aa9e4a]
url: https://github.com/0day-ci/linux/commits/Bryan-O-Donoghue/wcn36xx-Tidy-up-BSS-STA-config/20200910-011120
base: 160b351d75cb50a0dd2abf9b63e1891935aa9e4a
config: powerpc-randconfig-r011-20200909 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 0a5dc7effb191eff740e0e7ae7bd8e1f6bdb3ad9)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All warnings (new ones prefixed by >>):
drivers/net/wireless/ath/wcn36xx/smd.c:150:1: warning: no previous prototype for function 'wcn36xx_smd_set_bss_vht_params' [-Wmissing-prototypes]
wcn36xx_smd_set_bss_vht_params(struct ieee80211_vif *vif,
^
drivers/net/wireless/ath/wcn36xx/smd.c:149:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void
^
static
drivers/net/wireless/ath/wcn36xx/smd.c:186:6: warning: no previous prototype for function 'wcn36xx_smd_set_sta_vht_params' [-Wmissing-prototypes]
void wcn36xx_smd_set_sta_vht_params(struct wcn36xx *wcn,
^
drivers/net/wireless/ath/wcn36xx/smd.c:186:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wcn36xx_smd_set_sta_vht_params(struct wcn36xx *wcn,
^
static
drivers/net/wireless/ath/wcn36xx/smd.c:208:6: warning: no previous prototype for function 'wcn36xx_smd_set_sta_ht_ldpc_params' [-Wmissing-prototypes]
void wcn36xx_smd_set_sta_ht_ldpc_params(struct ieee80211_sta *sta,
^
drivers/net/wireless/ath/wcn36xx/smd.c:208:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wcn36xx_smd_set_sta_ht_ldpc_params(struct ieee80211_sta *sta,
^
static
drivers/net/wireless/ath/wcn36xx/smd.c:233:6: warning: no previous prototype for function 'wcn36xx_smd_set_sta_default_vht_params' [-Wmissing-prototypes]
void wcn36xx_smd_set_sta_default_vht_params(struct wcn36xx *wcn,
^
drivers/net/wireless/ath/wcn36xx/smd.c:233:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wcn36xx_smd_set_sta_default_vht_params(struct wcn36xx *wcn,
^
static
drivers/net/wireless/ath/wcn36xx/smd.c:249:6: warning: no previous prototype for function 'wcn36xx_smd_set_sta_default_ht_ldpc_params' [-Wmissing-prototypes]
void wcn36xx_smd_set_sta_default_ht_ldpc_params(struct wcn36xx *wcn,
^
drivers/net/wireless/ath/wcn36xx/smd.c:249:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wcn36xx_smd_set_sta_default_ht_ldpc_params(struct wcn36xx *wcn,
^
static
drivers/net/wireless/ath/wcn36xx/smd.c:1253:1: warning: no previous prototype for function 'wcn36xx_smd_set_sta_params_v1' [-Wmissing-prototypes]
wcn36xx_smd_set_sta_params_v1(struct wcn36xx *wcn,
^
drivers/net/wireless/ath/wcn36xx/smd.c:1252:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void
^
static
>> drivers/net/wireless/ath/wcn36xx/smd.c:1387:6: warning: no previous prototype for function 'wcn36xx_smd_set_bss_params' [-Wmissing-prototypes]
void wcn36xx_smd_set_bss_params(struct wcn36xx *wcn,
^
drivers/net/wireless/ath/wcn36xx/smd.c:1387:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wcn36xx_smd_set_bss_params(struct wcn36xx *wcn,
^
static
7 warnings generated.
# https://github.com/0day-ci/linux/commit/1c12f515815cc2fa84d00b7c6aa77bf5dc5f1d20
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Bryan-O-Donoghue/wcn36xx-Tidy-up-BSS-STA-config/20200910-011120
git checkout 1c12f515815cc2fa84d00b7c6aa77bf5dc5f1d20
vim +/wcn36xx_smd_set_bss_params +1387 drivers/net/wireless/ath/wcn36xx/smd.c
1251
1252 void
> 1253 wcn36xx_smd_set_sta_params_v1(struct wcn36xx *wcn,
1254 struct ieee80211_vif *vif,
1255 struct ieee80211_sta *sta,
1256 struct wcn36xx_hal_config_sta_params_v1 *sta_par)
1257 {
1258 struct wcn36xx_sta *sta_priv = NULL;
1259 struct wcn36xx_hal_config_sta_params sta_par_v0;
1260
1261 wcn36xx_smd_set_sta_params(wcn, vif, sta, &sta_par_v0);
1262 wcn36xx_smd_convert_sta_to_v1(wcn, &sta_par_v0, sta_par);
1263
1264 if (sta) {
1265 sta_priv = wcn36xx_sta_to_priv(sta);
1266 wcn36xx_smd_set_sta_vht_params(wcn, sta, sta_par);
1267 wcn36xx_smd_set_sta_ht_ldpc_params(sta, sta_par);
1268 memcpy(&sta_par->supported_rates, &sta_priv->supported_rates,
1269 sizeof(sta_par->supported_rates));
1270 } else {
1271 wcn36xx_set_default_rates_v1(&sta_par->supported_rates);
1272 wcn36xx_smd_set_sta_default_vht_params(wcn, sta_par);
1273 wcn36xx_smd_set_sta_default_ht_ldpc_params(wcn, sta_par);
1274 }
1275 }
1276
1277 static int wcn36xx_smd_config_sta_rsp(struct wcn36xx *wcn,
1278 struct ieee80211_sta *sta,
1279 void *buf,
1280 size_t len)
1281 {
1282 struct wcn36xx_hal_config_sta_rsp_msg *rsp;
1283 struct config_sta_rsp_params *params;
1284 struct wcn36xx_sta *sta_priv = wcn36xx_sta_to_priv(sta);
1285
1286 if (len < sizeof(*rsp))
1287 return -EINVAL;
1288
1289 rsp = (struct wcn36xx_hal_config_sta_rsp_msg *)buf;
1290 params = &rsp->params;
1291
1292 if (params->status != WCN36XX_FW_MSG_RESULT_SUCCESS) {
1293 wcn36xx_warn("hal config sta response failure: %d\n",
1294 params->status);
1295 return -EIO;
1296 }
1297
1298 sta_priv->sta_index = params->sta_index;
1299 sta_priv->dpu_desc_index = params->dpu_index;
1300 sta_priv->ucast_dpu_sign = params->uc_ucast_sig;
1301
1302 wcn36xx_dbg(WCN36XX_DBG_HAL,
1303 "hal config sta rsp status %d sta_index %d bssid_index %d uc_ucast_sig %d p2p %d\n",
1304 params->status, params->sta_index, params->bssid_index,
1305 params->uc_ucast_sig, params->p2p);
1306
1307 return 0;
1308 }
1309
1310 static int wcn36xx_smd_config_sta_v1(struct wcn36xx *wcn,
1311 struct ieee80211_vif *vif,
1312 struct ieee80211_sta *sta)
1313 {
1314 struct wcn36xx_hal_config_sta_req_msg_v1 msg_body;
1315 struct wcn36xx_hal_config_sta_params_v1 *sta_params;
1316
1317 INIT_HAL_MSG(msg_body, WCN36XX_HAL_CONFIG_STA_REQ);
1318 msg_body.header.len -= WCN36XX_DIFF_STA_PARAMS_V1_NOVHT;
1319
1320 sta_params = &msg_body.sta_params;
1321
1322 wcn36xx_smd_set_sta_params_v1(wcn, vif, sta, sta_params);
1323
1324 PREPARE_HAL_BUF(wcn->hal_buf, msg_body);
1325
1326 wcn36xx_dbg(WCN36XX_DBG_HAL,
1327 "hal config sta v1 action %d sta_index %d bssid_index %d bssid %pM type %d mac %pM aid %d\n",
1328 sta_params->action, sta_params->sta_index, sta_params->bssid_index,
1329 sta_params->bssid, sta_params->type, sta_params->mac, sta_params->aid);
1330
1331 return wcn36xx_smd_send_and_wait(wcn, msg_body.header.len);
1332 }
1333
1334 static int wcn36xx_smd_config_sta_v0(struct wcn36xx *wcn,
1335 struct ieee80211_vif *vif,
1336 struct ieee80211_sta *sta)
1337 {
1338 struct wcn36xx_hal_config_sta_req_msg msg;
1339 struct wcn36xx_hal_config_sta_params *sta_params;
1340
1341 INIT_HAL_MSG(msg, WCN36XX_HAL_CONFIG_STA_REQ);
1342
1343 sta_params = &msg.sta_params;
1344
1345 wcn36xx_smd_set_sta_params(wcn, vif, sta, sta_params);
1346
1347 PREPARE_HAL_BUF(wcn->hal_buf, msg);
1348
1349 wcn36xx_dbg(WCN36XX_DBG_HAL,
1350 "hal config sta action %d sta_index %d bssid_index %d bssid %pM type %d mac %pM aid %d\n",
1351 sta_params->action, sta_params->sta_index,
1352 sta_params->bssid_index, sta_params->bssid,
1353 sta_params->type, sta_params->mac, sta_params->aid);
1354
1355 return wcn36xx_smd_send_and_wait(wcn, msg.header.len);
1356 }
1357
1358 int wcn36xx_smd_config_sta(struct wcn36xx *wcn, struct ieee80211_vif *vif,
1359 struct ieee80211_sta *sta)
1360 {
1361 int ret;
1362
1363 mutex_lock(&wcn->hal_mutex);
1364
1365 if (!wcn36xx_is_fw_version(wcn, 1, 2, 2, 24))
1366 ret = wcn36xx_smd_config_sta_v1(wcn, vif, sta);
1367 else
1368 ret = wcn36xx_smd_config_sta_v0(wcn, vif, sta);
1369
1370 if (ret) {
1371 wcn36xx_err("Sending hal_config_sta failed\n");
1372 goto out;
1373 }
1374 ret = wcn36xx_smd_config_sta_rsp(wcn,
1375 sta,
1376 wcn->hal_buf,
1377 wcn->hal_rsp_len);
1378 if (ret) {
1379 wcn36xx_err("hal_config_sta response failed err=%d\n", ret);
1380 goto out;
1381 }
1382 out:
1383 mutex_unlock(&wcn->hal_mutex);
1384 return ret;
1385 }
1386
> 1387 void wcn36xx_smd_set_bss_params(struct wcn36xx *wcn,
1388 struct ieee80211_vif *vif,
1389 struct ieee80211_sta *sta,
1390 const u8 *bssid,
1391 bool update,
1392 struct wcn36xx_hal_config_bss_params *bss)
1393 {
1394 struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif);
1395 struct wcn36xx_hal_config_sta_params *sta_params;
1396
1397 sta_params = &bss->sta;
1398
1399 WARN_ON(is_zero_ether_addr(bssid));
1400
1401 memcpy(&bss->bssid, bssid, ETH_ALEN);
1402
1403 memcpy(bss->self_mac_addr, vif->addr, ETH_ALEN);
1404
1405 if (vif->type == NL80211_IFTYPE_STATION) {
1406 bss->bss_type = WCN36XX_HAL_INFRASTRUCTURE_MODE;
1407
1408 /* STA */
1409 bss->oper_mode = 1;
1410 bss->wcn36xx_hal_persona = WCN36XX_HAL_STA_MODE;
1411 } else if (vif->type == NL80211_IFTYPE_AP ||
1412 vif->type == NL80211_IFTYPE_MESH_POINT) {
1413 bss->bss_type = WCN36XX_HAL_INFRA_AP_MODE;
1414
1415 /* AP */
1416 bss->oper_mode = 0;
1417 bss->wcn36xx_hal_persona = WCN36XX_HAL_STA_SAP_MODE;
1418 } else if (vif->type == NL80211_IFTYPE_ADHOC) {
1419 bss->bss_type = WCN36XX_HAL_IBSS_MODE;
1420
1421 /* STA */
1422 bss->oper_mode = 1;
1423 } else {
1424 wcn36xx_warn("Unknown type for bss config: %d\n", vif->type);
1425 }
1426
1427 if (vif->type == NL80211_IFTYPE_STATION)
1428 wcn36xx_smd_set_bss_nw_type(wcn, sta, bss);
1429 else
1430 bss->nw_type = WCN36XX_HAL_11N_NW_TYPE;
1431
1432 bss->short_slot_time_supported = vif->bss_conf.use_short_slot;
1433 bss->lla_coexist = 0;
1434 bss->llb_coexist = 0;
1435 bss->llg_coexist = 0;
1436 bss->rifs_mode = 0;
1437 bss->beacon_interval = vif->bss_conf.beacon_int;
1438 bss->dtim_period = vif_priv->dtim_period;
1439
1440 wcn36xx_smd_set_bss_ht_params(vif, sta, bss);
1441
1442 bss->oper_channel = WCN36XX_HW_CHANNEL(wcn);
1443
1444 if (conf_is_ht40_minus(&wcn->hw->conf))
1445 bss->ext_channel = IEEE80211_HT_PARAM_CHA_SEC_BELOW;
1446 else if (conf_is_ht40_plus(&wcn->hw->conf))
1447 bss->ext_channel = IEEE80211_HT_PARAM_CHA_SEC_ABOVE;
1448 else
1449 bss->ext_channel = IEEE80211_HT_PARAM_CHA_SEC_NONE;
1450
1451 bss->reserved = 0;
1452
1453 /* wcn->ssid is only valid in AP and IBSS mode */
1454 bss->ssid.length = vif_priv->ssid.length;
1455 memcpy(bss->ssid.ssid, vif_priv->ssid.ssid, vif_priv->ssid.length);
1456
1457 bss->obss_prot_enabled = 0;
1458 bss->rmf = 0;
1459 bss->max_probe_resp_retry_limit = 0;
1460 bss->hidden_ssid = vif->bss_conf.hidden_ssid;
1461 bss->proxy_probe_resp = 0;
1462 bss->edca_params_valid = 0;
1463
1464 /* FIXME: set acbe, acbk, acvi and acvo */
1465
1466 bss->ext_set_sta_key_param_valid = 0;
1467
1468 /* FIXME: set ext_set_sta_key_param */
1469
1470 bss->spectrum_mgt_enable = 0;
1471 bss->tx_mgmt_power = 0;
1472 bss->max_tx_power = WCN36XX_MAX_POWER(wcn);
1473 bss->action = update;
1474
1475 vif_priv->bss_type = bss->bss_type;
1476 }
1477
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 32293 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/wcn36xx/attachments/20200910/fd346eb3/attachment-0001.gz>
More information about the wcn36xx
mailing list