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

Commit f9ccf6c9 authored by Skylar Chang's avatar Skylar Chang
Browse files

msm: ipa3: fix WDI1.0 on mdmcalifornia



IPA driver should only access the rdy_comp_ring_wp_va
and rdy_ring_rp_va when WDI2.0 enabled on msmcobalt,
not on mdmcalifonia with WDI1.0

Change-Id: I1f15a39e04f6e888e2a7684526cf2fba5049fca4
Signed-off-by: default avatarSkylar Chang <chiaweic@codeaurora.org>
parent ec82f6fd
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -801,26 +801,32 @@ int ipa3_connect_wdi_pipe(struct ipa_wdi_in_params *in,
				&in->u.dl.ce_door_bell_pa);
		IPADBG("num_tx_buffers=%d\n", in->u.dl.num_tx_buffers);
	} else {
		if (ipa3_ctx->ipa_wdi2)
		if (ipa3_ctx->ipa_wdi2) {
			/* WDI2.0 feature */
			cmd.size = sizeof(*rx_2);
		else
			IPADBG("rdy_ring_rp value =%d\n",
			*in->u.ul.rdy_ring_rp_va);
			IPADBG("rx_comp_ring_wp value=%d\n",
			*in->u.ul.rdy_comp_ring_wp_va);
			ipa3_ctx->uc_ctx.rdy_ring_rp_va =
				in->u.ul.rdy_ring_rp_va;
			ipa3_ctx->uc_ctx.rdy_comp_ring_wp_va =
				in->u.ul.rdy_comp_ring_wp_va;
		} else {
			cmd.size = sizeof(*rx);
		}
		IPADBG("rx_ring_base_pa=0x%pa\n",
			&in->u.ul.rdy_ring_base_pa);
		IPADBG("rx_ring_size=%d\n",
			in->u.ul.rdy_ring_size);
		IPADBG("rx_ring_rp_pa=0x%pa\n",
			&in->u.ul.rdy_ring_rp_pa);
		IPADBG("rdy_ring_rp value =%d\n",
			*in->u.ul.rdy_ring_rp_va);
		IPADBG("rx_comp_ring_base_pa=0x%pa\n",
			&in->u.ul.rdy_comp_ring_base_pa);
		IPADBG("rx_comp_ring_size=%d\n",
			in->u.ul.rdy_comp_ring_size);
		IPADBG("rx_comp_ring_wp_pa=0x%pa\n",
			&in->u.ul.rdy_comp_ring_wp_pa);
		IPADBG("rx_comp_ring_wp value=%d\n",
			*in->u.ul.rdy_comp_ring_wp_va);
		ipa3_ctx->uc_ctx.rdy_ring_base_pa =
			in->u.ul.rdy_ring_base_pa;
		ipa3_ctx->uc_ctx.rdy_ring_rp_pa =
@@ -833,10 +839,6 @@ int ipa3_connect_wdi_pipe(struct ipa_wdi_in_params *in,
			in->u.ul.rdy_comp_ring_wp_pa;
		ipa3_ctx->uc_ctx.rdy_comp_ring_size =
			in->u.ul.rdy_comp_ring_size;
		ipa3_ctx->uc_ctx.rdy_ring_rp_va =
			in->u.ul.rdy_ring_rp_va;
		ipa3_ctx->uc_ctx.rdy_comp_ring_wp_va =
			in->u.ul.rdy_comp_ring_wp_va;
		/* check if the VA is empty */
		if (!in->u.ul.rdy_ring_rp_va && ipa3_ctx->ipa_wdi2) {
			IPAERR("rdy_ring_rp_va is empty, wdi2.0(%d)\n",