staging: comedi: ni_mio_common: remove forward declaration 11
Move ni_cdio_cmd() to remove the need for the forward declaration of ni_cdo_inttrig(). 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>
This commit is contained in:
parent
9a0c81a2be
commit
0792928fd6
|
@ -197,8 +197,6 @@ static const struct comedi_lrange *const ni_range_lkup[] = {
|
||||||
static int ni_cdio_cancel(struct comedi_device *dev,
|
static int ni_cdio_cancel(struct comedi_device *dev,
|
||||||
struct comedi_subdevice *s);
|
struct comedi_subdevice *s);
|
||||||
static void handle_cdio_interrupt(struct comedi_device *dev);
|
static void handle_cdio_interrupt(struct comedi_device *dev);
|
||||||
static int ni_cdo_inttrig(struct comedi_device *dev, struct comedi_subdevice *s,
|
|
||||||
unsigned int trignum);
|
|
||||||
|
|
||||||
static int ni_serial_hw_readwrite8(struct comedi_device *dev,
|
static int ni_serial_hw_readwrite8(struct comedi_device *dev,
|
||||||
struct comedi_subdevice *s,
|
struct comedi_subdevice *s,
|
||||||
|
@ -3441,45 +3439,6 @@ static int ni_cdio_cmdtest(struct comedi_device *dev,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ni_cdio_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
|
|
||||||
{
|
|
||||||
struct ni_private *devpriv __maybe_unused = dev->private;
|
|
||||||
const struct comedi_cmd *cmd = &s->async->cmd;
|
|
||||||
unsigned cdo_mode_bits = CDO_FIFO_Mode_Bit | CDO_Halt_On_Error_Bit;
|
|
||||||
int retval;
|
|
||||||
|
|
||||||
ni_writel(CDO_Reset_Bit, M_Offset_CDIO_Command);
|
|
||||||
switch (cmd->scan_begin_src) {
|
|
||||||
case TRIG_EXT:
|
|
||||||
cdo_mode_bits |=
|
|
||||||
CR_CHAN(cmd->scan_begin_arg) &
|
|
||||||
CDO_Sample_Source_Select_Mask;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
BUG();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (cmd->scan_begin_arg & CR_INVERT)
|
|
||||||
cdo_mode_bits |= CDO_Polarity_Bit;
|
|
||||||
ni_writel(cdo_mode_bits, M_Offset_CDO_Mode);
|
|
||||||
if (s->io_bits) {
|
|
||||||
ni_writel(s->state, M_Offset_CDO_FIFO_Data);
|
|
||||||
ni_writel(CDO_SW_Update_Bit, M_Offset_CDIO_Command);
|
|
||||||
ni_writel(s->io_bits, M_Offset_CDO_Mask_Enable);
|
|
||||||
} else {
|
|
||||||
comedi_error(dev,
|
|
||||||
"attempted to run digital output command with no lines configured as outputs");
|
|
||||||
return -EIO;
|
|
||||||
}
|
|
||||||
retval = ni_request_cdo_mite_channel(dev);
|
|
||||||
if (retval < 0)
|
|
||||||
return retval;
|
|
||||||
|
|
||||||
s->async->inttrig = ni_cdo_inttrig;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ni_cdo_inttrig(struct comedi_device *dev,
|
static int ni_cdo_inttrig(struct comedi_device *dev,
|
||||||
struct comedi_subdevice *s,
|
struct comedi_subdevice *s,
|
||||||
unsigned int trig_num)
|
unsigned int trig_num)
|
||||||
|
@ -3535,6 +3494,45 @@ static int ni_cdo_inttrig(struct comedi_device *dev,
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ni_cdio_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
|
||||||
|
{
|
||||||
|
struct ni_private *devpriv __maybe_unused = dev->private;
|
||||||
|
const struct comedi_cmd *cmd = &s->async->cmd;
|
||||||
|
unsigned cdo_mode_bits = CDO_FIFO_Mode_Bit | CDO_Halt_On_Error_Bit;
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
ni_writel(CDO_Reset_Bit, M_Offset_CDIO_Command);
|
||||||
|
switch (cmd->scan_begin_src) {
|
||||||
|
case TRIG_EXT:
|
||||||
|
cdo_mode_bits |=
|
||||||
|
CR_CHAN(cmd->scan_begin_arg) &
|
||||||
|
CDO_Sample_Source_Select_Mask;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
BUG();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (cmd->scan_begin_arg & CR_INVERT)
|
||||||
|
cdo_mode_bits |= CDO_Polarity_Bit;
|
||||||
|
ni_writel(cdo_mode_bits, M_Offset_CDO_Mode);
|
||||||
|
if (s->io_bits) {
|
||||||
|
ni_writel(s->state, M_Offset_CDO_FIFO_Data);
|
||||||
|
ni_writel(CDO_SW_Update_Bit, M_Offset_CDIO_Command);
|
||||||
|
ni_writel(s->io_bits, M_Offset_CDO_Mask_Enable);
|
||||||
|
} else {
|
||||||
|
comedi_error(dev,
|
||||||
|
"attempted to run digital output command with no lines configured as outputs");
|
||||||
|
return -EIO;
|
||||||
|
}
|
||||||
|
retval = ni_request_cdo_mite_channel(dev);
|
||||||
|
if (retval < 0)
|
||||||
|
return retval;
|
||||||
|
|
||||||
|
s->async->inttrig = ni_cdo_inttrig;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int ni_cdio_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
|
static int ni_cdio_cancel(struct comedi_device *dev, struct comedi_subdevice *s)
|
||||||
{
|
{
|
||||||
struct ni_private *devpriv __maybe_unused = dev->private;
|
struct ni_private *devpriv __maybe_unused = dev->private;
|
||||||
|
|
Loading…
Reference in New Issue