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

Commit 357969c6 authored by Emmanuel Grumbach's avatar Emmanuel Grumbach Committed by Luca Coelho
Browse files

iwlwifi: mvm: revert support new Coex firmware API



This new API will not be used, remove the code that
supports it.

Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 992172e3
Loading
Loading
Loading
Loading
+0 −30
Original line number Diff line number Diff line
@@ -188,11 +188,6 @@ enum iwl_bt_mxbox_dw3 {
	BT_MBOX(3, UPDATE_REQUEST, 21, 1),
};

enum iwl_bt_mxbox_dw4 {
	BT_MBOX(4, ATS_BT_INTERVAL, 0, 7),
	BT_MBOX(4, ATS_BT_ACTIVE_MAX_TH, 7, 7),
};

#define BT_MBOX_MSG(_notif, _num, _field)				     \
	((le32_to_cpu((_notif)->mbox_msg[(_num)]) & BT_MBOX##_num##_##_field)\
	>> BT_MBOX##_num##_##_field##_POS)
@@ -232,31 +227,6 @@ enum iwl_bt_ci_compliance {
 * @reserved: reserved
 */
struct iwl_bt_coex_profile_notif {
	__le32 mbox_msg[8];
	__le32 msg_idx;
	__le32 bt_ci_compliance;

	__le32 primary_ch_lut;
	__le32 secondary_ch_lut;
	__le32 bt_activity_grading;
	u8 ttc_status;
	u8 rrc_status;
	__le16 reserved;
} __packed; /* BT_COEX_PROFILE_NTFY_API_S_VER_5 */

/**
 * struct iwl_bt_coex_profile_notif - notification about BT coex
 * @mbox_msg: message from BT to WiFi
 * @msg_idx: the index of the message
 * @bt_ci_compliance: enum %iwl_bt_ci_compliance
 * @primary_ch_lut: LUT used for primary channel &enum iwl_bt_coex_lut_type
 * @secondary_ch_lut: LUT used for secondary channel &enum iwl_bt_coex_lut_type
 * @bt_activity_grading: the activity of BT &enum iwl_bt_activity_grading
 * @ttc_status: is TTC enabled - one bit per PHY
 * @rrc_status: is RRC enabled - one bit per PHY
 * @reserved: reserved
 */
struct iwl_bt_coex_profile_notif_v4 {
	__le32 mbox_msg[4];
	__le32 msg_idx;
	__le32 bt_ci_compliance;
+0 −3
Original line number Diff line number Diff line
@@ -246,8 +246,6 @@ typedef unsigned int __bitwise iwl_ucode_tlv_api_t;
 * @IWL_UCODE_TLV_API_STA_TYPE: This ucode supports station type assignement.
 * @IWL_UCODE_TLV_API_NAN2_VER2: This ucode supports NAN API version 2
 * @IWL_UCODE_TLV_API_NEW_RX_STATS: should new RX STATISTICS API be used
 * @IWL_UCODE_TLV_API_ATS_COEX_EXTERNAL: the coex notification is enlared to
 *	include information about ACL time sharing.
 * @IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY: Quota command includes a field
 *	indicating low latency direction.
 *
@@ -266,7 +264,6 @@ enum iwl_ucode_tlv_api {
	/* API Set 1 */
	IWL_UCODE_TLV_API_NEW_BEACON_TEMPLATE	= (__force iwl_ucode_tlv_api_t)34,
	IWL_UCODE_TLV_API_NEW_RX_STATS		= (__force iwl_ucode_tlv_api_t)35,
	IWL_UCODE_TLV_API_COEX_ATS_EXTERNAL	= (__force iwl_ucode_tlv_api_t)37,
	IWL_UCODE_TLV_API_QUOTA_LOW_LATENCY	= (__force iwl_ucode_tlv_api_t)38,

	NUM_IWL_UCODE_TLV_API
+6 −27
Original line number Diff line number Diff line
@@ -7,7 +7,6 @@
 *
 * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved.
 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
 * Copyright(c) 2017        Intel Deutschland 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
@@ -34,7 +33,6 @@
 *
 * Copyright(c) 2013 - 2014 Intel Corporation. All rights reserved.
 * Copyright(c) 2013 - 2015 Intel Mobile Communications GmbH
 * Copyright(c) 2017        Intel Deutschland GmbH
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
@@ -514,36 +512,17 @@ void iwl_mvm_rx_bt_coex_notif(struct iwl_mvm *mvm,
	struct iwl_rx_packet *pkt = rxb_addr(rxb);
	struct iwl_bt_coex_profile_notif *notif = (void *)pkt->data;

	if (!iwl_mvm_has_new_ats_coex_api(mvm)) {
		struct iwl_bt_coex_profile_notif_v4 *v4 = (void *)pkt->data;

		mvm->last_bt_notif.mbox_msg[0] = v4->mbox_msg[0];
		mvm->last_bt_notif.mbox_msg[1] = v4->mbox_msg[1];
		mvm->last_bt_notif.mbox_msg[2] = v4->mbox_msg[2];
		mvm->last_bt_notif.mbox_msg[3] = v4->mbox_msg[3];
		mvm->last_bt_notif.msg_idx = v4->msg_idx;
		mvm->last_bt_notif.bt_ci_compliance = v4->bt_ci_compliance;
		mvm->last_bt_notif.primary_ch_lut = v4->primary_ch_lut;
		mvm->last_bt_notif.secondary_ch_lut = v4->secondary_ch_lut;
		mvm->last_bt_notif.bt_activity_grading =
			v4->bt_activity_grading;
		mvm->last_bt_notif.ttc_status = v4->ttc_status;
		mvm->last_bt_notif.rrc_status = v4->rrc_status;
	} else {
		/* save this notification for future use: rssi fluctuations */
		memcpy(&mvm->last_bt_notif, notif, sizeof(mvm->last_bt_notif));
	}

	IWL_DEBUG_COEX(mvm, "BT Coex Notification received\n");
	IWL_DEBUG_COEX(mvm, "\tBT ci compliance %d\n",
		       mvm->last_bt_notif.bt_ci_compliance);
	IWL_DEBUG_COEX(mvm, "\tBT ci compliance %d\n", notif->bt_ci_compliance);
	IWL_DEBUG_COEX(mvm, "\tBT primary_ch_lut %d\n",
		       le32_to_cpu(mvm->last_bt_notif.primary_ch_lut));
		       le32_to_cpu(notif->primary_ch_lut));
	IWL_DEBUG_COEX(mvm, "\tBT secondary_ch_lut %d\n",
		       le32_to_cpu(mvm->last_bt_notif.secondary_ch_lut));
		       le32_to_cpu(notif->secondary_ch_lut));
	IWL_DEBUG_COEX(mvm, "\tBT activity grading %d\n",
		       le32_to_cpu(mvm->last_bt_notif.bt_activity_grading));
		       le32_to_cpu(notif->bt_activity_grading));

	/* remember this notification for future use: rssi fluctuations */
	memcpy(&mvm->last_bt_notif, notif, sizeof(mvm->last_bt_notif));

	iwl_mvm_bt_coex_notif_handle(mvm);
}
+3 −9
Original line number Diff line number Diff line
@@ -470,8 +470,7 @@ static ssize_t iwl_dbgfs_disable_power_off_write(struct iwl_mvm *mvm, char *buf,
}

static
int iwl_mvm_coex_dump_mbox(struct iwl_mvm *mvm,
			   struct iwl_bt_coex_profile_notif *notif, char *buf,
int iwl_mvm_coex_dump_mbox(struct iwl_bt_coex_profile_notif *notif, char *buf,
			   int pos, int bufsz)
{
	pos += scnprintf(buf+pos, bufsz-pos, "MBOX dw0:\n");
@@ -525,12 +524,7 @@ int iwl_mvm_coex_dump_mbox(struct iwl_mvm *mvm,
	BT_MBOX_PRINT(3, INBAND_P, false);
	BT_MBOX_PRINT(3, MSG_TYPE_2, false);
	BT_MBOX_PRINT(3, SSN_2, false);
	BT_MBOX_PRINT(3, UPDATE_REQUEST, !iwl_mvm_has_new_ats_coex_api(mvm));

	if (iwl_mvm_has_new_ats_coex_api(mvm)) {
		BT_MBOX_PRINT(4, ATS_BT_INTERVAL, false);
		BT_MBOX_PRINT(4, ATS_BT_ACTIVE_MAX_TH, true);
	}
	BT_MBOX_PRINT(3, UPDATE_REQUEST, true);

	return pos;
}
@@ -549,7 +543,7 @@ static ssize_t iwl_dbgfs_bt_notif_read(struct file *file, char __user *user_buf,

	mutex_lock(&mvm->mutex);

	pos += iwl_mvm_coex_dump_mbox(mvm, notif, buf, pos, bufsz);
	pos += iwl_mvm_coex_dump_mbox(notif, buf, pos, bufsz);

	pos += scnprintf(buf + pos, bufsz - pos, "bt_ci_compliance = %d\n",
			 notif->bt_ci_compliance);
+0 −6
Original line number Diff line number Diff line
@@ -1263,12 +1263,6 @@ static inline bool iwl_mvm_has_new_rx_stats_api(struct iwl_mvm *mvm)
			  IWL_UCODE_TLV_API_NEW_RX_STATS);
}

static inline bool iwl_mvm_has_new_ats_coex_api(struct iwl_mvm *mvm)
{
	return fw_has_api(&mvm->fw->ucode_capa,
			  IWL_UCODE_TLV_API_COEX_ATS_EXTERNAL);
}

static inline bool iwl_mvm_has_quota_low_latency(struct iwl_mvm *mvm)
{
	return fw_has_api(&mvm->fw->ucode_capa,