浏览代码

iwlagn: delay ict interrupt.

Wait until ucode is loaded and driver receive ALIVE_REPLY then switch
 to ICT interrupt. This ensures we receive all interrupts indicating
 successful ucode load.

Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Mohamed Abbas 16 年之前
父节点
当前提交
258c44a0c0
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      drivers/net/wireless/iwlwifi/iwl-agn.c

+ 3 - 2
drivers/net/wireless/iwlwifi/iwl-agn.c

@@ -1887,8 +1887,6 @@ static int __iwl_up(struct iwl_priv *priv)
 
 
 	/* clear (again), then enable host interrupts */
 	/* clear (again), then enable host interrupts */
 	iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
 	iwl_write32(priv, CSR_INT, 0xFFFFFFFF);
-	/* enable dram interrupt */
-	iwl_reset_ict(priv);
 	iwl_enable_interrupts(priv);
 	iwl_enable_interrupts(priv);
 
 
 	/* really make sure rfkill handshake bits are cleared */
 	/* really make sure rfkill handshake bits are cleared */
@@ -1962,6 +1960,9 @@ static void iwl_bg_alive_start(struct work_struct *data)
 	if (test_bit(STATUS_EXIT_PENDING, &priv->status))
 	if (test_bit(STATUS_EXIT_PENDING, &priv->status))
 		return;
 		return;
 
 
+	/* enable dram interrupt */
+	iwl_reset_ict(priv);
+
 	mutex_lock(&priv->mutex);
 	mutex_lock(&priv->mutex);
 	iwl_alive_start(priv);
 	iwl_alive_start(priv);
 	mutex_unlock(&priv->mutex);
 	mutex_unlock(&priv->mutex);