On Wed, 11 Nov 2020 11:38:07 -0500 William Breathitt Gray <vilhelm.gray@xxxxxxxxx> wrote: > 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: 106b104137fd ("counter: Add microchip TCB capture counter") > Cc: Kamel Bouhara <kamel.bouhara@xxxxxxxxxxx> > Signed-off-by: William Breathitt Gray <vilhelm.gray@xxxxxxxxx> Looks fine to me, but ideally after an ack from Kamel Thanks, Jonathan > --- > drivers/counter/microchip-tcb-capture.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/drivers/counter/microchip-tcb-capture.c b/drivers/counter/microchip-tcb-capture.c > index 039c54a78aa5..142b389fc9db 100644 > --- a/drivers/counter/microchip-tcb-capture.c > +++ b/drivers/counter/microchip-tcb-capture.c > @@ -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); > > - *action = MCHP_TC_SYNAPSE_ACTION_NONE; > - > - if (cmr & ATMEL_TC_ETRGEDG_NONE) > + switch (cmr & ATMEL_TC_ETRGEDG_BOTH) { > + default: > *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; > }