Commit 3418bd7c authored by William Breathitt Gray's avatar William Breathitt Gray Committed by Jonathan Cameron
Browse files

counter: microchip-tcb-capture: Fix CMR value check



The ATMEL_TC_ETRGEDG_* defines are not masks but rather possible values
for CMR. This patch fixes the action_get() callback to properly check
for these values rather than mask them.

Fixes: 106b1041 ("counter: Add microchip TCB capture counter")
Signed-off-by: default avatarWilliam Breathitt Gray <vilhelm.gray@gmail.com>
Acked-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
Acked-by: default avatarKamel Bouhara <kamel.bouhara@bootlin.com>
Cc: <Stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20201114232805.253108-1-vilhelm.gray@gmail.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 0449fc4e
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -183,16 +183,20 @@ static int mchp_tc_count_action_get(struct counter_device *counter,

	regmap_read(priv->regmap, ATMEL_TC_REG(priv->channel[0], CMR), &cmr);

	switch (cmr & ATMEL_TC_ETRGEDG) {
	default:
		*action = MCHP_TC_SYNAPSE_ACTION_NONE;

	if (cmr & ATMEL_TC_ETRGEDG_NONE)
		*action = MCHP_TC_SYNAPSE_ACTION_NONE;
	else if (cmr & ATMEL_TC_ETRGEDG_RISING)
		break;
	case ATMEL_TC_ETRGEDG_RISING:
		*action = MCHP_TC_SYNAPSE_ACTION_RISING_EDGE;
	else if (cmr & ATMEL_TC_ETRGEDG_FALLING)
		break;
	case ATMEL_TC_ETRGEDG_FALLING:
		*action = MCHP_TC_SYNAPSE_ACTION_FALLING_EDGE;
	else if (cmr & ATMEL_TC_ETRGEDG_BOTH)
		break;
	case ATMEL_TC_ETRGEDG_BOTH:
		*action = MCHP_TC_SYNAPSE_ACTION_BOTH_EDGE;
		break;
	}

	return 0;
}