On Friday, August 23, 2013 6:45 AM, Ian Abbott wrote: > If a DIO subdevice has more than 32 channels, its 'insn_bits' handler is > supposed to take account of the base channel from > `CR_CHAN(insn->chanspec)`. (The comedi core will adjust the base > channel to 0 and shift the mask and data to compensate if the subdevice > has less than or equal to 32 channels.) The "comedi_bond" driver > currently ignores the base channel and assumes it is 0. > > Replace `comedi_dio_bitfield()` in the "kcomedilib" module with > `comedi_dio_bitfield2()` that takes account of the base channel, and > rewrite the "comedi_bond" driver's 'insn_bits' handler > (`bonding_dio_insn_bits()`) to take account of the base channel and use > the new function. > > No other modules use `comedi_dio_bitfield()` so it is safe to replace it > with `comedi_dio_bitfield2()`. The name follows that of the equivalent > function in the user-space comedilib. If the base channel is non-zero > and the subdevice has less than or equal to 32 channels it needs to > adjust things in the same way as the comedi core (same as `parse_insn()` > in "comedi_fops.c") due to most drivers ignoring the base channel. > > Signed-off-by: Ian Abbott <abbotti@xxxxxxxxx> Ian, I have not had a chance to look this series over yet but I had an off topic comment about kcomedilib. Is it too late to rename the exports from that driver? It would be a lot clearer if the "core" exports were prefixed with "comedi_" and the exports provided to the kernel by kcomedilib where prefixed differently, maybe as "kcomedi_" or even "komedi_". Right now I think the only driver using kcomedilib is the comedi_bond driver. Thanks, Hartley _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel