Commit b58d9b17 authored by Bill Pemberton's avatar Bill Pemberton Committed by Greg Kroah-Hartman
Browse files

Staging: comedi: remove C99 comments in hwdrv_apci1564.c

parent 0110c443
Loading
Loading
Loading
Loading
+124 −122
Original line number Diff line number Diff line
@@ -55,7 +55,7 @@ You shoud also find the complete GPL in the COPYING file accompanying this sourc
#include <linux/delay.h>
#include "hwdrv_apci1564.h"

//Global variables
/* Global variables */
unsigned int ui_InterruptStatus_1564 = 0;
unsigned int ui_InterruptData, ui_Type;

@@ -106,13 +106,13 @@ int i_APCI1564_ConfigDigitalInput(struct comedi_device * dev, struct comedi_subd
			outl(0x4,
				devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
				APCI1564_DIGITAL_IP_IRQ);
		}		// if  (data[1] == ADDIDATA_OR)
		}		/*  if  (data[1] == ADDIDATA_OR) */
		else {
			outl(0x6,
				devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
				APCI1564_DIGITAL_IP_IRQ);
		}		// else if  (data[1] == ADDIDATA_OR)
	}			// if  (data[0] == ADDIDATA_ENABLE)
		}		/*  else if  (data[1] == ADDIDATA_OR) */
	}			/*  if  (data[0] == ADDIDATA_ENABLE) */
	else {
		outl(0x0,
			devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
@@ -123,7 +123,7 @@ int i_APCI1564_ConfigDigitalInput(struct comedi_device * dev, struct comedi_subd
		outl(0x0,
			devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
			APCI1564_DIGITAL_IP_IRQ);
	}			// else if  (data[0] == ADDIDATA_ENABLE)
	}			/*  else if  (data[0] == ADDIDATA_ENABLE) */

	return insn->n;
}
@@ -157,14 +157,16 @@ int i_APCI1564_Read1DigitalInput(struct comedi_device * dev, struct comedi_subde
	if (ui_Channel >= 0 && ui_Channel <= 31) {
		ui_TmpValue =
			(unsigned int) inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP);
		//  since only 1 channel reqd  to bring it to last bit it is rotated
		//  8 +(chan - 1) times then ANDed with 1 for last bit.
/*
* since only 1 channel reqd to bring it to last bit it is rotated 8
* +(chan - 1) times then ANDed with 1 for last bit.
*/
		*data = (ui_TmpValue >> ui_Channel) & 0x1;
	}			// if  (ui_Channel >= 0 && ui_Channel <=31)
	}			/*  if  (ui_Channel >= 0 && ui_Channel <=31) */
	else {
		comedi_error(dev, "Not a valid channel number !!! \n");
		return -EINVAL;	// "sorry channel spec wrong "
	}			//else if  (ui_Channel >= 0 && ui_Channel <=31)
		return -EINVAL;	/*  "sorry channel spec wrong " */
	}			/* else if  (ui_Channel >= 0 && ui_Channel <=31) */
	return insn->n;
}

@@ -218,15 +220,15 @@ int i_APCI1564_ReadMoreDigitalInput(struct comedi_device * dev, struct comedi_su
			break;
		default:
			comedi_error(dev, "Not a valid Channel number !!!\n");
			return -EINVAL;	// "sorry channel spec wrong "
			return -EINVAL;	/*  "sorry channel spec wrong " */
			break;
		}		// switch  (ui_NoOfChannels)
	}			// if  (data[1]==0)
		}		/*  switch  (ui_NoOfChannels) */
	}			/*  if  (data[1]==0) */
	else {
		if (data[1] == 1) {
			*data = ui_InterruptStatus_1564;
		}		// if  (data[1]==1)
	}			// else if  (data[1]==0)
		}		/*  if  (data[1]==1) */
	}			/*  else if  (data[1]==0) */
	return insn->n;
}

