Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22f0d2d1 authored by John W. Linville's avatar John W. Linville
Browse files

Merge branch 'master' of...

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
parents 0f7dd1aa 48c3e371
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -523,9 +523,9 @@ static int prism2_ioctl_giwaplist(struct net_device *dev,

	data->length = prism2_ap_get_sta_qual(local, addr, qual, IW_MAX_AP, 1);

	memcpy(extra, &addr, sizeof(struct sockaddr) * data->length);
	memcpy(extra, addr, sizeof(struct sockaddr) * data->length);
	data->flags = 1; /* has quality information */
	memcpy(extra + sizeof(struct sockaddr) * data->length, &qual,
	memcpy(extra + sizeof(struct sockaddr) * data->length, qual,
	       sizeof(struct iw_quality) * data->length);

	kfree(addr);
+4 −1
Original line number Diff line number Diff line
@@ -1068,7 +1068,10 @@ void iwl_chswitch_done(struct iwl_priv *priv, bool is_success)
	if (test_bit(STATUS_EXIT_PENDING, &priv->status))
		return;

	if (test_and_clear_bit(STATUS_CHANNEL_SWITCH_PENDING, &priv->status))
	if (!test_and_clear_bit(STATUS_CHANNEL_SWITCH_PENDING, &priv->status))
		return;

	if (ctx->vif)
		ieee80211_chswitch_done(ctx->vif, is_success);
}

+0 −2
Original line number Diff line number Diff line
@@ -97,8 +97,6 @@

#define APMG_PCIDEV_STT_VAL_L1_ACT_DIS		(0x00000800)

#define APMG_RTC_INT_STT_RFKILL		(0x10000000)

/* Device system time */
#define DEVICE_SYSTEM_TIME_REG 0xA0206C

+23 −10
Original line number Diff line number Diff line
@@ -138,6 +138,20 @@ static void iwl_mvm_roc_finished(struct iwl_mvm *mvm)
	schedule_work(&mvm->roc_done_wk);
}

static bool iwl_mvm_te_check_disconnect(struct iwl_mvm *mvm,
					struct ieee80211_vif *vif,
					const char *errmsg)
{
	if (vif->type != NL80211_IFTYPE_STATION)
		return false;
	if (vif->bss_conf.assoc && vif->bss_conf.dtim_period)
		return false;
	if (errmsg)
		IWL_ERR(mvm, "%s\n", errmsg);
	ieee80211_connection_loss(vif);
	return true;
}

/*
 * Handles a FW notification for an event that is known to the driver.
 *
@@ -163,8 +177,13 @@ static void iwl_mvm_te_handle_notif(struct iwl_mvm *mvm,
	 * P2P Device discoveribility, while there are other higher priority
	 * events in the system).
	 */
	WARN_ONCE(!le32_to_cpu(notif->status),
		  "Failed to schedule time event\n");
	if (WARN_ONCE(!le32_to_cpu(notif->status),
		      "Failed to schedule time event\n")) {
		if (iwl_mvm_te_check_disconnect(mvm, te_data->vif, NULL)) {
			iwl_mvm_te_clear_data(mvm, te_data);
			return;
		}
	}

	if (le32_to_cpu(notif->action) & TE_NOTIF_HOST_EVENT_END) {
		IWL_DEBUG_TE(mvm,
@@ -180,14 +199,8 @@ static void iwl_mvm_te_handle_notif(struct iwl_mvm *mvm,
		 * By now, we should have finished association
		 * and know the dtim period.
		 */
		if (te_data->vif->type == NL80211_IFTYPE_STATION &&
		    (!te_data->vif->bss_conf.assoc ||
		     !te_data->vif->bss_conf.dtim_period)) {
			IWL_ERR(mvm,
				"No assocation and the time event is over already...\n");
			ieee80211_connection_loss(te_data->vif);
		}

		iwl_mvm_te_check_disconnect(mvm, te_data->vif,
			"No assocation and the time event is over already...");
		iwl_mvm_te_clear_data(mvm, te_data);
	} else if (le32_to_cpu(notif->action) & TE_NOTIF_HOST_EVENT_START) {
		te_data->running = true;
+0 −8
Original line number Diff line number Diff line
@@ -888,14 +888,6 @@ irqreturn_t iwl_pcie_irq_handler(int irq, void *dev_id)

		iwl_op_mode_hw_rf_kill(trans->op_mode, hw_rfkill);
		if (hw_rfkill) {
			/*
			 * Clear the interrupt in APMG if the NIC is going down.
			 * Note that when the NIC exits RFkill (else branch), we
			 * can't access prph and the NIC will be reset in
			 * start_hw anyway.
			 */
			iwl_write_prph(trans, APMG_RTC_INT_STT_REG,
				       APMG_RTC_INT_STT_RFKILL);
			set_bit(STATUS_RFKILL, &trans_pcie->status);
			if (test_and_clear_bit(STATUS_HCMD_ACTIVE,
					       &trans_pcie->status))
Loading