diff options
-rw-r--r-- | drivers/staging/cw1200/scan.c | 4 | ||||
-rw-r--r-- | drivers/staging/cw1200/sta.c | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/staging/cw1200/scan.c b/drivers/staging/cw1200/scan.c index c9210e57397..11de0db44de 100644 --- a/drivers/staging/cw1200/scan.c +++ b/drivers/staging/cw1200/scan.c @@ -51,6 +51,10 @@ int cw1200_hw_scan(struct ieee80211_hw *hw, if (!priv->vif) return -EINVAL; + /* Scan when P2P_GO corrupt firmware MiniAP mode */ + if (priv->join_status == CW1200_JOIN_STATUS_AP) + return -EOPNOTSUPP; + if (req->n_ssids == 1 && !req->ssids[0].ssid_len) req->n_ssids = 0; diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c index 3da13d597ef..9e14d30253c 100644 --- a/drivers/staging/cw1200/sta.c +++ b/drivers/staging/cw1200/sta.c @@ -763,11 +763,14 @@ int __cw1200_flush(struct cw1200_common *priv, bool drop) } for (;;) { + /* TODO: correct flush handlin is required when dev_stop. + * Temporary workaround: 2s + */ ret = wait_event_timeout( priv->tx_queue_stats.wait_link_id_empty, cw1200_queue_stats_is_empty( &priv->tx_queue_stats, -1), - 10 * HZ); + 2 * HZ); if (unlikely(ret <= 0)) { if (!ret) |