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

Commit c5c5637e authored by Fenglin Wu's avatar Fenglin Wu
Browse files

power: qpnp-smbcharger: optimize shutdown() hook



Fake insertion/removal is used in shutdown() hook which requries
usbin_uv/src_det IRQs to be enabled to complete the completion.
Disable these two IRQs after the fake insertion/removal calling.

CRs-Fixed: 1079573
Change-Id: Ifca70382972a562a3571c363e8e3e74a2143e86b
Signed-off-by: default avatarFenglin Wu <fenglinw@codeaurora.org>
parent a877e0f9
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -8392,11 +8392,9 @@ static void smbchg_shutdown(struct spmi_device *spmi)
	disable_irq(chip->otg_oc_irq);
	disable_irq(chip->otg_oc_irq);
	disable_irq(chip->power_ok_irq);
	disable_irq(chip->power_ok_irq);
	disable_irq(chip->recharge_irq);
	disable_irq(chip->recharge_irq);
	disable_irq(chip->src_detect_irq);
	disable_irq(chip->taper_irq);
	disable_irq(chip->taper_irq);
	disable_irq(chip->usbid_change_irq);
	disable_irq(chip->usbid_change_irq);
	disable_irq(chip->usbin_ov_irq);
	disable_irq(chip->usbin_ov_irq);
	disable_irq(chip->usbin_uv_irq);
	disable_irq(chip->vbat_low_irq);
	disable_irq(chip->vbat_low_irq);
	disable_irq(chip->wdog_timeout_irq);
	disable_irq(chip->wdog_timeout_irq);


@@ -8454,6 +8452,9 @@ static void smbchg_shutdown(struct spmi_device *spmi)
	if (rc < 0)
	if (rc < 0)
		pr_err("Couldn't fake insertion rc=%d\n", rc);
		pr_err("Couldn't fake insertion rc=%d\n", rc);


	disable_irq(chip->src_detect_irq);
	disable_irq(chip->usbin_uv_irq);

	pr_smb(PR_MISC, "Wait 1S to settle\n");
	pr_smb(PR_MISC, "Wait 1S to settle\n");
	msleep(1000);
	msleep(1000);
	chip->hvdcp_3_det_ignore_uv = false;
	chip->hvdcp_3_det_ignore_uv = false;