staging: comedi: ni_6527: reset edge detection registers
authorIan Abbott <abbotti@mev.co.uk>
Mon, 21 Jul 2014 16:29:06 +0000 (17:29 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Jul 2014 23:07:05 +0000 (16:07 -0700)
`ni6527_reset()` is called to reset various registers when the device is
being initialized or deinitialized.  The edge detection interrupt is
disabled by this function, but the rising and falling edge detection
registers are currently left alone.  Call `ni6527_set_edge_detection()`
to set them to a known, disabled state.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/ni_6527.c

index 57d8d4c30459cec646adf1219ffaefa3e7bf05ac..8ea93b5845265d2a3fa8217568f6c165caa89d7e 100644 (file)
@@ -393,6 +393,9 @@ static void ni6527_reset(struct comedi_device *dev)
        /* disable deglitch filters on all channels */
        ni6527_set_filter_enable(dev, 0);
 
+       /* disable edge detection */
+       ni6527_set_edge_detection(dev, 0xffffffff, 0, 0);
+
        writeb(NI6527_CLR_IRQS | NI6527_CLR_RESET_FILT,
               mmio + NI6527_CLR_REG);
        writeb(NI6527_CTRL_DISABLE_IRQS, mmio + NI6527_CTRL_REG);