Battery drains 15% per hour in standby. Cause: A misconfigured interrupt mask in the driver causes the same GPIO interrupt to fire hundreds of times per second. Fix: Audit the coolsand_irq_unmask() function to ensure edge-triggered interrupts are cleared before re-enabling.
/* Save core registers */ __raw_writel(0xDEADBEEF, COOLSAND_PM_BASE + PM_SLEEP_CTRL); /* Enter WFI (Wait For Interrupt) */ asm volatile ("wfi"); return 0;