Currently this driver uses the total number of channels, stored in the boardinfo, in a number of the subdevice insn_* functions. This information is already available in the subdevice as 's->n_chan'. Use that instead of needing to get the board pointer first. Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx> Cc: Ian Abbott <abbotti@xxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- .../comedi/drivers/addi-data/hwdrv_apci16xx.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c index 97f7441..098ea59 100644 --- a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c +++ b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c @@ -101,13 +101,11 @@ static int i_APCI16XX_InsnConfigInitTTLIO(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - const struct addi_board *this_board = comedi_board(dev); struct addi_private *devpriv = dev->private; int i_ReturnValue = insn->n; unsigned char b_Command = 0; unsigned char b_Cpt = 0; - unsigned char b_NumberOfPort = - (unsigned char) (this_board->i_NbrTTLChannel / 8); + unsigned char b_NumberOfPort = s->n_chan / 8; /* Test the buffer size */ if (insn->n >= 1) { @@ -232,12 +230,10 @@ static int i_APCI16XX_InsnBitsReadTTLIO(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - const struct addi_board *this_board = comedi_board(dev); struct addi_private *devpriv = dev->private; int i_ReturnValue = insn->n; unsigned char b_Command = 0; - unsigned char b_NumberOfPort = - (unsigned char) (this_board->i_NbrTTLChannel / 8); + unsigned char b_NumberOfPort = s->n_chan / 8; unsigned char b_SelectedPort = CR_RANGE(insn->chanspec); unsigned char b_InputChannel = CR_CHAN(insn->chanspec); unsigned char *pb_Status; @@ -332,7 +328,6 @@ static int i_APCI16XX_InsnReadTTLIOAllPortValue(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - const struct addi_board *this_board = comedi_board(dev); struct addi_private *devpriv = dev->private; unsigned char b_Command = (unsigned char) CR_AREF(insn->chanspec); int i_ReturnValue = insn->n; @@ -344,12 +339,9 @@ static int i_APCI16XX_InsnReadTTLIOAllPortValue(struct comedi_device *dev, if ((b_Command == APCI16XX_TTL_READ_ALL_INPUTS) || (b_Command == APCI16XX_TTL_READ_ALL_OUTPUTS)) { /* Get the number of 32-Bit ports */ - b_NumberOfPort = - (unsigned char) (this_board->i_NbrTTLChannel / 32); - if ((b_NumberOfPort * 32) < - this_board->i_NbrTTLChannel) { + b_NumberOfPort = s->n_chan / 32; + if ((b_NumberOfPort * 32) < s->n_chan) b_NumberOfPort = b_NumberOfPort + 1; - } /* Test the buffer size */ if (insn->n >= b_NumberOfPort) { @@ -434,12 +426,10 @@ static int i_APCI16XX_InsnBitsWriteTTLIO(struct comedi_device *dev, struct comedi_insn *insn, unsigned int *data) { - const struct addi_board *this_board = comedi_board(dev); struct addi_private *devpriv = dev->private; int i_ReturnValue = insn->n; unsigned char b_Command = 0; - unsigned char b_NumberOfPort = - (unsigned char) (this_board->i_NbrTTLChannel / 8); + unsigned char b_NumberOfPort = s->n_chan / 8; unsigned char b_SelectedPort = CR_RANGE(insn->chanspec); unsigned char b_OutputChannel = CR_CHAN(insn->chanspec); unsigned int dw_Status = 0; -- 1.8.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel