diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index 21a52ae05c0d..bce77eeb31c0 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -2592,6 +2592,52 @@ int iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log, | |||
2592 | return pos; | 2592 | return pos; |
2593 | } | 2593 | } |
2594 | 2594 | ||
2595 | static void iwl_rf_kill_ct_config(struct iwl_priv *priv) | ||
2596 | { | ||
2597 | struct iwl_ct_kill_config cmd; | ||
2598 | struct iwl_ct_kill_throttling_config adv_cmd; | ||
2599 | unsigned long flags; | ||
2600 | int ret = 0; | ||
2601 | |||
2602 | spin_lock_irqsave(&priv->lock, flags); | ||
2603 | iwl_write32(priv, CSR_UCODE_DRV_GP1_CLR, | ||
2604 | CSR_UCODE_DRV_GP1_REG_BIT_CT_KILL_EXIT); | ||
2605 | spin_unlock_irqrestore(&priv->lock, flags); | ||
2606 | priv->thermal_throttle.ct_kill_toggle = false; | ||
2607 | |||
2608 | if (priv->cfg->support_ct_kill_exit) { | ||
2609 | adv_cmd.critical_temperature_enter = | ||
2610 | cpu_to_le32(priv->hw_params.ct_kill_threshold); | ||
2611 | adv_cmd.critical_temperature_exit = | ||
2612 | cpu_to_le32(priv->hw_params.ct_kill_exit_threshold); | ||
2613 | |||
2614 | ret = iwl_send_cmd_pdu(priv, REPLY_CT_KILL_CONFIG_CMD, | ||
2615 | sizeof(adv_cmd), &adv_cmd); | ||
2616 | if (ret) | ||
2617 | IWL_ERR(priv, "REPLY_CT_KILL_CONFIG_CMD failed\n"); | ||
2618 | else | ||
2619 | IWL_DEBUG_INFO(priv, "REPLY_CT_KILL_CONFIG_CMD " | ||
2620 | "succeeded, " | ||
2621 | "critical temperature enter is %d," | ||
2622 | "exit is %d\n", | ||
2623 | priv->hw_params.ct_kill_threshold, | ||
2624 | priv->hw_params.ct_kill_exit_threshold); | ||
2625 | } else { | ||
2626 | cmd.critical_temperature_R = | ||
2627 | cpu_to_le32(priv->hw_params.ct_kill_threshold); | ||
2628 | |||
2629 | ret = iwl_send_cmd_pdu(priv, REPLY_CT_KILL_CONFIG_CMD, | ||
2630 | sizeof(cmd), &cmd); | ||
2631 | if (ret) | ||
2632 | IWL_ERR(priv, "REPLY_CT_KILL_CONFIG_CMD failed\n"); | ||
2633 | else | ||
2634 | IWL_DEBUG_INFO(priv, "REPLY_CT_KILL_CONFIG_CMD " | ||
2635 | "succeeded, " | ||
2636 | "critical temperature is %d\n", | ||
2637 | priv->hw_params.ct_kill_threshold); | ||
2638 | } | ||
2639 | } | ||
2640 | |||
2595 | /** | 2641 | /** |
2596 | * iwl_alive_start - called after REPLY_ALIVE notification received | 2642 | * iwl_alive_start - called after REPLY_ALIVE notification received |
2597 | * from protocol/runtime uCode (initialization uCode's | 2643 | * from protocol/runtime uCode (initialization uCode's |