]> git.kernelconcepts.de Git - mv-sheeva.git/blobdiff - drivers/net/wireless/iwlwifi/iwl-debugfs.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / net / wireless / iwlwifi / iwl-debugfs.c
index 8fdd4efdb1d36bf273cc62b1f4a9a25af59b1f17..6fe80b5e7a159ab0b91450314e1cd89d7feedcd5 100644 (file)
@@ -992,11 +992,8 @@ static ssize_t iwl_dbgfs_tx_queue_read(struct file *file,
                                " swq_id=%#.2x (ac %d/hwq %d)\n",
                                cnt, q->read_ptr, q->write_ptr,
                                !!test_bit(cnt, priv->queue_stopped),
-                               txq->swq_id,
-                               txq->swq_id & 0x80 ? txq->swq_id & 3 :
-                               txq->swq_id,
-                               txq->swq_id & 0x80 ? (txq->swq_id >> 2) &
-                               0x1f : txq->swq_id);
+                               txq->swq_id, txq->swq_id & 3,
+                               (txq->swq_id >> 2) & 0x1f);
                if (cnt >= 4)
                        continue;
                /* for the ACs, display the stop count too */
@@ -1537,32 +1534,26 @@ static ssize_t iwl_dbgfs_ucode_bt_stats_read(struct file *file,
                        user_buf, count, ppos);
 }
 
-static ssize_t iwl_dbgfs_monitor_period_write(struct file *file,
+static ssize_t iwl_dbgfs_wd_timeout_write(struct file *file,
                                        const char __user *user_buf,
                                        size_t count, loff_t *ppos) {
 
        struct iwl_priv *priv = file->private_data;
        char buf[8];
        int buf_size;
-       int period;
+       int timeout;
 
        memset(buf, 0, sizeof(buf));
        buf_size = min(count, sizeof(buf) -  1);
        if (copy_from_user(buf, user_buf, buf_size))
                return -EFAULT;
-       if (sscanf(buf, "%d", &period) != 1)
+       if (sscanf(buf, "%d", &timeout) != 1)
                return -EINVAL;
-       if (period < 0 || period > IWL_MAX_MONITORING_PERIOD)
-               priv->cfg->base_params->monitor_recover_period =
-                       IWL_DEF_MONITORING_PERIOD;
-       else
-               priv->cfg->base_params->monitor_recover_period = period;
+       if (timeout < 0 || timeout > IWL_MAX_WD_TIMEOUT)
+               timeout = IWL_DEF_WD_TIMEOUT;
 
-       if (priv->cfg->base_params->monitor_recover_period)
-               mod_timer(&priv->monitor_recover, jiffies + msecs_to_jiffies(
-                         priv->cfg->base_params->monitor_recover_period));
-       else
-               del_timer_sync(&priv->monitor_recover);
+       priv->cfg->base_params->wd_timeout = timeout;
+       iwl_setup_watchdog(priv);
        return count;
 }
 
@@ -1576,11 +1567,18 @@ static ssize_t iwl_dbgfs_bt_traffic_read(struct file *file,
        const size_t bufsz = sizeof(buf);
        ssize_t ret;
 
+       if (!priv->bt_enable_flag) {
+               pos += scnprintf(buf + pos, bufsz - pos, "BT coex disabled\n");
+               ret = simple_read_from_buffer(user_buf, count, ppos, buf, pos);
+               return ret;
+       }
+       pos += scnprintf(buf + pos, bufsz - pos, "BT enable flag: 0x%x\n",
+               priv->bt_enable_flag);
        pos += scnprintf(buf + pos, bufsz - pos, "BT in %s mode\n",
                priv->bt_full_concurrent ? "full concurrency" : "3-wire");
        pos += scnprintf(buf + pos, bufsz - pos, "BT status: %s, "
                         "last traffic notif: %d\n",
-               priv->bt_status ? "On" : "Off", priv->notif_bt_traffic_load);
+               priv->bt_status ? "On" : "Off", priv->last_bt_traffic_load);
        pos += scnprintf(buf + pos, bufsz - pos, "ch_announcement: %d, "
                         "sco_active: %d, kill_ack_mask: %x, "
                         "kill_cts_mask: %x\n",
@@ -1689,7 +1687,7 @@ DEBUGFS_READ_FILE_OPS(rxon_flags);
 DEBUGFS_READ_FILE_OPS(rxon_filter_flags);
 DEBUGFS_WRITE_FILE_OPS(txfifo_flush);
 DEBUGFS_READ_FILE_OPS(ucode_bt_stats);
-DEBUGFS_WRITE_FILE_OPS(monitor_period);
+DEBUGFS_WRITE_FILE_OPS(wd_timeout);
 DEBUGFS_READ_FILE_OPS(bt_traffic);
 DEBUGFS_READ_WRITE_FILE_OPS(protection_mode);
 DEBUGFS_READ_FILE_OPS(reply_tx_error);
@@ -1766,7 +1764,7 @@ int iwl_dbgfs_register(struct iwl_priv *priv, const char *name)
        DEBUGFS_ADD_FILE(reply_tx_error, dir_debug, S_IRUSR);
        DEBUGFS_ADD_FILE(rxon_flags, dir_debug, S_IWUSR);
        DEBUGFS_ADD_FILE(rxon_filter_flags, dir_debug, S_IWUSR);
-       DEBUGFS_ADD_FILE(monitor_period, dir_debug, S_IWUSR);
+       DEBUGFS_ADD_FILE(wd_timeout, dir_debug, S_IWUSR);
        if (priv->cfg->bt_params && priv->cfg->bt_params->advanced_bt_coexist)
                DEBUGFS_ADD_FILE(bt_traffic, dir_debug, S_IRUSR);
        if (priv->cfg->base_params->sensitivity_calib_by_driver)