@@ -264,25 +266,25 @@ int i_APCI1564_ConfigDigitalOutput(struct comedi_device * dev, struct comedi_sub
		comedi_error(dev,
			"Not a valid Data !!! ,Data should be 1 or 0\n");
		return -EINVAL;
	}			// if  ((data[0]!=0) && (data[0]!=1))
	}			/*  if  ((data[0]!=0) && (data[0]!=1)) */
	if (data[0]) {
		devpriv->b_OutputMemoryStatus = ADDIDATA_ENABLE;
	}			// if  (data[0])
	}			/*  if  (data[0]) */
	else {
		devpriv->b_OutputMemoryStatus = ADDIDATA_DISABLE;
	}			// else if  (data[0])
	}			/*  else if  (data[0]) */
	if (data[1] == ADDIDATA_ENABLE) {
		ul_Command = ul_Command | 0x1;
	}			// if  (data[1] == ADDIDATA_ENABLE)
	}			/*  if  (data[1] == ADDIDATA_ENABLE) */
	else {
		ul_Command = ul_Command & 0xFFFFFFFE;
	}			// else if  (data[1] == ADDIDATA_ENABLE)
	}			/*  else if  (data[1] == ADDIDATA_ENABLE) */
	if (data[2] == ADDIDATA_ENABLE) {
		ul_Command = ul_Command | 0x2;
	}			// if  (data[2] == ADDIDATA_ENABLE)
	}			/*  if  (data[2] == ADDIDATA_ENABLE) */
	else {
		ul_Command = ul_Command & 0xFFFFFFFD;
	}			// else if  (data[2] == ADDIDATA_ENABLE)
	}			/*  else if  (data[2] == ADDIDATA_ENABLE) */
	outl(ul_Command,
		devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP +
		APCI1564_DIGITAL_OP_INTERRUPT);
@@ -323,17 +325,17 @@ int i_APCI1564_WriteDigitalOutput(struct comedi_device * dev, struct comedi_subd
		ui_Temp =
			inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP +
			APCI1564_DIGITAL_OP_RW);
	}			// if  (devpriv->b_OutputMemoryStatus )
	}			/*  if  (devpriv->b_OutputMemoryStatus ) */
	else {
		ui_Temp = 0;
	}			// else if  (devpriv->b_OutputMemoryStatus )
	}			/*  else if  (devpriv->b_OutputMemoryStatus ) */
	if (data[3] == 0) {
		if (data[1] == 0) {
			data[0] = (data[0] << ui_NoOfChannel) | ui_Temp;
			outl(data[0],
				devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP +
				APCI1564_DIGITAL_OP_RW);
		}		// if  (data[1]==0)
		}		/*  if  (data[1]==0) */
		else {
			if (data[1] == 1) {
				switch (ui_NoOfChannel) {
@@ -362,18 +364,18 @@ int i_APCI1564_WriteDigitalOutput(struct comedi_device * dev, struct comedi_subd
					break;
				default:
					comedi_error(dev, " chan spec wrong");
					return -EINVAL;	// "sorry channel spec wrong "
				}	// switch (ui_NoOfChannels)
					return -EINVAL;	/*  "sorry channel spec wrong " */
				}	/*  switch (ui_NoOfChannels) */
				outl(data[0],
					devpriv->i_IobaseAmcc +
					APCI1564_DIGITAL_OP +
					APCI1564_DIGITAL_OP_RW);
			}	// if  (data[1]==1)
			}	/*  if  (data[1]==1) */
			else {
				printk("\nSpecified channel not supported\n");
			}	// else if  (data[1]==1)
		}		// else if (data[1]==0)
	}			//if(data[3]==0)
			}	/*  else if  (data[1]==1) */
		}		/*  else if (data[1]==0) */
	}			/* if(data[3]==0) */
	else {
		if (data[3] == 1) {
			if (data[1] == 0) {
@@ -389,7 +391,7 @@ int i_APCI1564_WriteDigitalOutput(struct comedi_device * dev, struct comedi_subd
					devpriv->i_IobaseAmcc +
					APCI1564_DIGITAL_OP +
					APCI1564_DIGITAL_OP_RW);
			}	// if  (data[1]==0)
			}	/*  if  (data[1]==0) */
			else {
				if (data[1] == 1) {
					switch (ui_NoOfChannel) {
@@ -447,23 +449,23 @@ int i_APCI1564_WriteDigitalOutput(struct comedi_device * dev, struct comedi_subd
					default:
						comedi_error(dev,
							" chan spec wrong");
						return -EINVAL;	// "sorry channel spec wrong "
					}	//switch(ui_NoOfChannels)
						return -EINVAL;	/*  "sorry channel spec wrong " */
					}	/* switch(ui_NoOfChannels) */
					outl(data[0],
						devpriv->i_IobaseAmcc +
						APCI1564_DIGITAL_OP +
						APCI1564_DIGITAL_OP_RW);
				}	// if  (data[1]==1)
				}	/*  if  (data[1]==1) */
				else {
					printk("\nSpecified channel not supported\n");
				}	// else if  (data[1]==1)
			}	// else if  (data[1]==0)
		}		// if  (data[3]==1);
				}	/*  else if  (data[1]==1) */
			}	/*  else if  (data[1]==0) */
		}		/*  if  (data[3]==1); */
		else {
			printk("\nSpecified functionality does not exist\n");
			return -EINVAL;
		}		// else if (data[3]==1)
	}			// else if (data[3]==0)
		}		/*  else if (data[3]==1) */
	}			/*  else if (data[3]==0) */
	return insn->n;
}

