Commit 3ad53c40 authored by Spencer E. Olson's avatar Spencer E. Olson Committed by Greg Kroah-Hartman

staging: comedi: ni_pcidio: implement INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS

Adds implementation of the new INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS
instruction.  This patch also adds data for this implementation, based on
spec sheets from NI.
Signed-off-by: default avatarSpencer E. Olson <olsonse@umich.edu>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 51fd3673
...@@ -260,18 +260,22 @@ enum nidio_boardid { ...@@ -260,18 +260,22 @@ enum nidio_boardid {
struct nidio_board { struct nidio_board {
const char *name; const char *name;
unsigned int uses_firmware:1; unsigned int uses_firmware:1;
unsigned int dio_speed;
}; };
static const struct nidio_board nidio_boards[] = { static const struct nidio_board nidio_boards[] = {
[BOARD_PCIDIO_32HS] = { [BOARD_PCIDIO_32HS] = {
.name = "pci-dio-32hs", .name = "pci-dio-32hs",
.dio_speed = 50,
}, },
[BOARD_PXI6533] = { [BOARD_PXI6533] = {
.name = "pxi-6533", .name = "pxi-6533",
.dio_speed = 50,
}, },
[BOARD_PCI6534] = { [BOARD_PCI6534] = {
.name = "pci-6534", .name = "pci-6534",
.uses_firmware = 1, .uses_firmware = 1,
.dio_speed = 50,
}, },
}; };
...@@ -467,6 +471,15 @@ static int ni_pcidio_insn_config(struct comedi_device *dev, ...@@ -467,6 +471,15 @@ static int ni_pcidio_insn_config(struct comedi_device *dev,
{ {
int ret; int ret;
if (data[0] == INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS) {
const struct nidio_board *board = dev->board_ptr;
/* we don't care about actual channels */
data[1] = board->dio_speed;
data[2] = 0;
return 0;
}
ret = comedi_dio_insn_config(dev, s, insn, data, 0); ret = comedi_dio_insn_config(dev, s, insn, data, 0);
if (ret) if (ret)
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment