From 678a4d3ab159b776a7cb9c8ca9fdaf5498f3423a Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Wed, 23 Jan 2013 12:38:21 -0700 Subject: [PATCH] staging: comedi: addi_apci_3501: absorb i_APCI3501_Reset() This driver only has one 'reset' function. Absorb the i_APCI3501_Reset() function from hwdrv_apci3501.c into the driver. Rename i_ADDI_Reset() to apci3501_reset() so that the function has namespace associated with the driver. Signed-off-by: H Hartley Sweeten Cc: Ian Abbott Signed-off-by: Greg Kroah-Hartman --- .../comedi/drivers/addi-data/hwdrv_apci3501.c | 52 ------------------- .../staging/comedi/drivers/addi_apci_3501.c | 39 +++++++++++--- 2 files changed, 33 insertions(+), 58 deletions(-) diff --git a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c index 4ecdb9e20f4f..733c7933f79f 100644 --- a/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c +++ b/drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c @@ -468,58 +468,6 @@ static int i_APCI3501_ReadTimerCounterWatchdog(struct comedi_device *dev, return insn->n; } -/* -+----------------------------------------------------------------------------+ -| Function Name : int i_APCI3501_Reset(struct comedi_device *dev) | -| | -+----------------------------------------------------------------------------+ -| Task :Resets the registers of the card | -+----------------------------------------------------------------------------+ -| Input Parameters : | -+----------------------------------------------------------------------------+ -| Output Parameters : -- | -+----------------------------------------------------------------------------+ -| Return Value : | -| | -+----------------------------------------------------------------------------+ -*/ - -static int i_APCI3501_Reset(struct comedi_device *dev) -{ - struct addi_private *devpriv = dev->private; - int i_Count = 0, i_temp = 0; - unsigned int ul_Command1 = 0, ul_Polarity, ul_DAC_Ready = 0; - - outl(0x0, devpriv->iobase + APCI3501_DIGITAL_OP); - outl(1, devpriv->iobase + APCI3501_ANALOG_OUTPUT + - APCI3501_AO_VOLT_MODE); - - ul_Polarity = 0x80000000; - - for (i_Count = 0; i_Count <= 7; i_Count++) { - ul_DAC_Ready = inl(devpriv->iobase + APCI3501_ANALOG_OUTPUT); - - while (ul_DAC_Ready == 0) { - ul_DAC_Ready = - inl(devpriv->iobase + APCI3501_ANALOG_OUTPUT); - ul_DAC_Ready = (ul_DAC_Ready >> 8) & 1; - } - - if (ul_DAC_Ready) { - /* Output the Value on the output channels. */ - ul_Command1 = - (unsigned int) ((unsigned int) (i_Count & 0xFF) | - (unsigned int) ((i_temp << 0x8) & 0x7FFFFF00L) | - (unsigned int) (ul_Polarity)); - outl(ul_Command1, - devpriv->iobase + APCI3501_ANALOG_OUTPUT + - APCI3501_AO_PROG); - } - } - - return 0; -} - /* +----------------------------------------------------------------------------+ | Function Name : static void v_APCI3501_Interrupt | diff --git a/drivers/staging/comedi/drivers/addi_apci_3501.c b/drivers/staging/comedi/drivers/addi_apci_3501.c index 5d1433966dcb..d6a96bd0f1d7 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3501.c +++ b/drivers/staging/comedi/drivers/addi_apci_3501.c @@ -19,7 +19,6 @@ static const struct addi_board apci3501_boardtypes[] = { .i_AoMaxdata = 16383, .pr_AoRangelist = &range_apci3501_ao, .interrupt = v_APCI3501_Interrupt, - .reset = i_APCI3501_Reset, .ao_config = i_APCI3501_ConfigAnalogOutput, .ao_write = i_APCI3501_WriteAnalogOutput, }, @@ -85,11 +84,39 @@ static irqreturn_t v_ADDI_Interrupt(int irq, void *d) return IRQ_RETVAL(1); } -static int i_ADDI_Reset(struct comedi_device *dev) +static int apci3501_reset(struct comedi_device *dev) { - const struct addi_board *this_board = comedi_board(dev); + struct addi_private *devpriv = dev->private; + int i_Count = 0, i_temp = 0; + unsigned int ul_Command1 = 0, ul_Polarity, ul_DAC_Ready = 0; + + outl(0x0, devpriv->iobase + APCI3501_DIGITAL_OP); + outl(1, devpriv->iobase + APCI3501_ANALOG_OUTPUT + + APCI3501_AO_VOLT_MODE); + + ul_Polarity = 0x80000000; + + for (i_Count = 0; i_Count <= 7; i_Count++) { + ul_DAC_Ready = inl(devpriv->iobase + APCI3501_ANALOG_OUTPUT); + + while (ul_DAC_Ready == 0) { + ul_DAC_Ready = + inl(devpriv->iobase + APCI3501_ANALOG_OUTPUT); + ul_DAC_Ready = (ul_DAC_Ready >> 8) & 1; + } + + if (ul_DAC_Ready) { + /* Output the Value on the output channels. */ + ul_Command1 = + (unsigned int) ((unsigned int) (i_Count & 0xFF) | + (unsigned int) ((i_temp << 0x8) & 0x7FFFFF00L) | + (unsigned int) (ul_Polarity)); + outl(ul_Command1, + devpriv->iobase + APCI3501_ANALOG_OUTPUT + + APCI3501_AO_PROG); + } + } - this_board->reset(dev); return 0; } @@ -256,7 +283,7 @@ static int apci3501_auto_attach(struct comedi_device *dev, s->type = COMEDI_SUBD_UNUSED; } - i_ADDI_Reset(dev); + apci3501_reset(dev); return 0; } @@ -267,7 +294,7 @@ static void apci3501_detach(struct comedi_device *dev) if (devpriv) { if (dev->iobase) - i_ADDI_Reset(dev); + apci3501_reset(dev); if (dev->irq) free_irq(dev->irq, dev); if (devpriv->dw_AiBase) -- 2.30.2