@@ -498,7 +500,7 @@ int i_APCI1564_ReadDigitalOutput(struct comedi_device * dev, struct comedi_subde
		APCI1564_DIGITAL_OP_RW);
	if (ui_Temp == 0) {
		*data = (*data >> ui_NoOfChannel) & 0x1;
	}			// if  (ui_Temp==0)
	}			/*  if  (ui_Temp==0) */
	else {
		if (ui_Temp == 1) {
			switch (ui_NoOfChannel) {
@@ -523,14 +525,14 @@ int i_APCI1564_ReadDigitalOutput(struct comedi_device * dev, struct comedi_subde

			default:
				comedi_error(dev, " chan spec wrong");
				return -EINVAL;	// "sorry channel spec wrong "
				return -EINVAL;	/*  "sorry channel spec wrong " */
				break;
			}	// switch(ui_NoOfChannels)
		}		// if  (ui_Temp==1)
			}	/*  switch(ui_NoOfChannels) */
		}		/*  if  (ui_Temp==1) */
		else {
			printk("\nSpecified channel not supported \n");
		}		// else if (ui_Temp==1)
	}			// else if  (ui_Temp==0)
		}		/*  else if (ui_Temp==1) */
	}			/*  else if  (ui_Temp==0) */
	return insn->n;
}

