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

Commit 6c94ab89 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa3: Fix to avoid deadlock during USB connect"

parents 65cecae3 e412269b
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -1714,6 +1714,7 @@ static int ipa_mpm_mhi_probe_cb(struct mhi_device *mhi_dev,
	struct ipa3_ep_context *ep;
	u32 evt_ring_db_addr_low, evt_ring_db_addr_high;
	u32 wp_addr;
	int pipe_idx;

	IPA_MPM_FUNC_ENTRY();

@@ -2055,9 +2056,9 @@ static int ipa_mpm_mhi_probe_cb(struct mhi_device *mhi_dev,
			goto fail_start_channel;
		}

		/* Lyft the delay for rmnet USB prod pipe */
		ipa3_set_reset_client_prod_pipe_delay(false,
			IPA_CLIENT_USB_PROD);
		/* Lift the delay for rmnet USB prod pipe */
		pipe_idx = ipa3_get_ep_mapping(IPA_CLIENT_USB_PROD);
		ipa3_xdci_ep_delay_rm(pipe_idx);
		break;
	default:
		IPA_MPM_DBG("No op for UL channel, in teth state = %d",
@@ -2267,6 +2268,7 @@ int ipa_mpm_mhip_xdci_pipe_enable(enum ipa_usb_teth_prot xdci_teth_prot)
	enum ipa_mpm_mhip_client_type mhip_client;
	enum mhip_status_type status;
	int ret = 0;
	int pipe_idx;

	if (ipa_mpm_ctx == NULL) {
		IPA_MPM_ERR("MPM not platform probed yet, returning ..\n");
@@ -2323,9 +2325,11 @@ int ipa_mpm_mhip_xdci_pipe_enable(enum ipa_usb_teth_prot xdci_teth_prot)
	case MHIP_STATUS_NO_OP:
		ipa_mpm_change_teth_state(probe_id, IPA_MPM_TETH_CONNECTED);
		ipa_mpm_start_stop_mhip_data_path(probe_id, START);

		pipe_idx = ipa3_get_ep_mapping(IPA_CLIENT_USB_PROD);

		/* Lift the delay for rmnet USB prod pipe */
		ipa3_set_reset_client_prod_pipe_delay(false,
			IPA_CLIENT_USB_PROD);
		ipa3_xdci_ep_delay_rm(pipe_idx);
		if (status == MHIP_STATUS_NO_OP) {
			/* Channels already have been started,
			 * we can devote for pcie clocks