/* generic sta initialization (non vif-specific) */ static int wl1271_sta_hw_init(struct wl1271 *wl, struct wl12xx_vif *wlvif) { int ret; /* PS config */ ret = wl12xx_acx_config_ps(wl, wlvif); if (ret < 0) return ret; /* FM WLAN coexistence */ ret = wl1271_acx_fm_coex(wl); if (ret < 0) return ret; ret = wl1271_acx_sta_rate_policies(wl, wlvif); 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; /* FM WLAN coexistence */ ret = wl1271_acx_fm_coex(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_mem_cfg(wl); if (ret < 0) return ret; /* Configure the FW logger */ ret = wl12xx_init_fwlog(wl); if (ret < 0) return ret; return 0; }