diff --git a/drivers/power/qpnp-charger.c b/drivers/power/qpnp-charger.c index ebe6380c4d61fb13ca8f67feadc43b49b6e45d78..b1b02ffc18a036e0580755e7afc211bea64fec9f 100644 --- a/drivers/power/qpnp-charger.c +++ b/drivers/power/qpnp-charger.c @@ -4488,6 +4488,8 @@ qpnp_chg_request_irqs(struct qpnp_chg_chip *chip) qpnp_chg_irq_wake_enable(&chip->usbin_valid); qpnp_chg_irq_wake_enable(&chip->chg_gone); + qpnp_chg_disable_irq(chip, &chip->usbin_valid); + qpnp_chg_disable_irq(chip, &chip->chg_gone); break; case SMBB_DC_CHGPTH_SUBTYPE: chip->dcin_valid.irq = spmi_get_irq_byname(spmi, @@ -4507,6 +4509,7 @@ qpnp_chg_request_irqs(struct qpnp_chg_chip *chip) } qpnp_chg_irq_wake_enable(&chip->dcin_valid); + qpnp_chg_disable_irq(chip, &chip->dcin_valid); break; } } @@ -5396,7 +5399,14 @@ qpnp_charger_probe(struct spmi_device *spmi) qpnp_chg_usb_chg_gone_irq_handler(chip->chg_gone.irq, chip); qpnp_chg_usb_usbin_valid_irq_handler(chip->usbin_valid.irq, chip); - qpnp_chg_dc_dcin_valid_irq_handler(chip->dcin_valid.irq, chip); + if (chip->dc_chgpth_base) + qpnp_chg_dc_dcin_valid_irq_handler(chip->dcin_valid.irq, chip); + + qpnp_chg_enable_irq(chip, &chip->chg_gone); + qpnp_chg_enable_irq(chip, &chip->usbin_valid); + if (chip->dc_chgpth_base) + qpnp_chg_enable_irq(chip, &chip->dcin_valid); + power_supply_set_present(chip->usb_psy, qpnp_chg_is_usb_chg_plugged_in(chip));