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

Commit 97c976a9 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa: fix a double clock disable for imp"

parents 340cd90e c0f35491
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -220,6 +220,9 @@ enum {
#define IPA_WDI_TX_DB_RES			7
#define IPA_WDI_MAX_RES				8

/* use QMAP header reserved bit to identify tethered traffic */
#define IPA_QMAP_TETH_BIT (1 << 30)

#ifdef CONFIG_ARM64
/* Outer caches unsupported on ARM64 platforms */
# define outer_flush_range(x, y)
+3 −4
Original line number Diff line number Diff line
@@ -702,7 +702,8 @@ static int imp_mhi_probe_cb(struct mhi_device *mhi_dev,
		return -EPERM;
	}

	IPA_ACTIVE_CLIENTS_INC_SIMPLE();
	/* vote for IPA clock. IPA clock will be devoted when MHI enters LPM */
	IPA_ACTIVE_CLIENTS_INC_SPECIAL("IMP");

	imp_ctx->md.mhi_dev = mhi_dev;

@@ -770,15 +771,13 @@ static int imp_mhi_probe_cb(struct mhi_device *mhi_dev,
	imp_mhi_trigger_ready_ind();

	mutex_unlock(&imp_ctx->mutex);
	IPA_ACTIVE_CLIENTS_DEC_SIMPLE();


	IMP_FUNC_EXIT();
	return 0;

fail:
	mutex_unlock(&imp_ctx->mutex);
	IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
	IPA_ACTIVE_CLIENTS_DEC_SPECIAL("IMP");
	return ret;
}

+9 −2
Original line number Diff line number Diff line
@@ -1115,10 +1115,17 @@ int ipa3_nat_mdfy_pdn(struct ipa_ioc_nat_pdn_entry *mdfy_pdn)
	pdn_entries[mdfy_pdn->pdn_index].src_metadata =
		mdfy_pdn->src_metadata;

	/* mark tethering bit for remote modem */
	if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_1)
		pdn_entries[mdfy_pdn->pdn_index].src_metadata |=
			IPA_QMAP_TETH_BIT;

	IPADBG("Modify PDN in index: %d Public ip address:%pI4h\n",
		mdfy_pdn->pdn_index, &mdfy_pdn->public_ip);
		mdfy_pdn->pdn_index,
		&pdn_entries[mdfy_pdn->pdn_index].public_ip);
	IPADBG("Modify PDN dst metadata: 0x%x src metadata: 0x%x\n",
		mdfy_pdn->dst_metadata, mdfy_pdn->src_metadata);
		pdn_entries[mdfy_pdn->pdn_index].dst_metadata,
		pdn_entries[mdfy_pdn->pdn_index].src_metadata);

	/* Copy the PDN config table to SRAM */
	ipa3_nat_create_modify_pdn_cmd(&mem_cmd, false);
+4 −0
Original line number Diff line number Diff line
@@ -4046,6 +4046,10 @@ int ipa3_cfg_ep_metadata(u32 clnt_hdl, const struct ipa_ep_cfg_metadata *ep_md)
		IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_SHFT) &
		IPA_ENDP_INIT_HDR_METADATA_n_MUX_ID_BMASK;

	/* mark tethering bit for remote modem */
	if (ipa3_ctx->ipa_hw_type == IPA_HW_v4_1)
		qmap_id |= IPA_QMAP_TETH_BIT;

	ep_md_reg_wrt.qmap_id = qmap_id;
	ipahal_write_reg_n_fields(IPA_ENDP_INIT_HDR_METADATA_n, clnt_hdl,
		&ep_md_reg_wrt);