On 14/11/2020 23:48:28+0100, Alexandre Belloni wrote: > On 11/11/2020 11:38:07-0500, William Breathitt Gray 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> > Acked-by: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx> > > > --- > > 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) { BTW, this could be simply ATMEL_TC_ETRGEDG which is the mask. > > + 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; > > } > > -- > > 2.29.2 > > > > -- > Alexandre Belloni, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com -- Alexandre Belloni, Bootlin Embedded Linux and Kernel engineering https://bootlin.com