platform/x86: intel_crystal_cove_charger: Fix IRQ masking / unmasking
authorHans de Goede <hdegoede@redhat.com>
Tue, 11 Jan 2022 23:23:09 +0000 (00:23 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 24 Jan 2022 09:41:46 +0000 (10:41 +0100)
commita29012ab23163f78087a7e77719f05d201088700
tree415ab246e560ad03316ddcb230c7102fc5daba4b
parentb288420e773f5a9db77115b9cc3767a8ada16648
platform/x86: intel_crystal_cove_charger: Fix IRQ masking / unmasking

The driver as originally submitted accidentally relied on Android having
run before and Android having unmasked the 2nd level IRQ-mask for the
charger IRQ. This worked since these are PMIC registers which are only
reset when the battery is fully drained or disconnected.

Fix the charger IRQ no longer working after loss of battery power by
properly setting the 2nd level IRQ-mask for the charger IRQ.

Note this removes the need to enable/disable our parent IRQ which just
sets the mask bit in the 1st level IRQ-mask register, setting one of
the 2 level masks is enough to stop the IRQ from getting reported.

Fixes: 761db353d9e2 ("platform/x86: Add intel_crystal_cove_charger driver")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220111232309.377642-1-hdegoede@redhat.com
drivers/platform/x86/intel/crystal_cove_charger.c