counter: 104-quad-8: Fix Synapse action reported for Index signals
authorWilliam Breathitt Gray <william.gray@linaro.org>
Thu, 16 Mar 2023 20:34:26 +0000 (16:34 -0400)
committerWilliam Breathitt Gray <william.gray@linaro.org>
Sat, 18 Mar 2023 13:26:40 +0000 (09:26 -0400)
Signal 16 and higher represent the device's Index lines. The
priv->preset_enable array holds the device configuration for these Index
lines. The preset_enable configuration is active low on the device, so
invert the conditional check in quad8_action_read() to properly handle
the logical state of preset_enable.

Fixes: f1d8a071d45b ("counter: 104-quad-8: Add Generic Counter interface support")
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20230316203426.224745-1-william.gray@linaro.org/
Signed-off-by: William Breathitt Gray <william.gray@linaro.org>
drivers/counter/104-quad-8.c

index d59e4f34a680c5e38062e18edd15ef17394ef023..d9cb937665cfcf657a80bbb150b2b04858599c8c 100644 (file)
@@ -368,7 +368,7 @@ static int quad8_action_read(struct counter_device *counter,
 
        /* Handle Index signals */
        if (synapse->signal->id >= 16) {
-               if (priv->preset_enable[count->id])
+               if (!priv->preset_enable[count->id])
                        *action = COUNTER_SYNAPSE_ACTION_RISING_EDGE;
                else
                        *action = COUNTER_SYNAPSE_ACTION_NONE;