|
@@ -588,10 +588,19 @@ mwifiex_tx_timeout(struct net_device *dev)
|
|
|
{
|
|
|
struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
|
|
|
|
|
|
- dev_err(priv->adapter->dev, "%lu : Tx timeout, bss_type-num = %d-%d\n",
|
|
|
- jiffies, priv->bss_type, priv->bss_num);
|
|
|
- mwifiex_set_trans_start(dev);
|
|
|
priv->num_tx_timeout++;
|
|
|
+ priv->tx_timeout_cnt++;
|
|
|
+ dev_err(priv->adapter->dev,
|
|
|
+ "%lu : Tx timeout(#%d), bss_type-num = %d-%d\n",
|
|
|
+ jiffies, priv->tx_timeout_cnt, priv->bss_type, priv->bss_num);
|
|
|
+ mwifiex_set_trans_start(dev);
|
|
|
+
|
|
|
+ if (priv->tx_timeout_cnt > TX_TIMEOUT_THRESHOLD &&
|
|
|
+ priv->adapter->if_ops.card_reset) {
|
|
|
+ dev_err(priv->adapter->dev,
|
|
|
+ "tx_timeout_cnt exceeds threshold. Triggering card reset!\n");
|
|
|
+ priv->adapter->if_ops.card_reset(priv->adapter);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*
|