int wl1271_init_phy_config(struct wl1271 *wl) { int ret; ret = wl1271_acx_pd_threshold(wl); if (ret < 0) return ret; ret = wl1271_acx_slot(wl, DEFAULT_SLOT_TIME); if (ret < 0) return ret; ret = wl1271_acx_group_address_tbl(wl, true, NULL, 0); if (ret < 0) return ret; ret = wl1271_acx_service_period_timeout(wl); if (ret < 0) return ret; ret = wl1271_acx_rts_threshold(wl, wl->conf.rx.rts_threshold); if (ret < 0) return ret; return 0; }
/* vif-specifc initialization */ static int wl12xx_init_sta_role(struct wl1271 *wl, struct wl12xx_vif *wlvif) { int ret; ret = wl1271_acx_group_address_tbl(wl, wlvif, true, NULL, 0); if (ret < 0) return ret; /* Initialize connection monitoring thresholds */ ret = wl1271_acx_conn_monit_params(wl, wlvif, false); if (ret < 0) return ret; /* Beacon filtering */ ret = wl1271_init_sta_beacon_filter(wl, wlvif); if (ret < 0) return ret; /* Beacons and broadcast settings */ ret = wl1271_init_beacon_broadcast(wl, wlvif); if (ret < 0) return ret; /* Configure rssi/snr averaging weights */ ret = wl1271_acx_rssi_snr_avg_weights(wl, wlvif); if (ret < 0) return ret; return 0; }
static int wl1271_init_phy_config(struct wl1271 *wl) { int ret; ret = wl1271_acx_pd_threshold(wl); if (ret < 0) return ret; ret = wl1271_acx_slot(wl, DEFAULT_SLOT_TIME); if (ret < 0) return ret; ret = wl1271_acx_group_address_tbl(wl); if (ret < 0) return ret; ret = wl1271_acx_service_period_timeout(wl); if (ret < 0) return ret; ret = wl1271_acx_rts_threshold(wl, RTS_THRESHOLD_DEF); if (ret < 0) return ret; return 0; }
static int wl1271_sta_hw_init(struct wl1271 *wl) { int ret; if (wl->chip.id != CHIP_ID_1283_PG20) { ret = wl1271_cmd_ext_radio_parms(wl); if (ret < 0) return ret; } /* PS config */ ret = wl1271_acx_config_ps(wl); if (ret < 0) return ret; ret = wl1271_sta_init_templates_config(wl); if (ret < 0) return ret; ret = wl1271_acx_group_address_tbl(wl, true, NULL, 0); if (ret < 0) return ret; /* Initialize connection monitoring thresholds */ ret = wl1271_acx_conn_monit_params(wl, false); if (ret < 0) return ret; /* Beacon filtering */ ret = wl1271_init_beacon_filter(wl); if (ret < 0) return ret; /* Beacons and broadcast settings */ ret = wl1271_init_beacon_broadcast(wl); if (ret < 0) return ret; /* Configure for ELP power saving */ ret = wl1271_acx_sleep_auth(wl, WL1271_PSM_ELP); if (ret < 0) return ret; /* Configure rssi/snr averaging weights */ ret = wl1271_acx_rssi_snr_avg_weights(wl); if (ret < 0) return ret; ret = wl1271_acx_sta_rate_policies(wl); if (ret < 0) return ret; ret = wl1271_acx_sta_mem_cfg(wl); if (ret < 0) return ret; /* Configure FW logger */ ret = wl1271_init_fw_logger(wl); if (ret < 0) return ret; return 0; }