/* longer processing here; top half already acknowledged the IRQ */ mutex_lock(&m->lock); /* handle event, schedule work, update state */ mutex_unlock(&m->lock); return IRQ_HANDLED;

Avoid the mainline ath10k_sdio – it lacks proper runtime PM for this chip.

Commenting complex register-level interactions within the source.