@@ -572,26 +574,26 @@ int i_APCI1564_ConfigTimerCounterWatchdog(struct comedi_device * dev,
	if (data[0] == ADDIDATA_WATCHDOG) {
		devpriv->b_TimerSelectMode = ADDIDATA_WATCHDOG;

		//Disable the watchdog
		/* Disable the watchdog */
		outl(0x0,
			devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP_WATCHDOG +
			APCI1564_TCW_PROG);
		//Loading the Reload value
		/* Loading the Reload value */
		outl(data[3],
			devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP_WATCHDOG +
			APCI1564_TCW_RELOAD_VALUE);
	}			// if  (data[0]==ADDIDATA_WATCHDOG)
	}			/*  if  (data[0]==ADDIDATA_WATCHDOG) */
	else if (data[0] == ADDIDATA_TIMER) {
		//First Stop The Timer
		/* First Stop The Timer */
		ul_Command1 =
			inl(devpriv->i_IobaseAmcc + APCI1564_TIMER +
			APCI1564_TCW_PROG);
		ul_Command1 = ul_Command1 & 0xFFFFF9FEUL;
		outl(ul_Command1, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	//Stop The Timer
		outl(ul_Command1, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	/* Stop The Timer */

		devpriv->b_TimerSelectMode = ADDIDATA_TIMER;
		if (data[1] == 1) {
			outl(0x02, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	//Enable TIMER int & DISABLE ALL THE OTHER int SOURCES
			outl(0x02, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	/* Enable TIMER int & DISABLE ALL THE OTHER int SOURCES */
			outl(0x0,
				devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
				APCI1564_DIGITAL_IP_IRQ);
@@ -614,18 +616,18 @@ int i_APCI1564_ConfigTimerCounterWatchdog(struct comedi_device * dev,
			outl(0x0,
				devpriv->iobase + APCI1564_COUNTER4 +
				APCI1564_TCW_IRQ);
		}		// if  (data[1]==1)
		}		/*  if  (data[1]==1) */
		else {
			outl(0x0, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	//disable Timer interrupt
		}		// else if  (data[1]==1)
			outl(0x0, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	/* disable Timer interrupt */
		}		/*  else if  (data[1]==1) */

		// Loading Timebase
		/*  Loading Timebase */

		outl(data[2],
			devpriv->i_IobaseAmcc + APCI1564_TIMER +
			APCI1564_TCW_TIMEBASE);

		//Loading the Reload value
		/* Loading the Reload value */
		outl(data[3],
			devpriv->i_IobaseAmcc + APCI1564_TIMER +
			APCI1564_TCW_RELOAD_VALUE);
@@ -635,18 +637,18 @@ int i_APCI1564_ConfigTimerCounterWatchdog(struct comedi_device * dev,
			APCI1564_TCW_PROG);
		ul_Command1 =
			(ul_Command1 & 0xFFF719E2UL) | 2UL << 13UL | 0x10UL;
		outl(ul_Command1, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	//mode 2
	}			// else if  (data[0]==ADDIDATA_TIMER)
		outl(ul_Command1, devpriv->i_IobaseAmcc + APCI1564_TIMER + APCI1564_TCW_PROG);	/* mode 2 */
	}			/*  else if  (data[0]==ADDIDATA_TIMER) */
	else if (data[0] == ADDIDATA_COUNTER) {
		devpriv->b_TimerSelectMode = ADDIDATA_COUNTER;
		devpriv->b_ModeSelectRegister = data[5];

		//First Stop The Counter
		/* First Stop The Counter */
		ul_Command1 =
			inl(devpriv->iobase + ((data[5] - 1) * 0x20) +
			APCI1564_TCW_PROG);
		ul_Command1 = ul_Command1 & 0xFFFFF9FEUL;
		outl(ul_Command1, devpriv->iobase + ((data[5] - 1) * 0x20) + APCI1564_TCW_PROG);	//Stop The Timer
		outl(ul_Command1, devpriv->iobase + ((data[5] - 1) * 0x20) + APCI1564_TCW_PROG);	/* Stop The Timer */

      /************************/
		/* Set the reload value */
@@ -671,7 +673,7 @@ int i_APCI1564_ConfigTimerCounterWatchdog(struct comedi_device * dev,
			devpriv->iobase + ((data[5] - 1) * 0x20) +
			APCI1564_TCW_PROG);

		// Enable or Disable Interrupt
		/*  Enable or Disable Interrupt */
		ul_Command1 = (ul_Command1 & 0xFFFFF9FD) | (data[1] << 1);
		outl(ul_Command1,
			devpriv->iobase + ((data[5] - 1) * 0x20) +
@@ -684,10 +686,10 @@ int i_APCI1564_ConfigTimerCounterWatchdog(struct comedi_device * dev,
		outl(ul_Command1,
			devpriv->iobase + ((data[5] - 1) * 0x20) +
			APCI1564_TCW_PROG);
	}			// else if  (data[0]==ADDIDATA_COUNTER)
	}			/*  else if  (data[0]==ADDIDATA_COUNTER) */
	else {
		printk(" Invalid subdevice.");
	}			// else if  (data[0]==ADDIDATA_WATCHDOG)
	}			/*  else if  (data[0]==ADDIDATA_WATCHDOG) */

	return insn->n;
}
@@ -724,16 +726,16 @@ int i_APCI1564_StartStopWriteTimerCounterWatchdog(struct comedi_device * dev,
	unsigned int ul_Command1 = 0;
	if (devpriv->b_TimerSelectMode == ADDIDATA_WATCHDOG) {
		switch (data[1]) {
		case 0:	//stop the watchdog
			outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP_WATCHDOG + APCI1564_TCW_PROG);	//disable the watchdog
		case 0:	/* stop the watchdog */
			outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP_WATCHDOG + APCI1564_TCW_PROG);	/* disable the watchdog */
			break;
		case 1:	//start the watchdog
		case 1:	/* start the watchdog */
			outl(0x0001,
				devpriv->i_IobaseAmcc +
				APCI1564_DIGITAL_OP_WATCHDOG +
				APCI1564_TCW_PROG);
			break;
		case 2:	//Software trigger
		case 2:	/* Software trigger */
			outl(0x0201,
				devpriv->i_IobaseAmcc +
				APCI1564_DIGITAL_OP_WATCHDOG +
@@ -742,8 +744,8 @@ int i_APCI1564_StartStopWriteTimerCounterWatchdog(struct comedi_device * dev,
		default:
			printk("\nSpecified functionality does not exist\n");
			return -EINVAL;
		}		// switch (data[1])
	}			// if  (devpriv->b_TimerSelectMode==ADDIDATA_WATCHDOG)
		}		/*  switch (data[1]) */
	}			/*  if  (devpriv->b_TimerSelectMode==ADDIDATA_WATCHDOG) */
	if (devpriv->b_TimerSelectMode == ADDIDATA_TIMER) {
		if (data[1] == 1) {
			ul_Command1 =
@@ -751,13 +753,13 @@ int i_APCI1564_StartStopWriteTimerCounterWatchdog(struct comedi_device * dev,
				APCI1564_TCW_PROG);
			ul_Command1 = (ul_Command1 & 0xFFFFF9FFUL) | 0x1UL;

			//Enable the Timer
			/* Enable the Timer */
			outl(ul_Command1,
				devpriv->i_IobaseAmcc + APCI1564_TIMER +
				APCI1564_TCW_PROG);
		}		// if  (data[1]==1)
		}		/*  if  (data[1]==1) */
		else if (data[1] == 0) {
			//Stop The Timer
			/* Stop The Timer */

			ul_Command1 =
				inl(devpriv->i_IobaseAmcc + APCI1564_TIMER +
@@ -766,29 +768,29 @@ int i_APCI1564_StartStopWriteTimerCounterWatchdog(struct comedi_device * dev,
			outl(ul_Command1,
				devpriv->i_IobaseAmcc + APCI1564_TIMER +
				APCI1564_TCW_PROG);
		}		// else if(data[1]==0)
	}			// if  (devpriv->b_TimerSelectMode==ADDIDATA_TIMER)
		}		/*  else if(data[1]==0) */
	}			/*  if  (devpriv->b_TimerSelectMode==ADDIDATA_TIMER) */
	if (devpriv->b_TimerSelectMode == ADDIDATA_COUNTER) {
		ul_Command1 =
			inl(devpriv->iobase + ((devpriv->b_ModeSelectRegister -
					1) * 0x20) + APCI1564_TCW_PROG);
		if (data[1] == 1) {
			//Start the Counter subdevice
			/* Start the Counter subdevice */
			ul_Command1 = (ul_Command1 & 0xFFFFF9FFUL) | 0x1UL;
		}		// if  (data[1] == 1)
		}		/*  if  (data[1] == 1) */
		else if (data[1] == 0) {
			// Stops the Counter subdevice
			/*  Stops the Counter subdevice */
			ul_Command1 = 0;

		}		// else if  (data[1] == 0)
		}		/*  else if  (data[1] == 0) */
		else if (data[1] == 2) {
			// Clears the Counter subdevice
			/*  Clears the Counter subdevice */
			ul_Command1 = (ul_Command1 & 0xFFFFF9FFUL) | 0x400;
		}		// else if  (data[1] == 3)
		}		/*  else if  (data[1] == 3) */
		outl(ul_Command1,
			devpriv->iobase + ((devpriv->b_ModeSelectRegister -
					1) * 0x20) + APCI1564_TCW_PROG);
	}			// if (devpriv->b_TimerSelectMode==ADDIDATA_COUNTER)
	}			/*  if (devpriv->b_TimerSelectMode==ADDIDATA_COUNTER) */
	return insn->n;
}

