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

Commit 4043053f authored by Skylar Chang's avatar Skylar Chang Committed by Mohammed Javid
Browse files

msm: ipa3: add offline charging support



In offline charging mode, modem is not loaded so the proxy
IPA clock vote added by IPA driver on behalf of modem is
never released and this prolongs the charge time. Move the
proxy vote to IPA3_POST_INIT before rmnet_ipa driver init
completes.

Change-Id: I271c8e6916d0c3068f720ae81b67f0fc5c198b6f
Acked-by: default avatarAshok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: default avatarSkylar Chang <chiaweic@codeaurora.org>
parent 3d139965
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -4394,6 +4394,8 @@ static int ipa3_post_init(const struct ipa3_plat_drv_res *resource_p,
	/* Prevent consequent calls from trying to load the FW again. */
	if (ipa3_ctx->ipa_initialization_complete)
		return 0;
	/* move proxy vote for modem on ipa3_post_init */
	IPA_ACTIVE_CLIENTS_INC_SPECIAL("PROXY_CLK_VOTE");

	/*
	 * indication whether working in MHI config or non MHI config is given
@@ -4858,7 +4860,6 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
	int result = 0;
	int i;
	struct ipa3_rt_tbl_set *rset;
	struct ipa_active_client_logging_info log_info;

	IPADBG("IPA Driver initialization started\n");

@@ -5049,8 +5050,7 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
	}

	mutex_init(&ipa3_ctx->ipa3_active_clients.mutex);
	IPA_ACTIVE_CLIENTS_PREP_SPECIAL(log_info, "PROXY_CLK_VOTE");
	ipa3_active_clients_log_inc(&log_info, false);
	/* move proxy vote for modem to ipa3_post_init() */
	atomic_set(&ipa3_ctx->ipa3_active_clients.cnt, 1);

	/* Create workqueues for power management */
@@ -5296,6 +5296,8 @@ static int ipa3_pre_init(const struct ipa3_plat_drv_res *resource_p,
	IPADBG("ipa cdev added successful. major:%d minor:%d\n",
			MAJOR(ipa3_ctx->dev_num),
			MINOR(ipa3_ctx->dev_num));
	/* proxy vote for modem is added in ipa3_post_init() phase */
	IPA_ACTIVE_CLIENTS_DEC_SIMPLE();
	return 0;

fail_cdev_add: