]> git.baikalelectronics.ru Git - kernel.git/commit
staging: comedi: addi_apci_1564: clarify change-of-state interrupt support
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Wed, 8 Jun 2016 18:26:38 +0000 (11:26 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 18 Jun 2016 04:02:56 +0000 (21:02 -0700)
commitb5d62473fa5ca4e573135d881003009474adb7f4
treeff9caf152201a04deebc39b837358929e7b6960d
parent35b49bd8d5253383e86ad0aa5b0819a9b3b03381
staging: comedi: addi_apci_1564: clarify change-of-state interrupt support

This board supports change-of-state interrupts on digital inputs 4 to 19
not 0 to 15.

The current code "works" but it could set inappropriate bits in the mode1
and mode2 registers that setup which channels are enabled. It also doesn't
return the status of the upper 4 channels (19 to 16).

Fix the comment and mask the mode1/mode2 values so that only the interrupt
capable channels can be enabled.

Add the SDF_LSAMPL flag to the subdevice so that 32-bit samples are used
instead of 16-bit ones. This allows returning the upper 4 channels. Use
the remaining bits in the sample to return "event" flags to the user.

The timer and counter subdevices can also generate interrupts and are a bit
hacked. They don't currently follow the comedi API and they use send_sig()
to let the task that know that the interrupt occured. The "event" flags will
be used instead when these subdevices are fixed.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/addi_apci_1564.c