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

Commit 7eb2ea1a authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa3: Adapt version handling to support IPAv3.5/3.5.1"

parents 6f16b3c2 4e81a4f5
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2454,6 +2454,12 @@ const char *ipa_get_version_string(enum ipa_hw_type ver)
	case IPA_HW_v3_1:
		str = "3.1";
		break;
	case IPA_HW_v3_5:
		str = "3.5";
		break;
	case IPA_HW_v3_5_1:
		str = "3.5.1";
		break;
	default:
		str = "Invalid version";
		break;
@@ -2512,6 +2518,8 @@ static int ipa_generic_plat_drv_probe(struct platform_device *pdev_p)
		break;
	case IPA_HW_v3_0:
	case IPA_HW_v3_1:
	case IPA_HW_v3_5:
	case IPA_HW_v3_5_1:
		result = ipa3_plat_drv_probe(pdev_p, ipa_api_ctrl,
			ipa_plat_drv_match);
		break;
+3 −3
Original line number Diff line number Diff line
@@ -4166,10 +4166,10 @@ static ssize_t ipa3_write(struct file *file, const char __user *buf,
	if (ipa3_ctx->transport_prototype == IPA_TRANSPORT_TYPE_GSI) {
		IPA_ACTIVE_CLIENTS_INC_SIMPLE();

		if (ipa3_ctx->ipa_hw_type == IPA_HW_v3_0)
			result = ipa3_trigger_fw_loading_mdms();
		else if (ipa3_ctx->ipa_hw_type == IPA_HW_v3_1)
		if (ipa3_is_msm_device())
			result = ipa3_trigger_fw_loading_msms();
		else
			result = ipa3_trigger_fw_loading_mdms();
		/* No IPAv3.x chipsets that don't support FW loading */

		IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
+1 −1
Original line number Diff line number Diff line
@@ -4174,7 +4174,7 @@ static uint64_t pointer_to_tag_wa(struct ipa3_tx_pkt_wrapper *tx_pkt)
{
	u16 temp;
	/* Add the check but it might have throughput issue */
	if (ipa3_ctx->ipa_hw_type == IPA_HW_v3_1) {
	if (ipa3_is_msm_device()) {
		temp = (u16) (~((unsigned long) tx_pkt &
			0xFFFF000000000000) >> 48);
		if (temp) {
+1 −0
Original line number Diff line number Diff line
@@ -2019,4 +2019,5 @@ int ipa3_smmu_map_peer_reg(phys_addr_t phys_addr, bool map);
int ipa3_smmu_map_peer_buff(u64 iova, phys_addr_t phys_addr,
	u32 size, bool map);
struct dentry *ipa_debugfs_get_root(void);
bool ipa3_is_msm_device(void);
#endif /* _IPA3_I_H_ */
+2 −2
Original line number Diff line number Diff line
@@ -391,7 +391,7 @@ int ipa3_add_interrupt_handler(enum ipa_irq_type interrupt,

	/* register SUSPEND_IRQ_EN_EE_n_ADDR for L2 interrupt*/
	if ((interrupt == IPA_TX_SUSPEND_IRQ) &&
		(ipa3_ctx->ipa_hw_type == IPA_HW_v3_1)) {
		(ipa3_ctx->ipa_hw_type >= IPA_HW_v3_1)) {
		val = ~0;
		for (client_idx = 0; client_idx < IPA_CLIENT_MAX; client_idx++)
			if (IPA_CLIENT_IS_Q6_CONS(client_idx) ||
@@ -438,7 +438,7 @@ int ipa3_remove_interrupt_handler(enum ipa_irq_type interrupt)

	/* clean SUSPEND_IRQ_EN_EE_n_ADDR for L2 interrupt */
	if ((interrupt == IPA_TX_SUSPEND_IRQ) &&
		(ipa3_ctx->ipa_hw_type == IPA_HW_v3_1)) {
		(ipa3_ctx->ipa_hw_type >= IPA_HW_v3_1)) {
		ipahal_write_reg_n(IPA_SUSPEND_IRQ_EN_EE_n, ipa_ee, 0);
		IPADBG("wrote IPA_SUSPEND_IRQ_EN_EE_n reg = %d\n", 0);
	}
Loading