Skip to contentSkip to conversation

staging: comedi: remove the devpriv and thisboard macros

PATCH In review H Hartley Sweeten 2 participants 3 messages Jul 13, 2012 – Jul 17, 2012 Staging

lore
Share & tools
lore
#0 lore raw

PATCH 2/2 staging: comedi: remove the devpriv and thisboard macros

The macros 'devpriv' and 'thisboard' rely on a local variable having a specific name and yeild pointers derived from that variable. Replace the macros with local variables where used and use to comedi_board() helper to get the 'thisboard' pointer.

Cc Ian Abbott <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
---
 .../staging/comedi/drivers/addi-data/addi_common.c | 19 ++++--
 .../staging/comedi/drivers/addi-data/addi_eeprom.c |  2 +
 .../comedi/drivers/addi-data/hwdrv_apci035.c       | 14 +++++
 .../comedi/drivers/addi-data/hwdrv_apci1032.c      | 11 +++-
 .../comedi/drivers/addi-data/hwdrv_apci1500.c      | 21 ++++++-
 .../comedi/drivers/addi-data/hwdrv_apci1516.c      | 17 +++++-
 .../comedi/drivers/addi-data/hwdrv_apci1564.c      | 16 ++++++
 .../comedi/drivers/addi-data/hwdrv_apci16xx.c      |  8 +++
 .../comedi/drivers/addi-data/hwdrv_apci2016.c      | 12 ++++
 .../comedi/drivers/addi-data/hwdrv_apci2032.c      | 14 +++++
 .../comedi/drivers/addi-data/hwdrv_apci2200.c      | 19 +++++-
 .../comedi/drivers/addi-data/hwdrv_apci3120.c      | 42 +++++++++++---
 .../comedi/drivers/addi-data/hwdrv_apci3200.c      | 27 ++++++++-
 .../comedi/drivers/addi-data/hwdrv_apci3501.c      | 18 ++++++
 .../comedi/drivers/addi-data/hwdrv_apci3xxx.c      | 18 ++++++
 drivers/staging/comedi/drivers/adl_pci9111.c       | 36 ++++++++----
 drivers/staging/comedi/drivers/adl_pci9118.c       | 55 ++++++++++++++++--
 drivers/staging/comedi/drivers/adq12b.c            | 10 +++-
 drivers/staging/comedi/drivers/adv_pci1710.c       | 45 +++++++++++++--
 drivers/staging/comedi/drivers/adv_pci1723.c       | 20 ++++---
 drivers/staging/comedi/drivers/adv_pci_dio.c       | 22 +++++--
 drivers/staging/comedi/drivers/aio_aio12_8.c       |  8 ++-
 drivers/staging/comedi/drivers/aio_iiro_16.c       | 11 ----
 drivers/staging/comedi/drivers/amplc_dio200.c      | 10 +++-
 drivers/staging/comedi/drivers/amplc_pc236.c       | 12 +++-
 drivers/staging/comedi/drivers/amplc_pc263.c       | 11 +++-
 drivers/staging/comedi/drivers/amplc_pci224.c      |  9 ++-
 drivers/staging/comedi/drivers/amplc_pci230.c      |  3 +-
 drivers/staging/comedi/drivers/cb_das16_cs.c       |  4 +-
 drivers/staging/comedi/drivers/cb_pcidas.c         |  2 +-
 drivers/staging/comedi/drivers/cb_pcidda.c         | 27 ++++-----
 drivers/staging/comedi/drivers/cb_pcidio.c         | 11 ++--
 drivers/staging/comedi/drivers/cb_pcimdas.c        | 23 ++++----
 drivers/staging/comedi/drivers/cb_pcimdda.c        | 29 +++++-----
 drivers/staging/comedi/drivers/comedi_bond.c       | 26 +++------
 drivers/staging/comedi/drivers/comedi_parport.c    | 16 +++++-
 drivers/staging/comedi/drivers/comedi_test.c       | 17 +++++-
 drivers/staging/comedi/drivers/contec_pci_dio.c    |  6 +-
 drivers/staging/comedi/drivers/daqboard2000.c      | 27 +++++++--
 drivers/staging/comedi/drivers/das08.c             |  8 ++-
 drivers/staging/comedi/drivers/das08_cs.c          |  4 +-
 drivers/staging/comedi/drivers/das16.c             | 19 +++++-
 drivers/staging/comedi/drivers/das16m1.c           | 14 ++++-
 drivers/staging/comedi/drivers/das1800.c           | 41 +++++++++----
 drivers/staging/comedi/drivers/das6402.c           | 11 +++-
 drivers/staging/comedi/drivers/das800.c            | 29 +++++++---
 drivers/staging/comedi/drivers/dt2801.c            | 28 +++++----
 drivers/staging/comedi/drivers/dt2811.c            |  9 ++-
 drivers/staging/comedi/drivers/dt2814.c            |  8 ++-
 drivers/staging/comedi/drivers/dt2815.c            |  8 ++-
 drivers/staging/comedi/drivers/dt282x.c            | 67 +++++++++++++++-------
 drivers/staging/comedi/drivers/dt3000.c            | 28 +++++++--
 drivers/staging/comedi/drivers/dt9812.c            | 13 +++--
 drivers/staging/comedi/drivers/dyna_pci10xx.c      | 18 ++++--
 drivers/staging/comedi/drivers/fl512.c             |  9 ++-
 drivers/staging/comedi/drivers/icp_multi.c         | 36 +++++++++---
 drivers/staging/comedi/drivers/ii_pci20kc.c        | 10 +++-
 drivers/staging/comedi/drivers/jr3_pci.c           |  5 +-
 drivers/staging/comedi/drivers/me4000.c            | 55 ++++++++++++++----
 drivers/staging/comedi/drivers/me4000.h            |  4 --
 drivers/staging/comedi/drivers/me_daq.c            | 27 ++++++---
 drivers/staging/comedi/drivers/mpc624.c            |  6 +-
 drivers/staging/comedi/drivers/mpc8260cpm.c        | 11 ----
 drivers/staging/comedi/drivers/multiq3.c           |  7 ++-
 drivers/staging/comedi/drivers/ni_6527.c           | 23 ++++++--
 drivers/staging/comedi/drivers/ni_at_a2150.c       | 27 ++++++---
 drivers/staging/comedi/drivers/ni_at_ao.c          | 12 +++-
 drivers/staging/comedi/drivers/ni_atmio16d.c       | 11 +++-
 drivers/staging/comedi/drivers/ni_daq_dio24.c      | 19 +-----
 drivers/staging/comedi/drivers/ni_labpc.c          | 53 ++++++++++++++---
 drivers/staging/comedi/drivers/ni_labpc_cs.c       | 10 ++--
 drivers/staging/comedi/drivers/ni_pcidio.c         | 34 ++++++++++-
 drivers/staging/comedi/drivers/ni_pcimio.c         |  4 +-
 drivers/staging/comedi/drivers/pcl711.c            | 11 +++-
 drivers/staging/comedi/drivers/pcl726.c            |  8 ++-
 drivers/staging/comedi/drivers/pcl812.c            | 23 ++++++--
 drivers/staging/comedi/drivers/pcl816.c            | 19 ++++--
 drivers/staging/comedi/drivers/pcl818.c            | 28 +++++++--
 drivers/staging/comedi/drivers/pcm3724.c           | 11 ++--
 drivers/staging/comedi/drivers/pcmad.c             |  6 +-
 drivers/staging/comedi/drivers/pcmda12.c           |  8 ++-
 drivers/staging/comedi/drivers/pcmmio.c            | 50 +++++++++++-----
 drivers/staging/comedi/drivers/pcmuio.c            | 30 ++++++----
 drivers/staging/comedi/drivers/rtd520.c            |  2 +-
 drivers/staging/comedi/drivers/rti800.c            |  9 ++-
 drivers/staging/comedi/drivers/rti802.c            |  8 ++-
 drivers/staging/comedi/drivers/s526.c              | 16 +++---
 drivers/staging/comedi/drivers/s626.c              |  5 +-
 drivers/staging/comedi/drivers/serial2002.c        | 21 ++++---
 89 files changed, 1204 insertions(+), 417 deletions(-)
drivers/staging/comedi/drivers/addi-data/addi_common.c +14 -5
index a5aa673..1e62f33 100644
@@ -76,9 +76,6 @@ You should also find the complete GPL in the COPYING file accompanying this sour
 /* Update-0.7.57->0.7.68MODULE_DESCRIPTION("Comedi ADDI-DATA module"); */
 /* Update-0.7.57->0.7.68MODULE_LICENSE("GPL"); */
 
-#define devpriv ((struct addi_private *)dev->private)
-#define this_board ((const struct addi_board *)dev->board_ptr)
-
 #if defined(CONFIG_APCI_1710) || defined(CONFIG_APCI_3200) || defined(CONFIG_APCI_3300)
 /* BYTE b_SaveFPUReg [94]; */
 
@@ -1495,6 +1492,8 @@ module_exit(driver_addi_cleanup_module);
 
 static int i_ADDI_Attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+	const struct addi_board *this_board = comedi_board(dev);
+	struct addi_private *devpriv;
 	struct comedi_subdevice *s;
 	int ret, pages, i, n_subdevices;
 	unsigned int dw_Dummy;
@@ -1505,9 +1504,10 @@ static int i_ADDI_Attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	unsigned char pci_bus, pci_slot, pci_func;
 	int i_Dma = 0;
 
