[PATCH 2/4] staging: comedi: addi_apci_1710: separate from addi_common.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Move the necessary bits from addi_common.h to remove it's dependency
and make this driver standalone.

Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxx>
---
 drivers/staging/comedi/drivers/addi_apci_1710.c | 142 +++++++++++++++++++++++-
 1 file changed, 141 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/comedi/drivers/addi_apci_1710.c b/drivers/staging/comedi/drivers/addi_apci_1710.c
index 3035b2a..9157ac5 100644
--- a/drivers/staging/comedi/drivers/addi_apci_1710.c
+++ b/drivers/staging/comedi/drivers/addi_apci_1710.c
@@ -1,5 +1,6 @@
 #include <linux/module.h>
 #include <linux/pci.h>
+#include <linux/interrupt.h>
 
 #include <asm/i387.h>
 
@@ -7,7 +8,146 @@
 #include "comedi_fc.h"
 #include "amcc_s5933.h"
 
-#include "addi-data/addi_common.h"
+#define APCI1710_SAVE_INTERRUPT	1
+
+union str_ModuleInfo {
+	/* Incremental counter infos */
+	struct {
+		union {
+			struct {
+				unsigned char b_ModeRegister1;
+				unsigned char b_ModeRegister2;
+				unsigned char b_ModeRegister3;
+				unsigned char b_ModeRegister4;
+			} s_ByteModeRegister;
+			unsigned int dw_ModeRegister1_2_3_4;
+		} s_ModeRegister;
+
+		struct {
+			unsigned int b_IndexInit:1;
+			unsigned int b_CounterInit:1;
+			unsigned int b_ReferenceInit:1;
+			unsigned int b_IndexInterruptOccur:1;
+			unsigned int b_CompareLogicInit:1;
+			unsigned int b_FrequencyMeasurementInit:1;
+			unsigned int b_FrequencyMeasurementEnable:1;
+		} s_InitFlag;
+
+	} s_SiemensCounterInfo;
+
+	/* SSI infos */
+	struct {
+		unsigned char b_SSIProfile;
+		unsigned char b_PositionTurnLength;
+		unsigned char b_TurnCptLength;
+		unsigned char b_SSIInit;
+	} s_SSICounterInfo;
+
+	/* TTL I/O infos */
+	struct {
+		unsigned char b_TTLInit;
+		unsigned char b_PortConfiguration[4];
+	} s_TTLIOInfo;
+
+	/* Digital I/O infos */
+	struct {
+		unsigned char b_DigitalInit;
+		unsigned char b_ChannelAMode;
+		unsigned char b_ChannelBMode;
+		unsigned char b_OutputMemoryEnabled;
+		unsigned int dw_OutputMemory;
+	} s_DigitalIOInfo;
+
+	/* 82X54 timer infos */
+	struct {
+		struct {
+			unsigned char b_82X54Init;
+			unsigned char b_InputClockSelection;
+			unsigned char b_InputClockLevel;
+			unsigned char b_OutputLevel;
+			unsigned char b_HardwareGateLevel;
+			unsigned int dw_ConfigurationWord;
+		} s_82X54TimerInfo[3];
+		unsigned char b_InterruptMask;
+	} s_82X54ModuleInfo;
+
+	/* Chronometer infos */
+	struct {
+		unsigned char b_ChronoInit;
+		unsigned char b_InterruptMask;
+		unsigned char b_PCIInputClock;
+		unsigned char b_TimingUnit;
+		unsigned char b_CycleMode;
+		double d_TimingInterval;
+		unsigned int dw_ConfigReg;
+	} s_ChronoModuleInfo;
+
+	/* Pulse encoder infos */
+	struct {
+		struct {
+			unsigned char b_PulseEncoderInit;
+		} s_PulseEncoderInfo[4];
+		unsigned int dw_SetRegister;
+		unsigned int dw_ControlRegister;
+		unsigned int dw_StatusRegister;
+	} s_PulseEncoderModuleInfo;
+
+	/* Tor conter infos */
+	struct {
+		struct {
+			unsigned char b_TorCounterInit;
+			unsigned char b_TimingUnit;
+			unsigned char b_InterruptEnable;
+			double d_TimingInterval;
+			unsigned int ul_RealTimingInterval;
+		} s_TorCounterInfo[2];
+		unsigned char b_PCIInputClock;
+	} s_TorCounterModuleInfo;
+
+	/* PWM infos */
+	struct {
+		struct {
+			unsigned char b_PWMInit;
+			unsigned char b_TimingUnit;
+			unsigned char b_InterruptEnable;
+			double d_LowTiming;
+			double d_HighTiming;
+			unsigned int ul_RealLowTiming;
+			unsigned int ul_RealHighTiming;
+		} s_PWMInfo[2];
+		unsigned char b_ClockSelection;
+	} s_PWMModuleInfo;
+
+	/* CDA infos */
+	struct {
+		unsigned char b_CDAEnable;
+		unsigned char b_FctSelection;
+	} s_CDAModuleInfo;
+};
+
+struct addi_private {
+	/* Pointer to the current process */
+	struct task_struct *tsk_Current;
+
+	struct {
+		unsigned int ui_Address;
+		unsigned char b_BoardVersion;
+		unsigned int dw_MolduleConfiguration[4];
+	} s_BoardInfos;
+
+	struct {
+		unsigned int ul_InterruptOccur;
+		unsigned int ui_Read;
+		unsigned int ui_Write;
+		struct {
+			unsigned char b_OldModuleMask;
+			unsigned int ul_OldInterruptMask;
+			unsigned int ul_OldCounterLatchValue;
+		} s_FIFOInterruptParameters[APCI1710_SAVE_INTERRUPT];
+	} s_InterruptParameters;
+
+	union str_ModuleInfo s_ModuleInfo[4];
+};
 
 static void fpu_begin(void)
 {
-- 
1.8.3.2

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux