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

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

Merge "msm: ipa: Fix to QMI initialization and polling state"

parents 9001b0c3 af648a58
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -815,6 +815,11 @@ static void ipa_rx_switch_to_intr_mode(struct ipa_sys_context *sys)
{
	int ret;

	if (!sys->ep || !sys->ep->valid) {
		IPAERR("EP Not Valid, no need to cleanup.\n");
		return;
	}

	if (!atomic_read(&sys->curr_polling_state)) {
		IPAERR("already in intr mode\n");
		goto fail;
@@ -1427,8 +1432,11 @@ int ipa2_teardown_sys_pipe(u32 clnt_hdl)
		} while (1);
	}

	if (IPA_CLIENT_IS_CONS(ep->client))
	if (IPA_CLIENT_IS_CONS(ep->client)) {
		cancel_delayed_work_sync(&ep->sys->replenish_rx_work);
		cancel_delayed_work_sync(&ep->sys->switch_to_intr_work);
	}

	flush_workqueue(ep->sys->wq);
	sps_disconnect(ep->ep_hdl);
	dma_free_coherent(ipa_ctx->pdev, ep->connect.desc.size,
+2 −5
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ static struct workqueue_struct *ipa_clnt_req_workqueue;
static struct workqueue_struct *ipa_clnt_resp_workqueue;
static void *curr_conn;
static bool qmi_modem_init_fin, qmi_indication_fin;
static struct work_struct ipa_qmi_service_init_work;
static uint32_t ipa_wan_platform;
struct ipa_qmi_context *ipa_qmi_ctx;
static bool first_time_handshake;
@@ -871,7 +870,7 @@ static struct notifier_block ipa_q6_clnt_nb = {
	.notifier_call = ipa_q6_clnt_svc_event_notify,
};

static void ipa_qmi_service_init_worker(struct work_struct *work)
static void ipa_qmi_service_init_worker(void)
{
	int rc;

@@ -968,9 +967,7 @@ int ipa_qmi_service_init(uint32_t wan_platform_type)
	atomic_set(&workqueues_stopped, 0);

	if (0 == atomic_read(&ipa_qmi_initialized)) {
		INIT_WORK(&ipa_qmi_service_init_work,
			ipa_qmi_service_init_worker);
		schedule_work(&ipa_qmi_service_init_work);
		ipa_qmi_service_init_worker();
	}
	return 0;
}