-	ret = alloc_private(dev, sizeof(struct addi_private));
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 	if (!pci_list_builded) {
 		v_pci_card_list_init(this_board->i_VendorId, 1);	/* 1 for displaying the list.. */
@@ -1840,7 +1840,10 @@ static int i_ADDI_Attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static void i_ADDI_Detach(struct comedi_device *dev)
 {
-	if (dev->private) {
+	const struct addi_board *this_board = comedi_board(dev);
+	struct addi_private *devpriv = dev->private;
+
+	if (devpriv) {
 		if (devpriv->b_ValidDriver)
 			i_ADDI_Reset(dev);
 		if (dev->irq)
@@ -1891,6 +1894,7 @@ static void i_ADDI_Detach(struct comedi_device *dev)
 
 static int i_ADDI_Reset(struct comedi_device *dev)
 {
+	const struct addi_board *this_board = comedi_board(dev);
 
 	this_board->reset(dev);
 	return 0;
@@ -1918,6 +1922,8 @@ static int i_ADDI_Reset(struct comedi_device *dev)
 static irqreturn_t v_ADDI_Interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
+	const struct addi_board *this_board = comedi_board(dev);
+
 	this_board->interrupt(irq, d);
 	return IRQ_RETVAL(1);
 }
@@ -1946,8 +1952,11 @@ static irqreturn_t v_ADDI_Interrupt(int irq, void *d)
 static int i_ADDIDATA_InsnReadEeprom(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	const struct addi_board *this_board = comedi_board(dev);
+	struct addi_private *devpriv = dev->private;
 	unsigned short w_Data;
 	unsigned short w_Address;
+
 	w_Address = CR_CHAN(insn->chanspec);	/*  address to be read as 0,1,2,3...255 */
 
 	w_Data = w_EepromReadWord(devpriv->i_IobaseAmcc,
drivers/staging/comedi/drivers/addi-data/addi_eeprom.c +2 -0
index 3a9339b..5d31ecd 100644
@@ -805,6 +805,8 @@ void v_EepromCs76Read(unsigned int dw_Address, unsigned short w_offset, unsigned
 int i_EepromReadMainHeader(unsigned short w_PCIBoardEepromAddress,
 	char *pc_PCIChipInformation, struct comedi_device *dev)
 {
+	const struct addi_board *this_board = comedi_board(dev);
+	struct addi_private *devpriv = dev->private;
 	unsigned short w_Temp, i, w_Count = 0;
 	unsigned int ui_Temp;
 	struct str_MainHeader s_MainHeader;
drivers/staging/comedi/drivers/addi-data/hwdrv_apci035.c +14 -0
index 5997b2f..0fde7a3 100644
@@ -112,9 +112,11 @@ static int i_Flag = 1;
 int i_APCI035_ConfigTimerWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Status = 0;
 	unsigned int ui_Command = 0;
 	unsigned int ui_Mode = 0;
+
 	i_Temp = 0;
 	devpriv->tsk_Current = current;
 	devpriv->b_TimerSelectMode = data[0];
@@ -281,8 +283,10 @@ int i_APCI035_ConfigTimerWatchdog(struct comedi_device *dev, struct comedi_subde
 int i_APCI035_StartStopWriteTimerWatchdog(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Command = 0;
 	int i_Count = 0;
+
 	if (data[0] == 1) {
 		ui_Command =
 			inl(devpriv->iobase + ((i_WatchdogNbr - 1) * 32) + 12);
@@ -396,7 +400,9 @@ int i_APCI035_StartStopWriteTimerWatchdog(struct comedi_device *dev,
 int i_APCI035_ReadTimerWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Status = 0;	/*  Status register */
+
 	i_WatchdogNbr = insn->unused[0];
 
 	/******************/
@@ -456,6 +462,8 @@ int i_APCI035_ReadTimerWatchdog(struct comedi_device *dev, struct comedi_subdevi
 int i_APCI035_ConfigAnalogInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	devpriv->tsk_Current = current;
 	outl(0x200 | 0, devpriv->iobase + 128 + 0x4);
 	outl(0, devpriv->iobase + 128 + 0);
@@ -493,7 +501,9 @@ int i_APCI035_ConfigAnalogInput(struct comedi_device *dev, struct comedi_subdevi
 int i_APCI035_ReadAnalogInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_CommandRegister = 0;
+
 /******************/
 /*  Set the start */
 /******************/
@@ -527,7 +537,9 @@ int i_APCI035_ReadAnalogInput(struct comedi_device *dev, struct comedi_subdevice
 */
 int i_APCI035_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_Count = 0;
+
 	for (i_Count = 1; i_Count <= 4; i_Count++) {
 		i_WatchdogNbr = i_Count;
 		outl(0x0, devpriv->iobase + ((i_WatchdogNbr - 1) * 32) + 0);	/* stop all timers */
@@ -557,11 +569,13 @@ int i_APCI035_Reset(struct comedi_device *dev)
 static void v_APCI035_Interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_StatusRegister1 = 0;
 	unsigned int ui_StatusRegister2 = 0;
 	unsigned int ui_ReadCommand = 0;
 	unsigned int ui_ChannelNumber = 0;
 	unsigned int ui_DigitalTemperature = 0;
+
 	if (i_Temp == 1) {
 		i_WatchdogNbr = i_Flag;
 		i_Flag = i_Flag + 1;
drivers/staging/comedi/drivers/addi-data/hwdrv_apci1032.c +9 -2
index bab7b61..285c5c0 100644
@@ -87,10 +87,11 @@ static unsigned int ui_InterruptStatus;
 int i_APCI1032_ConfigDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_TmpValue;
-
 	unsigned int ul_Command1 = 0;
 	unsigned int ul_Command2 = 0;
+
 	devpriv->tsk_Current = current;
 
   /*******************************/
@@ -147,8 +148,10 @@ int i_APCI1032_ConfigDigitalInput(struct comedi_device *dev, struct comedi_subde
 int i_APCI1032_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_TmpValue = 0;
 	unsigned int ui_Channel;
+
 	ui_Channel = CR_CHAN(insn->chanspec);
 	if (ui_Channel <= 31) {
 		ui_TmpValue = (unsigned int) inl(devpriv->iobase + APCI1032_DIGITAL_IP);
@@ -188,6 +191,7 @@ int i_APCI1032_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI1032_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_PortValue = data[0];
 	unsigned int ui_Mask = 0;
 	unsigned int ui_NoOfChannels;
@@ -248,8 +252,9 @@ int i_APCI1032_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_sub
 static void v_APCI1032_Interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
-
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
+
 	/* disable the interrupt */
 	ui_Temp = inl(devpriv->iobase + APCI1032_DIGITAL_IP_IRQ);
 	outl(ui_Temp & APCI1032_DIGITAL_IP_INTERRUPT_DISABLE,
@@ -279,6 +284,8 @@ static void v_APCI1032_Interrupt(int irq, void *d)
 
 int i_APCI1032_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
+
 	outl(0x0, devpriv->iobase + APCI1032_DIGITAL_IP_IRQ);	/* disable the interrupts */
 	inl(devpriv->iobase + APCI1032_DIGITAL_IP_INTERRUPT_STATUS);	/* Reset the interrupt status register */
 	outl(0x0, devpriv->iobase + APCI1032_DIGITAL_IP_INTERRUPT_MODE1);	/* Disable the and/or interrupt */
drivers/staging/comedi/drivers/addi-data/hwdrv_apci1500.c +20 -1
index 62f421a..3ad728e 100644
@@ -141,6 +141,7 @@ static int i_APCI1500_ConfigDigitalInputEvent(struct comedi_device *dev,
 					      struct comedi_insn *insn,
 					      unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_PatternPolarity = 0, i_PatternTransition = 0, i_PatternMask = 0;
 	int i_MaxChannel = 0, i_Count = 0, i_EventMask = 0;
 	int i_PatternTransitionCount = 0, i_RegValue;
@@ -525,8 +526,10 @@ static int i_APCI1500_StartStopInputEvent(struct comedi_device *dev,
 					  struct comedi_insn *insn,
 					  unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_Event1InterruptStatus = 0, i_Event2InterruptStatus =
 		0, i_RegValue;
+
 	switch (data[0]) {
 	case START:
 	      /*************************/
@@ -792,7 +795,9 @@ static int i_APCI1500_Initialisation(struct comedi_device *dev,
 				     struct comedi_insn *insn,
 				     unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_DummyRead = 0;
+
     /******************/
 	/* Software reset */
     /******************/
@@ -966,10 +971,12 @@ static int i_APCI1500_ReadMoreDigitalInput(struct comedi_device *dev,
 					   struct comedi_insn *insn,
 					   unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_PortValue = data[1];
 	unsigned int ui_Mask = 0;
 	unsigned int ui_Channel;
 	unsigned int ui_TmpValue = 0;
+
 	ui_Channel = CR_CHAN(insn->chanspec);
 
 	switch (data[0]) {
@@ -1051,6 +1058,8 @@ static int i_APCI1500_ConfigDigitalOutputErrorInterrupt(struct comedi_device *de
 							struct comedi_insn *insn,
 							unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	devpriv->b_OutputMemoryStatus = data[0];
 	return insn->n;
 }
@@ -1079,9 +1088,9 @@ static int i_APCI1500_WriteDigitalOutput(struct comedi_device *dev,
 					 struct comedi_insn *insn,
 					 unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	static unsigned int ui_Temp = 0;
 	unsigned int ui_Temp1;
-
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
 
 	if (!devpriv->b_OutputMemoryStatus) {
@@ -1274,6 +1283,7 @@ static int i_APCI1500_ConfigCounterTimerWatchdog(struct comedi_device *dev,
 						 struct comedi_insn *insn,
 						 unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_TimerCounterMode, i_MasterConfiguration;
 
 	devpriv->tsk_Current = current;
@@ -1875,6 +1885,7 @@ static int i_APCI1500_StartStopTriggerTimerCounterWatchdog(struct comedi_device
 							   struct comedi_insn *insn,
 							   unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_CommandAndStatusValue;
 
 	switch (data[0]) {
@@ -2198,7 +2209,9 @@ static int i_APCI1500_ReadCounterTimerWatchdog(struct comedi_device *dev,
 					       struct comedi_insn *insn,
 					       unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_CommandAndStatusValue;
+
 	switch (data[0]) {
 	case COUNTER1:
 		/* Read counter/timer1 */
@@ -2421,9 +2434,11 @@ static int i_APCI1500_ConfigureInterrupt(struct comedi_device *dev,
 					 struct comedi_insn *insn,
 					 unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Status;
 	int i_RegValue;
 	int i_Constant;
+
 	devpriv->tsk_Current = current;
 	outl(0x0, devpriv->i_IobaseAmcc + 0x38);
 	if (data[0] == 1) {
@@ -2597,8 +2612,10 @@ static void v_APCI1500_Interrupt(int irq, void *d)
 {
 
 	struct comedi_device *dev = d;
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_InterruptStatus = 0;
 	int i_RegValue = 0;
+
 	i_InterruptMask = 0;
 
  /***********************************/
@@ -2840,7 +2857,9 @@ static void v_APCI1500_Interrupt(int irq, void *d)
 */
 static int i_APCI1500_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_DummyRead = 0;
+
 	i_TimerCounter1Init = 0;
 	i_TimerCounter2Init = 0;
 	i_WatchdogCounter3Init = 0;
drivers/staging/comedi/drivers/addi-data/hwdrv_apci1516.c +16 -1
index 8a584a0..04a8745 100644
@@ -76,8 +76,10 @@ You should also find the complete GPL in the COPYING file accompanying this sour
 int i_APCI1516_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_TmpValue = 0;
 	unsigned int ui_Channel;
+
 	ui_Channel = CR_CHAN(insn->chanspec);
 	if (ui_Channel <= 7) {
 		ui_TmpValue = (unsigned int) inw(devpriv->iobase + APCI1516_DIGITAL_IP);
@@ -117,7 +119,7 @@ int i_APCI1516_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI1516_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
-
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_PortValue = data[0];
 	unsigned int ui_Mask = 0;
 	unsigned int ui_NoOfChannels;
@@ -174,6 +176,8 @@ int i_APCI1516_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_sub
 int i_APCI1516_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	devpriv->b_OutputMemoryStatus = data[0];
 	return insn->n;
 }
@@ -202,6 +206,7 @@ int i_APCI1516_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subd
 int i_APCI1516_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp, ui_Temp1;
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
 
@@ -363,8 +368,10 @@ int i_APCI1516_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 	struct comedi_insn *insn, unsigned int *data)
 {
 
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
+
 	ui_Temp = data[0];
 	*data = inw(devpriv->iobase + APCI1516_DIGITAL_OP_RW);
 	if (ui_Temp == 0) {
@@ -422,6 +429,8 @@ int i_APCI1516_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI1516_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	if (data[0] == 0) {
 		/* Disable the watchdog */
 		outw(0x0,
@@ -468,6 +477,8 @@ int i_APCI1516_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice
 int i_APCI1516_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	switch (data[0]) {
 	case 0:		/* stop the watchdog */
 		outw(0x0, devpriv->i_IobaseAddon + APCI1516_WATCHDOG_ENABLEDISABLE);	/* disable the watchdog */
@@ -513,6 +524,8 @@ int i_APCI1516_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_s
 int i_APCI1516_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	data[0] = inw(devpriv->i_IobaseAddon + APCI1516_WATCHDOG_STATUS) & 0x1;
 	return insn->n;
 }
@@ -534,6 +547,8 @@ int i_APCI1516_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *
 
 int i_APCI1516_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
+
 	outw(0x0, devpriv->iobase + APCI1516_DIGITAL_OP);	/* RESETS THE DIGITAL OUTPUTS */
 	outw(0x0, devpriv->i_IobaseAddon + APCI1516_WATCHDOG_ENABLEDISABLE);
 	outw(0x0, devpriv->i_IobaseAddon + APCI1516_WATCHDOG_RELOAD_VALUE);
drivers/staging/comedi/drivers/addi-data/hwdrv_apci1564.c +16 -0
index 5b92e45..393d6d1 100644
@@ -89,6 +89,8 @@ static unsigned int ui_InterruptData, ui_Type;
 int i_APCI1564_ConfigDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	devpriv->tsk_Current = current;
    /*******************************/
 	/* Set the digital input logic */
@@ -150,6 +152,7 @@ int i_APCI1564_ConfigDigitalInput(struct comedi_device *dev, struct comedi_subde
 int i_APCI1564_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_TmpValue = 0;
 	unsigned int ui_Channel;
 
@@ -192,6 +195,7 @@ int i_APCI1564_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI1564_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_PortValue = data[0];
 	unsigned int ui_Mask = 0;
 	unsigned int ui_NoOfChannels;
@@ -260,6 +264,7 @@ int i_APCI1564_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_sub
 int i_APCI1564_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command = 0;
 
 	if ((data[0] != 0) && (data[0] != 1)) {
@@ -317,6 +322,7 @@ int i_APCI1564_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subd
 int i_APCI1564_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp, ui_Temp1;
 	unsigned int ui_NoOfChannel;
 
@@ -491,6 +497,7 @@ int i_APCI1564_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subde
 int i_APCI1564_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel;
 
@@ -569,7 +576,9 @@ int i_APCI1564_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI1564_ConfigTimerCounterWatchdog(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command1 = 0;
+
 	devpriv->tsk_Current = current;
 	if (data[0] == ADDIDATA_WATCHDOG) {
 		devpriv->b_TimerSelectMode = ADDIDATA_WATCHDOG;
@@ -723,7 +732,9 @@ int i_APCI1564_ConfigTimerCounterWatchdog(struct comedi_device *dev,
 int i_APCI1564_StartStopWriteTimerCounterWatchdog(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command1 = 0;
+
 	if (devpriv->b_TimerSelectMode == ADDIDATA_WATCHDOG) {
 		switch (data[1]) {
 		case 0:	/* stop the watchdog */
@@ -818,6 +829,7 @@ int i_APCI1564_StartStopWriteTimerCounterWatchdog(struct comedi_device *dev,
 int i_APCI1564_ReadTimerCounterWatchdog(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command1 = 0;
 
 	if (devpriv->b_TimerSelectMode == ADDIDATA_WATCHDOG) {
@@ -921,10 +933,12 @@ int i_APCI1564_ReadInterruptStatus(struct comedi_device *dev, struct comedi_subd
 static void v_APCI1564_Interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_DO, ui_DI;
 	unsigned int ui_Timer;
 	unsigned int ui_C1, ui_C2, ui_C3, ui_C4;
 	unsigned int ul_Command2 = 0;
+
 	ui_DI = inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_IP +
 		APCI1564_DIGITAL_IP_IRQ) & 0x01;
 	ui_DO = inl(devpriv->i_IobaseAmcc + APCI1564_DIGITAL_OP +
@@ -1106,6 +1120,8 @@ static void v_APCI1564_Interrupt(int irq, void *d)
 
 int i_APCI1564_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
+
 	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 */
drivers/staging/comedi/drivers/addi-data/hwdrv_apci16xx.c +8 -0
index 00a088f..3f55cd0 100644
@@ -93,6 +93,8 @@ You should also find the complete GPL in the COPYING file accompanying this sour
 int i_APCI16XX_InsnConfigInitTTLIO(struct comedi_device *dev,
 	struct comedi_subdevice *s, 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;
@@ -286,6 +288,8 @@ int i_APCI16XX_InsnConfigInitTTLIO(struct comedi_device *dev,
 int i_APCI16XX_InsnBitsReadTTLIO(struct comedi_device *dev,
 	struct comedi_subdevice *s, 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 =
@@ -433,6 +437,8 @@ int i_APCI16XX_InsnBitsReadTTLIO(struct comedi_device *dev,
 int i_APCI16XX_InsnReadTTLIOAllPortValue(struct comedi_device *dev,
 	struct comedi_subdevice *s, 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;
 	unsigned char b_Cpt = 0;
@@ -573,6 +579,8 @@ int i_APCI16XX_InsnReadTTLIOAllPortValue(struct comedi_device *dev,
 int i_APCI16XX_InsnBitsWriteTTLIO(struct comedi_device *dev,
 	struct comedi_subdevice *s, 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 =
drivers/staging/comedi/drivers/addi-data/hwdrv_apci2016.c +12 -0
index 49dcbe2..b8721dd1 100644
@@ -78,6 +78,8 @@ You should also find the complete GPL in the COPYING file accompanying this sour
 int i_APCI2016_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	if ((data[0] != 0) && (data[0] != 1)) {
 		comedi_error(dev,
 			"Not a valid Data !!! ,Data should be 1 or 0\n");
@@ -114,8 +116,10 @@ int i_APCI2016_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subd
 int i_APCI2016_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_NoOfChannel;
 	unsigned int ui_Temp, ui_Temp1;
+
 	ui_NoOfChannel = CR_CHAN(insn->chanspec);
 	if (ui_NoOfChannel > 15) {
 		comedi_error(dev,
@@ -269,8 +273,10 @@ int i_APCI2016_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subde
 int i_APCI2016_BitsDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel;
+
 	ui_NoOfChannel = CR_CHAN(insn->chanspec);
 	if (ui_NoOfChannel > 15) {
 		comedi_error(dev,
@@ -340,6 +346,7 @@ int i_APCI2016_BitsDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI2016_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 
 	if (data[0] == 0) {
 		/* Disable the watchdog */
@@ -383,6 +390,7 @@ int i_APCI2016_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice
 int i_APCI2016_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 
 	switch (data[0]) {
 	case 0:		/* stop the watchdog */
@@ -430,6 +438,8 @@ int i_APCI2016_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_s
 int i_APCI2016_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	udelay(5);
 	data[0] = inw(devpriv->i_IobaseAddon + APCI2016_WATCHDOG_STATUS) & 0x1;
 	return insn->n;
@@ -452,6 +462,8 @@ int i_APCI2016_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *
 
 int i_APCI2016_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
+
 	outw(0x0, devpriv->iobase + APCI2016_DIGITAL_OP);	/*  Resets the digital output channels */
 	outw(0x0, devpriv->i_IobaseAddon + APCI2016_WATCHDOG_ENABLEDISABLE);
 	outw(0x0, devpriv->i_IobaseAddon + APCI2016_WATCHDOG_RELOAD_VALUE);
drivers/staging/comedi/drivers/addi-data/hwdrv_apci2032.c +14 -0
index 002297d..ad57f02 100644
@@ -82,7 +82,9 @@ static unsigned int ui_InterruptData, ui_Type;
 int i_APCI2032_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command = 0;
+
 	devpriv->tsk_Current = current;
 
 	if ((data[0] != 0) && (data[0] != 1)) {
@@ -137,8 +139,10 @@ int i_APCI2032_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subd
 int i_APCI2032_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp, ui_Temp1;
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
+
 	if (devpriv->b_OutputMemoryStatus) {
 		ui_Temp = inl(devpriv->iobase + APCI2032_DIGITAL_OP);
 
@@ -316,8 +320,10 @@ int i_APCI2032_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subde
 int i_APCI2032_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel;
+
 	ui_NoOfChannel = CR_CHAN(insn->chanspec);
 	ui_Temp = data[0];
 	*data = inl(devpriv->iobase + APCI2032_DIGITAL_OP_RW);
@@ -383,6 +389,8 @@ int i_APCI2032_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI2032_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	if (data[0] == 0) {
 		/* Disable the watchdog */
 		outl(0x0,
@@ -424,6 +432,8 @@ int i_APCI2032_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice
 int i_APCI2032_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	switch (data[0]) {
 	case 0:		/* stop the watchdog */
 		outl(0x0, devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG + APCI2032_TCW_PROG);	/* disable the watchdog */
@@ -469,6 +479,7 @@ int i_APCI2032_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_s
 int i_APCI2032_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 
 	data[0] =
 		inl(devpriv->iobase + APCI2032_DIGITAL_OP_WATCHDOG +
@@ -496,6 +507,7 @@ int i_APCI2032_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *
 void v_APCI2032_Interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_DO;
 
 	ui_DO = inl(devpriv->iobase + APCI2032_DIGITAL_OP_IRQ) & 0x1;	/* Check if VCC OR CC interrupt has occurred. */
@@ -569,6 +581,8 @@ int i_APCI2032_ReadInterruptStatus(struct comedi_device *dev, struct comedi_subd
 
 int i_APCI2032_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
+
 	devpriv->b_DigitalOutputRegister = 0;
 	ui_Type = 0;
 	outl(0x0, devpriv->iobase + APCI2032_DIGITAL_OP);	/* Resets the output channels */
drivers/staging/comedi/drivers/addi-data/hwdrv_apci2200.c +17 -2
index 3d378b5..db74f77 100644
@@ -76,8 +76,10 @@ You should also find the complete GPL in the COPYING file accompanying this sour
 int i_APCI2200_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_TmpValue = 0;
 	unsigned int ui_Channel;
+
 	ui_Channel = CR_CHAN(insn->chanspec);
 	if (ui_Channel <= 7) {
 		ui_TmpValue = (unsigned int) inw(devpriv->iobase + APCI2200_DIGITAL_IP);
@@ -115,7 +117,7 @@ int i_APCI2200_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI2200_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
-
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_PortValue = data[0];
 	unsigned int ui_Mask = 0;
 	unsigned int ui_NoOfChannels;
@@ -172,6 +174,8 @@ int i_APCI2200_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_sub
 int i_APCI2200_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	devpriv->b_OutputMemoryStatus = data[0];
 	return insn->n;
 }
@@ -200,8 +204,10 @@ int i_APCI2200_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subd
 int i_APCI2200_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp, ui_Temp1;
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
+
 	if (devpriv->b_OutputMemoryStatus) {
 		ui_Temp = inw(devpriv->iobase + APCI2200_DIGITAL_OP);
 
@@ -357,9 +363,10 @@ int i_APCI2200_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subde
 int i_APCI2200_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
-
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
+
 	ui_Temp = data[0];
 	*data = inw(devpriv->iobase + APCI2200_DIGITAL_OP);
 	if (ui_Temp == 0) {
@@ -421,6 +428,8 @@ int i_APCI2200_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI2200_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	if (data[0] == 0) {
 		/* Disable the watchdog */
 		outw(0x0,
@@ -467,6 +476,8 @@ int i_APCI2200_ConfigWatchdog(struct comedi_device *dev, struct comedi_subdevice
 int i_APCI2200_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	switch (data[0]) {
 	case 0:		/* stop the watchdog */
 		outw(0x0, devpriv->iobase + APCI2200_WATCHDOG + APCI2200_WATCHDOG_ENABLEDISABLE);	/* disable the watchdog */
@@ -512,6 +523,8 @@ int i_APCI2200_StartStopWriteWatchdog(struct comedi_device *dev, struct comedi_s
 int i_APCI2200_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	data[0] =
 		inw(devpriv->iobase + APCI2200_WATCHDOG +
 		APCI2200_WATCHDOG_STATUS) & 0x1;
@@ -535,6 +548,8 @@ int i_APCI2200_ReadWatchdog(struct comedi_device *dev, struct comedi_subdevice *
 
 int i_APCI2200_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
+
 	outw(0x0, devpriv->iobase + APCI2200_DIGITAL_OP);	/* RESETS THE DIGITAL OUTPUTS */
 	outw(0x0,
 		devpriv->iobase + APCI2200_WATCHDOG +
drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c +35 -7

191 lines not on this page · raw message

drivers/staging/comedi/drivers/addi-data/hwdrv_apci3200.c +26 -1
index f9545b0..c082f14 100644
@@ -546,8 +546,10 @@ int i_APCI3200_GetChannelCalibrationValue(struct comedi_device *dev,
 int i_APCI3200_ReadDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp = 0;
 	unsigned int ui_NoOfChannel = 0;
+
 	ui_NoOfChannel = CR_CHAN(insn->chanspec);
 	ui_Temp = data[0];
 	*data = inl(devpriv->i_IobaseReserved);
@@ -604,6 +606,7 @@ int i_APCI3200_ReadDigitalInput(struct comedi_device *dev, struct comedi_subdevi
 int i_APCI3200_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 
 	if ((data[0] != 0) && (data[0] != 1)) {
 		comedi_error(dev,
@@ -649,8 +652,10 @@ int i_APCI3200_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subd
 int i_APCI3200_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp = 0, ui_Temp1 = 0;
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
+
 	if (devpriv->b_OutputMemoryStatus) {
 		ui_Temp = inl(devpriv->i_IobaseAddon);
 
@@ -762,8 +767,10 @@ int i_APCI3200_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subde
 int i_APCI3200_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel;
+
 	ui_NoOfChannel = CR_CHAN(insn->chanspec);
 	ui_Temp = data[0];
 	*data = inl(devpriv->i_IobaseAddon);
@@ -870,7 +877,7 @@ int i_APCI3200_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI3200_ConfigAnalogInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
-
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Config = 0, ul_Temp = 0;
 	unsigned int ui_ChannelNo = 0;
 	unsigned int ui_Dummy = 0;
@@ -1647,6 +1654,7 @@ int i_APCI3200_ReadAnalogInput(struct comedi_device *dev, struct comedi_subdevic
 int i_APCI3200_Read1AnalogInputChannel(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_EOC = 0;
 	unsigned int ui_ChannelNo = 0;
 	unsigned int ui_CommandRegister = 0;
@@ -1771,6 +1779,7 @@ int i_APCI3200_Read1AnalogInputChannel(struct comedi_device *dev,
 */
 int i_APCI3200_ReadCalibrationOffsetValue(struct comedi_device *dev, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp = 0, ui_EOC = 0;
 	unsigned int ui_CommandRegister = 0;
 
@@ -1907,6 +1916,7 @@ int i_APCI3200_ReadCalibrationOffsetValue(struct comedi_device *dev, unsigned in
 */
 int i_APCI3200_ReadCalibrationGainValue(struct comedi_device *dev, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_EOC = 0;
 	int ui_CommandRegister = 0;
 
@@ -2043,6 +2053,7 @@ int i_APCI3200_ReadCalibrationGainValue(struct comedi_device *dev, unsigned int
 
 int i_APCI3200_ReadCJCValue(struct comedi_device *dev, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_EOC = 0;
 	int ui_CommandRegister = 0;
 
@@ -2162,8 +2173,10 @@ int i_APCI3200_ReadCJCValue(struct comedi_device *dev, unsigned int *data)
 */
 int i_APCI3200_ReadCJCCalOffset(struct comedi_device *dev, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_EOC = 0;
 	int ui_CommandRegister = 0;
+
   /*******************************************/
 	/*Read calibration offset value for the CJC */
   /*******************************************/
@@ -2278,8 +2291,10 @@ int i_APCI3200_ReadCJCCalOffset(struct comedi_device *dev, unsigned int *data)
 */
 int i_APCI3200_ReadCJCCalGain(struct comedi_device *dev, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_EOC = 0;
 	int ui_CommandRegister = 0;
+
   /*******************************/
 	/* Set the convert timing unit */
   /*******************************/
@@ -2400,8 +2415,10 @@ int i_APCI3200_ReadCJCCalGain(struct comedi_device *dev, unsigned int *data)
 int i_APCI3200_InsnBits_AnalogInput_Test(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Configuration = 0;
 	int i_Temp;		/* ,i_TimeUnit; */
+
 	/* if(i_Initialised==0) */
 
 	if (s_BoardInfos[dev->minor].i_Initialised == 0) {
@@ -2759,7 +2776,9 @@ int i_APCI3200_CommandTestAnalogInput(struct comedi_device *dev, struct comedi_s
 
 int i_APCI3200_StopCyclicAcquisition(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Configuration = 0;
+
 	/* i_InterruptFlag=0; */
 	/* i_Initialised=0; */
 	/* i_Count=0; */
@@ -2809,6 +2828,7 @@ int i_APCI3200_StopCyclicAcquisition(struct comedi_device *dev, struct comedi_su
 
 int i_APCI3200_CommandAnalogInput(struct comedi_device *dev, struct comedi_subdevice *s)
 {
+	struct addi_private *devpriv = dev->private;
 	struct comedi_cmd *cmd = &s->async->cmd;
 	unsigned int ui_Configuration = 0;
 	/* INT  i_CurrentSource = 0; */
@@ -2821,6 +2841,7 @@ int i_APCI3200_CommandAnalogInput(struct comedi_device *dev, struct comedi_subde
 	unsigned int ui_DelayTime = 0;
 	unsigned int ui_DelayTimeBase = 0;
 	unsigned int ui_DelayMode = 0;
+
 	/* i_FirstChannel=cmd->chanlist[0]; */
 	/* i_LastChannel=cmd->chanlist[1]; */
 	s_BoardInfos[dev->minor].i_FirstChannel = cmd->chanlist[0];
@@ -2996,8 +3017,10 @@ int i_APCI3200_CommandAnalogInput(struct comedi_device *dev, struct comedi_subde
 
 int i_APCI3200_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_Temp;
 	unsigned int dw_Dummy;
+
 	/* i_InterruptFlag=0; */
 	/* i_Initialised==0; */
 	/* i_Count=0; */
@@ -3053,6 +3076,7 @@ int i_APCI3200_Reset(struct comedi_device *dev)
 void v_APCI3200_Interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_StatusRegister = 0;
 	unsigned int ui_ChannelNumber = 0;
 	int i_CalibrationFlag = 0;
@@ -3494,6 +3518,7 @@ void v_APCI3200_Interrupt(int irq, void *d)
 */
 int i_APCI3200_InterruptHandleEos(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_StatusRegister = 0;
 	struct comedi_subdevice *s = dev->subdevices + 0;
 
drivers/staging/comedi/drivers/addi-data/hwdrv_apci3501.c +18 -0
index acaceb0..a730a4a 100644
@@ -76,8 +76,10 @@ You should also find the complete GPL in the COPYING file accompanying this sour
 int i_APCI3501_ReadDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel;
+
 	ui_NoOfChannel = CR_CHAN(insn->chanspec);
 	ui_Temp = data[0];
 	*data = inl(devpriv->iobase + APCI3501_DIGITAL_IP);
@@ -124,6 +126,7 @@ int i_APCI3501_ReadDigitalInput(struct comedi_device *dev, struct comedi_subdevi
 int i_APCI3501_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 
 	if ((data[0] != 0) && (data[0] != 1)) {
 		comedi_error(dev,
@@ -164,8 +167,10 @@ int i_APCI3501_ConfigDigitalOutput(struct comedi_device *dev, struct comedi_subd
 int i_APCI3501_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp, ui_Temp1;
 	unsigned int ui_NoOfChannel = CR_CHAN(insn->chanspec);	/*  get the channel */
+
 	if (devpriv->b_OutputMemoryStatus) {
 		ui_Temp = inl(devpriv->iobase + APCI3501_DIGITAL_OP);
 	}			/* if(devpriv->b_OutputMemoryStatus ) */
@@ -251,6 +256,7 @@ int i_APCI3501_WriteDigitalOutput(struct comedi_device *dev, struct comedi_subde
 int i_APCI3501_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Temp;
 	unsigned int ui_NoOfChannel;
 
@@ -301,6 +307,8 @@ int i_APCI3501_ReadDigitalOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI3501_ConfigAnalogOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
+
 	outl(data[0],
 		devpriv->iobase + APCI3501_ANALOG_OUTPUT +
 		APCI3501_AO_VOLT_MODE);
@@ -339,6 +347,7 @@ int i_APCI3501_ConfigAnalogOutput(struct comedi_device *dev, struct comedi_subde
 int i_APCI3501_WriteAnalogOutput(struct comedi_device *dev, struct comedi_subdevice *s,
 	struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command1 = 0, ul_Channel_no, ul_Polarity, ul_DAC_Ready = 0;
 
 	ul_Channel_no = CR_CHAN(insn->chanspec);
@@ -413,7 +422,9 @@ int i_APCI3501_WriteAnalogOutput(struct comedi_device *dev, struct comedi_subdev
 int i_APCI3501_ConfigTimerCounterWatchdog(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command1 = 0;
+
 	devpriv->tsk_Current = current;
 	if (data[0] == ADDIDATA_WATCHDOG) {
 
@@ -514,8 +525,10 @@ int i_APCI3501_ConfigTimerCounterWatchdog(struct comedi_device *dev,
 int i_APCI3501_StartStopWriteTimerCounterWatchdog(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned int ul_Command1 = 0;
 	int i_Temp;
+
 	if (devpriv->b_TimerSelectMode == ADDIDATA_WATCHDOG) {
 
 		if (data[1] == 1) {
@@ -616,6 +629,7 @@ int i_APCI3501_StartStopWriteTimerCounterWatchdog(struct comedi_device *dev,
 int i_APCI3501_ReadTimerCounterWatchdog(struct comedi_device *dev,
 	struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 
 	if (devpriv->b_TimerSelectMode == ADDIDATA_WATCHDOG) {
 		data[0] =
@@ -656,8 +670,10 @@ int i_APCI3501_ReadTimerCounterWatchdog(struct comedi_device *dev,
 
 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);
@@ -709,8 +725,10 @@ void v_APCI3501_Interrupt(int irq, void *d)
 {
 	int i_temp;
 	struct comedi_device *dev = d;
+	struct addi_private *devpriv = dev->private;
 	unsigned int ui_Timer_AOWatchdog;
 	unsigned long ul_Command1;
+
 	/*  Disable Interrupt */
 	ul_Command1 =
 		inl(devpriv->iobase + APCI3501_WATCHDOG + APCI3501_TCW_PROG);
drivers/staging/comedi/drivers/addi-data/hwdrv_apci3xxx.c +18 -0
index fff99df..80974f2 100644
@@ -69,6 +69,8 @@ You should also find the complete GPL in the COPYING file accompanying this sour
 */
 static int i_APCI3XXX_TestConversionStarted(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
+
 	if ((readl(devpriv->dw_AiBase + 8) & 0x80000UL) == 0x80000UL)
 		return 1;
 	else
@@ -108,6 +110,8 @@ static int i_APCI3XXX_AnalogInputConfigOperatingMode(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_TimeBase = 0;
 	unsigned char b_SingleDiff = 0;
@@ -358,6 +362,8 @@ static int i_APCI3XXX_InsnReadAnalogInput(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_Configuration = (unsigned char) CR_RANGE(insn->chanspec);
 	unsigned char b_Channel = (unsigned char) CR_CHAN(insn->chanspec);
@@ -571,6 +577,7 @@ static int i_APCI3XXX_InsnReadAnalogInput(struct comedi_device *dev,
 static void v_APCI3XXX_Interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
+	struct addi_private *devpriv = dev->private;
 	unsigned char b_CopyCpt = 0;
 	unsigned int dw_Status = 0;
 
@@ -651,6 +658,7 @@ static int i_APCI3XXX_InsnWriteAnalogOutput(struct comedi_device *dev,
 					    struct comedi_insn *insn,
 					    unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned char b_Range = (unsigned char) CR_RANGE(insn->chanspec);
 	unsigned char b_Channel = (unsigned char) CR_CHAN(insn->chanspec);
 	unsigned int dw_Status = 0;
@@ -755,6 +763,7 @@ static int i_APCI3XXX_InsnConfigInitTTLIO(struct comedi_device *dev,
 					  struct comedi_insn *insn,
 					  unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned char b_Command = 0;
 
@@ -884,6 +893,7 @@ static int i_APCI3XXX_InsnBitsTTLIO(struct comedi_device *dev,
 				    struct comedi_insn *insn,
 				    unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned char b_ChannelCpt = 0;
 	unsigned int dw_ChannelMask = 0;
@@ -1040,6 +1050,7 @@ static int i_APCI3XXX_InsnReadTTLIO(struct comedi_device *dev,
 				    struct comedi_insn *insn,
 				    unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned char b_Channel = (unsigned char) CR_CHAN(insn->chanspec);
 	int i_ReturnValue = insn->n;
 	unsigned int *pls_ReadData = data;
@@ -1154,6 +1165,7 @@ static int i_APCI3XXX_InsnWriteTTLIO(struct comedi_device *dev,
 				     struct comedi_insn *insn,
 				     unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned char b_Channel = (unsigned char) CR_CHAN(insn->chanspec);
 	unsigned char b_State = 0;
@@ -1267,6 +1279,7 @@ static int i_APCI3XXX_InsnReadDigitalInput(struct comedi_device *dev,
 					   struct comedi_insn *insn,
 					   unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned char b_Channel = (unsigned char) CR_CHAN(insn->chanspec);
 	unsigned int dw_Temp = 0;
@@ -1327,6 +1340,7 @@ static int i_APCI3XXX_InsnBitsDigitalInput(struct comedi_device *dev,
 					   struct comedi_insn *insn,
 					   unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned int dw_Temp = 0;
 
@@ -1382,6 +1396,7 @@ static int i_APCI3XXX_InsnBitsDigitalOutput(struct comedi_device *dev,
 					    struct comedi_insn *insn,
 					    unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned char b_ChannelCpt = 0;
 	unsigned int dw_ChannelMask = 0;
@@ -1480,6 +1495,7 @@ static int i_APCI3XXX_InsnWriteDigitalOutput(struct comedi_device *dev,
 					     struct comedi_insn *insn,
 					     unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned char b_Channel = CR_CHAN(insn->chanspec);
 	unsigned char b_State = 0;
@@ -1557,6 +1573,7 @@ static int i_APCI3XXX_InsnReadDigitalOutput(struct comedi_device *dev,
 					    struct comedi_insn *insn,
 					    unsigned int *data)
 {
+	struct addi_private *devpriv = dev->private;
 	int i_ReturnValue = insn->n;
 	unsigned char b_Channel = CR_CHAN(insn->chanspec);
 	unsigned int dw_Status = 0;
@@ -1614,6 +1631,7 @@ static int i_APCI3XXX_InsnReadDigitalOutput(struct comedi_device *dev,
 
 static int i_APCI3XXX_Reset(struct comedi_device *dev)
 {
+	struct addi_private *devpriv = dev->private;
 	unsigned char b_Cpt = 0;
 
 	/*************************/
drivers/staging/comedi/drivers/adl_pci9111.c +25 -11
index 9db36f5..6b12adc 100644
@@ -363,8 +363,6 @@ struct pci9111_private_data {
 	short ai_bounce_buffer[2 * PCI9111_FIFO_HALF_SIZE];
 };
 
-#define dev_private	((struct pci9111_private_data *)dev->private)
-
 /*  ------------------------------------------------------------------ */
 /*  PLX9050 SECTION */
 /*  ------------------------------------------------------------------ */
@@ -412,6 +410,8 @@ static void plx9050_interrupt_control(unsigned long io_base,
 
 static void pci9111_timer_set(struct comedi_device *dev)
 {
+	struct pci9111_private_data *dev_private = dev->private;
+
 	pci9111_8254_control_set(PCI9111_8254_COUNTER_0 |
 				 PCI9111_8254_READ_LOAD_LSB_MSB |
 				 PCI9111_8254_MODE_0 |
@@ -525,6 +525,8 @@ static void pci9111_interrupt_source_set(struct comedi_device *dev,
 static int pci9111_ai_cancel(struct comedi_device *dev,
 			     struct comedi_subdevice *s)
 {
+	struct pci9111_private_data *dev_private = dev->private;
+
 	/*  Disable interrupts */
 
 	plx9050_interrupt_control(dev_private->lcr_io_base, true, true, true,
@@ -556,11 +558,12 @@ static int
 pci9111_ai_do_cmd_test(struct comedi_device *dev,
 		       struct comedi_subdevice *s, struct comedi_cmd *cmd)
 {
+	const struct pci9111_board *board = comedi_board(dev);
+	struct pci9111_private_data *dev_private = dev->private;
 	int tmp;
 	int error = 0;
 	int range, reference;
 	int i;
-	struct pci9111_board *board = (struct pci9111_board *)dev->board_ptr;
 
 	/*  Step 1 : check if trigger are trivialy valid */
 
@@ -756,6 +759,7 @@ pci9111_ai_do_cmd_test(struct comedi_device *dev,
 static int pci9111_ai_do_cmd(struct comedi_device *dev,
 			     struct comedi_subdevice *subdevice)
 {
+	struct pci9111_private_data *dev_private = dev->private;
 	struct comedi_cmd *async_cmd = &subdevice->async->cmd;
 
 	if (!dev->irq) {
@@ -881,10 +885,10 @@ static void pci9111_ai_munge(struct comedi_device *dev,
 			     unsigned int num_bytes,
 			     unsigned int start_chan_index)
 {
+	const struct pci9111_board *board = comedi_board(dev);
 	unsigned int i, num_samples = num_bytes / sizeof(short);
 	short *array = data;
-	int resolution =
-	    ((struct pci9111_board *)dev->board_ptr)->ai_resolution;
+	int resolution = board->ai_resolution;
 
 	for (i = 0; i < num_samples; i++) {
 		if (resolution == PCI9111_HR_AI_RESOLUTION)
@@ -907,6 +911,7 @@ static void pci9111_ai_munge(struct comedi_device *dev,
 static irqreturn_t pci9111_interrupt(int irq, void *p_device)
 {
 	struct comedi_device *dev = p_device;
+	struct pci9111_private_data *dev_private = dev->private;
 	struct comedi_subdevice *subdevice = dev->read_subdev;
 	struct comedi_async *async;
 	unsigned long irq_flags;
@@ -1056,8 +1061,8 @@ static int pci9111_ai_insn_read(struct comedi_device *dev,
 				struct comedi_subdevice *subdevice,
 				struct comedi_insn *insn, unsigned int *data)
 {
-	int resolution =
-	    ((struct pci9111_board *)dev->board_ptr)->ai_resolution;
+	const struct pci9111_board *board = comedi_board(dev);
+	int resolution = board->ai_resolution;
 
 	int timeout, i;
 
@@ -1113,6 +1118,7 @@ pci9111_ao_insn_write(struct comedi_device *dev,
 		      struct comedi_subdevice *s, struct comedi_insn *insn,
 		      unsigned int *data)
 {
+	struct pci9111_private_data *dev_private = dev->private;
 	int i;
 
 	for (i = 0; i < insn->n; i++) {
@@ -1129,6 +1135,7 @@ static int pci9111_ao_insn_read(struct comedi_device *dev,
 				struct comedi_subdevice *s,
 				struct comedi_insn *insn, unsigned int *data)
 {
+	struct pci9111_private_data *dev_private = dev->private;
 	int i;
 
 	for (i = 0; i < insn->n; i++)
@@ -1189,6 +1196,8 @@ static int pci9111_do_insn_bits(struct comedi_device *dev,
 
 static int pci9111_reset(struct comedi_device *dev)
 {
+	struct pci9111_private_data *dev_private = dev->private;
+
 	/*  Set trigger source to software */
 
 	plx9050_interrupt_control(dev_private->lcr_io_base, true, true, true,
@@ -1246,13 +1255,16 @@ static struct pci_dev *pci9111_find_pci(struct comedi_device *dev,
 static int pci9111_attach(struct comedi_device *dev,
 			  struct comedi_devconfig *it)
 {
+	const struct pci9111_board *board;
+	struct pci9111_private_data *dev_private;
 	struct comedi_subdevice *subdevice;
 	unsigned long io_base, io_range, lcr_io_base, lcr_io_range;
 	int error;
-	const struct pci9111_board *board;
 
-	if (alloc_private(dev, sizeof(struct pci9111_private_data)) < 0)
+	if (alloc_private(dev, sizeof(*dev_private)) < 0)
 		return -ENOMEM;
+	dev_private = dev->private;
+
 	/*  Probe the device to determine what device in the series it is. */
 
 	printk(KERN_ERR "comedi%d: " PCI9111_DRIVER_NAME " driver\n",
@@ -1261,7 +1273,7 @@ static int pci9111_attach(struct comedi_device *dev,
 	dev->pcidev = pci9111_find_pci(dev, it);
 	if (!dev->pcidev)
 		return -EIO;
-	board = (struct pci9111_board *)dev->board_ptr;
+	board = comedi_board(dev);
 
 	/*  TODO: Warn about non-tested boards. */
 
@@ -1373,7 +1385,9 @@ static int pci9111_attach(struct comedi_device *dev,
 
 static void pci9111_detach(struct comedi_device *dev)
 {
-	if (dev->private != NULL) {
+	struct pci9111_private_data *dev_private = dev->private;
+
+	if (dev_private) {
 		if (dev_private->is_valid)
 			pci9111_reset(dev);
 	}
drivers/staging/comedi/drivers/adl_pci9118.c +49 -6

245 lines not on this page · raw message

drivers/staging/comedi/drivers/adq12b.c +7 -3
index 6df51c8..c0140a4 100644
@@ -133,8 +133,6 @@ struct adq12b_private {
 	unsigned int digital_state;
 };
 
-#define devpriv ((struct adq12b_private *)dev->private)
-
 /*
  * "instructions" read/write data in "one-shot" or "software-triggered"
  * mode.
@@ -144,6 +142,7 @@ static int adq12b_ai_rinsn(struct comedi_device *dev,
 			   struct comedi_subdevice *s, struct comedi_insn *insn,
 			   unsigned int *data)
 {
+	struct adq12b_private *devpriv = dev->private;
 	int n, i;
 	int range, channel;
 	unsigned char hi, lo, status;
@@ -200,6 +199,7 @@ static int adq12b_do_insn_bits(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
 {
+	struct adq12b_private *devpriv = dev->private;
 	int channel;
 
 	for (channel = 0; channel < 8; channel++)
@@ -221,6 +221,7 @@ static int adq12b_do_insn_bits(struct comedi_device *dev,
 static int adq12b_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	const struct adq12b_board *board = comedi_board(dev);
+	struct adq12b_private *devpriv;
 	struct comedi_subdevice *s;
 	unsigned long iobase;
 	int unipolar, differential;
@@ -256,8 +257,9 @@ static int adq12b_attach(struct comedi_device *dev, struct comedi_devconfig *it)
  * Allocate the private structure area.  alloc_private() is a
  * convenient macro defined in comedidev.h.
  */
-	if (alloc_private(dev, sizeof(struct adq12b_private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 /* fill in devpriv structure */
 	devpriv->unipolar = unipolar;
@@ -319,6 +321,8 @@ static int adq12b_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static void adq12b_detach(struct comedi_device *dev)
 {
+	struct adq12b_private *devpriv = dev->private;
+
 	if (dev->iobase)
 		release_region(dev->iobase, ADQ12B_SIZE);
 	kfree(devpriv);
drivers/staging/comedi/drivers/adv_pci1710.c +40 -5

185 lines not on this page · raw message

drivers/staging/comedi/drivers/adv_pci1723.c +13 -7
index 5c99c74..9a752cb 100644
@@ -158,16 +158,12 @@ struct pci1723_private {
 	short ao_data[8];	/* data output buffer */
 };
 
-/* The following macro to make it easy to access the private structure. */
-#define devpriv ((struct pci1723_private *)dev->private)
-
-#define this_board boardtypes
-
 /*
  * The pci1723 card reset;
  */
 static int pci1723_reset(struct comedi_device *dev)
 {
+	struct pci1723_private *devpriv = dev->private;
 	int i;
 	DPRINTK("adv_pci1723 EDBG: BGN: pci1723_reset(...)\n");
 
@@ -199,6 +195,7 @@ static int pci1723_insn_read_ao(struct comedi_device *dev,
 				struct comedi_subdevice *s,
 				struct comedi_insn *insn, unsigned int *data)
 {
+	struct pci1723_private *devpriv = dev->private;
 	int n, chan;
 
 	chan = CR_CHAN(insn->chanspec);
@@ -216,6 +213,7 @@ static int pci1723_ao_write_winsn(struct comedi_device *dev,
 				  struct comedi_subdevice *s,
 				  struct comedi_insn *insn, unsigned int *data)
 {
+	struct pci1723_private *devpriv = dev->private;
 	int n, chan;
 	chan = CR_CHAN(insn->chanspec);
 
@@ -290,6 +288,8 @@ static int pci1723_dio_insn_bits(struct comedi_device *dev,
 static int pci1723_attach(struct comedi_device *dev,
 			  struct comedi_devconfig *it)
 {
+	const struct pci1723_board *this_board;
+	struct pci1723_private *devpriv;
 	struct comedi_subdevice *s;
 	int ret, subdev, n_subdevices;
 	struct pci_dev *pcidev;
@@ -298,17 +298,21 @@ static int pci1723_attach(struct comedi_device *dev,
 	int opt_bus, opt_slot;
 	const char *errstr;
 
+	dev->board_ptr = boardtypes;
+	this_board = comedi_board(dev);
+
 	printk(KERN_ERR "comedi%d: adv_pci1723: board=%s",
 						dev->minor, this_board->name);
 
 	opt_bus = it->options[0];
 	opt_slot = it->options[1];
 
-	ret = alloc_private(dev, sizeof(struct pci1723_private));
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		printk(" - Allocation failed!\n");
 		return -ENOMEM;
 	}
+	devpriv = dev->private;
 
 	/* Look for matching PCI device */
 	errstr = "not found!";
@@ -429,7 +433,9 @@ static int pci1723_attach(struct comedi_device *dev,
 
 static void pci1723_detach(struct comedi_device *dev)
 {
-	if (dev->private) {
+	struct pci1723_private *devpriv = dev->private;
+
+	if (devpriv) {
 		if (devpriv->valid)
 			pci1723_reset(dev);
 		if (devpriv->pcidev) {
drivers/staging/comedi/drivers/adv_pci_dio.c +17 -5
index ad653a5..35aef80 100644
@@ -406,9 +406,6 @@ struct pci_dio_private {
 
 static struct pci_dio_private *pci_priv;	/* list of allocated cards */
 
-#define devpriv ((struct pci_dio_private *)dev->private)
-#define this_board ((const struct dio_boardtype *)dev->board_ptr)
-
 /*
 ==============================================================================
 */
@@ -699,6 +696,7 @@ static int pci1760_insn_cnt_write(struct comedi_device *dev,
 				  struct comedi_subdevice *s,
 				  struct comedi_insn *insn, unsigned int *data)
 {
+	struct pci_dio_private *devpriv = dev->private;
 	int ret;
 	unsigned char chan = CR_CHAN(insn->chanspec) & 0x07;
 	unsigned char bitmask = 1 << chan;
@@ -741,6 +739,7 @@ static int pci1760_insn_cnt_write(struct comedi_device *dev,
 */
 static int pci1760_reset(struct comedi_device *dev)
 {
+	struct pci_dio_private *devpriv = dev->private;
 	int i;
 	unsigned char omb[4] = { 0x00, 0x00, 0x00, 0x00 };
 	unsigned char imb[4];
@@ -821,6 +820,8 @@ static int pci1760_reset(struct comedi_device *dev)
 */
 static int pci_dio_reset(struct comedi_device *dev)
 {
+	const struct dio_boardtype *this_board = comedi_board(dev);
+
 	DPRINTK("adv_pci_dio EDBG: BGN: pci171x_reset(...)\n");
 
 	switch (this_board->cardtype) {
@@ -986,6 +987,8 @@ static int pci1760_attach(struct comedi_device *dev,
 static int pci_dio_add_di(struct comedi_device *dev, struct comedi_subdevice *s,
 			  const struct diosubd_data *d, int subdev)
 {
+	const struct dio_boardtype *this_board = comedi_board(dev);
+
 	s->type = COMEDI_SUBD_DI;
 	s->subdev_flags = SDF_READABLE | SDF_GROUND | SDF_COMMON | d->specflags;
 	if (d->chans > 16)
@@ -1013,6 +1016,8 @@ static int pci_dio_add_di(struct comedi_device *dev, struct comedi_subdevice *s,
 static int pci_dio_add_do(struct comedi_device *dev, struct comedi_subdevice *s,
 			  const struct diosubd_data *d, int subdev)
 {
+	const struct dio_boardtype *this_board = comedi_board(dev);
+
 	s->type = COMEDI_SUBD_DO;
 	s->subdev_flags = SDF_WRITABLE | SDF_GROUND | SDF_COMMON;
 	if (d->chans > 16)
@@ -1062,6 +1067,7 @@ static int CheckAndAllocCard(struct comedi_device *dev,
 			     struct comedi_devconfig *it,
 			     struct pci_dev *pcidev)
 {
+	struct pci_dio_private *devpriv = dev->private;
 	struct pci_dio_private *pr, *prev;
 
 	for (pr = pci_priv, prev = NULL; pr != NULL; prev = pr, pr = pr->next) {
@@ -1085,15 +1091,18 @@ static int CheckAndAllocCard(struct comedi_device *dev,
 static int pci_dio_attach(struct comedi_device *dev,
 			  struct comedi_devconfig *it)
 {
+	const struct dio_boardtype *this_board;
+	struct pci_dio_private *devpriv;
 	struct comedi_subdevice *s;
 	int ret, subdev, n_subdevices, i, j;
 	unsigned long iobase;
 	struct pci_dev *pcidev = NULL;
 
 
-	ret = alloc_private(dev, sizeof(struct pci_dio_private));
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 	for_each_pci_dev(pcidev) {
 		/*  loop through cards supported by this driver */
@@ -1114,6 +1123,7 @@ static int pci_dio_attach(struct comedi_device *dev,
 			if (ret != 1)
 				continue;
 			dev->board_ptr = boardtypes + i;
+			this_board = comedi_board(dev);
 			break;
 		}
 		if (dev->board_ptr)
@@ -1213,11 +1223,13 @@ static int pci_dio_attach(struct comedi_device *dev,
 
 static void pci_dio_detach(struct comedi_device *dev)
 {
+	const struct dio_boardtype *this_board = comedi_board(dev);
+	struct pci_dio_private *devpriv = dev->private;
 	int i, j;
 	struct comedi_subdevice *s;
 	int subdev;
 
-	if (dev->private) {
+	if (devpriv) {
 		if (devpriv->valid)
 			pci_dio_reset(dev);
 		subdev = 0;
drivers/staging/comedi/drivers/aio_aio12_8.c +5 -3
index f7d453f..ab65677 100644
@@ -84,8 +84,6 @@ struct aio12_8_private {
 	unsigned int ao_readback[4];
 };
 
-#define devpriv	((struct aio12_8_private *) dev->private)
-
 static int aio_aio12_8_ai_read(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
@@ -125,6 +123,7 @@ static int aio_aio12_8_ao_read(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
 {
+	struct aio12_8_private *devpriv = dev->private;
 	int i;
 	int val = devpriv->ao_readback[CR_CHAN(insn->chanspec)];
 
@@ -137,6 +136,7 @@ static int aio_aio12_8_ao_write(struct comedi_device *dev,
 				struct comedi_subdevice *s,
 				struct comedi_insn *insn, unsigned int *data)
 {
+	struct aio12_8_private *devpriv = dev->private;
 	int i;
 	int chan = CR_CHAN(insn->chanspec);
 	unsigned long port = dev->iobase + AIO12_8_DAC_0 + (2 * chan);
@@ -166,6 +166,7 @@ static int aio_aio12_8_attach(struct comedi_device *dev,
 			      struct comedi_devconfig *it)
 {
 	const struct aio12_8_boardtype *board = comedi_board(dev);
+	struct aio12_8_private *devpriv;
 	int iobase;
 	struct comedi_subdevice *s;
 	int ret;
@@ -180,8 +181,9 @@ static int aio_aio12_8_attach(struct comedi_device *dev,
 
 	dev->iobase = iobase;
 
-	if (alloc_private(dev, sizeof(struct aio12_8_private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 	ret = comedi_alloc_subdevices(dev, 3);
 	if (ret)
drivers/staging/comedi/drivers/aio_iiro_16.c +0 -11
index 16f28f6..ba1e3bb 100644
@@ -57,14 +57,6 @@ static const struct aio_iiro_16_board aio_iiro_16_boards[] = {
 	 .do_ = 16},
 };
 
-struct aio_iiro_16_private {
-	int data;
-	struct pci_dev *pci_dev;
-	unsigned int ao_readback[2];
-};
-
-#define	devpriv	((struct aio_iiro_16_private *) dev->private)
-
 static int aio_iiro_16_dio_insn_bits_write(struct comedi_device *dev,
 					   struct comedi_subdevice *s,
 					   struct comedi_insn *insn,
@@ -116,9 +108,6 @@ static int aio_iiro_16_attach(struct comedi_device *dev,
 
 	dev->iobase = iobase;
 
-	if (alloc_private(dev, sizeof(struct aio_iiro_16_private)) < 0)
-		return -ENOMEM;
-
 	ret = comedi_alloc_subdevices(dev, 2);
 	if (ret)
 		return ret;
drivers/staging/comedi/drivers/amplc_dio200.c +8 -2
index 55f3050..1a71c0e 100644
@@ -1360,15 +1360,17 @@ static int dio200_pci_common_attach(struct comedi_device *dev,
 static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	const struct dio200_board *thisboard = comedi_board(dev);
+	struct dio200_private *devpriv;
 	int ret;
 
 	dev_info(dev->class_dev, DIO200_DRIVER_NAME ": attach\n");
 
-	ret = alloc_private(dev, sizeof(struct dio200_private));
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return ret;
 	}
+	devpriv = dev->private;
 
 	/* Process options and reserve resources according to bus type. */
 	if (IS_ENABLED(CONFIG_COMEDI_AMPLC_DIO200_ISA) &&
@@ -1408,6 +1410,7 @@ static int dio200_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static int __devinit dio200_attach_pci(struct comedi_device *dev,
 				       struct pci_dev *pci_dev)
 {
+	struct dio200_private *devpriv;
 	int ret;
 
 	if (!IS_ENABLED(CONFIG_COMEDI_AMPLC_DIO200_PCI))
@@ -1415,11 +1418,14 @@ static int __devinit dio200_attach_pci(struct comedi_device *dev,
 
 	dev_info(dev->class_dev, DIO200_DRIVER_NAME ": attach pci %s\n",
 		 pci_name(pci_dev));
-	ret = alloc_private(dev, sizeof(struct dio200_private));
+
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return ret;
 	}
+	devpriv = dev->private;
+
 	dev->board_ptr = dio200_find_pci_board(pci_dev);
 	if (dev->board_ptr == NULL) {
 		dev_err(dev->class_dev, "BUG! cannot determine board type!\n");
drivers/staging/comedi/drivers/amplc_pc236.c +10 -2
index 77dae8e..aa5be99 100644
@@ -517,14 +517,18 @@ static int pc236_pci_common_attach(struct comedi_device *dev,
 static int pc236_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	const struct pc236_board *thisboard = comedi_board(dev);
+	struct pc236_private *devpriv;
 	int ret;
 
 	dev_info(dev->class_dev, PC236_DRIVER_NAME ": attach\n");
-	ret = alloc_private(dev, sizeof(struct pc236_private));
+
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return ret;
 	}
+	devpriv = dev->private;
+
 	/* Process options according to bus type. */
 	if (IS_ENABLED(CONFIG_COMEDI_AMPLC_PC236_ISA) &&
 	    thisboard->bustype == isa_bustype) {
@@ -559,6 +563,7 @@ static int pc236_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static int __devinit pc236_attach_pci(struct comedi_device *dev,
 				      struct pci_dev *pci_dev)
 {
+	struct pc236_private *devpriv = dev->private;
 	int ret;
 
 	if (!IS_ENABLED(CONFIG_COMEDI_AMPLC_PC236_PCI))
@@ -566,11 +571,14 @@ static int __devinit pc236_attach_pci(struct comedi_device *dev,
 
 	dev_info(dev->class_dev, PC236_DRIVER_NAME ": attach pci %s\n",
 		 pci_name(pci_dev));
-	ret = alloc_private(dev, sizeof(struct pc236_private));
+
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return ret;
 	}
+	devpriv = dev->private;
+
 	dev->board_ptr = pc236_find_pci_board(pci_dev);
 	if (dev->board_ptr == NULL) {
 		dev_err(dev->class_dev, "BUG! cannot determine board type!\n");
drivers/staging/comedi/drivers/amplc_pc263.c +9 -2
index e90178d..0c29b70 100644
@@ -270,6 +270,7 @@ static int pc263_pci_common_attach(struct comedi_device *dev,
 static int pc263_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
 	const struct pc263_board *thisboard = comedi_board(dev);
+	struct pc263_private *devpriv;
 	int ret;
 
 	dev_info(dev->class_dev, PC263_DRIVER_NAME ": attach\n");
@@ -287,11 +288,13 @@ static int pc263_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 		struct pci_dev *pci_dev;
 		int bus, slot;
 
-		ret = alloc_private(dev, sizeof(struct pc263_private));
+		ret = alloc_private(dev, sizeof(*devpriv));
 		if (ret < 0) {
 			dev_err(dev->class_dev, "error! out of memory!\n");
 			return ret;
 		}
+		devpriv = dev->private;
+
 		bus = it->options[0];
 		slot = it->options[1];
 		pci_dev = pc263_find_pci(dev, bus, slot);
@@ -312,6 +315,7 @@ static int pc263_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static int __devinit pc263_attach_pci(struct comedi_device *dev,
 				      struct pci_dev *pci_dev)
 {
+	struct pc263_private *devpriv;
 	int ret;
 
 	if (!IS_ENABLED(CONFIG_COMEDI_AMPLC_PC263_PCI))
@@ -319,11 +323,14 @@ static int __devinit pc263_attach_pci(struct comedi_device *dev,
 
 	dev_info(dev->class_dev, PC263_DRIVER_NAME ": attach pci %s\n",
 		 pci_name(pci_dev));
-	ret = alloc_private(dev, sizeof(struct pc263_private));
+
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return ret;
 	}
+	devpriv = dev->private;
+
 	dev->board_ptr = pc263_find_pci_board(pci_dev);
 	if (dev->board_ptr == NULL) {
 		dev_err(dev->class_dev, "BUG! cannot determine board type!\n");
drivers/staging/comedi/drivers/amplc_pci224.c +7 -2
index b87e10d..07e9e7d 100644
@@ -1473,6 +1473,7 @@ static int pci224_attach_common(struct comedi_device *dev,
 
 static int pci224_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+	struct pci224_private *devpriv;
 	struct pci_dev *pci_dev;
 	int bus, slot;
 	int ret;
@@ -1481,11 +1482,13 @@ static int pci224_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 	bus = it->options[0];
 	slot = it->options[1];
-	ret = alloc_private(dev, sizeof(struct pci224_private));
+
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return ret;
 	}
+	devpriv = dev->private;
 
 	pci_dev = pci224_find_pci(dev, bus, slot);
 	if (pci_dev == NULL)
@@ -1497,16 +1500,18 @@ static int pci224_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 static int __devinit
 pci224_attach_pci(struct comedi_device *dev, struct pci_dev *pci_dev)
 {
+	struct pci224_private *devpriv;
 	int ret;
 
 	dev_info(dev->class_dev, DRIVER_NAME ": attach_pci %s\n",
 		 pci_name(pci_dev));
 
-	ret = alloc_private(dev, sizeof(struct pci224_private));
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return ret;
 	}
+	devpriv = dev->private;
 
 	dev->board_ptr = pci224_find_pci_board(pci_dev);
 	if (dev->board_ptr == NULL) {
drivers/staging/comedi/drivers/amplc_pci230.c +2 -1
index 3d7f2cd..90e9f73 100644
@@ -2733,12 +2733,13 @@ static int pci230_alloc_private(struct comedi_device *dev)
 	int err;
 
 	/* sets dev->private to allocated memory */
-	err = alloc_private(dev, sizeof(struct pci230_private));
+	err = alloc_private(dev, sizeof(*devpriv));
 	if (err) {
 		dev_err(dev->class_dev, "error! out of memory!\n");
 		return err;
 	}
 	devpriv = dev->private;
+
 	spin_lock_init(&devpriv->isr_spinlock);
 	spin_lock_init(&devpriv->res_spinlock);
 	spin_lock_init(&devpriv->ai_stop_spinlock);
drivers/staging/comedi/drivers/cb_das16_cs.c +3 -1
index 58d4529..80b22b4 100644
@@ -448,6 +448,7 @@ static int das16cs_attach(struct comedi_device *dev,
 			  struct comedi_devconfig *it)
 {
 	const struct das16cs_board *thisboard;
+	struct das16cs_private *devpriv;
 	struct pcmcia_device *link;
 	struct comedi_subdevice *s;
 	int ret;
@@ -471,8 +472,9 @@ static int das16cs_attach(struct comedi_device *dev,
 		return ret;
 	dev->irq = link->irq;
 
-	if (alloc_private(dev, sizeof(struct das16cs_private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 	ret = comedi_alloc_subdevices(dev, 3);
 	if (ret)
drivers/staging/comedi/drivers/cb_pcidas.c +1 -1
index 39b02e8..a3dcaa3 100644
@@ -1548,7 +1548,7 @@ static int cb_pcidas_attach(struct comedi_device *dev,
 	int i;
 	int ret;
 
-	if (alloc_private(dev, sizeof(struct cb_pcidas_private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
 	devpriv = dev->private;
 
drivers/staging/comedi/drivers/cb_pcidda.c +14 -13
index f5a7957..97d0c24 100644
@@ -203,11 +203,6 @@ static const struct cb_pcidda_board cb_pcidda_boards[] = {
 };
 
 /*
- * Useful for shorthand access to the particular board structure
- */
-#define thisboard ((const struct cb_pcidda_board *)dev->board_ptr)
-
-/*
  * this structure is for data unique to this hardware driver.  If
  * several hardware drivers keep similar information in this structure,
  * feel free to suggest moving the variable to the struct comedi_device
@@ -232,12 +227,6 @@ struct cb_pcidda_private {
 	u16 eeprom_data[EEPROM_SIZE];	/*  software copy of board's eeprom */
 };
 
-/*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct cb_pcidda_private *)dev->private)
-
 /* static int cb_pcidda_ai_rinsn(struct comedi_device *dev,struct comedi_subdevice *s,struct comedi_insn *insn,unsigned int *data); */
 static int cb_pcidda_ao_winsn(struct comedi_device *dev,
 			      struct comedi_subdevice *s,
@@ -262,6 +251,8 @@ static void cb_pcidda_calibrate(struct comedi_device *dev, unsigned int channel,
 static int cb_pcidda_attach(struct comedi_device *dev,
 			    struct comedi_devconfig *it)
 {
+	const struct cb_pcidda_board *thisboard;
+	struct cb_pcidda_private *devpriv;
 	struct comedi_subdevice *s;
 	struct pci_dev *pcidev = NULL;
 	int index;
@@ -270,8 +261,9 @@ static int cb_pcidda_attach(struct comedi_device *dev,
 /*
  * Allocate the private structure area.
  */
-	if (alloc_private(dev, sizeof(struct cb_pcidda_private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 /*
  * Probe the device to determine what device in the series it is.
@@ -301,7 +293,8 @@ static int cb_pcidda_attach(struct comedi_device *dev,
 found:
 	devpriv->pci_dev = pcidev;
 	dev->board_ptr = cb_pcidda_boards + index;
-	/*  "thisboard" macro can be used from here. */
+	thisboard = comedi_board(dev);
+
 	dev_dbg(dev->class_dev, "Found %s at requested position\n",
 		thisboard->name);
 
@@ -374,6 +367,8 @@ found:
 
 static void cb_pcidda_detach(struct comedi_device *dev)
 {
+	struct cb_pcidda_private *devpriv = dev->private;
+
 	if (devpriv) {
 		if (devpriv->pci_dev) {
 			if (devpriv->dac)
@@ -585,6 +580,7 @@ static int cb_pcidda_ao_winsn(struct comedi_device *dev,
 			      struct comedi_subdevice *s,
 			      struct comedi_insn *insn, unsigned int *data)
 {
+	struct cb_pcidda_private *devpriv = dev->private;
 	unsigned int command;
 	unsigned int channel, range;
 
@@ -634,6 +630,7 @@ static int cb_pcidda_ao_winsn(struct comedi_device *dev,
 /* lowlevel read from eeprom */
 static unsigned int cb_pcidda_serial_in(struct comedi_device *dev)
 {
+	struct cb_pcidda_private *devpriv = dev->private;
 	unsigned int value = 0;
 	int i;
 	const int value_width = 16;	/*  number of bits wide values are */
@@ -651,6 +648,7 @@ static unsigned int cb_pcidda_serial_in(struct comedi_device *dev)
 static void cb_pcidda_serial_out(struct comedi_device *dev, unsigned int value,
 				 unsigned int num_bits)
 {
+	struct cb_pcidda_private *devpriv = dev->private;
 	int i;
 
 	for (i = 1; i <= num_bits; i++) {
@@ -667,6 +665,7 @@ static void cb_pcidda_serial_out(struct comedi_device *dev, unsigned int value,
 static unsigned int cb_pcidda_read_eeprom(struct comedi_device *dev,
 					  unsigned int address)
 {
+	struct cb_pcidda_private *devpriv = dev->private;
 	unsigned int i;
 	unsigned int cal2_bits;
 	unsigned int value;
@@ -703,6 +702,7 @@ static void cb_pcidda_write_caldac(struct comedi_device *dev,
 				   unsigned int caldac, unsigned int channel,
 				   unsigned int value)
 {
+	struct cb_pcidda_private *devpriv = dev->private;
 	unsigned int cal2_bits;
 	unsigned int i;
 	/* caldacs use 3 bit channel specification */
@@ -797,6 +797,7 @@ static unsigned int eeprom_fine_byte(unsigned int word)
 static void cb_pcidda_calibrate(struct comedi_device *dev, unsigned int channel,
 				unsigned int range)
 {
+	struct cb_pcidda_private *devpriv = dev->private;
 	unsigned int coarse_offset, fine_offset, coarse_gain, fine_gain;
 
 	/* remember range so we can tell when we need to readjust calibration */
drivers/staging/comedi/drivers/cb_pcidio.c +6 -5
index 1336fae..5c047e7 100644
@@ -85,14 +85,10 @@ static const struct pcidio_board pcidio_boards[] = {
 	 },
 };
 
-/*
- * Useful for shorthand access to the particular board structure
- */
-#define thisboard ((const struct pcidio_board *)dev->board_ptr)
-
 static struct pci_dev *pcidio_find_pci_dev(struct comedi_device *dev,
 					   struct comedi_devconfig *it)
 {
+	const struct pcidio_board *thisboard;
 	struct pci_dev *pcidev = NULL;
 	int bus = it->options[0];
 	int slot = it->options[1];
@@ -109,6 +105,7 @@ static struct pci_dev *pcidio_find_pci_dev(struct comedi_device *dev,
 		for (i = 0; i < ARRAY_SIZE(pcidio_boards); i++) {
 			if (pcidio_boards[i].dev_id == pcidev->device) {
 				dev->board_ptr = pcidio_boards + i;
+				thisboard = comedi_board(dev);
 				dev_dbg(dev->class_dev,
 					"Found %s on bus %i, slot %i\n",
 					thisboard->name, pcidev->bus->number,
@@ -125,12 +122,14 @@ static struct pci_dev *pcidio_find_pci_dev(struct comedi_device *dev,
 
 static int pcidio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+	const struct pcidio_board *thisboard;
 	int i;
 	int ret;
 
 	dev->pcidev = pcidio_find_pci_dev(dev, it);
 	if (!dev->pcidev)
 		return -EIO;
+	thisboard = comedi_board(dev);
 
 	dev->board_name = thisboard->name;
 
@@ -156,6 +155,8 @@ static int pcidio_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static void pcidio_detach(struct comedi_device *dev)
 {
+	const struct pcidio_board *thisboard = comedi_board(dev);
+
 	if (dev->pcidev) {
 		if (dev->iobase)
 			comedi_pci_disable(dev->pcidev);
drivers/staging/comedi/drivers/cb_pcimdas.c +11 -12
index 2977f2d..7adc4fd 100644
@@ -125,11 +125,6 @@ static const struct cb_pcimdas_board cb_pcimdas_boards[] = {
 #define N_BOARDS 1		/*  Max number of boards supported */
 
 /*
- * Useful for shorthand access to the particular board structure
- */
-#define thisboard ((const struct cb_pcimdas_board *)dev->board_ptr)
-
-/*
  * this structure is for data unique to this hardware driver.  If
  * several hardware drivers keep similar information in this structure,
  * feel free to suggest moving the variable to the struct comedi_device
@@ -159,12 +154,6 @@ struct cb_pcimdas_private {
 
 };
 
-/*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct cb_pcimdas_private *)dev->private)
-
 static int cb_pcimdas_ai_rinsn(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data);
@@ -184,6 +173,8 @@ static int cb_pcimdas_ao_rinsn(struct comedi_device *dev,
 static int cb_pcimdas_attach(struct comedi_device *dev,
 			     struct comedi_devconfig *it)
 {
+	const struct cb_pcimdas_board *thisboard;
+	struct cb_pcimdas_private *devpriv;
 	struct comedi_subdevice *s;
 	struct pci_dev *pcidev = NULL;
 	int index;
@@ -193,8 +184,9 @@ static int cb_pcimdas_attach(struct comedi_device *dev,
 /*
  * Allocate the private structure area.
  */
-	if (alloc_private(dev, sizeof(struct cb_pcimdas_private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 /*
  * Probe the device to determine what device in the series it is.
@@ -228,6 +220,7 @@ static int cb_pcimdas_attach(struct comedi_device *dev,
 	return -EIO;
 
 found:
+	thisboard = comedi_board(dev);
 
 	dev_dbg(dev->class_dev, "Found %s on bus %i, slot %i\n",
 		cb_pcimdas_boards[index].name, pcidev->bus->number,
@@ -312,6 +305,8 @@ found:
 
 static void cb_pcimdas_detach(struct comedi_device *dev)
 {
+	struct cb_pcimdas_private *devpriv = dev->private;
+
 	if (dev->irq)
 		free_irq(dev->irq, dev);
 	if (devpriv) {
@@ -331,6 +326,8 @@ static int cb_pcimdas_ai_rinsn(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
 {
+	const struct cb_pcimdas_board *thisboard = comedi_board(dev);
+	struct cb_pcimdas_private *devpriv = dev->private;
 	int n, i;
 	unsigned int d;
 	unsigned int busy;
@@ -400,6 +397,7 @@ static int cb_pcimdas_ao_winsn(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
 {
+	struct cb_pcimdas_private *devpriv = dev->private;
 	int i;
 	int chan = CR_CHAN(insn->chanspec);
 
@@ -429,6 +427,7 @@ static int cb_pcimdas_ao_rinsn(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
 {
+	struct cb_pcimdas_private *devpriv = dev->private;
 	int i;
 	int chan = CR_CHAN(insn->chanspec);
 
drivers/staging/comedi/drivers/cb_pcimdda.c +13 -16
index a801461..2a9a411 100644
@@ -131,14 +131,6 @@ static const struct board_struct boards[] = {
 };
 
 /*
- * Useful for shorthand access to the particular board structure
- */
-#define thisboard    ((const struct board_struct *)dev->board_ptr)
-
-#define REG_SZ (thisboard->reg_sz)
-#define REGS_BADRINDEX (thisboard->regs_badrindex)
-
-/*
  * this structure is for data unique to this hardware driver.  If
  * several hardware drivers keep similar information in this structure,
  * feel free to suggest moving the variable to the struct comedi_device
@@ -157,12 +149,6 @@ struct board_private_struct {
 
 };
 
-/*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct board_private_struct *)dev->private)
-
 static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 		    struct comedi_insn *insn, unsigned int *data);
 static int ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
@@ -206,6 +192,8 @@ static int probe(struct comedi_device *dev, const struct comedi_devconfig *it);
  */
 static int attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+	const struct board_struct *thisboard;
+	struct board_private_struct *devpriv;
 	struct comedi_subdevice *s;
 	int err;
 
@@ -215,8 +203,9 @@ static int attach(struct comedi_device *dev, struct comedi_devconfig *it)
  * if this function fails (returns negative) then the private area is
  * kfree'd by comedi
  */
-	if (alloc_private(dev, sizeof(struct board_private_struct)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 /*
  * If you can probe the device to determine what device in a series
@@ -226,6 +215,7 @@ static int attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	err = probe(dev, it);
 	if (err)
 		return err;
+	thisboard = comedi_board(dev);
 
 /* Output some info */
 	printk("comedi%d: %s: ", dev->minor, thisboard->name);
@@ -284,6 +274,8 @@ static int attach(struct comedi_device *dev, struct comedi_devconfig *it)
 
 static void detach(struct comedi_device *dev)
 {
+	struct board_private_struct *devpriv = dev->private;
+
 	if (devpriv) {
 		if (dev->subdevices && devpriv->attached_to_8255) {
 			subdev_8255_cleanup(dev, dev->subdevices + 2);
@@ -300,6 +292,7 @@ static void detach(struct comedi_device *dev)
 static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 		    struct comedi_insn *insn, unsigned int *data)
 {
+	struct board_private_struct *devpriv = dev->private;
 	int i;
 	int chan = CR_CHAN(insn->chanspec);
 	unsigned long offset = devpriv->registers + chan * 2;
@@ -339,6 +332,7 @@ static int ao_winsn(struct comedi_device *dev, struct comedi_subdevice *s,
 static int ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
 		    struct comedi_insn *insn, unsigned int *data)
 {
+	struct board_private_struct *devpriv = dev->private;
 	int i;
 	int chan = CR_CHAN(insn->chanspec);
 
@@ -375,6 +369,8 @@ static int ao_rinsn(struct comedi_device *dev, struct comedi_subdevice *s,
  */
 static int probe(struct comedi_device *dev, const struct comedi_devconfig *it)
 {
+	const struct board_struct *thisboard;
+	struct board_private_struct *devpriv = dev->private;
 	struct pci_dev *pcidev = NULL;
 	int index;
 	unsigned long registers;
@@ -399,6 +395,7 @@ static int probe(struct comedi_device *dev, const struct comedi_devconfig *it)
 
 			devpriv->pci_dev = pcidev;
 			dev->board_ptr = boards + index;
+			thisboard = comedi_board(dev);
 			if (comedi_pci_enable(pcidev, thisboard->name)) {
 				printk
 				    ("cb_pcimdda: Failed to enable PCI device and request regions\n");
@@ -406,7 +403,7 @@ static int probe(struct comedi_device *dev, const struct comedi_devconfig *it)
 			}
 			registers =
 			    pci_resource_start(devpriv->pci_dev,
-					       REGS_BADRINDEX);
+					       thisboard->regs_badrindex);
 			devpriv->registers = registers;
 			devpriv->dio_registers
 			    = devpriv->registers + thisboard->dio_offset;
drivers/staging/comedi/drivers/comedi_bond.c +9 -17
index 5ed324c..3d04ad2 100644
@@ -88,11 +88,6 @@ struct BondingBoard {
 	const char *name;
 };
 
-/*
- * Useful for shorthand access to the particular board structure
- */
-#define thisboard ((const struct BondingBoard *)dev->board_ptr)
-
 struct BondedDevice {
 	struct comedi_device *dev;
 	unsigned minor;
@@ -116,12 +111,6 @@ struct Private {
 	unsigned nchans;
 };
 
-/*
- * most drivers define the following macro to make it easy to
- * access the private structure.
- */
-#define devpriv ((struct Private *)dev->private)
-
 /* DIO devices are slightly special.  Although it is possible to
  * implement the insn_read/insn_write interface, it is much more
  * useful to applications if you implement the insn_bits interface.
@@ -131,6 +120,7 @@ static int bonding_dio_insn_bits(struct comedi_device *dev,
 				 struct comedi_subdevice *s,
 				 struct comedi_insn *insn, unsigned int *data)
 {
+	struct Private *devpriv = dev->private;
 #define LSAMPL_BITS (sizeof(unsigned int)*8)
 	unsigned nchans = LSAMPL_BITS, num_done = 0, i;
 
@@ -177,6 +167,7 @@ static int bonding_dio_insn_config(struct comedi_device *dev,
 				   struct comedi_subdevice *s,
 				   struct comedi_insn *insn, unsigned int *data)
 {
+	struct Private *devpriv = dev->private;
 	int chan = CR_CHAN(insn->chanspec), ret, io_bits = s->io_bits;
 	unsigned int io;
 	struct BondedDevice *bdev;
@@ -230,6 +221,7 @@ static void *Realloc(const void *oldmem, size_t newlen, size_t oldlen)
 
 static int doDevConfig(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+	struct Private *devpriv = dev->private;
 	int i;
 	struct comedi_device *devs_opened[COMEDI_NUM_BOARD_MINORS];
 
@@ -333,6 +325,8 @@ static int doDevConfig(struct comedi_device *dev, struct comedi_devconfig *it)
 static int bonding_attach(struct comedi_device *dev,
 			  struct comedi_devconfig *it)
 {
+	const struct BondingBoard *thisboard = comedi_board(dev);
+	struct Private *devpriv;
 	struct comedi_subdevice *s;
 	int ret;
 
@@ -342,8 +336,9 @@ static int bonding_attach(struct comedi_device *dev,
 	 * Allocate the private structure area.  alloc_private() is a
 	 * convenient macro defined in comedidev.h.
 	 */
-	if (alloc_private(dev, sizeof(struct Private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 	/*
 	 * Setup our bonding from config params.. sets up our Private struct..
@@ -351,11 +346,7 @@ static int bonding_attach(struct comedi_device *dev,
 	if (!doDevConfig(dev, it))
 		return -EINVAL;
 
-	/*
-	 * Initialize dev->board_name.  Note that we can use the "thisboard"
-	 * macro now, since we just initialized it in the last line.
-	 */
-	dev->board_name = devpriv->name;
+	dev->board_name = thisboard->name;
 
 	ret = comedi_alloc_subdevices(dev, 1);
 	if (ret)
@@ -380,6 +371,7 @@ static int bonding_attach(struct comedi_device *dev,
 
 static void bonding_detach(struct comedi_device *dev)
 {
+	struct Private *devpriv = dev->private;
 	unsigned long devs_closed = 0;
 
 	if (devpriv) {
drivers/staging/comedi/drivers/comedi_parport.c +14 -2
index 9a63cac..fcad423 100644
@@ -96,11 +96,12 @@ struct parport_private {
 	unsigned int c_data;
 	int enable_irq;
 };
-#define devpriv ((struct parport_private *)(dev->private))
 
 static int parport_insn_a(struct comedi_device *dev, struct comedi_subdevice *s,
 			  struct comedi_insn *insn, unsigned int *data)
 {
+	struct parport_private *devpriv = dev->private;
+
 	if (data[0]) {
 		devpriv->a_data &= ~data[0];
 		devpriv->a_data |= (data[0] & data[1]);
@@ -117,6 +118,8 @@ static int parport_insn_config_a(struct comedi_device *dev,
 				 struct comedi_subdevice *s,
 				 struct comedi_insn *insn, unsigned int *data)
 {
+	struct parport_private *devpriv = dev->private;
+
 	if (data[0]) {
 		s->io_bits = 0xff;
 		devpriv->c_data &= ~(1 << 5);
@@ -145,6 +148,8 @@ static int parport_insn_b(struct comedi_device *dev, struct comedi_subdevice *s,
 static int parport_insn_c(struct comedi_device *dev, struct comedi_subdevice *s,
 			  struct comedi_insn *insn, unsigned int *data)
 {
+	struct parport_private *devpriv = dev->private;
+
 	data[0] &= 0x0f;
 	if (data[0]) {
 		devpriv->c_data &= ~data[0];
@@ -245,6 +250,8 @@ static int parport_intr_cmdtest(struct comedi_device *dev,
 static int parport_intr_cmd(struct comedi_device *dev,
 			    struct comedi_subdevice *s)
 {
+	struct parport_private *devpriv = dev->private;
+
 	devpriv->c_data |= 0x10;
 	outb(devpriv->c_data, dev->iobase + PARPORT_C);
 
@@ -256,6 +263,8 @@ static int parport_intr_cmd(struct comedi_device *dev,
 static int parport_intr_cancel(struct comedi_device *dev,
 			       struct comedi_subdevice *s)
 {
+	struct parport_private *devpriv = dev->private;
+
 	printk(KERN_DEBUG "parport_intr_cancel()\n");
 
 	devpriv->c_data &= ~0x10;
@@ -269,6 +278,7 @@ static int parport_intr_cancel(struct comedi_device *dev,
 static irqreturn_t parport_interrupt(int irq, void *d)
 {
 	struct comedi_device *dev = d;
+	struct parport_private *devpriv = dev->private;
 	struct comedi_subdevice *s = dev->subdevices + 3;
 
 	if (!devpriv->enable_irq) {
@@ -286,6 +296,7 @@ static irqreturn_t parport_interrupt(int irq, void *d)
 static int parport_attach(struct comedi_device *dev,
 			  struct comedi_devconfig *it)
 {
+	struct parport_private *devpriv;
 	int ret;
 	unsigned int irq;
 	unsigned long iobase;
@@ -316,9 +327,10 @@ static int parport_attach(struct comedi_device *dev,
 	if (ret)
 		return ret;
 
-	ret = alloc_private(dev, sizeof(struct parport_private));
+	ret = alloc_private(dev, sizeof(*devpriv));
 	if (ret < 0)
 		return ret;
+	devpriv = dev->private;
 
 	s = dev->subdevices + 0;
 	s->type = COMEDI_SUBD_DIO;
drivers/staging/comedi/drivers/comedi_test.c +14 -3
index 523a809..71370d3 100644
@@ -81,7 +81,6 @@ struct waveform_private {
 	unsigned timer_running:1;
 	unsigned int ao_loopbacks[N_CHANS];
 };
-#define devpriv ((struct waveform_private *)dev->private)
 
 /* 1000 nanosec in a microsec */
 static const int nano_per_micro = 1000;
@@ -98,6 +97,7 @@ static const struct comedi_lrange waveform_ai_ranges = {
 static short fake_sawtooth(struct comedi_device *dev, unsigned int range_index,
 			   unsigned long current_time)
 {
+	struct waveform_private *devpriv = dev->private;
 	struct comedi_subdevice *s = dev->read_subdev;
 	unsigned int offset = s->maxdata / 2;
 	u64 value;
@@ -122,6 +122,7 @@ static short fake_squarewave(struct comedi_device *dev,
 			     unsigned int range_index,
 			     unsigned long current_time)
 {
+	struct waveform_private *devpriv = dev->private;
 	struct comedi_subdevice *s = dev->read_subdev;
 	unsigned int offset = s->maxdata / 2;
 	u64 value;
@@ -175,6 +176,7 @@ static short fake_waveform(struct comedi_device *dev, unsigned int channel,
 static void waveform_ai_interrupt(unsigned long arg)
 {
 	struct comedi_device *dev = (struct comedi_device *)arg;
+	struct waveform_private *devpriv = dev->private;
 	struct comedi_async *async = dev->read_subdev->async;
 	struct comedi_cmd *cmd = &async->cmd;
 	unsigned int i, j;
@@ -362,6 +364,7 @@ static int waveform_ai_cmdtest(struct comedi_device *dev,
 static int waveform_ai_cmd(struct comedi_device *dev,
 			   struct comedi_subdevice *s)
 {
+	struct waveform_private *devpriv = dev->private;
 	struct comedi_cmd *cmd = &s->async->cmd;
 
 	if (cmd->flags & TRIG_RT) {
@@ -395,6 +398,8 @@ static int waveform_ai_cmd(struct comedi_device *dev,
 static int waveform_ai_cancel(struct comedi_device *dev,
 			      struct comedi_subdevice *s)
 {
+	struct waveform_private *devpriv = dev->private;
+
 	devpriv->timer_running = 0;
 	del_timer(&devpriv->timer);
 	return 0;
@@ -404,6 +409,7 @@ static int waveform_ai_insn_read(struct comedi_device *dev,
 				 struct comedi_subdevice *s,
 				 struct comedi_insn *insn, unsigned int *data)
 {
+	struct waveform_private *devpriv = dev->private;
 	int i, chan = CR_CHAN(insn->chanspec);
 
 	for (i = 0; i < insn->n; i++)
@@ -416,6 +422,7 @@ static int waveform_ao_insn_write(struct comedi_device *dev,
 				  struct comedi_subdevice *s,
 				  struct comedi_insn *insn, unsigned int *data)
 {
+	struct waveform_private *devpriv = dev->private;
 	int i, chan = CR_CHAN(insn->chanspec);
 
 	for (i = 0; i < insn->n; i++)
@@ -428,6 +435,7 @@ static int waveform_attach(struct comedi_device *dev,
 			   struct comedi_devconfig *it)
 {
 	const struct waveform_board *board = comedi_board(dev);
+	struct waveform_private *devpriv;
 	struct comedi_subdevice *s;
 	int amplitude = it->options[0];
 	int period = it->options[1];
@@ -436,8 +444,9 @@ static int waveform_attach(struct comedi_device *dev,
 
 	dev->board_name = board->name;
 
-	if (alloc_private(dev, sizeof(struct waveform_private)) < 0)
+	if (alloc_private(dev, sizeof(*devpriv)) < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 	/* set default amplitude and period */
 	if (amplitude <= 0)
@@ -496,7 +505,9 @@ static int waveform_attach(struct comedi_device *dev,
 
 static void waveform_detach(struct comedi_device *dev)
 {
-	if (dev->private)
+	struct waveform_private *devpriv = dev->private;
+
+	if (devpriv)
 		waveform_ai_cancel(dev, dev->read_subdev);
 }
 
drivers/staging/comedi/drivers/contec_pci_dio.c +4 -2
index 52b597b..d56a890 100644
@@ -55,12 +55,11 @@ static const struct contec_board contec_boards[] = {
 
 #define PCI_DEVICE_ID_PIO1616L 0x8172
 
-#define thisboard ((const struct contec_board *)dev->board_ptr)
-
 static int contec_do_insn_bits(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
 {
+	const struct contec_board *thisboard = comedi_board(dev);
 
 	dev_dbg(dev->class_dev, "contec_do_insn_bits called\n");
 	dev_dbg(dev->class_dev, "data: %d %d\n", data[0], data[1]);
@@ -79,6 +78,7 @@ static int contec_di_insn_bits(struct comedi_device *dev,
 			       struct comedi_subdevice *s,
 			       struct comedi_insn *insn, unsigned int *data)
 {
+	const struct contec_board *thisboard = comedi_board(dev);
 
 	dev_dbg(dev->class_dev, "contec_di_insn_bits called\n");
 	dev_dbg(dev->class_dev, "data: %d %d\n", data[0], data[1]);
@@ -113,6 +113,7 @@ static struct pci_dev *contec_find_pci_dev(struct comedi_device *dev,
 
 static int contec_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 {
+	const struct contec_board *thisboard;
 	struct comedi_subdevice *s;
 	int ret;
 
@@ -125,6 +126,7 @@ static int contec_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	dev->pcidev = contec_find_pci_dev(dev, it);
 	if (!dev->pcidev)
 		return -EIO;
+	thisboard = comedi_board(dev);
 
 	dev->board_name = thisboard->name;
 
drivers/staging/comedi/drivers/daqboard2000.c +22 -5
index 8455cb9..6ede0c6 100644
@@ -309,8 +309,6 @@ static const struct daq200_boardtype boardtypes[] = {
 	{"ids4", DAQBOARD2000_SUBSYSTEM_IDS4},
 };
 
-#define this_board ((const struct daq200_boardtype *)dev->board_ptr)
-
 struct daqboard2000_private {
 	enum {
 		card_daqboard_2000
@@ -322,10 +320,9 @@ struct daqboard2000_private {
 	unsigned int ao_readback[2];
 };
 
-#define devpriv ((struct daqboard2000_private *)dev->private)
-
 static void writeAcqScanListEntry(struct comedi_device *dev, u16 entry)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	struct daqboard2000_hw *fpga = devpriv->daq;
 
 /* udelay(4); */
@@ -384,6 +381,7 @@ static int daqboard2000_ai_insn_read(struct comedi_device *dev,
 				     struct comedi_insn *insn,
 				     unsigned int *data)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	int i;
 	struct daqboard2000_hw *fpga = devpriv->daq;
 	int gain, chan, timeout;
@@ -442,6 +440,7 @@ static int daqboard2000_ao_insn_read(struct comedi_device *dev,
 				     struct comedi_insn *insn,
 				     unsigned int *data)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	int i;
 	int chan = CR_CHAN(insn->chanspec);
 
@@ -456,6 +455,7 @@ static int daqboard2000_ao_insn_write(struct comedi_device *dev,
 				      struct comedi_insn *insn,
 				      unsigned int *data)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	int i;
 	int chan = CR_CHAN(insn->chanspec);
 	struct daqboard2000_hw *fpga = devpriv->daq;
@@ -485,6 +485,8 @@ static int daqboard2000_ao_insn_write(struct comedi_device *dev,
 
 static void daqboard2000_resetLocalBus(struct comedi_device *dev)
 {
+	struct daqboard2000_private *devpriv = dev->private;
+
 	dev_dbg(dev->class_dev, "daqboard2000_resetLocalBus\n");
 	writel(DAQBOARD2000_SECRLocalBusHi, devpriv->plx + 0x6c);
 	udelay(10000);
@@ -494,6 +496,8 @@ static void daqboard2000_resetLocalBus(struct comedi_device *dev)
 
 static void daqboard2000_reloadPLX(struct comedi_device *dev)
 {
+	struct daqboard2000_private *devpriv = dev->private;
+
 	dev_dbg(dev->class_dev, "daqboard2000_reloadPLX\n");
 	writel(DAQBOARD2000_SECRReloadLo, devpriv->plx + 0x6c);
 	udelay(10000);
@@ -505,6 +509,8 @@ static void daqboard2000_reloadPLX(struct comedi_device *dev)
 
 static void daqboard2000_pulseProgPin(struct comedi_device *dev)
 {
+	struct daqboard2000_private *devpriv = dev->private;
+
 	dev_dbg(dev->class_dev, "daqboard2000_pulseProgPin 1\n");
 	writel(DAQBOARD2000_SECRProgPinHi, devpriv->plx + 0x6c);
 	udelay(10000);
@@ -514,6 +520,7 @@ static void daqboard2000_pulseProgPin(struct comedi_device *dev)
 
 static int daqboard2000_pollCPLD(struct comedi_device *dev, int mask)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	int result = 0;
 	int i;
 	int cpld;
@@ -533,6 +540,7 @@ static int daqboard2000_pollCPLD(struct comedi_device *dev, int mask)
 
 static int daqboard2000_writeCPLD(struct comedi_device *dev, int data)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	int result = 0;
 
 	udelay(10);
@@ -547,6 +555,7 @@ static int daqboard2000_writeCPLD(struct comedi_device *dev, int data)
 static int initialize_daqboard2000(struct comedi_device *dev,
 				   unsigned char *cpld_array, int len)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	int result = -EIO;
 	/* Read the serial EEPROM control register */
 	int secr;
@@ -608,6 +617,7 @@ static void daqboard2000_adcStopDmaTransfer(struct comedi_device *dev)
 
 static void daqboard2000_adcDisarm(struct comedi_device *dev)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	struct daqboard2000_hw *fpga = devpriv->daq;
 
 	/* Disable hardware triggers */
@@ -630,6 +640,7 @@ static void daqboard2000_adcDisarm(struct comedi_device *dev)
 
 static void daqboard2000_activateReferenceDacs(struct comedi_device *dev)
 {
+	struct daqboard2000_private *devpriv = dev->private;
 	struct daqboard2000_hw *fpga = devpriv->daq;
 	int timeout;
 
@@ -706,6 +717,8 @@ static int daqboard2000_8255_cb(int dir, int port, int data,
 static int daqboard2000_attach(struct comedi_device *dev,
 			       struct comedi_devconfig *it)
 {
+	const struct daq200_boardtype *this_board;
+	struct daqboard2000_private *devpriv;
 	int result = 0;
 	struct comedi_subdevice *s;
 	struct pci_dev *card = NULL;
@@ -716,9 +729,10 @@ static int daqboard2000_attach(struct comedi_device *dev,
 	bus = it->options[0];
 	slot = it->options[1];
 
-	result = alloc_private(dev, sizeof(struct daqboard2000_private));
+	result = alloc_private(dev, sizeof(*devpriv));
 	if (result < 0)
 		return -ENOMEM;
+	devpriv = dev->private;
 
 	for (card = pci_get_device(0x1616, 0x0409, NULL);
 	     card != NULL; card = pci_get_device(0x1616, 0x0409, card)) {
@@ -759,6 +773,7 @@ static int daqboard2000_attach(struct comedi_device *dev,
 			dev->board_ptr = boardtypes;
 		}
 	}
+	this_board = comedi_board(dev);
 
 	result = comedi_pci_enable(card, "daqboard2000");
 	if (result < 0) {
@@ -840,6 +855,8 @@ out:
 
 static void daqboard2000_detach(struct comedi_device *dev)
 {
+	struct daqboard2000_private *devpriv = dev->private;
+
 	if (dev->subdevices)
 		subdev_8255_cleanup(dev, dev->subdevices + 2);
 	if (dev->irq)
drivers/staging/comedi/drivers/das08.c +6 -2
index 874e02e..c6a1b9a 100644
@@ -909,13 +909,17 @@ das08_find_pci_board(struct pci_dev *pdev)
 static int __devinit __maybe_unused
[… more lines in the raw message]

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/das08_cs.c +3 -1
index f5700de..dcff2c7 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/das16.c +17 -2
index 895cc77..f79b678 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/das16m1.c +12 -2
index 2009263..102c8ce 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/das1800.c +31 -10

41 lines not on this page · raw message

drivers/staging/comedi/drivers/das6402.c +9 -2
index e3afcfa..a2e0cb8 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/das800.c +21 -8
index a0959a5..cc777c2 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/dt2801.c +16 -12
index d332269..8adaa06 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/dt2811.c +6 -3
index 290b933..1640f38 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/dt2814.c +5 -3
index 2e39ebe..4f4aa37 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/dt2815.c +5 -3
index 45b20be..a7873ce 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/dt282x.c +47 -20

67 lines not on this page · raw message

drivers/staging/comedi/drivers/dt3000.c +24 -4
index d1d99a3..3f1c152 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/dt9812.c +9 -4
index 40821c7..67d9313 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/dyna_pci10xx.c +14 -4
index e31f74a..3293d81 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/fl512.c +6 -3
index d1da809..af34417 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/icp_multi.c +27 -9
index b10ebdb..0283d49 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ii_pci20kc.c +8 -2
index 0f9cfe6..0b7fbe8 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/jr3_pci.c +3 -2
index 93f94cd..9c04874 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/me4000.c +45 -10

55 lines not on this page · raw message

drivers/staging/comedi/drivers/me4000.h +0 -4
index 5a4df4e..7d69f69 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/me_daq.c +20 -7
index 1803d66..df341c9 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/mpc624.c +4 -2
index b928b67..e355cb2 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/mpc8260cpm.c +0 -11
index a7fda8f..7ed1f78 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/multiq3.c +5 -2
index eccbe1f..cbdf58a 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_6527.c +19 -4
index a80c52f..deaf528 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_at_a2150.c +19 -8
index b53a428..fd96c4b 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_at_ao.c +9 -3
index 62c8c44..366c98d 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_atmio16d.c +9 -2
index 2c78d3d..d877388 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_daq_dio24.c +3 -16
index e27cae0..65eb92c 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_labpc.c +45 -8

53 lines not on this page · raw message

drivers/staging/comedi/drivers/ni_labpc_cs.c +4 -6
index dbb61b6..97e0a45 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_pcidio.c +31 -3
index 0a55de9..3a9152c 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/ni_pcimio.c +2 -2
index 89f4d43..3974c0d 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcl711.c +8 -3
index bb72d0b..d50adcd 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcl726.c +5 -3
index 2b10f1d..b4a4b31 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcl812.c +19 -4
index 578fd89..907fd92 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcl816.c +15 -4
index ba6911f..ff8666d 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcl818.c +24 -4
index 34169c1..1e4ad6d 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcm3724.c +6 -5
index 62c22cc..61dca3b 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcmad.c +4 -2
index 54d19c9..c0cee11 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcmda12.c +5 -3
index 291ce7c..ad32997 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/pcmmio.c +36 -14

50 lines not on this page · raw message

drivers/staging/comedi/drivers/pcmuio.c +18 -12
index feef3d0..bfb350f 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/rtd520.c +1 -1
index 5a2953e..2d98959 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/rti800.c +6 -3
index f7fa940..1bc8891 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/rti802.c +5 -3
index fc16508..501409f 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/s526.c +9 -7
index 358380f..f7f3c15 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/s626.c +3 -2
index f90578e..2d99c1c 100644

Lines of this file are not shown. View the raw message.

drivers/staging/comedi/drivers/serial2002.c +14 -7
index c18314b..c64bd88 100644

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Signature · 1 line
1.7.11

Part of the diff is not shown here. View the raw message.

maintainer
#1 lore raw
Quoted 8 lines · H Hartley Sweeten

The macros 'devpriv' and 'thisboard' rely on a local variable having a specific name and yeild pointers derived from that variable. Replace the macros with local variables where used and use to comedi_board() helper to get the 'thisboard' pointer.

Cc Ian Abbott <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>

Because I didn't take your other large patch series, this one didn't apply :(

greg k-h

#2 lore raw
Quoted 2 lines · Greg KH

Because I didn't take your other large patch series, this one didn't apply :(

Of course... ;-)

Looking at using the hw_dev right now. I should have something tomorrow.

Thanks.
Hartley