diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2012-02-29 15:15:01 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:43 +0200 |
commit | f5077ac0fc9abff31bd536b1353ac57a17f05b45 (patch) | |
tree | d86396dd987cfe661cda3d8809c36801103a18c8 | |
parent | bba7f358c54359c97d43802f09e3effdd4e24393 (diff) |
cw1200: Block consecurive calls to the wsm_configuration
Consecutive calls to wsm_configuration are
not supported by firmware and can cause problems.
ST-Ericsson ID: 399837
Change-Id: I9dacc2a6aa962368c50d062d45ca0b2f7c262c9b
Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/39935
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
-rw-r--r-- | drivers/staging/cw1200/sta.c | 55 |
1 files changed, 24 insertions, 31 deletions
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c index 594be1cd5c8..43d7843e417 100644 --- a/drivers/staging/cw1200/sta.c +++ b/drivers/staging/cw1200/sta.c @@ -1103,10 +1103,6 @@ static int cw1200_parse_SDD_file(struct cw1200_common *priv) int cw1200_setup_mac(struct cw1200_common *priv) { - /* TBD: Do you know how to assing MAC address without - * annoying uploading RX data? */ - u8 prev_mac[ETH_ALEN]; - /* NOTE: There is a bug in FW: it reports signal * as RSSI if RSSI subscription is enabled. * It's not enough to set WSM_RCPI_RSSI_USE_RSSI. */ @@ -1119,40 +1115,37 @@ int cw1200_setup_mac(struct cw1200_common *priv) }; int ret = 0; - if (wsm_get_station_id(priv, &prev_mac[0]) - || memcmp(prev_mac, priv->mac_addr, ETH_ALEN)) { + if (!priv->sdd) { const char *sdd_path = NULL; struct wsm_configuration cfg = { .dot11StationId = &priv->mac_addr[0], }; - if (!priv->sdd) { - switch (priv->hw_revision) { - case CW1200_HW_REV_CUT10: - sdd_path = SDD_FILE_10; - break; - case CW1200_HW_REV_CUT11: - sdd_path = SDD_FILE_11; - break; - case CW1200_HW_REV_CUT20: - sdd_path = SDD_FILE_20; - break; - case CW1200_HW_REV_CUT22: - sdd_path = SDD_FILE_22; - break; - default: - BUG_ON(1); - } + switch (priv->hw_revision) { + case CW1200_HW_REV_CUT10: + sdd_path = SDD_FILE_10; + break; + case CW1200_HW_REV_CUT11: + sdd_path = SDD_FILE_11; + break; + case CW1200_HW_REV_CUT20: + sdd_path = SDD_FILE_20; + break; + case CW1200_HW_REV_CUT22: + sdd_path = SDD_FILE_22; + break; + default: + BUG_ON(1); + } - ret = request_firmware(&priv->sdd, - sdd_path, priv->pdev); + ret = request_firmware(&priv->sdd, + sdd_path, priv->pdev); - if (unlikely(ret)) { - cw1200_dbg(CW1200_DBG_ERROR, - "%s: can't load sdd file %s.\n", - __func__, sdd_path); - return ret; - } + if (unlikely(ret)) { + cw1200_dbg(CW1200_DBG_ERROR, + "%s: can't load sdd file %s.\n", + __func__, sdd_path); + return ret; } cfg.dpdData = priv->sdd->data; |