-+ if (millisec_interval)
-+ tahvo_enable_irq(TAHVO_INT_BATCURR);
-+ else
-+ tahvo_disable_irq(TAHVO_INT_BATCURR);
++ if (millisec_interval) {
++ if (!bm->tahvo_irq_enabled) {
++ bm->tahvo_irq_enabled = 1;
++ enable_irq(bm->tahvo_irq);
++ }
++ } else {
++ if (bm->tahvo_irq_enabled) {
++ bm->tahvo_irq_enabled = 0;
++ disable_irq_nosync(bm->tahvo_irq);
++ }
++ }