@@ -819,7 +821,7 @@ int i_APCI1564_ReadTimerCounterWatchdog(struct comedi_device * dev,
	unsigned int ul_Command1 = 0;

	if (devpriv->b_TimerSelectMode == ADDIDATA_WATCHDOG) {
		// Stores the status of the Watchdog
		/*  Stores the status of the Watchdog */
		data[0] =
			inl(devpriv->i_IobaseAmcc +
			APCI1564_DIGITAL_OP_WATCHDOG +
@@ -827,18 +829,18 @@ int i_APCI1564_ReadTimerCounterWatchdog(struct comedi_device * dev,
		data[1] =
			inl(devpriv->i_IobaseAmcc +
			APCI1564_DIGITAL_OP_WATCHDOG);
	}			// if  (devpriv->b_TimerSelectMode==ADDIDATA_WATCHDOG)
	}			/*  if  (devpriv->b_TimerSelectMode==ADDIDATA_WATCHDOG) */
	else if (devpriv->b_TimerSelectMode == ADDIDATA_TIMER) {
		// Stores the status of the Timer
		/*  Stores the status of the Timer */
		data[0] =
			inl(devpriv->i_IobaseAmcc + APCI1564_TIMER +
			APCI1564_TCW_TRIG_STATUS) & 0x1;

		// Stores the Actual value of the Timer
		/*  Stores the Actual value of the Timer */
		data[1] = inl(devpriv->i_IobaseAmcc + APCI1564_TIMER);
	}			// else if  (devpriv->b_TimerSelectMode==ADDIDATA_TIMER)
	}			/*  else if  (devpriv->b_TimerSelectMode==ADDIDATA_TIMER) */
	else if (devpriv->b_TimerSelectMode == ADDIDATA_COUNTER) {
		// Read the Counter Actual Value.
		/*  Read the Counter Actual Value. */
		data[0] =
			inl(devpriv->iobase + ((devpriv->b_ModeSelectRegister -
					1) * 0x20) +
@@ -866,12 +868,12 @@ int i_APCI1564_ReadTimerCounterWatchdog(struct comedi_device * dev,
		/* Get the overflow status */
      /***************************/
		data[4] = (unsigned char) ((ul_Command1 >> 0) & 1);
	}			// else  if  (devpriv->b_TimerSelectMode==ADDIDATA_COUNTER)
	}			/*  else  if  (devpriv->b_TimerSelectMode==ADDIDATA_COUNTER) */
	else if ((devpriv->b_TimerSelectMode != ADDIDATA_TIMER)
		&& (devpriv->b_TimerSelectMode != ADDIDATA_WATCHDOG)
		&& (devpriv->b_TimerSelectMode != ADDIDATA_COUNTER)) {
		printk("\n Invalid Subdevice !!!\n");
	}			// else if ((devpriv->b_TimerSelectMode!=ADDIDATA_TIMER) && (devpriv->b_TimerSelectMode!=ADDIDATA_WATCHDOG)&& (devpriv->b_TimerSelectMode!=ADDIDATA_COUNTER))
	}			/*  else if ((devpriv->b_TimerSelectMode!=ADDIDATA_TIMER) && (devpriv->b_TimerSelectMode!=ADDIDATA_WATCHDOG)&& (devpriv->b_TimerSelectMode!=ADDIDATA_COUNTER)) */
	return insn->n;
}

