diff options
Diffstat (limited to 'drivers/staging/comedi/drivers/ni_660x.c')
-rw-r--r-- | drivers/staging/comedi/drivers/ni_660x.c | 293 |
1 files changed, 168 insertions, 125 deletions
diff --git a/drivers/staging/comedi/drivers/ni_660x.c b/drivers/staging/comedi/drivers/ni_660x.c index 11e9b04118058..404d3c516ed18 100644 --- a/drivers/staging/comedi/drivers/ni_660x.c +++ b/drivers/staging/comedi/drivers/ni_660x.c @@ -201,7 +201,6 @@ struct NI_660xRegisterData { enum ni_660x_register_width size; /* 1 byte, 2 bytes, or 4 bytes */ }; - static const struct NI_660xRegisterData registerData[NumRegisters] = { {"G0 Interrupt Acknowledge", 0x004, NI_660x_WRITE, DATA_2B}, {"G0 Status Register", 0x004, NI_660x_READ, DATA_2B}, @@ -316,21 +315,25 @@ static inline unsigned ioconfig_bitshift(unsigned pfi_channel) else return 8; } + static inline unsigned pfi_output_select_mask(unsigned pfi_channel) { return 0x3 << ioconfig_bitshift(pfi_channel); } + static inline unsigned pfi_output_select_bits(unsigned pfi_channel, - unsigned output_select) + unsigned output_select) { return (output_select & 0x3) << ioconfig_bitshift(pfi_channel); } + static inline unsigned pfi_input_select_mask(unsigned pfi_channel) { return 0x7 << (4 + ioconfig_bitshift(pfi_channel)); } + static inline unsigned pfi_input_select_bits(unsigned pfi_channel, - unsigned input_select) + unsigned input_select) { return (input_select & 0x7) << (4 + ioconfig_bitshift(pfi_channel)); } @@ -341,6 +344,7 @@ static inline unsigned dma_select_mask(unsigned dma_channel) BUG_ON(dma_channel >= MAX_DMA_CHANNEL); return 0x1f << (8 * dma_channel); } + enum dma_selection { dma_selection_none = 0x1f, }; @@ -349,11 +353,13 @@ static inline unsigned dma_selection_counter(unsigned counter_index) BUG_ON(counter_index >= counters_per_chip); return counter_index; } + static inline unsigned dma_select_bits(unsigned dma_channel, unsigned selection) { BUG_ON(dma_channel >= MAX_DMA_CHANNEL); return (selection << (8 * dma_channel)) & dma_select_mask(dma_channel); } + static inline unsigned dma_reset_bit(unsigned dma_channel) { BUG_ON(dma_channel >= MAX_DMA_CHANNEL); @@ -388,36 +394,37 @@ struct ni_660x_board { static const struct ni_660x_board ni_660x_boards[] = { { - .dev_id = 0x2c60, - .name = "PCI-6601", - .n_chips = 1, - }, + .dev_id = 0x2c60, + .name = "PCI-6601", + .n_chips = 1, + }, { - .dev_id = 0x1310, - .name = "PCI-6602", - .n_chips = 2, - }, + .dev_id = 0x1310, + .name = "PCI-6602", + .n_chips = 2, + }, { - .dev_id = 0x1360, - .name = "PXI-6602", - .n_chips = 2, - }, + .dev_id = 0x1360, + .name = "PXI-6602", + .n_chips = 2, + }, { - .dev_id = 0x2cc0, - .name = "PXI-6608", - .n_chips = 2, - }, + .dev_id = 0x2cc0, + .name = "PXI-6608", + .n_chips = 2, + }, }; #define NI_660X_MAX_NUM_CHIPS 2 #define NI_660X_MAX_NUM_COUNTERS (NI_660X_MAX_NUM_CHIPS * counters_per_chip) static DEFINE_PCI_DEVICE_TABLE(ni_660x_pci_table) = { - {PCI_VENDOR_ID_NATINST, 0x2c60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, - {PCI_VENDOR_ID_NATINST, 0x1310, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, - {PCI_VENDOR_ID_NATINST, 0x1360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, - {PCI_VENDOR_ID_NATINST, 0x2cc0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, - {0} + { + PCI_VENDOR_ID_NATINST, 0x2c60, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, { + PCI_VENDOR_ID_NATINST, 0x1310, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, { + PCI_VENDOR_ID_NATINST, 0x1360, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, { + PCI_VENDOR_ID_NATINST, 0x2cc0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, { + 0} }; MODULE_DEVICE_TABLE(pci, ni_660x_pci_table); @@ -436,24 +443,26 @@ struct ni_660x_private { unsigned short pfi_output_selects[NUM_PFI_CHANNELS]; }; -static inline struct ni_660x_private *private(struct comedi_device * dev) +static inline struct ni_660x_private *private(struct comedi_device *dev) { return dev->private; } /* initialized in ni_660x_find_device() */ -static inline const struct ni_660x_board *board(struct comedi_device * dev) +static inline const struct ni_660x_board *board(struct comedi_device *dev) { return dev->board_ptr; } -#define n_ni_660x_boards (sizeof(ni_660x_boards)/sizeof(ni_660x_boards[0])) +#define n_ni_660x_boards ARRAY_SIZE(ni_660x_boards) -static int ni_660x_attach(struct comedi_device *dev, struct comedi_devconfig *it); +static int ni_660x_attach(struct comedi_device *dev, + struct comedi_devconfig *it); static int ni_660x_detach(struct comedi_device *dev); static void init_tio_chip(struct comedi_device *dev, int chipset); -static void ni_660x_select_pfi_output(struct comedi_device *dev, unsigned pfi_channel, - unsigned output_select); +static void ni_660x_select_pfi_output(struct comedi_device *dev, + unsigned pfi_channel, + unsigned output_select); static struct comedi_driver driver_ni_660x = { .driver_name = "ni_660x", @@ -466,21 +475,28 @@ COMEDI_PCI_INITCLEANUP(driver_ni_660x, ni_660x_pci_table); static int ni_660x_find_device(struct comedi_device *dev, int bus, int slot); static int ni_660x_set_pfi_routing(struct comedi_device *dev, unsigned chan, - unsigned source); + unsigned source); /* Possible instructions for a GPCT */ static int ni_660x_GPCT_rinsn(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data); + struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data); static int ni_660x_GPCT_insn_config(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data); + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data); static int ni_660x_GPCT_winsn(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data); + struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data); /* Possible instructions for Digital IO */ static int ni_660x_dio_insn_config(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data); + struct comedi_subdevice *s, + struct comedi_insn *insn, + unsigned int *data); static int ni_660x_dio_insn_bits(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data); + struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data); static inline unsigned ni_660x_num_counters(struct comedi_device *dev) { @@ -697,7 +713,7 @@ static enum NI_660x_Register ni_gpct_to_660x_register(enum ni_gpct_register reg) break; default: printk("%s: unhandled register 0x%x in switch.\n", - __func__, reg); + __func__, reg); BUG(); return 0; break; @@ -706,11 +722,12 @@ static enum NI_660x_Register ni_gpct_to_660x_register(enum ni_gpct_register reg) } static inline void ni_660x_write_register(struct comedi_device *dev, - unsigned chip_index, unsigned bits, enum NI_660x_Register reg) + unsigned chip_index, unsigned bits, + enum NI_660x_Register reg) { void *const write_address = - private(dev)->mite->daq_io_addr + GPCT_OFFSET[chip_index] + - registerData[reg].offset; + private(dev)->mite->daq_io_addr + GPCT_OFFSET[chip_index] + + registerData[reg].offset; switch (registerData[reg].size) { case DATA_2B: @@ -721,18 +738,19 @@ static inline void ni_660x_write_register(struct comedi_device *dev, break; default: printk("%s: %s: bug! unhandled case (reg=0x%x) in switch.\n", - __FILE__, __func__, reg); + __FILE__, __func__, reg); BUG(); break; } } static inline unsigned ni_660x_read_register(struct comedi_device *dev, - unsigned chip_index, enum NI_660x_Register reg) + unsigned chip_index, + enum NI_660x_Register reg) { void *const read_address = - private(dev)->mite->daq_io_addr + GPCT_OFFSET[chip_index] + - registerData[reg].offset; + private(dev)->mite->daq_io_addr + GPCT_OFFSET[chip_index] + + registerData[reg].offset; switch (registerData[reg].size) { case DATA_2B: @@ -743,7 +761,7 @@ static inline unsigned ni_660x_read_register(struct comedi_device *dev, break; default: printk("%s: %s: bug! unhandled case (reg=0x%x) in switch.\n", - __FILE__, __func__, reg); + __FILE__, __func__, reg); BUG(); break; } @@ -751,65 +769,72 @@ static inline unsigned ni_660x_read_register(struct comedi_device *dev, } static void ni_gpct_write_register(struct ni_gpct *counter, unsigned bits, - enum ni_gpct_register reg) + enum ni_gpct_register reg) { struct comedi_device *dev = counter->counter_dev->dev; enum NI_660x_Register ni_660x_register = ni_gpct_to_660x_register(reg); ni_660x_write_register(dev, counter->chip_index, bits, - ni_660x_register); + ni_660x_register); } static unsigned ni_gpct_read_register(struct ni_gpct *counter, - enum ni_gpct_register reg) + enum ni_gpct_register reg) { struct comedi_device *dev = counter->counter_dev->dev; enum NI_660x_Register ni_660x_register = ni_gpct_to_660x_register(reg); return ni_660x_read_register(dev, counter->chip_index, - ni_660x_register); + ni_660x_register); } -static inline struct mite_dma_descriptor_ring *mite_ring(struct ni_660x_private * priv, - struct ni_gpct *counter) +static inline struct mite_dma_descriptor_ring *mite_ring(struct ni_660x_private + *priv, + struct ni_gpct + *counter) { return priv->mite_rings[counter->chip_index][counter->counter_index]; } static inline void ni_660x_set_dma_channel(struct comedi_device *dev, - unsigned mite_channel, struct ni_gpct *counter) + unsigned mite_channel, + struct ni_gpct *counter) { unsigned long flags; spin_lock_irqsave(&private(dev)->soft_reg_copy_lock, flags); private(dev)->dma_configuration_soft_copies[counter->chip_index] &= - ~dma_select_mask(mite_channel); + ~dma_select_mask(mite_channel); private(dev)->dma_configuration_soft_copies[counter->chip_index] |= - dma_select_bits(mite_channel, - dma_selection_counter(counter->counter_index)); + dma_select_bits(mite_channel, + dma_selection_counter(counter->counter_index)); ni_660x_write_register(dev, counter->chip_index, - private(dev)->dma_configuration_soft_copies[counter-> - chip_index] | dma_reset_bit(mite_channel), - DMAConfigRegister); + private(dev)-> + dma_configuration_soft_copies + [counter->chip_index] | + dma_reset_bit(mite_channel), DMAConfigRegister); mmiowb(); spin_unlock_irqrestore(&private(dev)->soft_reg_copy_lock, flags); } static inline void ni_660x_unset_dma_channel(struct comedi_device *dev, - unsigned mite_channel, struct ni_gpct *counter) + unsigned mite_channel, + struct ni_gpct *counter) { unsigned long flags; spin_lock_irqsave(&private(dev)->soft_reg_copy_lock, flags); private(dev)->dma_configuration_soft_copies[counter->chip_index] &= - ~dma_select_mask(mite_channel); + ~dma_select_mask(mite_channel); private(dev)->dma_configuration_soft_copies[counter->chip_index] |= - dma_select_bits(mite_channel, dma_selection_none); + dma_select_bits(mite_channel, dma_selection_none); ni_660x_write_register(dev, counter->chip_index, - private(dev)->dma_configuration_soft_copies[counter-> - chip_index], DMAConfigRegister); + private(dev)-> + dma_configuration_soft_copies + [counter->chip_index], DMAConfigRegister); mmiowb(); spin_unlock_irqrestore(&private(dev)->soft_reg_copy_lock, flags); } static int ni_660x_request_mite_channel(struct comedi_device *dev, - struct ni_gpct *counter, enum comedi_io_direction direction) + struct ni_gpct *counter, + enum comedi_io_direction direction) { unsigned long flags; struct mite_channel *mite_chan; @@ -817,13 +842,12 @@ static int ni_660x_request_mite_channel(struct comedi_device *dev, spin_lock_irqsave(&private(dev)->mite_channel_lock, flags); BUG_ON(counter->mite_chan); mite_chan = - mite_request_channel(private(dev)->mite, mite_ring(private(dev), - counter)); + mite_request_channel(private(dev)->mite, mite_ring(private(dev), + counter)); if (mite_chan == NULL) { - spin_unlock_irqrestore(&private(dev)->mite_channel_lock, - flags); + spin_unlock_irqrestore(&private(dev)->mite_channel_lock, flags); comedi_error(dev, - "failed to reserve mite dma channel for counter."); + "failed to reserve mite dma channel for counter."); return -EBUSY; } mite_chan->dir = direction; @@ -833,7 +857,8 @@ static int ni_660x_request_mite_channel(struct comedi_device *dev, return 0; } -void ni_660x_release_mite_channel(struct comedi_device *dev, struct ni_gpct *counter) +void ni_660x_release_mite_channel(struct comedi_device *dev, + struct ni_gpct *counter) { unsigned long flags; @@ -858,7 +883,7 @@ static int ni_660x_cmd(struct comedi_device *dev, struct comedi_subdevice *s) retval = ni_660x_request_mite_channel(dev, counter, COMEDI_INPUT); if (retval) { comedi_error(dev, - "no dma channel available for use by counter"); + "no dma channel available for use by counter"); return retval; } ni_tio_acknowledge_and_confirm(counter, NULL, NULL, NULL, NULL); @@ -867,8 +892,8 @@ static int ni_660x_cmd(struct comedi_device *dev, struct comedi_subdevice *s) return retval; } -static int ni_660x_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_cmd *cmd) +static int ni_660x_cmdtest(struct comedi_device *dev, + struct comedi_subdevice *s, struct comedi_cmd *cmd) { struct ni_gpct *counter = subdev_to_counter(s); @@ -893,19 +918,18 @@ static void set_tio_counterswap(struct comedi_device *dev, int chipset) */ if (chipset) ni_660x_write_register(dev, chipset, CounterSwap, - ClockConfigRegister); + ClockConfigRegister); else ni_660x_write_register(dev, chipset, 0, ClockConfigRegister); } static void ni_660x_handle_gpct_interrupt(struct comedi_device *dev, - struct comedi_subdevice *s) + struct comedi_subdevice *s) { ni_tio_handle_interrupt(subdev_to_counter(s), s); if (s->async->events) { - if (s->async-> - events & (COMEDI_CB_EOA | COMEDI_CB_ERROR | - COMEDI_CB_OVERFLOW)) { + if (s->async->events & (COMEDI_CB_EOA | COMEDI_CB_ERROR | + COMEDI_CB_OVERFLOW)) { ni_660x_cancel(dev, s); } comedi_event(dev, s); @@ -943,13 +967,14 @@ static int ni_660x_input_poll(struct comedi_device *dev, return comedi_buf_read_n_available(s->async); } -static int ni_660x_buf_change(struct comedi_device *dev, struct comedi_subdevice *s, - unsigned long new_size) +static int ni_660x_buf_change(struct comedi_device *dev, + struct comedi_subdevice *s, + unsigned long new_size) { int ret; ret = mite_buf_change(mite_ring(private(dev), subdev_to_counter(s)), - s->async); + s->async); if (ret < 0) return ret; @@ -982,7 +1007,7 @@ static int ni_660x_alloc_mite_rings(struct comedi_device *dev) for (i = 0; i < board(dev)->n_chips; ++i) { for (j = 0; j < counters_per_chip; ++j) { private(dev)->mite_rings[i][j] = - mite_alloc_ring(private(dev)->mite); + mite_alloc_ring(private(dev)->mite); if (private(dev)->mite_rings[i][j] == NULL) { return -ENOMEM; } @@ -1003,7 +1028,8 @@ static void ni_660x_free_mite_rings(struct comedi_device *dev) } } -static int ni_660x_attach(struct comedi_device *dev, struct comedi_devconfig *it) +static int ni_660x_attach(struct comedi_device *dev, + struct comedi_devconfig *it) { struct comedi_subdevice *s; int ret; @@ -1056,8 +1082,11 @@ static int ni_660x_attach(struct comedi_device *dev, struct comedi_devconfig *it ni_660x_write_register(dev, 0, 0, STCDIOControl); private(dev)->counter_dev = ni_gpct_device_construct(dev, - &ni_gpct_write_register, &ni_gpct_read_register, - ni_gpct_variant_660x, ni_660x_num_counters(dev)); + &ni_gpct_write_register, + &ni_gpct_read_register, + ni_gpct_variant_660x, + ni_660x_num_counters + (dev)); if (private(dev)->counter_dev == NULL) return -ENOMEM; for (i = 0; i < NI_660X_MAX_NUM_COUNTERS; ++i) { @@ -1065,8 +1094,8 @@ static int ni_660x_attach(struct comedi_device *dev, struct comedi_devconfig *it if (i < ni_660x_num_counters(dev)) { s->type = COMEDI_SUBD_COUNTER; s->subdev_flags = - SDF_READABLE | SDF_WRITABLE | SDF_LSAMPL | - SDF_CMD_READ /* | SDF_CMD_WRITE */ ; + SDF_READABLE | SDF_WRITABLE | SDF_LSAMPL | + SDF_CMD_READ /* | SDF_CMD_WRITE */ ; s->n_chan = 3; s->maxdata = 0xffffffff; s->insn_read = ni_660x_GPCT_rinsn; @@ -1082,9 +1111,9 @@ static int ni_660x_attach(struct comedi_device *dev, struct comedi_devconfig *it s->private = &private(dev)->counter_dev->counters[i]; private(dev)->counter_dev->counters[i].chip_index = - i / counters_per_chip; + i / counters_per_chip; private(dev)->counter_dev->counters[i].counter_index = - i % counters_per_chip; + i % counters_per_chip; } else { s->type = COMEDI_SUBD_UNUSED; } @@ -1100,7 +1129,7 @@ static int ni_660x_attach(struct comedi_device *dev, struct comedi_devconfig *it ni_660x_set_pfi_routing(dev, i, pfi_output_select_do); else ni_660x_set_pfi_routing(dev, i, - pfi_output_select_counter); + pfi_output_select_counter); ni_660x_select_pfi_output(dev, i, pfi_output_select_high_Z); } /* to be safe, set counterswap bits on tio chips after all the counter @@ -1119,7 +1148,7 @@ static int ni_660x_attach(struct comedi_device *dev, struct comedi_devconfig *it if (board(dev)->n_chips > 1) global_interrupt_config_bits |= Cascade_Int_Enable_Bit; ni_660x_write_register(dev, 0, global_interrupt_config_bits, - GlobalInterruptConfigRegister); + GlobalInterruptConfigRegister); printk("attached\n"); return 0; } @@ -1145,7 +1174,7 @@ static int ni_660x_detach(struct comedi_device *dev) static int ni_660x_GPCT_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) + struct comedi_insn *insn, unsigned int *data) { return ni_tio_rinsn(subdev_to_counter(s), insn, data); } @@ -1158,27 +1187,27 @@ static void init_tio_chip(struct comedi_device *dev, int chipset) private(dev)->dma_configuration_soft_copies[chipset] = 0; for (i = 0; i < MAX_DMA_CHANNEL; ++i) { private(dev)->dma_configuration_soft_copies[chipset] |= - dma_select_bits(i, - dma_selection_none) & dma_select_mask(i); + dma_select_bits(i, dma_selection_none) & dma_select_mask(i); } ni_660x_write_register(dev, chipset, - private(dev)->dma_configuration_soft_copies[chipset], - DMAConfigRegister); - for (i = 0; i < NUM_PFI_CHANNELS; ++i) - { + private(dev)-> + dma_configuration_soft_copies[chipset], + DMAConfigRegister); + for (i = 0; i < NUM_PFI_CHANNELS; ++i) { ni_660x_write_register(dev, chipset, 0, IOConfigReg(i)); } } static int ni_660x_GPCT_insn_config(struct comedi_device *dev, struct comedi_subdevice *s, - struct comedi_insn *insn, unsigned int *data) + struct comedi_insn *insn, unsigned int *data) { return ni_tio_insn_config(subdev_to_counter(s), insn, data); } static int ni_660x_GPCT_winsn(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) + struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data) { return ni_tio_winsn(subdev_to_counter(s), insn, data); } @@ -1193,7 +1222,7 @@ static int ni_660x_find_device(struct comedi_device *dev, int bus, int slot) continue; if (bus || slot) { if (bus != mite->pcidev->bus->number || - slot != PCI_SLOT(mite->pcidev->devfn)) + slot != PCI_SLOT(mite->pcidev->devfn)) continue; } @@ -1211,7 +1240,8 @@ static int ni_660x_find_device(struct comedi_device *dev, int bus, int slot) } static int ni_660x_dio_insn_bits(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) + struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data) { unsigned base_bitfield_channel = CR_CHAN(insn->chanspec); @@ -1225,13 +1255,14 @@ static int ni_660x_dio_insn_bits(struct comedi_device *dev, /* on return, data[1] contains the value of the digital * input and output lines. */ data[1] = - (ni_660x_read_register(dev, 0, - DIO32Input) >> base_bitfield_channel); + (ni_660x_read_register(dev, 0, + DIO32Input) >> base_bitfield_channel); return 2; } -static void ni_660x_select_pfi_output(struct comedi_device *dev, unsigned pfi_channel, - unsigned output_select) +static void ni_660x_select_pfi_output(struct comedi_device *dev, + unsigned pfi_channel, + unsigned output_select) { static const unsigned counter_4_7_first_pfi = 8; static const unsigned counter_4_7_last_pfi = 23; @@ -1240,33 +1271,41 @@ static void ni_660x_select_pfi_output(struct comedi_device *dev, unsigned pfi_ch unsigned active_bits; unsigned idle_bits; - if (board (dev)->n_chips > 1) { + if (board(dev)->n_chips > 1) { if (output_select == pfi_output_select_counter && - pfi_channel >= counter_4_7_first_pfi && - pfi_channel <= counter_4_7_last_pfi) { + pfi_channel >= counter_4_7_first_pfi && + pfi_channel <= counter_4_7_last_pfi) { active_chipset = 1; idle_chipset = 0; - }else { + } else { active_chipset = 0; idle_chipset = 1; } } if (idle_chipset != active_chipset) { - idle_bits = ni_660x_read_register(dev, idle_chipset, IOConfigReg(pfi_channel)); + idle_bits = + ni_660x_read_register(dev, idle_chipset, + IOConfigReg(pfi_channel)); idle_bits &= ~pfi_output_select_mask(pfi_channel); - idle_bits |= pfi_output_select_bits(pfi_channel, pfi_output_select_high_Z); - ni_660x_write_register(dev, idle_chipset, idle_bits, IOConfigReg(pfi_channel)); + idle_bits |= + pfi_output_select_bits(pfi_channel, + pfi_output_select_high_Z); + ni_660x_write_register(dev, idle_chipset, idle_bits, + IOConfigReg(pfi_channel)); } - active_bits = ni_660x_read_register(dev, active_chipset, IOConfigReg(pfi_channel)); + active_bits = + ni_660x_read_register(dev, active_chipset, + IOConfigReg(pfi_channel)); active_bits &= ~pfi_output_select_mask(pfi_channel); active_bits |= pfi_output_select_bits(pfi_channel, output_select); - ni_660x_write_register(dev, active_chipset, active_bits, IOConfigReg(pfi_channel)); + ni_660x_write_register(dev, active_chipset, active_bits, + IOConfigReg(pfi_channel)); } static int ni_660x_set_pfi_routing(struct comedi_device *dev, unsigned chan, - unsigned source) + unsigned source) { if (source > num_pfi_output_selects) return -EINVAL; @@ -1284,18 +1323,21 @@ static int ni_660x_set_pfi_routing(struct comedi_device *dev, unsigned chan, private(dev)->pfi_output_selects[chan] = source; if (private(dev)->pfi_direction_bits & (((uint64_t) 1) << chan)) ni_660x_select_pfi_output(dev, chan, - private(dev)->pfi_output_selects[chan]); + private(dev)-> + pfi_output_selects[chan]); return 0; } -static unsigned ni_660x_get_pfi_routing(struct comedi_device *dev, unsigned chan) +static unsigned ni_660x_get_pfi_routing(struct comedi_device *dev, + unsigned chan) { BUG_ON(chan >= NUM_PFI_CHANNELS); return private(dev)->pfi_output_selects[chan]; } -static void ni660x_config_filter(struct comedi_device *dev, unsigned pfi_channel, - enum ni_gpct_filter_select filter) +static void ni660x_config_filter(struct comedi_device *dev, + unsigned pfi_channel, + enum ni_gpct_filter_select filter) { unsigned bits = ni_660x_read_register(dev, 0, IOConfigReg(pfi_channel)); bits &= ~pfi_input_select_mask(pfi_channel); @@ -1304,7 +1346,8 @@ static void ni660x_config_filter(struct comedi_device *dev, unsigned pfi_channel } static int ni_660x_dio_insn_config(struct comedi_device *dev, - struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data) + struct comedi_subdevice *s, + struct comedi_insn *insn, unsigned int *data) { int chan = CR_CHAN(insn->chanspec); @@ -1317,7 +1360,8 @@ static int ni_660x_dio_insn_config(struct comedi_device *dev, case INSN_CONFIG_DIO_OUTPUT: private(dev)->pfi_direction_bits |= ((uint64_t) 1) << chan; ni_660x_select_pfi_output(dev, chan, - private(dev)->pfi_output_selects[chan]); + private(dev)-> + pfi_output_selects[chan]); break; case INSN_CONFIG_DIO_INPUT: private(dev)->pfi_direction_bits &= ~(((uint64_t) 1) << chan); @@ -1325,9 +1369,8 @@ static int ni_660x_dio_insn_config(struct comedi_device *dev, break; case INSN_CONFIG_DIO_QUERY: data[1] = - (private(dev)-> - pfi_direction_bits & (((uint64_t) 1) << chan)) ? - COMEDI_OUTPUT : COMEDI_INPUT; + (private(dev)->pfi_direction_bits & + (((uint64_t) 1) << chan)) ? COMEDI_OUTPUT : COMEDI_INPUT; return 0; case INSN_CONFIG_SET_ROUTING: return ni_660x_set_pfi_routing(dev, chan, data[1]); |