|
|
@@ -6,7 +6,7 @@
|
|
|
* GPL LICENSE SUMMARY
|
|
|
*
|
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
|
- * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
|
|
|
+ * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
|
*
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
* it under the terms of version 2 of the GNU General Public License as
|
|
|
@@ -32,7 +32,7 @@
|
|
|
* BSD LICENSE
|
|
|
*
|
|
|
* Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
|
|
|
- * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
|
|
|
+ * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
|
|
|
* All rights reserved.
|
|
|
*
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
@@ -108,12 +108,14 @@ void iwl_mvm_roc_done_wk(struct work_struct *wk)
|
|
|
* in the case that the time event actually completed in the firmware
|
|
|
* (which is handled in iwl_mvm_te_handle_notif).
|
|
|
*/
|
|
|
- if (test_and_clear_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status))
|
|
|
+ if (test_and_clear_bit(IWL_MVM_STATUS_ROC_RUNNING, &mvm->status)) {
|
|
|
queues |= BIT(IWL_MVM_OFFCHANNEL_QUEUE);
|
|
|
- if (test_and_clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status))
|
|
|
+ iwl_mvm_unref(mvm, IWL_MVM_REF_ROC);
|
|
|
+ }
|
|
|
+ if (test_and_clear_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status)) {
|
|
|
queues |= BIT(mvm->aux_queue);
|
|
|
-
|
|
|
- iwl_mvm_unref(mvm, IWL_MVM_REF_ROC);
|
|
|
+ iwl_mvm_unref(mvm, IWL_MVM_REF_ROC_AUX);
|
|
|
+ }
|
|
|
|
|
|
synchronize_net();
|
|
|
|
|
|
@@ -393,6 +395,7 @@ static int iwl_mvm_aux_roc_te_handle_notif(struct iwl_mvm *mvm,
|
|
|
} else if (le32_to_cpu(notif->action) == TE_V2_NOTIF_HOST_EVENT_START) {
|
|
|
set_bit(IWL_MVM_STATUS_ROC_AUX_RUNNING, &mvm->status);
|
|
|
te_data->running = true;
|
|
|
+ iwl_mvm_ref(mvm, IWL_MVM_REF_ROC_AUX);
|
|
|
ieee80211_ready_on_channel(mvm->hw); /* Start TE */
|
|
|
} else {
|
|
|
IWL_DEBUG_TE(mvm,
|