@@ -941,7 +943,7 @@ static void v_APCI1564_Interrupt(int irq, void *d)
	if (ui_DI == 0 && ui_DO == 0 && ui_Timer == 0 && ui_C1 == 0
		&& ui_C2 == 0 && ui_C3 == 0 && ui_C4 == 0) {
		printk("\nInterrupt from unknown source\n");
	}			// if(ui_DI==0 && ui_DO==0 && ui_Timer==0 && ui_C1==0 && ui_C2==0 && ui_C3==0 && ui_C4==0)
	}			/*  if(ui_DI==0 && ui_DO==0 && ui_Timer==0 && ui_C1==0 && ui_C2==0 && ui_C3==0 && ui_C4==0) */

	if (ui_DI == 1) {
		ui_DI = inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
@@ -953,28 +955,28 @@ static void v_APCI1564_Interrupt(int irq, void *d)
			inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
			APCI1564_DIGITAL_IP_INTERRUPT_STATUS);
		ui_InterruptStatus_1564 = ui_InterruptStatus_1564 & 0X000FFFF0;
		send_sig(SIGIO, devpriv->tsk_Current, 0);	// send signal to the sample
		outl(ui_DI, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP + APCI1564_DIGITAL_IP_IRQ);	//enable the interrupt
		send_sig(SIGIO, devpriv->tsk_Current, 0);	/*  send signal to the sample */
		outl(ui_DI, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP + APCI1564_DIGITAL_IP_IRQ);	/* enable the interrupt */
		return;
	}

	if (ui_DO == 1) {
		// Check for Digital Output interrupt Type - 1: Vcc interrupt 2: CC interrupt.
		/*  Check for Digital Output interrupt Type - 1: Vcc interrupt 2: CC interrupt. */
		ui_Type =
			inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP +
			APCI1564_DIGITAL_OP_INTERRUPT_STATUS) & 0x3;
		//Disable the  Interrupt
		/* Disable the  Interrupt */
		outl(0x0,
			devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP +
			APCI1564_DIGITAL_OP_INTERRUPT);

		//Sends signal to user space
		/* Sends signal to user space */
		send_sig(SIGIO, devpriv->tsk_Current, 0);

	}			// if  (ui_DO)
	}			/*  if  (ui_DO) */

	if ((ui_Timer == 1) && (devpriv->b_TimerSelectMode = ADDIDATA_TIMER)) {
		// Disable Timer Interrupt
		/*  Disable Timer Interrupt */
		ul_Command2 =
			inl(devpriv->i_IobaseAmcc + APCI1564_TIMER +
			APCI1564_TCW_PROG);
@@ -982,18 +984,18 @@ static void v_APCI1564_Interrupt(int irq, void *d)
			devpriv->i_IobaseAmcc + APCI1564_TIMER +
			APCI1564_TCW_PROG);

		//Send a signal to from kernel to user space
		/* Send a signal to from kernel to user space */
		send_sig(SIGIO, devpriv->tsk_Current, 0);

		// Enable Timer Interrupt
		/*  Enable Timer Interrupt */

		outl(ul_Command2,
			devpriv->i_IobaseAmcc + APCI1564_TIMER +
			APCI1564_TCW_PROG);
	}			// if  ((ui_Timer == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_TIMER))
	}			/*  if  ((ui_Timer == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_TIMER)) */

	if ((ui_C1 == 1) && (devpriv->b_TimerSelectMode = ADDIDATA_COUNTER)) {
		// Disable Counter Interrupt
		/*  Disable Counter Interrupt */
		ul_Command2 =
			inl(devpriv->iobase + APCI1564_COUNTER1 +
			APCI1564_TCW_PROG);
@@ -1001,17 +1003,17 @@ static void v_APCI1564_Interrupt(int irq, void *d)
			devpriv->iobase + APCI1564_COUNTER1 +
			APCI1564_TCW_PROG);

		//Send a signal to from kernel to user space
		/* Send a signal to from kernel to user space */
		send_sig(SIGIO, devpriv->tsk_Current, 0);

		// Enable Counter Interrupt
		/*  Enable Counter Interrupt */
		outl(ul_Command2,
			devpriv->iobase + APCI1564_COUNTER1 +
			APCI1564_TCW_PROG);
	}			// if  ((ui_C1 == 1) && (devpriv->b_TimerSelectMode = ADDIDATA_COUNTER))
	}			/*  if  ((ui_C1 == 1) && (devpriv->b_TimerSelectMode = ADDIDATA_COUNTER)) */

	if ((ui_C2 == 1) && (devpriv->b_TimerSelectMode = ADDIDATA_COUNTER)) {
		// Disable Counter Interrupt
		/*  Disable Counter Interrupt */
		ul_Command2 =
			inl(devpriv->iobase + APCI1564_COUNTER2 +
			APCI1564_TCW_PROG);
@@ -1019,17 +1021,17 @@ static void v_APCI1564_Interrupt(int irq, void *d)
			devpriv->iobase + APCI1564_COUNTER2 +
			APCI1564_TCW_PROG);

		//Send a signal to from kernel to user space
		/* Send a signal to from kernel to user space */
		send_sig(SIGIO, devpriv->tsk_Current, 0);

		// Enable Counter Interrupt
		/*  Enable Counter Interrupt */
		outl(ul_Command2,
			devpriv->iobase + APCI1564_COUNTER2 +
			APCI1564_TCW_PROG);
	}			// if  ((ui_C2 == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_COUNTER))
	}			/*  if  ((ui_C2 == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_COUNTER)) */

	if ((ui_C3 == 1) && (devpriv->b_TimerSelectMode = ADDIDATA_COUNTER)) {
		// Disable Counter Interrupt
		/*  Disable Counter Interrupt */
		ul_Command2 =
			inl(devpriv->iobase + APCI1564_COUNTER3 +
			APCI1564_TCW_PROG);
@@ -1037,17 +1039,17 @@ static void v_APCI1564_Interrupt(int irq, void *d)
			devpriv->iobase + APCI1564_COUNTER3 +
			APCI1564_TCW_PROG);

		//Send a signal to from kernel to user space
		/* Send a signal to from kernel to user space */
		send_sig(SIGIO, devpriv->tsk_Current, 0);

		// Enable Counter Interrupt
		/*  Enable Counter Interrupt */
		outl(ul_Command2,
			devpriv->iobase + APCI1564_COUNTER3 +
			APCI1564_TCW_PROG);
	}			// if ((ui_C3 == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_COUNTER))
	}			/*  if ((ui_C3 == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_COUNTER)) */

	if ((ui_C4 == 1) && (devpriv->b_TimerSelectMode = ADDIDATA_COUNTER)) {
		// Disable Counter Interrupt
		/*  Disable Counter Interrupt */
		ul_Command2 =
			inl(devpriv->iobase + APCI1564_COUNTER4 +
			APCI1564_TCW_PROG);
@@ -1055,14 +1057,14 @@ static void v_APCI1564_Interrupt(int irq, void *d)
			devpriv->iobase + APCI1564_COUNTER4 +
			APCI1564_TCW_PROG);

		//Send a signal to from kernel to user space
		/* Send a signal to from kernel to user space */
		send_sig(SIGIO, devpriv->tsk_Current, 0);

		// Enable Counter Interrupt
		/*  Enable Counter Interrupt */
		outl(ul_Command2,
			devpriv->iobase + APCI1564_COUNTER4 +
			APCI1564_TCW_PROG);
	}			// if ((ui_C4 == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_COUNTER))
	}			/*  if ((ui_C4 == 1) && (devpriv->b_TimerSelectMode =ADDIDATA_COUNTER)) */
	return;
}

@@ -1083,14 +1085,14 @@ static void v_APCI1564_Interrupt(int irq, void *d)

int i_APCI1564_Reset(struct comedi_device * dev)
{
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP_IRQ);	//disable the interrupts
	inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP_INTERRUPT_STATUS);	//Reset the interrupt status register
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP_INTERRUPT_MODE1);	//Disable the and/or interrupt
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP_IRQ);	/* disable the interrupts */
	inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP_INTERRUPT_STATUS);	/* Reset the interrupt status register */
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP_INTERRUPT_MODE1);	/* Disable the and/or interrupt */
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP_INTERRUPT_MODE2);
	devpriv->b_DigitalOutputRegister = 0;
	ui_Type = 0;
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP);	//Resets the output channels
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP_INTERRUPT);	//Disables the interrupt.
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP);	/* Resets the output channels */
	outl(0x0, devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP_INTERRUPT);	/* Disables the interrupt. */
	outl(0x0,
		devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP_WATCHDOG +
		APCI1564_TCW_RELOAD_VALUE);