summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>2012-02-29 15:15:01 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:43 +0200
commitf5077ac0fc9abff31bd536b1353ac57a17f05b45 (patch)
treed86396dd987cfe661cda3d8809c36801103a18c8
parentbba7f358c54359c97d43802f09e3effdd4e24393 (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.c55
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;