Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3052bc2f authored by Ram Chandrasekar's avatar Ram Chandrasekar
Browse files

power: bcl_peripheral: Disable the interrupts earlier



Disable the current and voltage interrupts earlier in
the top half of the interrupt service routine instead
of disabling them in the bottom half.
This will prevent the interrupts from firing repeatedly
before servicing and disabling it in bottom half of the
routine.

Change-Id: I9910f85c830c1257fb0032b5ca065effa6d6f1e4
Signed-off-by: default avatarRam Chandrasekar <rkumbako@codeaurora.org>
parent 584d0f68
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -544,7 +544,6 @@ static void bcl_handle_ibat(struct work_struct *work)
		pr_err("Invalid state %d\n", perph_data->state);
		return;
	}
	disable_irq(perph_data->irq_num);
	perph_data->state = BCL_PARAM_POLLING;
	ret = perph_data->read_max(&val);
	if (ret)
@@ -570,7 +569,6 @@ static void bcl_handle_vbat(struct work_struct *work)
		pr_err("Invalid state %d\n", perph_data->state);
		return;
	}
	disable_irq(perph_data->irq_num);
	perph_data->state = BCL_PARAM_POLLING;
	ret = perph_data->read_max(&val);
	if (ret)
@@ -592,6 +590,7 @@ static irqreturn_t bcl_handle_isr(int irq, void *data)
		(struct bcl_peripheral_data *)data;

	if (perph_data->state == BCL_PARAM_MONITOR) {
		disable_irq_nosync(perph_data->irq_num);
		perph_data->state = BCL_PARAM_TRIPPED;
		queue_work(bcl_perph->bcl_isr_wq, &perph_data->isr_work);
	}